From 86b4a149fae547961a60d0809c393c3ba5bbec99 Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Thu, 8 Sep 2022 11:40:45 +0200 Subject: [PATCH] vault backup: 2022-09-08 11:40:45 --- notes/.obsidian/plugins/dataview/main.js | 515 +- .../.obsidian/plugins/dataview/manifest.json | 2 +- notes/.obsidian/plugins/dataview/styles.css | 2 +- notes/.obsidian/plugins/hotkey-helper/main.js | 565 +- .../plugins/hotkey-helper/manifest.json | 4 +- .../obsidian-activity-history/data.json | 4 +- .../plugins/obsidian-admonition/data.json | 2 +- .../plugins/obsidian-admonition/main.js | 2 +- .../plugins/obsidian-admonition/manifest.json | 2 +- .../.obsidian/plugins/obsidian-charts/main.js | 68 +- .../plugins/obsidian-charts/manifest.json | 4 +- .../plugins/obsidian-charts/styles.css | 5 + .../obsidian-excalidraw-plugin/data.json | 4 +- .../obsidian-excalidraw-plugin/main.js | 6 +- .../obsidian-excalidraw-plugin/manifest.json | 4 +- .../obsidian-excalidraw-plugin/styles.css | 223 +- notes/.obsidian/plugins/obsidian-gist/main.js | 62 +- .../plugins/obsidian-gist/manifest.json | 4 +- .../.obsidian/plugins/obsidian-git/data.json | 8 +- notes/.obsidian/plugins/obsidian-git/main.js | 26897 +++++++++++++--- .../plugins/obsidian-git/manifest.json | 6 +- .../.obsidian/plugins/obsidian-git/styles.css | 130 +- .../.obsidian/plugins/obsidian-kanban/main.js | 90 +- .../plugins/obsidian-kanban/manifest.json | 2 +- .../plugins/obsidian-kanban/styles.css | 2 +- .../plugins/obsidian-outliner/main.js | 12 +- .../plugins/obsidian-outliner/manifest.json | 2 +- .../plugins/templater-obsidian/main.js | 299 +- .../plugins/templater-obsidian/manifest.json | 2 +- .../plugins/templater-obsidian/styles.css | 15 + notes/data/Pasted image 20220908113126.png | Bin 0 -> 107740 bytes notes/data/Pasted image 20220908113147.png | Bin 0 -> 97619 bytes notes/mat/Příklady 2.md | 96 + notes/mat/Tahák.md | 7 + 34 files changed, 23112 insertions(+), 5934 deletions(-) create mode 100644 notes/data/Pasted image 20220908113126.png create mode 100644 notes/data/Pasted image 20220908113147.png diff --git a/notes/.obsidian/plugins/dataview/main.js b/notes/.obsidian/plugins/dataview/main.js index 01fe019..764e557 100644 --- a/notes/.obsidian/plugins/dataview/main.js +++ b/notes/.obsidian/plugins/dataview/main.js @@ -1,6 +1,8 @@ 'use strict'; var obsidian = require('obsidian'); +var view = require('@codemirror/view'); +var language = require('@codemirror/language'); function _mergeNamespaces(n, m) { m.forEach(function (e) { @@ -8575,7 +8577,9 @@ var Luxon = /*#__PURE__*/_mergeNamespaces({ const DEFAULT_QUERY_SETTINGS = { renderNullAs: "\\-", taskCompletionTracking: false, + taskCompletionUseEmojiShorthand: false, taskCompletionText: "completion", + taskCompletionDateFormat: "yyyy-MM-dd", warnOnEmptyResult: true, refreshEnabled: true, refreshInterval: 2500, @@ -8797,9 +8801,9 @@ function normalizeHeaderForLink(header) { function renderMinimalDate(time, settings, locale) { // If there is no relevant time specified, fall back to just rendering the date. if (time.second == 0 && time.minute == 0 && time.hour == 0) { - return time.toFormat(settings.defaultDateFormat, { locale }); + return time.toLocal().toFormat(settings.defaultDateFormat, { locale }); } - return time.toFormat(settings.defaultDateTimeFormat, { locale }); + return time.toLocal().toFormat(settings.defaultDateTimeFormat, { locale }); } /** Render a duration in a minimal format to save space. */ function renderMinimalDuration(dur) { @@ -9260,6 +9264,7 @@ class Link { return { path: this.path, type: this.type, subpath: this.subpath, display: this.display, embed: this.embed }; } /** Update this link with a new path. */ + //@ts-ignore; error appeared after updating Obsidian to 0.15.4; it also updated other packages but didn't say which withPath(path) { return new Link(Object.assign({}, this, { path })); } @@ -10377,7 +10382,13 @@ function extractInlineFields(line, includeTaskFields = false) { if (includeTaskFields) fields = fields.concat(extractSpecialTaskFields(line)); fields.sort((a, b) => a.start - b.start); - return fields; + let filteredFields = []; + for (let i = 0; i < fields.length; i++) { + if (i == 0 || filteredFields[filteredFields.length - 1].end < fields[i].start) { + filteredFields.push(fields[i]); + } + } + return filteredFields; } /** Validates that a raw field name has a valid form. */ const FULL_LINE_KEY_PART = parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regexp(new RegExp(emojiRegex(), "u")), parsimmon_umd_min.exports.regexp(/[0-9\p{Letter}\w\s_/-]+/u)) @@ -10387,41 +10398,33 @@ parsimmon_umd_min.exports.regexp(/[^0-9\w\p{Letter}]*/u) .then(FULL_LINE_KEY_PART) .skip(parsimmon_umd_min.exports.regexp(/[_\*~`]*/u)); const CREATED_DATE_REGEX = /\u{2795}\s*(\d{4}-\d{2}-\d{2})/u; -const DUE_DATE_REGEX = /[\u{1F4C5}\u{1F4C6}\u{1F5D3}\u{FE0F}]{1,}\s*(\d{4}-\d{2}-\d{2})/u; +const DUE_DATE_REGEX = /(?:\u{1F4C5}|\u{1F4C6}|\u{1F5D3}\u{FE0F}?)\s*(\d{4}-\d{2}-\d{2})/u; const DONE_DATE_REGEX = /\u{2705}\s*(\d{4}-\d{2}-\d{2})/u; +const SCHEDULED_DATE_REGEX = /[\u{23F3}\u{231B}]\s*(\d{4}-\d{2}-\d{2})/u; +const START_DATE_REGEX = /\u{1F6EB}\s*(\d{4}-\d{2}-\d{2})/u; +const EMOJI_REGEXES = [ + { regex: CREATED_DATE_REGEX, key: "created" }, + { regex: START_DATE_REGEX, key: "start" }, + { regex: SCHEDULED_DATE_REGEX, key: "scheduled" }, + { regex: DUE_DATE_REGEX, key: "due" }, + { regex: DONE_DATE_REGEX, key: "completion" }, +]; /** Parse special completed/due/done task fields which are marked via emoji. */ function extractSpecialTaskFields(line) { let results = []; - let createdMatch = CREATED_DATE_REGEX.exec(line); - if (createdMatch) + for (let { regex, key } of EMOJI_REGEXES) { + const match = regex.exec(line); + if (!match) + continue; results.push({ - key: "created", - value: createdMatch[1], - start: createdMatch.index, - startValue: createdMatch.index + 1, - end: createdMatch.index + createdMatch[0].length, - wrapping: "emoji-shorthand", - }); - let dueMatch = DUE_DATE_REGEX.exec(line); - if (dueMatch) - results.push({ - key: "due", - value: dueMatch[1], - start: dueMatch.index, - startValue: dueMatch.index + 1, - end: dueMatch.index + dueMatch[0].length, - wrapping: "emoji-shorthand", - }); - let completedMatch = DONE_DATE_REGEX.exec(line); - if (completedMatch) - results.push({ - key: "completion", - value: completedMatch[1], - start: completedMatch.index, - startValue: completedMatch.index + 1, - end: completedMatch.index + completedMatch[0].length, + key, + value: match[1], + start: match.index, + startValue: match.index + 1, + end: match.index + match[0].length, wrapping: "emoji-shorthand", }); + } return results; } /** Sets or replaces the value of an inline field; if the value is 'undefined', deletes the key. */ @@ -10445,6 +10448,24 @@ function setInlineField(source, key, value) { return `${source.trimEnd()} ${annotation}`; } return source; +} +function setEmojiShorthandCompletionField(source, value) { + const existing = extractInlineFields(source, true); + const existingKeys = existing.filter(f => f.key === "completion" && f.wrapping === "emoji-shorthand"); + // Don't do anything if there are duplicate keys OR the key already doesn't exist. + if (existingKeys.length > 2 || (existingKeys.length == 0 && !value)) + return source; + /* No wrapper, add own spacing at start */ + const annotation = value ? ` ✅ ${value}` : ""; + let existingKey = existingKeys[0]; + if (existingKey) { + const prefix = source.substring(0, existingKey.start); + const suffix = source.substring(existingKey.end); + return `${prefix.trimEnd()}${annotation}${suffix}`; + } + else { + return `${source.trimEnd()}${annotation}`; + } } /** All extracted markdown file metadata obtained from a file. */ @@ -10583,6 +10604,14 @@ class ListItem$1 { var _a, _b, _c, _d; return (_d = ((_c = (_b = (_a = this.fields.get("completed")) !== null && _a !== void 0 ? _a : this.fields.get("completion")) !== null && _b !== void 0 ? _b : this.fields.get("comptime")) !== null && _c !== void 0 ? _c : this.fields.get("compday"))) === null || _d === void 0 ? void 0 : _d[0]; } + start() { + var _a; + return (_a = this.fields.get("start")) === null || _a === void 0 ? void 0 : _a[0]; + } + scheduled() { + var _a; + return (_a = this.fields.get("scheduled")) === null || _a === void 0 ? void 0 : _a[0]; + } /** Create an API-friendly copy of this list item. De-duplication is done via the provided cache. */ serialize(cache) { // Map children to their serialized/de-duplicated equivalents right away. @@ -10616,13 +10645,17 @@ class ListItem$1 { result.checked = this.task.checked; result.completed = this.task.completed; result.fullyCompleted = this.task.fullyCompleted; - let created = this.created(), due = this.due(), completed = this.completed(); + let created = this.created(), due = this.due(), completed = this.completed(), start = this.start(), scheduled = this.scheduled(); if (created) result.created = Values.deepCopy(created); if (due) result.due = Values.deepCopy(due); if (completed) result.completion = Values.deepCopy(completed); + if (start) + result.start = Values.deepCopy(start); + if (scheduled) + result.scheduled = Values.deepCopy(scheduled); } return result; } @@ -10803,11 +10836,9 @@ var Transferable; if ("___transfer-type" in transferable) { switch (transferable["___transfer-type"]) { case "date": - let rawDate = DateTime_1.fromObject(value(transferable.value)); let dateOpts = value(transferable.options); - if (dateOpts.zone) - rawDate.setZone(dateOpts.zone); - return rawDate; + let dateData = value(transferable.value); + return DateTime_1.fromObject(dateData, { zone: dateOpts.zone }); case "duration": return Duration_1.fromObject(value(transferable.value)); case "link": @@ -13737,7 +13768,7 @@ function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) { }; } -var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewoJJ3VzZSBzdHJpY3QnOwoKCXZhciBjb21tb25qc0dsb2JhbCA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbFRoaXMgOiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9OwoKCXZhciBsdXhvbiA9IHt9OwoKCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsdXhvbiwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pOwoKCWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsKCSAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgewoJICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07CgkgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOwoJICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsKCSAgICBpZiAoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsKCSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7CgkgIH0KCX0KCglmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7CgkgIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOwoJICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7CgkgIHJldHVybiBDb25zdHJ1Y3RvcjsKCX0KCglmdW5jdGlvbiBfZXh0ZW5kcygpIHsKCSAgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsKCSAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsKCgkgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7CgkgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7CgkgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsKCSAgICAgICAgfQoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIHRhcmdldDsKCSAgfTsKCgkgIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwoJfQoKCWZ1bmN0aW9uIF9pbmhlcml0c0xvb3NlKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7CgkgIHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcy5wcm90b3R5cGUpOwoJICBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzczsKCgkgIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7Cgl9CgoJZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsKCSAgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsKCSAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOwoJICB9OwoJICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOwoJfQoKCWZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7CgkgIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgewoJICAgIG8uX19wcm90b19fID0gcDsKCSAgICByZXR1cm4gbzsKCSAgfTsKCgkgIHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7Cgl9CgoJZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsKCSAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAidW5kZWZpbmVkIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsKCSAgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsKCSAgaWYgKHR5cGVvZiBQcm94eSA9PT0gImZ1bmN0aW9uIikgcmV0dXJuIHRydWU7CgoJICB0cnkgewoJICAgIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTsKCSAgICByZXR1cm4gdHJ1ZTsKCSAgfSBjYXRjaCAoZSkgewoJICAgIHJldHVybiBmYWxzZTsKCSAgfQoJfQoKCWZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykgewoJICBpZiAoX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpKSB7CgkgICAgX2NvbnN0cnVjdCA9IFJlZmxlY3QuY29uc3RydWN0OwoJICB9IGVsc2UgewoJICAgIF9jb25zdHJ1Y3QgPSBmdW5jdGlvbiBfY29uc3RydWN0KFBhcmVudCwgYXJncywgQ2xhc3MpIHsKCSAgICAgIHZhciBhID0gW251bGxdOwoJICAgICAgYS5wdXNoLmFwcGx5KGEsIGFyZ3MpOwoJICAgICAgdmFyIENvbnN0cnVjdG9yID0gRnVuY3Rpb24uYmluZC5hcHBseShQYXJlbnQsIGEpOwoJICAgICAgdmFyIGluc3RhbmNlID0gbmV3IENvbnN0cnVjdG9yKCk7CgkgICAgICBpZiAoQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTsKCSAgICAgIHJldHVybiBpbnN0YW5jZTsKCSAgICB9OwoJICB9CgoJICByZXR1cm4gX2NvbnN0cnVjdC5hcHBseShudWxsLCBhcmd1bWVudHMpOwoJfQoKCWZ1bmN0aW9uIF9pc05hdGl2ZUZ1bmN0aW9uKGZuKSB7CgkgIHJldHVybiBGdW5jdGlvbi50b1N0cmluZy5jYWxsKGZuKS5pbmRleE9mKCJbbmF0aXZlIGNvZGVdIikgIT09IC0xOwoJfQoKCWZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHsKCSAgdmFyIF9jYWNoZSA9IHR5cGVvZiBNYXAgPT09ICJmdW5jdGlvbiIgPyBuZXcgTWFwKCkgOiB1bmRlZmluZWQ7CgoJICBfd3JhcE5hdGl2ZVN1cGVyID0gZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykgewoJICAgIGlmIChDbGFzcyA9PT0gbnVsbCB8fCAhX2lzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7CgoJICAgIGlmICh0eXBlb2YgQ2xhc3MgIT09ICJmdW5jdGlvbiIpIHsKCSAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7CgkgICAgfQoKCSAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gInVuZGVmaW5lZCIpIHsKCSAgICAgIGlmIChfY2FjaGUuaGFzKENsYXNzKSkgcmV0dXJuIF9jYWNoZS5nZXQoQ2xhc3MpOwoKCSAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpOwoJICAgIH0KCgkgICAgZnVuY3Rpb24gV3JhcHBlcigpIHsKCSAgICAgIHJldHVybiBfY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3Rvcik7CgkgICAgfQoKCSAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7CgkgICAgICBjb25zdHJ1Y3RvcjogewoJICAgICAgICB2YWx1ZTogV3JhcHBlciwKCSAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCgkgICAgICAgIHdyaXRhYmxlOiB0cnVlLAoJICAgICAgICBjb25maWd1cmFibGU6IHRydWUKCSAgICAgIH0KCSAgICB9KTsKCSAgICByZXR1cm4gX3NldFByb3RvdHlwZU9mKFdyYXBwZXIsIENsYXNzKTsKCSAgfTsKCgkgIHJldHVybiBfd3JhcE5hdGl2ZVN1cGVyKENsYXNzKTsKCX0KCglmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7CgkgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OwoJICB2YXIgdGFyZ2V0ID0ge307CgkgIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsKCSAgdmFyIGtleSwgaTsKCgkgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7CgkgICAga2V5ID0gc291cmNlS2V5c1tpXTsKCSAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOwoJICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07CgkgIH0KCgkgIHJldHVybiB0YXJnZXQ7Cgl9CgoJZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgewoJICBpZiAoIW8pIHJldHVybjsKCSAgaWYgKHR5cGVvZiBvID09PSAic3RyaW5nIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7CgkgIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsKCSAgaWYgKG4gPT09ICJPYmplY3QiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7CgkgIGlmIChuID09PSAiTWFwIiB8fCBuID09PSAiU2V0IikgcmV0dXJuIEFycmF5LmZyb20obyk7CgkgIGlmIChuID09PSAiQXJndW1lbnRzIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7Cgl9CgoJZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHsKCSAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7CgoJICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07CgoJICByZXR1cm4gYXJyMjsKCX0KCglmdW5jdGlvbiBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKG8sIGFsbG93QXJyYXlMaWtlKSB7CgkgIHZhciBpdCA9IHR5cGVvZiBTeW1ib2wgIT09ICJ1bmRlZmluZWQiICYmIG9bU3ltYm9sLml0ZXJhdG9yXSB8fCBvWyJAQGl0ZXJhdG9yIl07CgkgIGlmIChpdCkgcmV0dXJuIChpdCA9IGl0LmNhbGwobykpLm5leHQuYmluZChpdCk7CgoJICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgewoJICAgIGlmIChpdCkgbyA9IGl0OwoJICAgIHZhciBpID0gMDsKCSAgICByZXR1cm4gZnVuY3Rpb24gKCkgewoJICAgICAgaWYgKGkgPj0gby5sZW5ndGgpIHJldHVybiB7CgkgICAgICAgIGRvbmU6IHRydWUKCSAgICAgIH07CgkgICAgICByZXR1cm4gewoJICAgICAgICBkb25lOiBmYWxzZSwKCSAgICAgICAgdmFsdWU6IG9baSsrXQoJICAgICAgfTsKCSAgICB9OwoJICB9CgoJICB0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIik7Cgl9CgoJLy8gdGhlc2UgYXJlbid0IHJlYWxseSBwcml2YXRlLCBidXQgbm9yIGFyZSB0aGV5IHJlYWxseSB1c2VmdWwgdG8gZG9jdW1lbnQKCgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCXZhciBMdXhvbkVycm9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfRXJyb3IpIHsKCSAgX2luaGVyaXRzTG9vc2UoTHV4b25FcnJvciwgX0Vycm9yKTsKCgkgIGZ1bmN0aW9uIEx1eG9uRXJyb3IoKSB7CgkgICAgcmV0dXJuIF9FcnJvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBMdXhvbkVycm9yOwoJfSggLyojX19QVVJFX18qL193cmFwTmF0aXZlU3VwZXIoRXJyb3IpKTsKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCgl2YXIgSW52YWxpZERhdGVUaW1lRXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9MdXhvbkVycm9yKSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWREYXRlVGltZUVycm9yLCBfTHV4b25FcnJvcik7CgoJICBmdW5jdGlvbiBJbnZhbGlkRGF0ZVRpbWVFcnJvcihyZWFzb24pIHsKCSAgICByZXR1cm4gX0x1eG9uRXJyb3IuY2FsbCh0aGlzLCAiSW52YWxpZCBEYXRlVGltZTogIiArIHJlYXNvbi50b01lc3NhZ2UoKSkgfHwgdGhpczsKCSAgfQoKCSAgcmV0dXJuIEludmFsaWREYXRlVGltZUVycm9yOwoJfShMdXhvbkVycm9yKTsKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCXZhciBJbnZhbGlkSW50ZXJ2YWxFcnJvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0x1eG9uRXJyb3IyKSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWRJbnRlcnZhbEVycm9yLCBfTHV4b25FcnJvcjIpOwoKCSAgZnVuY3Rpb24gSW52YWxpZEludGVydmFsRXJyb3IocmVhc29uKSB7CgkgICAgcmV0dXJuIF9MdXhvbkVycm9yMi5jYWxsKHRoaXMsICJJbnZhbGlkIEludGVydmFsOiAiICsgcmVhc29uLnRvTWVzc2FnZSgpKSB8fCB0aGlzOwoJICB9CgoJICByZXR1cm4gSW52YWxpZEludGVydmFsRXJyb3I7Cgl9KEx1eG9uRXJyb3IpOwoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoJdmFyIEludmFsaWREdXJhdGlvbkVycm9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfTHV4b25FcnJvcjMpIHsKCSAgX2luaGVyaXRzTG9vc2UoSW52YWxpZER1cmF0aW9uRXJyb3IsIF9MdXhvbkVycm9yMyk7CgoJICBmdW5jdGlvbiBJbnZhbGlkRHVyYXRpb25FcnJvcihyZWFzb24pIHsKCSAgICByZXR1cm4gX0x1eG9uRXJyb3IzLmNhbGwodGhpcywgIkludmFsaWQgRHVyYXRpb246ICIgKyByZWFzb24udG9NZXNzYWdlKCkpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBJbnZhbGlkRHVyYXRpb25FcnJvcjsKCX0oTHV4b25FcnJvcik7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgl2YXIgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9MdXhvbkVycm9yNCkgewoJICBfaW5oZXJpdHNMb29zZShDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciwgX0x1eG9uRXJyb3I0KTsKCgkgIGZ1bmN0aW9uIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKCkgewoJICAgIHJldHVybiBfTHV4b25FcnJvcjQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwoJICB9CgoJICByZXR1cm4gQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3I7Cgl9KEx1eG9uRXJyb3IpOwoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoJdmFyIEludmFsaWRVbml0RXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9MdXhvbkVycm9yNSkgewoJICBfaW5oZXJpdHNMb29zZShJbnZhbGlkVW5pdEVycm9yLCBfTHV4b25FcnJvcjUpOwoKCSAgZnVuY3Rpb24gSW52YWxpZFVuaXRFcnJvcih1bml0KSB7CgkgICAgcmV0dXJuIF9MdXhvbkVycm9yNS5jYWxsKHRoaXMsICJJbnZhbGlkIHVuaXQgIiArIHVuaXQpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBJbnZhbGlkVW5pdEVycm9yOwoJfShMdXhvbkVycm9yKTsKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCXZhciBJbnZhbGlkQXJndW1lbnRFcnJvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0x1eG9uRXJyb3I2KSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWRBcmd1bWVudEVycm9yLCBfTHV4b25FcnJvcjYpOwoKCSAgZnVuY3Rpb24gSW52YWxpZEFyZ3VtZW50RXJyb3IoKSB7CgkgICAgcmV0dXJuIF9MdXhvbkVycm9yNi5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBJbnZhbGlkQXJndW1lbnRFcnJvcjsKCX0oTHV4b25FcnJvcik7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgl2YXIgWm9uZUlzQWJzdHJhY3RFcnJvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0x1eG9uRXJyb3I3KSB7CgkgIF9pbmhlcml0c0xvb3NlKFpvbmVJc0Fic3RyYWN0RXJyb3IsIF9MdXhvbkVycm9yNyk7CgoJICBmdW5jdGlvbiBab25lSXNBYnN0cmFjdEVycm9yKCkgewoJICAgIHJldHVybiBfTHV4b25FcnJvcjcuY2FsbCh0aGlzLCAiWm9uZSBpcyBhbiBhYnN0cmFjdCBjbGFzcyIpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBab25lSXNBYnN0cmFjdEVycm9yOwoJfShMdXhvbkVycm9yKTsKCgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCXZhciBuID0gIm51bWVyaWMiLAoJICAgIHMgPSAic2hvcnQiLAoJICAgIGwgPSAibG9uZyI7Cgl2YXIgREFURV9TSE9SVCA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IG4sCgkgIGRheTogbgoJfTsKCXZhciBEQVRFX01FRCA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IHMsCgkgIGRheTogbgoJfTsKCXZhciBEQVRFX01FRF9XSVRIX1dFRUtEQVkgPSB7CgkgIHllYXI6IG4sCgkgIG1vbnRoOiBzLAoJICBkYXk6IG4sCgkgIHdlZWtkYXk6IHMKCX07Cgl2YXIgREFURV9GVUxMID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogbCwKCSAgZGF5OiBuCgl9OwoJdmFyIERBVEVfSFVHRSA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IGwsCgkgIGRheTogbiwKCSAgd2Vla2RheTogbAoJfTsKCXZhciBUSU1FX1NJTVBMRSA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuCgl9OwoJdmFyIFRJTUVfV0lUSF9TRUNPTkRTID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbgoJfTsKCXZhciBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4sCgkgIHRpbWVab25lTmFtZTogbAoJfTsKCXZhciBUSU1FXzI0X1NJTVBMRSA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBob3VyQ3ljbGU6ICJoMjMiCgl9OwoJdmFyIFRJTUVfMjRfV0lUSF9TRUNPTkRTID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgaG91ckN5Y2xlOiAiaDIzIgoJfTsKCXZhciBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgaG91ckN5Y2xlOiAiaDIzIiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4sCgkgIGhvdXJDeWNsZTogImgyMyIsCgkgIHRpbWVab25lTmFtZTogbAoJfTsKCXZhciBEQVRFVElNRV9TSE9SVCA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IG4sCgkgIGRheTogbiwKCSAgaG91cjogbiwKCSAgbWludXRlOiBuCgl9OwoJdmFyIERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IG4sCgkgIGRheTogbiwKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4KCX07Cgl2YXIgREFURVRJTUVfTUVEID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogcywKCSAgZGF5OiBuLAoJICBob3VyOiBuLAoJICBtaW51dGU6IG4KCX07Cgl2YXIgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IHMsCgkgIGRheTogbiwKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4KCX07Cgl2YXIgREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IHMsCgkgIGRheTogbiwKCSAgd2Vla2RheTogcywKCSAgaG91cjogbiwKCSAgbWludXRlOiBuCgl9OwoJdmFyIERBVEVUSU1FX0ZVTEwgPSB7CgkgIHllYXI6IG4sCgkgIG1vbnRoOiBsLAoJICBkYXk6IG4sCgkgIGhvdXI6IG4sCgkgIG1pbnV0ZTogbiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogbCwKCSAgZGF5OiBuLAoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIERBVEVUSU1FX0hVR0UgPSB7CgkgIHllYXI6IG4sCgkgIG1vbnRoOiBsLAoJICBkYXk6IG4sCgkgIHdlZWtkYXk6IGwsCgkgIGhvdXI6IG4sCgkgIG1pbnV0ZTogbiwKCSAgdGltZVpvbmVOYW1lOiBsCgl9OwoJdmFyIERBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogbCwKCSAgZGF5OiBuLAoJICB3ZWVrZGF5OiBsLAoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgdGltZVpvbmVOYW1lOiBsCgl9OwoKCS8qKgoJICogQHByaXZhdGUKCSAqLwoJLy8gVFlQRVMKCglmdW5jdGlvbiBpc1VuZGVmaW5lZChvKSB7CgkgIHJldHVybiB0eXBlb2YgbyA9PT0gInVuZGVmaW5lZCI7Cgl9CglmdW5jdGlvbiBpc051bWJlcihvKSB7CgkgIHJldHVybiB0eXBlb2YgbyA9PT0gIm51bWJlciI7Cgl9CglmdW5jdGlvbiBpc0ludGVnZXIobykgewoJICByZXR1cm4gdHlwZW9mIG8gPT09ICJudW1iZXIiICYmIG8gJSAxID09PSAwOwoJfQoJZnVuY3Rpb24gaXNTdHJpbmcobykgewoJICByZXR1cm4gdHlwZW9mIG8gPT09ICJzdHJpbmciOwoJfQoJZnVuY3Rpb24gaXNEYXRlKG8pIHsKCSAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSA9PT0gIltvYmplY3QgRGF0ZV0iOwoJfSAvLyBDQVBBQklMSVRJRVMKCglmdW5jdGlvbiBoYXNSZWxhdGl2ZSgpIHsKCSAgdHJ5IHsKCSAgICByZXR1cm4gdHlwZW9mIEludGwgIT09ICJ1bmRlZmluZWQiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7CgkgIH0gY2F0Y2ggKGUpIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0KCX0gLy8gT0JKRUNUUyBBTkQgQVJSQVlTCgoJZnVuY3Rpb24gbWF5YmVBcnJheSh0aGluZykgewoJICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107Cgl9CglmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkgewoJICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkgewoJICAgIHJldHVybiB1bmRlZmluZWQ7CgkgIH0KCgkgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uIChiZXN0LCBuZXh0KSB7CgkgICAgdmFyIHBhaXIgPSBbYnkobmV4dCksIG5leHRdOwoKCSAgICBpZiAoIWJlc3QpIHsKCSAgICAgIHJldHVybiBwYWlyOwoJICAgIH0gZWxzZSBpZiAoY29tcGFyZShiZXN0WzBdLCBwYWlyWzBdKSA9PT0gYmVzdFswXSkgewoJICAgICAgcmV0dXJuIGJlc3Q7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBwYWlyOwoJICAgIH0KCSAgfSwgbnVsbClbMV07Cgl9CglmdW5jdGlvbiBwaWNrKG9iaiwga2V5cykgewoJICByZXR1cm4ga2V5cy5yZWR1Y2UoZnVuY3Rpb24gKGEsIGspIHsKCSAgICBhW2tdID0gb2JqW2tdOwoJICAgIHJldHVybiBhOwoJICB9LCB7fSk7Cgl9CglmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHsKCSAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOwoJfSAvLyBOVU1CRVJTIEFORCBTVFJJTkdTCgoJZnVuY3Rpb24gaW50ZWdlckJldHdlZW4odGhpbmcsIGJvdHRvbSwgdG9wKSB7CgkgIHJldHVybiBpc0ludGVnZXIodGhpbmcpICYmIHRoaW5nID49IGJvdHRvbSAmJiB0aGluZyA8PSB0b3A7Cgl9IC8vIHggJSBuIGJ1dCB0YWtlcyB0aGUgc2lnbiBvZiBuIGluc3RlYWQgb2YgeAoKCWZ1bmN0aW9uIGZsb29yTW9kKHgsIG4pIHsKCSAgcmV0dXJuIHggLSBuICogTWF0aC5mbG9vcih4IC8gbik7Cgl9CglmdW5jdGlvbiBwYWRTdGFydChpbnB1dCwgbikgewoJICBpZiAobiA9PT0gdm9pZCAwKSB7CgkgICAgbiA9IDI7CgkgIH0KCgkgIHZhciBpc05lZyA9IGlucHV0IDwgMDsKCSAgdmFyIHBhZGRlZDsKCgkgIGlmIChpc05lZykgewoJICAgIHBhZGRlZCA9ICItIiArICgiIiArIC1pbnB1dCkucGFkU3RhcnQobiwgIjAiKTsKCSAgfSBlbHNlIHsKCSAgICBwYWRkZWQgPSAoIiIgKyBpbnB1dCkucGFkU3RhcnQobiwgIjAiKTsKCSAgfQoKCSAgcmV0dXJuIHBhZGRlZDsKCX0KCWZ1bmN0aW9uIHBhcnNlSW50ZWdlcihzdHJpbmcpIHsKCSAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gIiIpIHsKCSAgICByZXR1cm4gdW5kZWZpbmVkOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBwYXJzZUludChzdHJpbmcsIDEwKTsKCSAgfQoJfQoJZnVuY3Rpb24gcGFyc2VGbG9hdGluZyhzdHJpbmcpIHsKCSAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gIiIpIHsKCSAgICByZXR1cm4gdW5kZWZpbmVkOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7CgkgIH0KCX0KCWZ1bmN0aW9uIHBhcnNlTWlsbGlzKGZyYWN0aW9uKSB7CgkgIC8vIFJldHVybiB1bmRlZmluZWQgKGluc3RlYWQgb2YgMCkgaW4gdGhlc2UgY2FzZXMsIHdoZXJlIGZyYWN0aW9uIGlzIG5vdCBzZXQKCSAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gIiIpIHsKCSAgICByZXR1cm4gdW5kZWZpbmVkOwoJICB9IGVsc2UgewoJICAgIHZhciBmID0gcGFyc2VGbG9hdCgiMC4iICsgZnJhY3Rpb24pICogMTAwMDsKCSAgICByZXR1cm4gTWF0aC5mbG9vcihmKTsKCSAgfQoJfQoJZnVuY3Rpb24gcm91bmRUbyhudW1iZXIsIGRpZ2l0cywgdG93YXJkWmVybykgewoJICBpZiAodG93YXJkWmVybyA9PT0gdm9pZCAwKSB7CgkgICAgdG93YXJkWmVybyA9IGZhbHNlOwoJICB9CgoJICB2YXIgZmFjdG9yID0gTWF0aC5wb3coMTAsIGRpZ2l0cyksCgkgICAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kOwoJICByZXR1cm4gcm91bmRlcihudW1iZXIgKiBmYWN0b3IpIC8gZmFjdG9yOwoJfSAvLyBEQVRFIEJBU0lDUwoKCWZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikgewoJICByZXR1cm4geWVhciAlIDQgPT09IDAgJiYgKHllYXIgJSAxMDAgIT09IDAgfHwgeWVhciAlIDQwMCA9PT0gMCk7Cgl9CglmdW5jdGlvbiBkYXlzSW5ZZWFyKHllYXIpIHsKCSAgcmV0dXJuIGlzTGVhcFllYXIoeWVhcikgPyAzNjYgOiAzNjU7Cgl9CglmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkgewoJICB2YXIgbW9kTW9udGggPSBmbG9vck1vZChtb250aCAtIDEsIDEyKSArIDEsCgkgICAgICBtb2RZZWFyID0geWVhciArIChtb250aCAtIG1vZE1vbnRoKSAvIDEyOwoKCSAgaWYgKG1vZE1vbnRoID09PSAyKSB7CgkgICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4OwoJICB9IGVsc2UgewoJICAgIHJldHVybiBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVttb2RNb250aCAtIDFdOwoJICB9Cgl9IC8vIGNvdmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGxvY2FsIHRpbWVzdGFtcCAoZXBvY2gsIGJ1dCB3aXRoIHRoZSBvZmZzZXQgYmFrZWQgaW4pCgoJZnVuY3Rpb24gb2JqVG9Mb2NhbFRTKG9iaikgewoJICB2YXIgZCA9IERhdGUuVVRDKG9iai55ZWFyLCBvYmoubW9udGggLSAxLCBvYmouZGF5LCBvYmouaG91ciwgb2JqLm1pbnV0ZSwgb2JqLnNlY29uZCwgb2JqLm1pbGxpc2Vjb25kKTsgLy8gZm9yIGxlZ2FjeSByZWFzb25zLCB5ZWFycyBiZXR3ZWVuIDAgYW5kIDk5IGFyZSBpbnRlcnByZXRlZCBhcyAxOVhYOyByZXZlcnQgdGhhdAoKCSAgaWYgKG9iai55ZWFyIDwgMTAwICYmIG9iai55ZWFyID49IDApIHsKCSAgICBkID0gbmV3IERhdGUoZCk7CgkgICAgZC5zZXRVVENGdWxsWWVhcihkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwKTsKCSAgfQoKCSAgcmV0dXJuICtkOwoJfQoJZnVuY3Rpb24gd2Vla3NJbldlZWtZZWFyKHdlZWtZZWFyKSB7CgkgIHZhciBwMSA9ICh3ZWVrWWVhciArIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0KSAtIE1hdGguZmxvb3Iod2Vla1llYXIgLyAxMDApICsgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICUgNywKCSAgICAgIGxhc3QgPSB3ZWVrWWVhciAtIDEsCgkgICAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3OwoJICByZXR1cm4gcDEgPT09IDQgfHwgcDIgPT09IDMgPyA1MyA6IDUyOwoJfQoJZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhcikgewoJICBpZiAoeWVhciA+IDk5KSB7CgkgICAgcmV0dXJuIHllYXI7CgkgIH0gZWxzZSByZXR1cm4geWVhciA+IDYwID8gMTkwMCArIHllYXIgOiAyMDAwICsgeWVhcjsKCX0gLy8gUEFSU0lORwoKCWZ1bmN0aW9uIHBhcnNlWm9uZUluZm8odHMsIG9mZnNldEZvcm1hdCwgbG9jYWxlLCB0aW1lWm9uZSkgewoJICBpZiAodGltZVpvbmUgPT09IHZvaWQgMCkgewoJICAgIHRpbWVab25lID0gbnVsbDsKCSAgfQoKCSAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0cyksCgkgICAgICBpbnRsT3B0cyA9IHsKCSAgICBob3VyQ3ljbGU6ICJoMjMiLAoJICAgIHllYXI6ICJudW1lcmljIiwKCSAgICBtb250aDogIjItZGlnaXQiLAoJICAgIGRheTogIjItZGlnaXQiLAoJICAgIGhvdXI6ICIyLWRpZ2l0IiwKCSAgICBtaW51dGU6ICIyLWRpZ2l0IgoJICB9OwoKCSAgaWYgKHRpbWVab25lKSB7CgkgICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTsKCSAgfQoKCSAgdmFyIG1vZGlmaWVkID0gX2V4dGVuZHMoewoJICAgIHRpbWVab25lTmFtZTogb2Zmc2V0Rm9ybWF0CgkgIH0sIGludGxPcHRzKTsKCgkgIHZhciBwYXJzZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG1vZGlmaWVkKS5mb3JtYXRUb1BhcnRzKGRhdGUpLmZpbmQoZnVuY3Rpb24gKG0pIHsKCSAgICByZXR1cm4gbS50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICJ0aW1lem9uZW5hbWUiOwoJICB9KTsKCSAgcmV0dXJuIHBhcnNlZCA/IHBhcnNlZC52YWx1ZSA6IG51bGw7Cgl9IC8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwCgoJZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikgewoJICB2YXIgb2ZmSG91ciA9IHBhcnNlSW50KG9mZkhvdXJTdHIsIDEwKTsgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTAKCgkgIGlmIChOdW1iZXIuaXNOYU4ob2ZmSG91cikpIHsKCSAgICBvZmZIb3VyID0gMDsKCSAgfQoKCSAgdmFyIG9mZk1pbiA9IHBhcnNlSW50KG9mZk1pbnV0ZVN0ciwgMTApIHx8IDAsCgkgICAgICBvZmZNaW5TaWduZWQgPSBvZmZIb3VyIDwgMCB8fCBPYmplY3QuaXMob2ZmSG91ciwgLTApID8gLW9mZk1pbiA6IG9mZk1pbjsKCSAgcmV0dXJuIG9mZkhvdXIgKiA2MCArIG9mZk1pblNpZ25lZDsKCX0gLy8gQ09FUkNJT04KCglmdW5jdGlvbiBhc051bWJlcih2YWx1ZSkgewoJICB2YXIgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHZhbHVlKTsKCSAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gImJvb2xlYW4iIHx8IHZhbHVlID09PSAiIiB8fCBOdW1iZXIuaXNOYU4obnVtZXJpY1ZhbHVlKSkgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJJbnZhbGlkIHVuaXQgdmFsdWUgIiArIHZhbHVlKTsKCSAgcmV0dXJuIG51bWVyaWNWYWx1ZTsKCX0KCWZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHsKCSAgdmFyIG5vcm1hbGl6ZWQgPSB7fTsKCgkgIGZvciAodmFyIHUgaW4gb2JqKSB7CgkgICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHsKCSAgICAgIHZhciB2ID0gb2JqW3VdOwoJICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsKSBjb250aW51ZTsKCSAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplcih1KV0gPSBhc051bWJlcih2KTsKCSAgICB9CgkgIH0KCgkgIHJldHVybiBub3JtYWxpemVkOwoJfQoJZnVuY3Rpb24gZm9ybWF0T2Zmc2V0KG9mZnNldCwgZm9ybWF0KSB7CgkgIHZhciBob3VycyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0IC8gNjApKSwKCSAgICAgIG1pbnV0ZXMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAlIDYwKSksCgkgICAgICBzaWduID0gb2Zmc2V0ID49IDAgPyAiKyIgOiAiLSI7CgoJICBzd2l0Y2ggKGZvcm1hdCkgewoJICAgIGNhc2UgInNob3J0IjoKCSAgICAgIHJldHVybiAiIiArIHNpZ24gKyBwYWRTdGFydChob3VycywgMikgKyAiOiIgKyBwYWRTdGFydChtaW51dGVzLCAyKTsKCgkgICAgY2FzZSAibmFycm93IjoKCSAgICAgIHJldHVybiAiIiArIHNpZ24gKyBob3VycyArIChtaW51dGVzID4gMCA/ICI6IiArIG1pbnV0ZXMgOiAiIik7CgoJICAgIGNhc2UgInRlY2hpZSI6CgkgICAgICByZXR1cm4gIiIgKyBzaWduICsgcGFkU3RhcnQoaG91cnMsIDIpICsgcGFkU3RhcnQobWludXRlcywgMik7CgoJICAgIGRlZmF1bHQ6CgkgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVmFsdWUgZm9ybWF0ICIgKyBmb3JtYXQgKyAiIGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0Iik7CgkgIH0KCX0KCWZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7CgkgIHJldHVybiBwaWNrKG9iaiwgWyJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAibWlsbGlzZWNvbmQiXSk7Cgl9Cgl2YXIgaWFuYVJlZ2V4ID0gL1tBLVphLXpfKy1dezEsMjU2fSg/Ojo/XC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcL1tBLVphLXowLTlfKy1dezEsMjU2fSk/KT8vOwoKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCgl2YXIgbW9udGhzTG9uZyA9IFsiSmFudWFyeSIsICJGZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLCAiSnVuZSIsICJKdWx5IiwgIkF1Z3VzdCIsICJTZXB0ZW1iZXIiLCAiT2N0b2JlciIsICJOb3ZlbWJlciIsICJEZWNlbWJlciJdOwoJdmFyIG1vbnRoc1Nob3J0ID0gWyJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIiLCAiTWF5IiwgIkp1biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyJdOwoJdmFyIG1vbnRoc05hcnJvdyA9IFsiSiIsICJGIiwgIk0iLCAiQSIsICJNIiwgIkoiLCAiSiIsICJBIiwgIlMiLCAiTyIsICJOIiwgIkQiXTsKCWZ1bmN0aW9uIG1vbnRocyhsZW5ndGgpIHsKCSAgc3dpdGNoIChsZW5ndGgpIHsKCSAgICBjYXNlICJuYXJyb3ciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdChtb250aHNOYXJyb3cpOwoKCSAgICBjYXNlICJzaG9ydCI6CgkgICAgICByZXR1cm4gW10uY29uY2F0KG1vbnRoc1Nob3J0KTsKCgkgICAgY2FzZSAibG9uZyI6CgkgICAgICByZXR1cm4gW10uY29uY2F0KG1vbnRoc0xvbmcpOwoKCSAgICBjYXNlICJudW1lcmljIjoKCSAgICAgIHJldHVybiBbIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5IiwgIjEwIiwgIjExIiwgIjEyIl07CgoJICAgIGNhc2UgIjItZGlnaXQiOgoJICAgICAgcmV0dXJuIFsiMDEiLCAiMDIiLCAiMDMiLCAiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMDkiLCAiMTAiLCAiMTEiLCAiMTIiXTsKCgkgICAgZGVmYXVsdDoKCSAgICAgIHJldHVybiBudWxsOwoJICB9Cgl9Cgl2YXIgd2Vla2RheXNMb25nID0gWyJNb25kYXkiLCAiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5IiwgIlN1bmRheSJdOwoJdmFyIHdlZWtkYXlzU2hvcnQgPSBbIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiwgIlN1biJdOwoJdmFyIHdlZWtkYXlzTmFycm93ID0gWyJNIiwgIlQiLCAiVyIsICJUIiwgIkYiLCAiUyIsICJTIl07CglmdW5jdGlvbiB3ZWVrZGF5cyhsZW5ndGgpIHsKCSAgc3dpdGNoIChsZW5ndGgpIHsKCSAgICBjYXNlICJuYXJyb3ciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdCh3ZWVrZGF5c05hcnJvdyk7CgoJICAgIGNhc2UgInNob3J0IjoKCSAgICAgIHJldHVybiBbXS5jb25jYXQod2Vla2RheXNTaG9ydCk7CgoJICAgIGNhc2UgImxvbmciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdCh3ZWVrZGF5c0xvbmcpOwoKCSAgICBjYXNlICJudW1lcmljIjoKCSAgICAgIHJldHVybiBbIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciXTsKCgkgICAgZGVmYXVsdDoKCSAgICAgIHJldHVybiBudWxsOwoJICB9Cgl9Cgl2YXIgbWVyaWRpZW1zID0gWyJBTSIsICJQTSJdOwoJdmFyIGVyYXNMb25nID0gWyJCZWZvcmUgQ2hyaXN0IiwgIkFubm8gRG9taW5pIl07Cgl2YXIgZXJhc1Nob3J0ID0gWyJCQyIsICJBRCJdOwoJdmFyIGVyYXNOYXJyb3cgPSBbIkIiLCAiQSJdOwoJZnVuY3Rpb24gZXJhcyhsZW5ndGgpIHsKCSAgc3dpdGNoIChsZW5ndGgpIHsKCSAgICBjYXNlICJuYXJyb3ciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdChlcmFzTmFycm93KTsKCgkgICAgY2FzZSAic2hvcnQiOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdChlcmFzU2hvcnQpOwoKCSAgICBjYXNlICJsb25nIjoKCSAgICAgIHJldHVybiBbXS5jb25jYXQoZXJhc0xvbmcpOwoKCSAgICBkZWZhdWx0OgoJICAgICAgcmV0dXJuIG51bGw7CgkgIH0KCX0KCWZ1bmN0aW9uIG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIHsKCSAgcmV0dXJuIG1lcmlkaWVtc1tkdC5ob3VyIDwgMTIgPyAwIDogMV07Cgl9CglmdW5jdGlvbiB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgewoJICByZXR1cm4gd2Vla2RheXMobGVuZ3RoKVtkdC53ZWVrZGF5IC0gMV07Cgl9CglmdW5jdGlvbiBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHsKCSAgcmV0dXJuIG1vbnRocyhsZW5ndGgpW2R0Lm1vbnRoIC0gMV07Cgl9CglmdW5jdGlvbiBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7CgkgIHJldHVybiBlcmFzKGxlbmd0aClbZHQueWVhciA8IDAgPyAwIDogMV07Cgl9CglmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIG51bWVyaWMsIG5hcnJvdykgewoJICBpZiAobnVtZXJpYyA9PT0gdm9pZCAwKSB7CgkgICAgbnVtZXJpYyA9ICJhbHdheXMiOwoJICB9CgoJICBpZiAobmFycm93ID09PSB2b2lkIDApIHsKCSAgICBuYXJyb3cgPSBmYWxzZTsKCSAgfQoKCSAgdmFyIHVuaXRzID0gewoJICAgIHllYXJzOiBbInllYXIiLCAieXIuIl0sCgkgICAgcXVhcnRlcnM6IFsicXVhcnRlciIsICJxdHIuIl0sCgkgICAgbW9udGhzOiBbIm1vbnRoIiwgIm1vLiJdLAoJICAgIHdlZWtzOiBbIndlZWsiLCAid2suIl0sCgkgICAgZGF5czogWyJkYXkiLCAiZGF5IiwgImRheXMiXSwKCSAgICBob3VyczogWyJob3VyIiwgImhyLiJdLAoJICAgIG1pbnV0ZXM6IFsibWludXRlIiwgIm1pbi4iXSwKCSAgICBzZWNvbmRzOiBbInNlY29uZCIsICJzZWMuIl0KCSAgfTsKCSAgdmFyIGxhc3RhYmxlID0gWyJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiXS5pbmRleE9mKHVuaXQpID09PSAtMTsKCgkgIGlmIChudW1lcmljID09PSAiYXV0byIgJiYgbGFzdGFibGUpIHsKCSAgICB2YXIgaXNEYXkgPSB1bml0ID09PSAiZGF5cyI7CgoJICAgIHN3aXRjaCAoY291bnQpIHsKCSAgICAgIGNhc2UgMToKCSAgICAgICAgcmV0dXJuIGlzRGF5ID8gInRvbW9ycm93IiA6ICJuZXh0ICIgKyB1bml0c1t1bml0XVswXTsKCgkgICAgICBjYXNlIC0xOgoJICAgICAgICByZXR1cm4gaXNEYXkgPyAieWVzdGVyZGF5IiA6ICJsYXN0ICIgKyB1bml0c1t1bml0XVswXTsKCgkgICAgICBjYXNlIDA6CgkgICAgICAgIHJldHVybiBpc0RheSA/ICJ0b2RheSIgOiAidGhpcyAiICsgdW5pdHNbdW5pdF1bMF07CgoJICAgIH0KCSAgfQoKCSAgdmFyIGlzSW5QYXN0ID0gT2JqZWN0LmlzKGNvdW50LCAtMCkgfHwgY291bnQgPCAwLAoJICAgICAgZm10VmFsdWUgPSBNYXRoLmFicyhjb3VudCksCgkgICAgICBzaW5ndWxhciA9IGZtdFZhbHVlID09PSAxLAoJICAgICAgbGlsVW5pdHMgPSB1bml0c1t1bml0XSwKCSAgICAgIGZtdFVuaXQgPSBuYXJyb3cgPyBzaW5ndWxhciA/IGxpbFVuaXRzWzFdIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV0gOiBzaW5ndWxhciA/IHVuaXRzW3VuaXRdWzBdIDogdW5pdDsKCSAgcmV0dXJuIGlzSW5QYXN0ID8gZm10VmFsdWUgKyAiICIgKyBmbXRVbml0ICsgIiBhZ28iIDogImluICIgKyBmbXRWYWx1ZSArICIgIiArIGZtdFVuaXQ7Cgl9CgoJZnVuY3Rpb24gc3RyaW5naWZ5VG9rZW5zKHNwbGl0cywgdG9rZW5Ub1N0cmluZykgewoJICB2YXIgcyA9ICIiOwoKCSAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShzcGxpdHMpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykgewoJICAgIHZhciB0b2tlbiA9IF9zdGVwLnZhbHVlOwoKCSAgICBpZiAodG9rZW4ubGl0ZXJhbCkgewoJICAgICAgcyArPSB0b2tlbi52YWw7CgkgICAgfSBlbHNlIHsKCSAgICAgIHMgKz0gdG9rZW5Ub1N0cmluZyh0b2tlbi52YWwpOwoJICAgIH0KCSAgfQoKCSAgcmV0dXJuIHM7Cgl9CgoJdmFyIF9tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0gewoJICBEOiBEQVRFX1NIT1JULAoJICBERDogREFURV9NRUQsCgkgIERERDogREFURV9GVUxMLAoJICBEREREOiBEQVRFX0hVR0UsCgkgIHQ6IFRJTUVfU0lNUExFLAoJICB0dDogVElNRV9XSVRIX1NFQ09ORFMsCgkgIHR0dDogVElNRV9XSVRIX1NIT1JUX09GRlNFVCwKCSAgdHR0dDogVElNRV9XSVRIX0xPTkdfT0ZGU0VULAoJICBUOiBUSU1FXzI0X1NJTVBMRSwKCSAgVFQ6IFRJTUVfMjRfV0lUSF9TRUNPTkRTLAoJICBUVFQ6IFRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQsCgkgIFRUVFQ6IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCwKCSAgZjogREFURVRJTUVfU0hPUlQsCgkgIGZmOiBEQVRFVElNRV9NRUQsCgkgIGZmZjogREFURVRJTUVfRlVMTCwKCSAgZmZmZjogREFURVRJTUVfSFVHRSwKCSAgRjogREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTLAoJICBGRjogREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUywKCSAgRkZGOiBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUywKCSAgRkZGRjogREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMKCX07CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgl2YXIgRm9ybWF0dGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKCSAgRm9ybWF0dGVyLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShsb2NhbGUsIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpOwoJICB9OwoKCSAgRm9ybWF0dGVyLnBhcnNlRm9ybWF0ID0gZnVuY3Rpb24gcGFyc2VGb3JtYXQoZm10KSB7CgkgICAgdmFyIGN1cnJlbnQgPSBudWxsLAoJICAgICAgICBjdXJyZW50RnVsbCA9ICIiLAoJICAgICAgICBicmFja2V0ZWQgPSBmYWxzZTsKCSAgICB2YXIgc3BsaXRzID0gW107CgoJICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm10Lmxlbmd0aDsgaSsrKSB7CgkgICAgICB2YXIgYyA9IGZtdC5jaGFyQXQoaSk7CgoJICAgICAgaWYgKGMgPT09ICInIikgewoJICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkgewoJICAgICAgICAgIHNwbGl0cy5wdXNoKHsKCSAgICAgICAgICAgIGxpdGVyYWw6IGJyYWNrZXRlZCwKCSAgICAgICAgICAgIHZhbDogY3VycmVudEZ1bGwKCSAgICAgICAgICB9KTsKCSAgICAgICAgfQoKCSAgICAgICAgY3VycmVudCA9IG51bGw7CgkgICAgICAgIGN1cnJlbnRGdWxsID0gIiI7CgkgICAgICAgIGJyYWNrZXRlZCA9ICFicmFja2V0ZWQ7CgkgICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkgewoJICAgICAgICBjdXJyZW50RnVsbCArPSBjOwoJICAgICAgfSBlbHNlIGlmIChjID09PSBjdXJyZW50KSB7CgkgICAgICAgIGN1cnJlbnRGdWxsICs9IGM7CgkgICAgICB9IGVsc2UgewoJICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkgewoJICAgICAgICAgIHNwbGl0cy5wdXNoKHsKCSAgICAgICAgICAgIGxpdGVyYWw6IGZhbHNlLAoJICAgICAgICAgICAgdmFsOiBjdXJyZW50RnVsbAoJICAgICAgICAgIH0pOwoJICAgICAgICB9CgoJICAgICAgICBjdXJyZW50RnVsbCA9IGM7CgkgICAgICAgIGN1cnJlbnQgPSBjOwoJICAgICAgfQoJICAgIH0KCgkgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHsKCSAgICAgIHNwbGl0cy5wdXNoKHsKCSAgICAgICAgbGl0ZXJhbDogYnJhY2tldGVkLAoJICAgICAgICB2YWw6IGN1cnJlbnRGdWxsCgkgICAgICB9KTsKCSAgICB9CgoJICAgIHJldHVybiBzcGxpdHM7CgkgIH07CgoJICBGb3JtYXR0ZXIubWFjcm9Ub2tlblRvRm9ybWF0T3B0cyA9IGZ1bmN0aW9uIG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pIHsKCSAgICByZXR1cm4gX21hY3JvVG9rZW5Ub0Zvcm1hdE9wdHNbdG9rZW5dOwoJICB9OwoKCSAgZnVuY3Rpb24gRm9ybWF0dGVyKGxvY2FsZSwgZm9ybWF0T3B0cykgewoJICAgIHRoaXMub3B0cyA9IGZvcm1hdE9wdHM7CgkgICAgdGhpcy5sb2MgPSBsb2NhbGU7CgkgICAgdGhpcy5zeXN0ZW1Mb2MgPSBudWxsOwoJICB9CgoJICB2YXIgX3Byb3RvID0gRm9ybWF0dGVyLnByb3RvdHlwZTsKCgkgIF9wcm90by5mb3JtYXRXaXRoU3lzdGVtRGVmYXVsdCA9IGZ1bmN0aW9uIGZvcm1hdFdpdGhTeXN0ZW1EZWZhdWx0KGR0LCBvcHRzKSB7CgkgICAgaWYgKHRoaXMuc3lzdGVtTG9jID09PSBudWxsKSB7CgkgICAgICB0aGlzLnN5c3RlbUxvYyA9IHRoaXMubG9jLnJlZGVmYXVsdFRvU3lzdGVtKCk7CgkgICAgfQoKCSAgICB2YXIgZGYgPSB0aGlzLnN5c3RlbUxvYy5kdEZvcm1hdHRlcihkdCwgX2V4dGVuZHMoe30sIHRoaXMub3B0cywgb3B0cykpOwoJICAgIHJldHVybiBkZi5mb3JtYXQoKTsKCSAgfTsKCgkgIF9wcm90by5mb3JtYXREYXRlVGltZSA9IGZ1bmN0aW9uIGZvcm1hdERhdGVUaW1lKGR0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIF9leHRlbmRzKHt9LCB0aGlzLm9wdHMsIG9wdHMpKTsKCSAgICByZXR1cm4gZGYuZm9ybWF0KCk7CgkgIH07CgoJICBfcHJvdG8uZm9ybWF0RGF0ZVRpbWVQYXJ0cyA9IGZ1bmN0aW9uIGZvcm1hdERhdGVUaW1lUGFydHMoZHQsIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICB2YXIgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgX2V4dGVuZHMoe30sIHRoaXMub3B0cywgb3B0cykpOwoJICAgIHJldHVybiBkZi5mb3JtYXRUb1BhcnRzKCk7CgkgIH07CgoJICBfcHJvdG8ucmVzb2x2ZWRPcHRpb25zID0gZnVuY3Rpb24gcmVzb2x2ZWRPcHRpb25zKGR0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIF9leHRlbmRzKHt9LCB0aGlzLm9wdHMsIG9wdHMpKTsKCSAgICByZXR1cm4gZGYucmVzb2x2ZWRPcHRpb25zKCk7CgkgIH07CgoJICBfcHJvdG8ubnVtID0gZnVuY3Rpb24gbnVtKG4sIHApIHsKCSAgICBpZiAocCA9PT0gdm9pZCAwKSB7CgkgICAgICBwID0gMDsKCSAgICB9CgoJICAgIC8vIHdlIGdldCBzb21lIHBlcmYgb3V0IG9mIGRvaW5nIHRoaXMgaGVyZSwgYW5ub3lpbmdseQoJICAgIGlmICh0aGlzLm9wdHMuZm9yY2VTaW1wbGUpIHsKCSAgICAgIHJldHVybiBwYWRTdGFydChuLCBwKTsKCSAgICB9CgoJICAgIHZhciBvcHRzID0gX2V4dGVuZHMoe30sIHRoaXMub3B0cyk7CgoJICAgIGlmIChwID4gMCkgewoJICAgICAgb3B0cy5wYWRUbyA9IHA7CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5sb2MubnVtYmVyRm9ybWF0dGVyKG9wdHMpLmZvcm1hdChuKTsKCSAgfTsKCgkgIF9wcm90by5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcgPSBmdW5jdGlvbiBmb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZtdCkgewoJICAgIHZhciBfdGhpcyA9IHRoaXM7CgoJICAgIHZhciBrbm93bkVuZ2xpc2ggPSB0aGlzLmxvYy5saXN0aW5nTW9kZSgpID09PSAiZW4iLAoJICAgICAgICB1c2VEYXRlVGltZUZvcm1hdHRlciA9IHRoaXMubG9jLm91dHB1dENhbGVuZGFyICYmIHRoaXMubG9jLm91dHB1dENhbGVuZGFyICE9PSAiZ3JlZ29yeSIsCgkgICAgICAgIHN0cmluZyA9IGZ1bmN0aW9uIHN0cmluZyhvcHRzLCBleHRyYWN0KSB7CgkgICAgICByZXR1cm4gX3RoaXMubG9jLmV4dHJhY3QoZHQsIG9wdHMsIGV4dHJhY3QpOwoJICAgIH0sCgkgICAgICAgIGZvcm1hdE9mZnNldCA9IGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvcHRzKSB7CgkgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHsKCSAgICAgICAgcmV0dXJuICJaIjsKCSAgICAgIH0KCgkgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiAiIjsKCSAgICB9LAoJICAgICAgICBtZXJpZGllbSA9IGZ1bmN0aW9uIG1lcmlkaWVtKCkgewoJICAgICAgcmV0dXJuIGtub3duRW5nbGlzaCA/IG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIDogc3RyaW5nKHsKCSAgICAgICAgaG91cjogIm51bWVyaWMiLAoJICAgICAgICBob3VyQ3ljbGU6ICJoMTIiCgkgICAgICB9LCAiZGF5cGVyaW9kIik7CgkgICAgfSwKCSAgICAgICAgbW9udGggPSBmdW5jdGlvbiBtb250aChsZW5ndGgsIHN0YW5kYWxvbmUpIHsKCSAgICAgIHJldHVybiBrbm93bkVuZ2xpc2ggPyBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7CgkgICAgICAgIG1vbnRoOiBsZW5ndGgKCSAgICAgIH0gOiB7CgkgICAgICAgIG1vbnRoOiBsZW5ndGgsCgkgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICB9LCAibW9udGgiKTsKCSAgICB9LAoJICAgICAgICB3ZWVrZGF5ID0gZnVuY3Rpb24gd2Vla2RheShsZW5ndGgsIHN0YW5kYWxvbmUpIHsKCSAgICAgIHJldHVybiBrbm93bkVuZ2xpc2ggPyB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgOiBzdHJpbmcoc3RhbmRhbG9uZSA/IHsKCSAgICAgICAgd2Vla2RheTogbGVuZ3RoCgkgICAgICB9IDogewoJICAgICAgICB3ZWVrZGF5OiBsZW5ndGgsCgkgICAgICAgIG1vbnRoOiAibG9uZyIsCgkgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICB9LCAid2Vla2RheSIpOwoJICAgIH0sCgkgICAgICAgIG1heWJlTWFjcm8gPSBmdW5jdGlvbiBtYXliZU1hY3JvKHRva2VuKSB7CgkgICAgICB2YXIgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKTsKCgkgICAgICBpZiAoZm9ybWF0T3B0cykgewoJICAgICAgICByZXR1cm4gX3RoaXMuZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIGZvcm1hdE9wdHMpOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIHRva2VuOwoJICAgICAgfQoJICAgIH0sCgkgICAgICAgIGVyYSA9IGZ1bmN0aW9uIGVyYShsZW5ndGgpIHsKCSAgICAgIHJldHVybiBrbm93bkVuZ2xpc2ggPyBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSA6IHN0cmluZyh7CgkgICAgICAgIGVyYTogbGVuZ3RoCgkgICAgICB9LCAiZXJhIik7CgkgICAgfSwKCSAgICAgICAgdG9rZW5Ub1N0cmluZyA9IGZ1bmN0aW9uIHRva2VuVG9TdHJpbmcodG9rZW4pIHsKCSAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwOi8vY2xkci51bmljb2RlLm9yZy90cmFuc2xhdGlvbi9kYXRlLXRpbWUtMS9kYXRlLXRpbWUjVE9DLVN0YW5kYWxvbmUtdnMuLUZvcm1hdC1TdHlsZXMKCSAgICAgIHN3aXRjaCAodG9rZW4pIHsKCSAgICAgICAgLy8gbXMKCSAgICAgICAgY2FzZSAiUyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5taWxsaXNlY29uZCk7CgoJICAgICAgICBjYXNlICJ1IjogLy8gZmFsbHMgdGhyb3VnaAoKCSAgICAgICAgY2FzZSAiU1NTIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTsKCSAgICAgICAgLy8gc2Vjb25kcwoKCSAgICAgICAgY2FzZSAicyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5zZWNvbmQpOwoKCSAgICAgICAgY2FzZSAic3MiOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQuc2Vjb25kLCAyKTsKCSAgICAgICAgLy8gZnJhY3Rpb25hbCBzZWNvbmRzCgoJICAgICAgICBjYXNlICJ1dSI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTApLCAyKTsKCgkgICAgICAgIGNhc2UgInV1dSI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTAwKSk7CgkgICAgICAgIC8vIG1pbnV0ZXMKCgkgICAgICAgIGNhc2UgIm0iOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQubWludXRlKTsKCgkgICAgICAgIGNhc2UgIm1tIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0Lm1pbnV0ZSwgMik7CgkgICAgICAgIC8vIGhvdXJzCgoJICAgICAgICBjYXNlICJoIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyKTsKCgkgICAgICAgIGNhc2UgImhoIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyLCAyKTsKCgkgICAgICAgIGNhc2UgIkgiOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQuaG91cik7CgoJICAgICAgICBjYXNlICJISCI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5ob3VyLCAyKTsKCSAgICAgICAgLy8gb2Zmc2V0CgoJICAgICAgICBjYXNlICJaIjoKCSAgICAgICAgICAvLyBsaWtlICs2CgkgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7CgkgICAgICAgICAgICBmb3JtYXQ6ICJuYXJyb3ciLAoJICAgICAgICAgICAgYWxsb3daOiBfdGhpcy5vcHRzLmFsbG93WgoJICAgICAgICAgIH0pOwoKCSAgICAgICAgY2FzZSAiWloiOgoJICAgICAgICAgIC8vIGxpa2UgKzA2OjAwCgkgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7CgkgICAgICAgICAgICBmb3JtYXQ6ICJzaG9ydCIsCgkgICAgICAgICAgICBhbGxvd1o6IF90aGlzLm9wdHMuYWxsb3daCgkgICAgICAgICAgfSk7CgoJICAgICAgICBjYXNlICJaWloiOgoJICAgICAgICAgIC8vIGxpa2UgKzA2MDAKCSAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsKCSAgICAgICAgICAgIGZvcm1hdDogInRlY2hpZSIsCgkgICAgICAgICAgICBhbGxvd1o6IF90aGlzLm9wdHMuYWxsb3daCgkgICAgICAgICAgfSk7CgoJICAgICAgICBjYXNlICJaWlpaIjoKCSAgICAgICAgICAvLyBsaWtlIEVTVAoJICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsKCSAgICAgICAgICAgIGZvcm1hdDogInNob3J0IiwKCSAgICAgICAgICAgIGxvY2FsZTogX3RoaXMubG9jLmxvY2FsZQoJICAgICAgICAgIH0pOwoKCSAgICAgICAgY2FzZSAiWlpaWloiOgoJICAgICAgICAgIC8vIGxpa2UgRWFzdGVybiBTdGFuZGFyZCBUaW1lCgkgICAgICAgICAgcmV0dXJuIGR0LnpvbmUub2Zmc2V0TmFtZShkdC50cywgewoJICAgICAgICAgICAgZm9ybWF0OiAibG9uZyIsCgkgICAgICAgICAgICBsb2NhbGU6IF90aGlzLmxvYy5sb2NhbGUKCSAgICAgICAgICB9KTsKCSAgICAgICAgLy8gem9uZQoKCSAgICAgICAgY2FzZSAieiI6CgkgICAgICAgICAgLy8gbGlrZSBBbWVyaWNhL05ld19Zb3JrCgkgICAgICAgICAgcmV0dXJuIGR0LnpvbmVOYW1lOwoJICAgICAgICAvLyBtZXJpZGllbXMKCgkgICAgICAgIGNhc2UgImEiOgoJICAgICAgICAgIHJldHVybiBtZXJpZGllbSgpOwoJICAgICAgICAvLyBkYXRlcwoKCSAgICAgICAgY2FzZSAiZCI6CgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICAgICAgfSwgImRheSIpIDogX3RoaXMubnVtKGR0LmRheSk7CgoJICAgICAgICBjYXNlICJkZCI6CgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIGRheTogIjItZGlnaXQiCgkgICAgICAgICAgfSwgImRheSIpIDogX3RoaXMubnVtKGR0LmRheSwgMik7CgkgICAgICAgIC8vIHdlZWtkYXlzIC0gc3RhbmRhbG9uZQoKCSAgICAgICAgY2FzZSAiYyI6CgkgICAgICAgICAgLy8gbGlrZSAxCgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC53ZWVrZGF5KTsKCgkgICAgICAgIGNhc2UgImNjYyI6CgkgICAgICAgICAgLy8gbGlrZSAnVHVlcycKCSAgICAgICAgICByZXR1cm4gd2Vla2RheSgic2hvcnQiLCB0cnVlKTsKCgkgICAgICAgIGNhc2UgImNjY2MiOgoJICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknCgkgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoImxvbmciLCB0cnVlKTsKCgkgICAgICAgIGNhc2UgImNjY2NjIjoKCSAgICAgICAgICAvLyBsaWtlICdUJwoJICAgICAgICAgIHJldHVybiB3ZWVrZGF5KCJuYXJyb3ciLCB0cnVlKTsKCSAgICAgICAgLy8gd2Vla2RheXMgLSBmb3JtYXQKCgkgICAgICAgIGNhc2UgIkUiOgoJICAgICAgICAgIC8vIGxpa2UgMQoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQud2Vla2RheSk7CgoJICAgICAgICBjYXNlICJFRUUiOgoJICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnCgkgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoInNob3J0IiwgZmFsc2UpOwoKCSAgICAgICAgY2FzZSAiRUVFRSI6CgkgICAgICAgICAgLy8gbGlrZSAnVHVlc2RheScKCSAgICAgICAgICByZXR1cm4gd2Vla2RheSgibG9uZyIsIGZhbHNlKTsKCgkgICAgICAgIGNhc2UgIkVFRUVFIjoKCSAgICAgICAgICAvLyBsaWtlICdUJwoJICAgICAgICAgIHJldHVybiB3ZWVrZGF5KCJuYXJyb3ciLCBmYWxzZSk7CgkgICAgICAgIC8vIG1vbnRocyAtIHN0YW5kYWxvbmUKCgkgICAgICAgIGNhc2UgIkwiOgoJICAgICAgICAgIC8vIGxpa2UgMQoJICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7CgkgICAgICAgICAgICBtb250aDogIm51bWVyaWMiLAoJICAgICAgICAgICAgZGF5OiAibnVtZXJpYyIKCSAgICAgICAgICB9LCAibW9udGgiKSA6IF90aGlzLm51bShkdC5tb250aCk7CgoJICAgICAgICBjYXNlICJMTCI6CgkgICAgICAgICAgLy8gbGlrZSAwMSwgZG9lc24ndCBzZWVtIHRvIHdvcmsKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgbW9udGg6ICIyLWRpZ2l0IiwKCSAgICAgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICAgICAgfSwgIm1vbnRoIikgOiBfdGhpcy5udW0oZHQubW9udGgsIDIpOwoKCSAgICAgICAgY2FzZSAiTExMIjoKCSAgICAgICAgICAvLyBsaWtlIEphbgoJICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCB0cnVlKTsKCgkgICAgICAgIGNhc2UgIkxMTEwiOgoJICAgICAgICAgIC8vIGxpa2UgSmFudWFyeQoJICAgICAgICAgIHJldHVybiBtb250aCgibG9uZyIsIHRydWUpOwoKCSAgICAgICAgY2FzZSAiTExMTEwiOgoJICAgICAgICAgIC8vIGxpa2UgSgoJICAgICAgICAgIHJldHVybiBtb250aCgibmFycm93IiwgdHJ1ZSk7CgkgICAgICAgIC8vIG1vbnRocyAtIGZvcm1hdAoKCSAgICAgICAgY2FzZSAiTSI6CgkgICAgICAgICAgLy8gbGlrZSAxCgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIG1vbnRoOiAibnVtZXJpYyIKCSAgICAgICAgICB9LCAibW9udGgiKSA6IF90aGlzLm51bShkdC5tb250aCk7CgoJICAgICAgICBjYXNlICJNTSI6CgkgICAgICAgICAgLy8gbGlrZSAwMQoJICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7CgkgICAgICAgICAgICBtb250aDogIjItZGlnaXQiCgkgICAgICAgICAgfSwgIm1vbnRoIikgOiBfdGhpcy5udW0oZHQubW9udGgsIDIpOwoKCSAgICAgICAgY2FzZSAiTU1NIjoKCSAgICAgICAgICAvLyBsaWtlIEphbgoJICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCBmYWxzZSk7CgoJICAgICAgICBjYXNlICJNTU1NIjoKCSAgICAgICAgICAvLyBsaWtlIEphbnVhcnkKCSAgICAgICAgICByZXR1cm4gbW9udGgoImxvbmciLCBmYWxzZSk7CgoJICAgICAgICBjYXNlICJNTU1NTSI6CgkgICAgICAgICAgLy8gbGlrZSBKCgkgICAgICAgICAgcmV0dXJuIG1vbnRoKCJuYXJyb3ciLCBmYWxzZSk7CgkgICAgICAgIC8vIHllYXJzCgoJICAgICAgICBjYXNlICJ5IjoKCSAgICAgICAgICAvLyBsaWtlIDIwMTQKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgeWVhcjogIm51bWVyaWMiCgkgICAgICAgICAgfSwgInllYXIiKSA6IF90aGlzLm51bShkdC55ZWFyKTsKCgkgICAgICAgIGNhc2UgInl5IjoKCSAgICAgICAgICAvLyBsaWtlIDE0CgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIHllYXI6ICIyLWRpZ2l0IgoJICAgICAgICAgIH0sICJ5ZWFyIikgOiBfdGhpcy5udW0oZHQueWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwgMik7CgoJICAgICAgICBjYXNlICJ5eXl5IjoKCSAgICAgICAgICAvLyBsaWtlIDAwMTIKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgeWVhcjogIm51bWVyaWMiCgkgICAgICAgICAgfSwgInllYXIiKSA6IF90aGlzLm51bShkdC55ZWFyLCA0KTsKCgkgICAgICAgIGNhc2UgInl5eXl5eSI6CgkgICAgICAgICAgLy8gbGlrZSAwMDAwMTIKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgeWVhcjogIm51bWVyaWMiCgkgICAgICAgICAgfSwgInllYXIiKSA6IF90aGlzLm51bShkdC55ZWFyLCA2KTsKCSAgICAgICAgLy8gZXJhcwoKCSAgICAgICAgY2FzZSAiRyI6CgkgICAgICAgICAgLy8gbGlrZSBBRAoJICAgICAgICAgIHJldHVybiBlcmEoInNob3J0Iik7CgoJICAgICAgICBjYXNlICJHRyI6CgkgICAgICAgICAgLy8gbGlrZSBBbm5vIERvbWluaQoJICAgICAgICAgIHJldHVybiBlcmEoImxvbmciKTsKCgkgICAgICAgIGNhc2UgIkdHR0dHIjoKCSAgICAgICAgICByZXR1cm4gZXJhKCJuYXJyb3ciKTsKCgkgICAgICAgIGNhc2UgImtrIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LndlZWtZZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTsKCgkgICAgICAgIGNhc2UgImtra2siOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQud2Vla1llYXIsIDQpOwoKCSAgICAgICAgY2FzZSAiVyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC53ZWVrTnVtYmVyKTsKCgkgICAgICAgIGNhc2UgIldXIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LndlZWtOdW1iZXIsIDIpOwoKCSAgICAgICAgY2FzZSAibyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5vcmRpbmFsKTsKCgkgICAgICAgIGNhc2UgIm9vbyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5vcmRpbmFsLCAzKTsKCgkgICAgICAgIGNhc2UgInEiOgoJICAgICAgICAgIC8vIGxpa2UgMQoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQucXVhcnRlcik7CgoJICAgICAgICBjYXNlICJxcSI6CgkgICAgICAgICAgLy8gbGlrZSAwMQoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQucXVhcnRlciwgMik7CgoJICAgICAgICBjYXNlICJYIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKE1hdGguZmxvb3IoZHQudHMgLyAxMDAwKSk7CgoJICAgICAgICBjYXNlICJ4IjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LnRzKTsKCgkgICAgICAgIGRlZmF1bHQ6CgkgICAgICAgICAgcmV0dXJuIG1heWJlTWFjcm8odG9rZW4pOwoJICAgICAgfQoJICAgIH07CgoJICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksIHRva2VuVG9TdHJpbmcpOwoJICB9OwoKCSAgX3Byb3RvLmZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyA9IGZ1bmN0aW9uIGZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhkdXIsIGZtdCkgewoJICAgIHZhciBfdGhpczIgPSB0aGlzOwoKCSAgICB2YXIgdG9rZW5Ub0ZpZWxkID0gZnVuY3Rpb24gdG9rZW5Ub0ZpZWxkKHRva2VuKSB7CgkgICAgICBzd2l0Y2ggKHRva2VuWzBdKSB7CgkgICAgICAgIGNhc2UgIlMiOgoJICAgICAgICAgIHJldHVybiAibWlsbGlzZWNvbmQiOwoKCSAgICAgICAgY2FzZSAicyI6CgkgICAgICAgICAgcmV0dXJuICJzZWNvbmQiOwoKCSAgICAgICAgY2FzZSAibSI6CgkgICAgICAgICAgcmV0dXJuICJtaW51dGUiOwoKCSAgICAgICAgY2FzZSAiaCI6CgkgICAgICAgICAgcmV0dXJuICJob3VyIjsKCgkgICAgICAgIGNhc2UgImQiOgoJICAgICAgICAgIHJldHVybiAiZGF5IjsKCgkgICAgICAgIGNhc2UgInciOgoJICAgICAgICAgIHJldHVybiAid2VlayI7CgoJICAgICAgICBjYXNlICJNIjoKCSAgICAgICAgICByZXR1cm4gIm1vbnRoIjsKCgkgICAgICAgIGNhc2UgInkiOgoJICAgICAgICAgIHJldHVybiAieWVhciI7CgoJICAgICAgICBkZWZhdWx0OgoJICAgICAgICAgIHJldHVybiBudWxsOwoJICAgICAgfQoJICAgIH0sCgkgICAgICAgIHRva2VuVG9TdHJpbmcgPSBmdW5jdGlvbiB0b2tlblRvU3RyaW5nKGxpbGR1cikgewoJICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0b2tlbikgewoJICAgICAgICB2YXIgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTsKCgkgICAgICAgIGlmIChtYXBwZWQpIHsKCSAgICAgICAgICByZXR1cm4gX3RoaXMyLm51bShsaWxkdXIuZ2V0KG1hcHBlZCksIHRva2VuLmxlbmd0aCk7CgkgICAgICAgIH0gZWxzZSB7CgkgICAgICAgICAgcmV0dXJuIHRva2VuOwoJICAgICAgICB9CgkgICAgICB9OwoJICAgIH0sCgkgICAgICAgIHRva2VucyA9IEZvcm1hdHRlci5wYXJzZUZvcm1hdChmbXQpLAoJICAgICAgICByZWFsVG9rZW5zID0gdG9rZW5zLnJlZHVjZShmdW5jdGlvbiAoZm91bmQsIF9yZWYpIHsKCSAgICAgIHZhciBsaXRlcmFsID0gX3JlZi5saXRlcmFsLAoJICAgICAgICAgIHZhbCA9IF9yZWYudmFsOwoJICAgICAgcmV0dXJuIGxpdGVyYWwgPyBmb3VuZCA6IGZvdW5kLmNvbmNhdCh2YWwpOwoJICAgIH0sIFtdKSwKCSAgICAgICAgY29sbGFwc2VkID0gZHVyLnNoaWZ0VG8uYXBwbHkoZHVyLCByZWFsVG9rZW5zLm1hcCh0b2tlblRvRmllbGQpLmZpbHRlcihmdW5jdGlvbiAodCkgewoJICAgICAgcmV0dXJuIHQ7CgkgICAgfSkpOwoKCSAgICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKHRva2VucywgdG9rZW5Ub1N0cmluZyhjb2xsYXBzZWQpKTsKCSAgfTsKCgkgIHJldHVybiBGb3JtYXR0ZXI7Cgl9KCk7CgoJdmFyIEludmFsaWQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pIHsKCSAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKCSAgICB0aGlzLmV4cGxhbmF0aW9uID0gZXhwbGFuYXRpb247CgkgIH0KCgkgIHZhciBfcHJvdG8gPSBJbnZhbGlkLnByb3RvdHlwZTsKCgkgIF9wcm90by50b01lc3NhZ2UgPSBmdW5jdGlvbiB0b01lc3NhZ2UoKSB7CgkgICAgaWYgKHRoaXMuZXhwbGFuYXRpb24pIHsKCSAgICAgIHJldHVybiB0aGlzLnJlYXNvbiArICI6ICIgKyB0aGlzLmV4cGxhbmF0aW9uOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gdGhpcy5yZWFzb247CgkgICAgfQoJICB9OwoKCSAgcmV0dXJuIEludmFsaWQ7Cgl9KCk7CgoJLyoqCgkgKiBAaW50ZXJmYWNlCgkgKi8KCgl2YXIgWm9uZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CgkgIGZ1bmN0aW9uIFpvbmUoKSB7fQoKCSAgdmFyIF9wcm90byA9IFpvbmUucHJvdG90eXBlOwoKCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIG9mZnNldCdzIGNvbW1vbiBuYW1lIChzdWNoIGFzIEVTVCkgYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAKCSAgICogQGFic3RyYWN0CgkgICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyB0byBhZmZlY3QgdGhlIGZvcm1hdAoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5mb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uIEFjY2VwdHMgJ2xvbmcnIG9yICdzaG9ydCcuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmxvY2FsZSAtIFdoYXQgbG9jYWxlIHRvIHJldHVybiB0aGUgb2Zmc2V0IG5hbWUgaW4uCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIF9wcm90by5vZmZzZXROYW1lID0gZnVuY3Rpb24gb2Zmc2V0TmFtZSh0cywgb3B0cykgewoJICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIG9mZnNldCdzIHZhbHVlIGFzIGEgc3RyaW5nCgkgICAqIEBhYnN0cmFjdAoJICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgb2Zmc2V0CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uCgkgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRzICduYXJyb3cnLCAnc2hvcnQnLCBvciAndGVjaGllJy4gUmV0dXJuaW5nICcrNicsICcrMDY6MDAnLCBvciAnKzA2MDAnIHJlc3BlY3RpdmVseQoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZm9ybWF0T2Zmc2V0ID0gZnVuY3Rpb24gZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHsKCSAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIG9mZnNldCBpbiBtaW51dGVzIGZvciB0aGlzIHpvbmUgYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAuCgkgICAqIEBhYnN0cmFjdAoJICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGNvbXB1dGUgdGhlIG9mZnNldAoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8ub2Zmc2V0ID0gZnVuY3Rpb24gb2Zmc2V0KHRzKSB7CgkgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZQoJICAgKiBAYWJzdHJhY3QKCSAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzKG90aGVyWm9uZSkgewoJICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgWm9uZSBpcyB2YWxpZC4KCSAgICogQGFic3RyYWN0CgkgICAqIEB0eXBlIHtib29sZWFufQoJICAgKi8KCSAgOwoKCSAgX2NyZWF0ZUNsYXNzKFpvbmUsIFt7CgkgICAga2V5OiAidHlwZSIsCgkgICAgZ2V0OgoJICAgIC8qKgoJICAgICAqIFRoZSB0eXBlIG9mIHpvbmUKCSAgICAgKiBAYWJzdHJhY3QKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoJICAgIGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFRoZSBuYW1lIG9mIHRoaXMgem9uZS4KCSAgICAgKiBAYWJzdHJhY3QKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIm5hbWUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpYW5hTmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5uYW1lOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIG9mZnNldCBpcyBrbm93biB0byBiZSBmaXhlZCBmb3IgdGhlIHdob2xlIHllYXIuCgkgICAgICogQGFic3RyYWN0CgkgICAgICogQHR5cGUge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNVbml2ZXJzYWwiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1ZhbGlkIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gWm9uZTsKCX0oKTsKCgl2YXIgc2luZ2xldG9uJDEgPSBudWxsOwoJLyoqCgkgKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuCgkgKiBAaW1wbGVtZW50cyB7Wm9uZX0KCSAqLwoKCXZhciBTeXN0ZW1ab25lID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfWm9uZSkgewoJICBfaW5oZXJpdHNMb29zZShTeXN0ZW1ab25lLCBfWm9uZSk7CgoJICBmdW5jdGlvbiBTeXN0ZW1ab25lKCkgewoJICAgIHJldHVybiBfWm9uZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CgkgIH0KCgkgIHZhciBfcHJvdG8gPSBTeXN0ZW1ab25lLnByb3RvdHlwZTsKCgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIF9wcm90by5vZmZzZXROYW1lID0gZnVuY3Rpb24gb2Zmc2V0TmFtZSh0cywgX3JlZikgewoJICAgIHZhciBmb3JtYXQgPSBfcmVmLmZvcm1hdCwKCSAgICAgICAgbG9jYWxlID0gX3JlZi5sb2NhbGU7CgkgICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlKTsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfcHJvdG8uZm9ybWF0T2Zmc2V0ID0gZnVuY3Rpb24gZm9ybWF0T2Zmc2V0JDEodHMsIGZvcm1hdCkgewoJICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5vZmZzZXQgPSBmdW5jdGlvbiBvZmZzZXQodHMpIHsKCSAgICByZXR1cm4gLW5ldyBEYXRlKHRzKS5nZXRUaW1lem9uZU9mZnNldCgpOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXJab25lKSB7CgkgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAic3lzdGVtIjsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfY3JlYXRlQ2xhc3MoU3lzdGVtWm9uZSwgW3sKCSAgICBrZXk6ICJ0eXBlIiwKCSAgICBnZXQ6CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCSAgICBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gInN5c3RlbSI7CgkgICAgfQoJICAgIC8qKiBAb3ZlcnJpZGUgKiovCgoJICB9LCB7CgkgICAga2V5OiAibmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpc1VuaXZlcnNhbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfQoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdHJ1ZTsKCSAgICB9CgkgIH1dLCBbewoJICAgIGtleTogImluc3RhbmNlIiwKCSAgICBnZXQ6CgkgICAgLyoqCgkgICAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lCgkgICAgICogQHJldHVybiB7U3lzdGVtWm9uZX0KCSAgICAgKi8KCSAgICBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICBpZiAoc2luZ2xldG9uJDEgPT09IG51bGwpIHsKCSAgICAgICAgc2luZ2xldG9uJDEgPSBuZXcgU3lzdGVtWm9uZSgpOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBzaW5nbGV0b24kMTsKCSAgICB9CgkgIH1dKTsKCgkgIHJldHVybiBTeXN0ZW1ab25lOwoJfShab25lKTsKCgl2YXIgZHRmQ2FjaGUgPSB7fTsKCglmdW5jdGlvbiBtYWtlRFRGKHpvbmUpIHsKCSAgaWYgKCFkdGZDYWNoZVt6b25lXSkgewoJICAgIGR0ZkNhY2hlW3pvbmVdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIiwgewoJICAgICAgaG91cjEyOiBmYWxzZSwKCSAgICAgIHRpbWVab25lOiB6b25lLAoJICAgICAgeWVhcjogIm51bWVyaWMiLAoJICAgICAgbW9udGg6ICIyLWRpZ2l0IiwKCSAgICAgIGRheTogIjItZGlnaXQiLAoJICAgICAgaG91cjogIjItZGlnaXQiLAoJICAgICAgbWludXRlOiAiMi1kaWdpdCIsCgkgICAgICBzZWNvbmQ6ICIyLWRpZ2l0IiwKCSAgICAgIGVyYTogInNob3J0IgoJICAgIH0pOwoJICB9CgoJICByZXR1cm4gZHRmQ2FjaGVbem9uZV07Cgl9CgoJdmFyIHR5cGVUb1BvcyA9IHsKCSAgeWVhcjogMCwKCSAgbW9udGg6IDEsCgkgIGRheTogMiwKCSAgZXJhOiAzLAoJICBob3VyOiA0LAoJICBtaW51dGU6IDUsCgkgIHNlY29uZDogNgoJfTsKCglmdW5jdGlvbiBoYWNreU9mZnNldChkdGYsIGRhdGUpIHsKCSAgdmFyIGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXQoZGF0ZSkucmVwbGFjZSgvXHUyMDBFL2csICIiKSwKCSAgICAgIHBhcnNlZCA9IC8oXGQrKVwvKFxkKylcLyhcZCspIChBRHxCQyksPyAoXGQrKTooXGQrKTooXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLAoJICAgICAgZk1vbnRoID0gcGFyc2VkWzFdLAoJICAgICAgZkRheSA9IHBhcnNlZFsyXSwKCSAgICAgIGZZZWFyID0gcGFyc2VkWzNdLAoJICAgICAgZmFkT3JCYyA9IHBhcnNlZFs0XSwKCSAgICAgIGZIb3VyID0gcGFyc2VkWzVdLAoJICAgICAgZk1pbnV0ZSA9IHBhcnNlZFs2XSwKCSAgICAgIGZTZWNvbmQgPSBwYXJzZWRbN107CgkgIHJldHVybiBbZlllYXIsIGZNb250aCwgZkRheSwgZmFkT3JCYywgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdOwoJfQoKCWZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkgewoJICB2YXIgZm9ybWF0dGVkID0gZHRmLmZvcm1hdFRvUGFydHMoZGF0ZSk7CgkgIHZhciBmaWxsZWQgPSBbXTsKCgkgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7CgkgICAgdmFyIF9mb3JtYXR0ZWQkaSA9IGZvcm1hdHRlZFtpXSwKCSAgICAgICAgdHlwZSA9IF9mb3JtYXR0ZWQkaS50eXBlLAoJICAgICAgICB2YWx1ZSA9IF9mb3JtYXR0ZWQkaS52YWx1ZTsKCSAgICB2YXIgcG9zID0gdHlwZVRvUG9zW3R5cGVdOwoKCSAgICBpZiAodHlwZSA9PT0gImVyYSIpIHsKCSAgICAgIGZpbGxlZFtwb3NdID0gdmFsdWU7CgkgICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQocG9zKSkgewoJICAgICAgZmlsbGVkW3Bvc10gPSBwYXJzZUludCh2YWx1ZSwgMTApOwoJICAgIH0KCSAgfQoKCSAgcmV0dXJuIGZpbGxlZDsKCX0KCgl2YXIgaWFuYVpvbmVDYWNoZSA9IHt9OwoJLyoqCgkgKiBBIHpvbmUgaWRlbnRpZmllZCBieSBhbiBJQU5BIGlkZW50aWZpZXIsIGxpa2UgQW1lcmljYS9OZXdfWW9yawoJICogQGltcGxlbWVudHMge1pvbmV9CgkgKi8KCgl2YXIgSUFOQVpvbmUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9ab25lKSB7CgkgIF9pbmhlcml0c0xvb3NlKElBTkFab25lLCBfWm9uZSk7CgoJICAvKioKCSAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWUKCSAgICogQHJldHVybiB7SUFOQVpvbmV9CgkgICAqLwoJICBJQU5BWm9uZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUobmFtZSkgewoJICAgIGlmICghaWFuYVpvbmVDYWNoZVtuYW1lXSkgewoJICAgICAgaWFuYVpvbmVDYWNoZVtuYW1lXSA9IG5ldyBJQU5BWm9uZShuYW1lKTsKCSAgICB9CgoJICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdOwoJICB9CgkgIC8qKgoJICAgKiBSZXNldCBsb2NhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy4KCSAgICogQHJldHVybiB7dm9pZH0KCSAgICovCgkgIDsKCgkgIElBTkFab25lLnJlc2V0Q2FjaGUgPSBmdW5jdGlvbiByZXNldENhY2hlKCkgewoJICAgIGlhbmFab25lQ2FjaGUgPSB7fTsKCSAgICBkdGZDYWNoZSA9IHt9OwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHN0cmluZyBpcyBhIHZhbGlkIHNwZWNpZmllci4gVGhpcyBvbmx5IGNoZWNrcyB0aGUgc3RyaW5nJ3MgZm9ybWF0LCBub3QgdGhhdCB0aGUgc3BlY2lmaWVyIGlkZW50aWZpZXMgYSBrbm93biB6b25lOyBzZWUgaXNWYWxpZFpvbmUgZm9yIHRoYXQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIHN0cmluZyB0byBjaGVjayB2YWxpZGl0eSBvbgoJICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkU3BlY2lmaWVyKCJBbWVyaWNhL05ld19Zb3JrIikgLy89PiB0cnVlCgkgICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoIlNwb3J0fn5ibG9ycCIpIC8vPT4gZmFsc2UKCSAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZSBmb3Igc29tZSB2YWxpZCBJQU5BIG5hbWVzLiBVc2UgaXNWYWxpZFpvbmUgaW5zdGVhZC4KCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIgPSBmdW5jdGlvbiBpc1ZhbGlkU3BlY2lmaWVyKHMpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkWm9uZShzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaWRlbnRpZmllcyBhIHJlYWwgem9uZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFRoZSBzdHJpbmcgdG8gY2hlY2sKCSAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKSAvLz0+IHRydWUKCSAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIkZhbnRhc2lhL0Nhc3RsZSIpIC8vPT4gZmFsc2UKCSAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIlNwb3J0fn5ibG9ycCIpIC8vPT4gZmFsc2UKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIElBTkFab25lLmlzVmFsaWRab25lID0gZnVuY3Rpb24gaXNWYWxpZFpvbmUoem9uZSkgewoJICAgIGlmICghem9uZSkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCgkgICAgdHJ5IHsKCSAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIsIHsKCSAgICAgICAgdGltZVpvbmU6IHpvbmUKCSAgICAgIH0pLmZvcm1hdCgpOwoJICAgICAgcmV0dXJuIHRydWU7CgkgICAgfSBjYXRjaCAoZSkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCSAgfTsKCgkgIGZ1bmN0aW9uIElBTkFab25lKG5hbWUpIHsKCSAgICB2YXIgX3RoaXM7CgoJICAgIF90aGlzID0gX1pvbmUuY2FsbCh0aGlzKSB8fCB0aGlzOwoJICAgIC8qKiBAcHJpdmF0ZSAqKi8KCgkgICAgX3RoaXMuem9uZU5hbWUgPSBuYW1lOwoJICAgIC8qKiBAcHJpdmF0ZSAqKi8KCgkgICAgX3RoaXMudmFsaWQgPSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShuYW1lKTsKCSAgICByZXR1cm4gX3RoaXM7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCgoJICB2YXIgX3Byb3RvID0gSUFOQVpvbmUucHJvdG90eXBlOwoKCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgX3Byb3RvLm9mZnNldE5hbWUgPSBmdW5jdGlvbiBvZmZzZXROYW1lKHRzLCBfcmVmKSB7CgkgICAgdmFyIGZvcm1hdCA9IF9yZWYuZm9ybWF0LAoJICAgICAgICBsb2NhbGUgPSBfcmVmLmxvY2FsZTsKCSAgICByZXR1cm4gcGFyc2Vab25lSW5mbyh0cywgZm9ybWF0LCBsb2NhbGUsIHRoaXMubmFtZSk7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLmZvcm1hdE9mZnNldCA9IGZ1bmN0aW9uIGZvcm1hdE9mZnNldCQxKHRzLCBmb3JtYXQpIHsKCSAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfcHJvdG8ub2Zmc2V0ID0gZnVuY3Rpb24gb2Zmc2V0KHRzKSB7CgkgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0cyk7CgkgICAgaWYgKGlzTmFOKGRhdGUpKSByZXR1cm4gTmFOOwoJICAgIHZhciBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSk7CgoJICAgIHZhciBfcmVmMiA9IGR0Zi5mb3JtYXRUb1BhcnRzID8gcGFydHNPZmZzZXQoZHRmLCBkYXRlKSA6IGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSksCgkgICAgICAgIHllYXIgPSBfcmVmMlswXSwKCSAgICAgICAgbW9udGggPSBfcmVmMlsxXSwKCSAgICAgICAgZGF5ID0gX3JlZjJbMl0sCgkgICAgICAgIGFkT3JCYyA9IF9yZWYyWzNdLAoJICAgICAgICBob3VyID0gX3JlZjJbNF0sCgkgICAgICAgIG1pbnV0ZSA9IF9yZWYyWzVdLAoJICAgICAgICBzZWNvbmQgPSBfcmVmMls2XTsKCgkgICAgaWYgKGFkT3JCYyA9PT0gIkJDIikgewoJICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7CgkgICAgfSAvLyBiZWNhdXNlIHdlJ3JlIHVzaW5nIGhvdXIxMiBhbmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTAyNTU2NCZjYW49MiZxPSUyMjI0JTNBMDAlMjIlMjBkYXRldGltZWZvcm1hdAoKCgkgICAgdmFyIGFkanVzdGVkSG91ciA9IGhvdXIgPT09IDI0ID8gMCA6IGhvdXI7CgkgICAgdmFyIGFzVVRDID0gb2JqVG9Mb2NhbFRTKHsKCSAgICAgIHllYXI6IHllYXIsCgkgICAgICBtb250aDogbW9udGgsCgkgICAgICBkYXk6IGRheSwKCSAgICAgIGhvdXI6IGFkanVzdGVkSG91ciwKCSAgICAgIG1pbnV0ZTogbWludXRlLAoJICAgICAgc2Vjb25kOiBzZWNvbmQsCgkgICAgICBtaWxsaXNlY29uZDogMAoJICAgIH0pOwoJICAgIHZhciBhc1RTID0gK2RhdGU7CgkgICAgdmFyIG92ZXIgPSBhc1RTICUgMTAwMDsKCSAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjsKCSAgICByZXR1cm4gKGFzVVRDIC0gYXNUUykgLyAoNjAgKiAxMDAwKTsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfcHJvdG8uZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzKG90aGVyWm9uZSkgewoJICAgIHJldHVybiBvdGhlclpvbmUudHlwZSA9PT0gImlhbmEiICYmIG90aGVyWm9uZS5uYW1lID09PSB0aGlzLm5hbWU7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX2NyZWF0ZUNsYXNzKElBTkFab25lLCBbewoJICAgIGtleTogInR5cGUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuICJpYW5hIjsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJuYW1lIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLnpvbmVOYW1lOwoJICAgIH0KCSAgICAvKiogQG92ZXJyaWRlICoqLwoKCSAgfSwgewoJICAgIGtleTogImlzVW5pdmVyc2FsIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBmYWxzZTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1ZhbGlkIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLnZhbGlkOwoJICAgIH0KCSAgfV0pOwoKCSAgcmV0dXJuIElBTkFab25lOwoJfShab25lKTsKCgl2YXIgc2luZ2xldG9uID0gbnVsbDsKCS8qKgoJICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKQoJICogQGltcGxlbWVudHMge1pvbmV9CgkgKi8KCgl2YXIgRml4ZWRPZmZzZXRab25lID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfWm9uZSkgewoJICBfaW5oZXJpdHNMb29zZShGaXhlZE9mZnNldFpvbmUsIF9ab25lKTsKCgkgIC8qKgoJICAgKiBHZXQgYW4gaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBvZmZzZXQKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldCAtIFRoZSBvZmZzZXQgaW4gbWludXRlcwoJICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9CgkgICAqLwoJICBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UgPSBmdW5jdGlvbiBpbnN0YW5jZShvZmZzZXQpIHsKCSAgICByZXR1cm4gb2Zmc2V0ID09PSAwID8gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlIDogbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpOwoJICB9CgkgIC8qKgoJICAgKiBHZXQgYW4gaW5zdGFuY2Ugb2YgRml4ZWRPZmZzZXRab25lIGZyb20gYSBVVEMgb2Zmc2V0IHN0cmluZywgbGlrZSAiVVRDKzYiCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIG9mZnNldCBzdHJpbmcgdG8gcGFyc2UKCSAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKCJVVEMrNiIpCgkgICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcigiVVRDKzA2IikKCSAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKCJVVEMtNjowMCIpCgkgICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX0KCSAgICovCgkgIDsKCgkgIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllciA9IGZ1bmN0aW9uIHBhcnNlU3BlY2lmaWVyKHMpIHsKCSAgICBpZiAocykgewoJICAgICAgdmFyIHIgPSBzLm1hdGNoKC9edXRjKD86KFsrLV1cZHsxLDJ9KSg/OjooXGR7Mn0pKT8pPyQvaSk7CgoJICAgICAgaWYgKHIpIHsKCSAgICAgICAgcmV0dXJuIG5ldyBGaXhlZE9mZnNldFpvbmUoc2lnbmVkT2Zmc2V0KHJbMV0sIHJbMl0pKTsKCSAgICAgIH0KCSAgICB9CgoJICAgIHJldHVybiBudWxsOwoJICB9OwoKCSAgZnVuY3Rpb24gRml4ZWRPZmZzZXRab25lKG9mZnNldCkgewoJICAgIHZhciBfdGhpczsKCgkgICAgX3RoaXMgPSBfWm9uZS5jYWxsKHRoaXMpIHx8IHRoaXM7CgkgICAgLyoqIEBwcml2YXRlICoqLwoKCSAgICBfdGhpcy5maXhlZCA9IG9mZnNldDsKCSAgICByZXR1cm4gX3RoaXM7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCgoJICB2YXIgX3Byb3RvID0gRml4ZWRPZmZzZXRab25lLnByb3RvdHlwZTsKCgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIF9wcm90by5vZmZzZXROYW1lID0gZnVuY3Rpb24gb2Zmc2V0TmFtZSgpIHsKCSAgICByZXR1cm4gdGhpcy5uYW1lOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5mb3JtYXRPZmZzZXQgPSBmdW5jdGlvbiBmb3JtYXRPZmZzZXQkMSh0cywgZm9ybWF0KSB7CgkgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh0aGlzLmZpeGVkLCBmb3JtYXQpOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIF9wcm90by5vZmZzZXQgPSBmdW5jdGlvbiBvZmZzZXQoKSB7CgkgICAgcmV0dXJuIHRoaXMuZml4ZWQ7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLmVxdWFscyA9IGZ1bmN0aW9uIGVxdWFscyhvdGhlclpvbmUpIHsKCSAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09ICJmaXhlZCIgJiYgb3RoZXJab25lLmZpeGVkID09PSB0aGlzLmZpeGVkOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9jcmVhdGVDbGFzcyhGaXhlZE9mZnNldFpvbmUsIFt7CgkgICAga2V5OiAidHlwZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gImZpeGVkIjsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJuYW1lIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmZpeGVkID09PSAwID8gIlVUQyIgOiAiVVRDIiArIGZvcm1hdE9mZnNldCh0aGlzLmZpeGVkLCAibmFycm93Iik7CgkgICAgfQoJICB9LCB7CgkgICAga2V5OiAiaWFuYU5hbWUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgaWYgKHRoaXMuZml4ZWQgPT09IDApIHsKCSAgICAgICAgcmV0dXJuICJFdGMvVVRDIjsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIHJldHVybiAiRXRjL0dNVCIgKyBmb3JtYXRPZmZzZXQoLXRoaXMuZml4ZWQsICJuYXJyb3ciKTsKCSAgICAgIH0KCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1VuaXZlcnNhbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdHJ1ZTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1ZhbGlkIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0cnVlOwoJICAgIH0KCSAgfV0sIFt7CgkgICAga2V5OiAidXRjSW5zdGFuY2UiLAoJICAgIGdldDoKCSAgICAvKioKCSAgICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgVVRDCgkgICAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfQoJICAgICAqLwoJICAgIGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHsKCSAgICAgICAgc2luZ2xldG9uID0gbmV3IEZpeGVkT2Zmc2V0Wm9uZSgwKTsKCSAgICAgIH0KCgkgICAgICByZXR1cm4gc2luZ2xldG9uOwoJICAgIH0KCSAgfV0pOwoKCSAgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZTsKCX0oWm9uZSk7CgoJLyoqCgkgKiBBIHpvbmUgdGhhdCBmYWlsZWQgdG8gcGFyc2UuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGlzLgoJICogQGltcGxlbWVudHMge1pvbmV9CgkgKi8KCgl2YXIgSW52YWxpZFpvbmUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9ab25lKSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWRab25lLCBfWm9uZSk7CgoJICBmdW5jdGlvbiBJbnZhbGlkWm9uZSh6b25lTmFtZSkgewoJICAgIHZhciBfdGhpczsKCgkgICAgX3RoaXMgPSBfWm9uZS5jYWxsKHRoaXMpIHx8IHRoaXM7CgkgICAgLyoqICBAcHJpdmF0ZSAqLwoKCSAgICBfdGhpcy56b25lTmFtZSA9IHpvbmVOYW1lOwoJICAgIHJldHVybiBfdGhpczsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoKCgkgIHZhciBfcHJvdG8gPSBJbnZhbGlkWm9uZS5wcm90b3R5cGU7CgoJICAvKiogQG92ZXJyaWRlICoqLwoJICBfcHJvdG8ub2Zmc2V0TmFtZSA9IGZ1bmN0aW9uIG9mZnNldE5hbWUoKSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLmZvcm1hdE9mZnNldCA9IGZ1bmN0aW9uIGZvcm1hdE9mZnNldCgpIHsKCSAgICByZXR1cm4gIiI7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLm9mZnNldCA9IGZ1bmN0aW9uIG9mZnNldCgpIHsKCSAgICByZXR1cm4gTmFOOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMoKSB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9jcmVhdGVDbGFzcyhJbnZhbGlkWm9uZSwgW3sKCSAgICBrZXk6ICJ0eXBlIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiAiaW52YWxpZCI7CgkgICAgfQoJICAgIC8qKiBAb3ZlcnJpZGUgKiovCgoJICB9LCB7CgkgICAga2V5OiAibmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy56b25lTmFtZTsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpc1VuaXZlcnNhbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfQoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gSW52YWxpZFpvbmU7Cgl9KFpvbmUpOwoKCS8qKgoJICogQHByaXZhdGUKCSAqLwoJZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHsKCgkgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkgfHwgaW5wdXQgPT09IG51bGwpIHsKCSAgICByZXR1cm4gZGVmYXVsdFpvbmU7CgkgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBab25lKSB7CgkgICAgcmV0dXJuIGlucHV0OwoJICB9IGVsc2UgaWYgKGlzU3RyaW5nKGlucHV0KSkgewoJICAgIHZhciBsb3dlcmVkID0gaW5wdXQudG9Mb3dlckNhc2UoKTsKCSAgICBpZiAobG93ZXJlZCA9PT0gImxvY2FsIiB8fCBsb3dlcmVkID09PSAic3lzdGVtIikgcmV0dXJuIGRlZmF1bHRab25lO2Vsc2UgaWYgKGxvd2VyZWQgPT09ICJ1dGMiIHx8IGxvd2VyZWQgPT09ICJnbXQiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO2Vsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpOwoJICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkgewoJICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpOwoJICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgJiYgaW5wdXQub2Zmc2V0ICYmIHR5cGVvZiBpbnB1dC5vZmZzZXQgPT09ICJudW1iZXIiKSB7CgkgICAgLy8gVGhpcyBpcyBkdW1iLCBidXQgdGhlIGluc3RhbmNlb2YgY2hlY2sgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHJlYWxseSB3b3JrCgkgICAgLy8gc28gd2UncmUgZHVjayBjaGVja2luZyBpdAoJICAgIHJldHVybiBpbnB1dDsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gbmV3IEludmFsaWRab25lKGlucHV0KTsKCSAgfQoJfQoKCXZhciBub3cgPSBmdW5jdGlvbiBub3coKSB7CgkgIHJldHVybiBEYXRlLm5vdygpOwoJfSwKCSAgICBkZWZhdWx0Wm9uZSA9ICJzeXN0ZW0iLAoJICAgIGRlZmF1bHRMb2NhbGUgPSBudWxsLAoJICAgIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLAoJICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG51bGwsCgkgICAgdGhyb3dPbkludmFsaWQ7CgkvKioKCSAqIFNldHRpbmdzIGNvbnRhaW5zIHN0YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHRoYXQgY29udHJvbCBMdXhvbidzIG92ZXJhbGwgYmVoYXZpb3IuIEx1eG9uIGlzIGEgc2ltcGxlIGxpYnJhcnkgd2l0aCBmZXcgb3B0aW9ucywgYnV0IHRoZSBvbmVzIGl0IGRvZXMgaGF2ZSBsaXZlIGhlcmUuCgkgKi8KCgoJdmFyIFNldHRpbmdzID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKCSAgZnVuY3Rpb24gU2V0dGluZ3MoKSB7fQoKCSAgLyoqCgkgICAqIFJlc2V0IEx1eG9uJ3MgZ2xvYmFsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLgoJICAgKiBAcmV0dXJuIHt2b2lkfQoJICAgKi8KCSAgU2V0dGluZ3MucmVzZXRDYWNoZXMgPSBmdW5jdGlvbiByZXNldENhY2hlcygpIHsKCSAgICBMb2NhbGUucmVzZXRDYWNoZSgpOwoJICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTsKCSAgfTsKCgkgIF9jcmVhdGVDbGFzcyhTZXR0aW5ncywgbnVsbCwgW3sKCSAgICBrZXk6ICJub3ciLAoJICAgIGdldDoKCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLgoJICAgICAqIEB0eXBlIHtmdW5jdGlvbn0KCSAgICAgKi8KCSAgICBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gbm93OwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBTZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLgoJICAgICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50CgkgICAgICogQHR5cGUge2Z1bmN0aW9ufQoJICAgICAqIEBleGFtcGxlIFNldHRpbmdzLm5vdyA9ICgpID0+IERhdGUubm93KCkgKyAzMDAwIC8vIHByZXRlbmQgaXQgaXMgMyBzZWNvbmRzIGluIHRoZSBmdXR1cmUKCSAgICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWUKCSAgICAgKi8KCSAgICAsCgkgICAgc2V0OiBmdW5jdGlvbiBzZXQobikgewoJICAgICAgbm93ID0gbjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogU2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSB0byBjcmVhdGUgRGF0ZVRpbWVzIGluLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIFVzZSB0aGUgdmFsdWUgInN5c3RlbSIgdG8gcmVzZXQgdGhpcyB2YWx1ZSB0byB0aGUgc3lzdGVtJ3MgdGltZSB6b25lLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZGVmYXVsdFpvbmUiLAoJICAgIGdldDoKCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUgKHRoZSBvbmUgc2V0IG9uIHRoZSBtYWNoaW5lIHRoYXQgcnVucyB0aGlzIGNvZGUpLgoJICAgICAqIEB0eXBlIHtab25lfQoJICAgICAqLwoJICAgIGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCSAgICAsCgkgICAgc2V0OiBmdW5jdGlvbiBzZXQoem9uZSkgewoJICAgICAgZGVmYXVsdFpvbmUgPSB6b25lOwoJICAgIH0KCSAgfSwgewoJICAgIGtleTogImRlZmF1bHRMb2NhbGUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIGRlZmF1bHRMb2NhbGU7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFNldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgkgICAgLAoJICAgIHNldDogZnVuY3Rpb24gc2V0KGxvY2FsZSkgewoJICAgICAgZGVmYXVsdExvY2FsZSA9IGxvY2FsZTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZGVmYXVsdE51bWJlcmluZ1N5c3RlbSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogU2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgkgICAgLAoJICAgIHNldDogZnVuY3Rpb24gc2V0KG51bWJlcmluZ1N5c3RlbSkgewoJICAgICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJkZWZhdWx0T3V0cHV0Q2FsZW5kYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIGRlZmF1bHRPdXRwdXRDYWxlbmRhcjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCSAgICAsCgkgICAgc2V0OiBmdW5jdGlvbiBzZXQob3V0cHV0Q2FsZW5kYXIpIHsKCSAgICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgd2hldGhlciBMdXhvbiB3aWxsIHRocm93IHdoZW4gaXQgZW5jb3VudGVycyBpbnZhbGlkIERhdGVUaW1lcywgRHVyYXRpb25zLCBvciBJbnRlcnZhbHMKCSAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJ0aHJvd09uSW52YWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhyb3dPbkludmFsaWQ7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFscwoJICAgICAqIEB0eXBlIHtib29sZWFufQoJICAgICAqLwoJICAgICwKCSAgICBzZXQ6IGZ1bmN0aW9uIHNldCh0KSB7CgkgICAgICB0aHJvd09uSW52YWxpZCA9IHQ7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gU2V0dGluZ3M7Cgl9KCk7CgoJdmFyIF9leGNsdWRlZCA9IFsiYmFzZSJdLAoJICAgIF9leGNsdWRlZDIgPSBbInBhZFRvIiwgImZsb29yIl07CgoJdmFyIGludGxMRkNhY2hlID0ge307CgoJZnVuY3Rpb24gZ2V0Q2FjaGVkTEYobG9jU3RyaW5nLCBvcHRzKSB7CgkgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICBvcHRzID0ge307CgkgIH0KCgkgIHZhciBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBvcHRzXSk7CgkgIHZhciBkdGYgPSBpbnRsTEZDYWNoZVtrZXldOwoKCSAgaWYgKCFkdGYpIHsKCSAgICBkdGYgPSBuZXcgSW50bC5MaXN0Rm9ybWF0KGxvY1N0cmluZywgb3B0cyk7CgkgICAgaW50bExGQ2FjaGVba2V5XSA9IGR0ZjsKCSAgfQoKCSAgcmV0dXJuIGR0ZjsKCX0KCgl2YXIgaW50bERUQ2FjaGUgPSB7fTsKCglmdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzKSB7CgkgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICBvcHRzID0ge307CgkgIH0KCgkgIHZhciBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBvcHRzXSk7CgkgIHZhciBkdGYgPSBpbnRsRFRDYWNoZVtrZXldOwoKCSAgaWYgKCFkdGYpIHsKCSAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwoJICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7CgkgIH0KCgkgIHJldHVybiBkdGY7Cgl9CgoJdmFyIGludGxOdW1DYWNoZSA9IHt9OwoKCWZ1bmN0aW9uIGdldENhY2hlZElORihsb2NTdHJpbmcsIG9wdHMpIHsKCSAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgIG9wdHMgPSB7fTsKCSAgfQoKCSAgdmFyIGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTsKCSAgdmFyIGluZiA9IGludGxOdW1DYWNoZVtrZXldOwoKCSAgaWYgKCFpbmYpIHsKCSAgICBpbmYgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jU3RyaW5nLCBvcHRzKTsKCSAgICBpbnRsTnVtQ2FjaGVba2V5XSA9IGluZjsKCSAgfQoKCSAgcmV0dXJuIGluZjsKCX0KCgl2YXIgaW50bFJlbENhY2hlID0ge307CgoJZnVuY3Rpb24gZ2V0Q2FjaGVkUlRGKGxvY1N0cmluZywgb3B0cykgewoJICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgb3B0cyA9IHt9OwoJICB9CgoJICB2YXIgX29wdHMgPSBvcHRzOwoJICAgICAgX29wdHMuYmFzZTsKCSAgICAgIHZhciBjYWNoZUtleU9wdHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfb3B0cywgX2V4Y2x1ZGVkKTsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9ucwoKCgkgIHZhciBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTsKCSAgdmFyIGluZiA9IGludGxSZWxDYWNoZVtrZXldOwoKCSAgaWYgKCFpbmYpIHsKCSAgICBpbmYgPSBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQobG9jU3RyaW5nLCBvcHRzKTsKCSAgICBpbnRsUmVsQ2FjaGVba2V5XSA9IGluZjsKCSAgfQoKCSAgcmV0dXJuIGluZjsKCX0KCgl2YXIgc3lzTG9jYWxlQ2FjaGUgPSBudWxsOwoKCWZ1bmN0aW9uIHN5c3RlbUxvY2FsZSgpIHsKCSAgaWYgKHN5c0xvY2FsZUNhY2hlKSB7CgkgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwoJICB9IGVsc2UgewoJICAgIHN5c0xvY2FsZUNhY2hlID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CgkgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwoJICB9Cgl9CgoJZnVuY3Rpb24gcGFyc2VMb2NhbGVTdHJpbmcobG9jYWxlU3RyKSB7CgkgIC8vIEkgcmVhbGx5IHdhbnQgdG8gYXZvaWQgd3JpdGluZyBhIEJDUCA0NyBwYXJzZXIKCSAgLy8gc2VlLCBlLmcuIGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vYmNwLTQ3CgkgIC8vIEluc3RlYWQsIHdlJ2xsIGRvIHRoaXM6CgkgIC8vIGEpIGlmIHRoZSBzdHJpbmcgaGFzIG5vIC11IGV4dGVuc2lvbnMsIGp1c3QgbGVhdmUgaXQgYWxvbmUKCSAgLy8gYikgaWYgaXQgZG9lcywgdXNlIEludGwgdG8gcmVzb2x2ZSBldmVyeXRoaW5nCgkgIC8vIGMpIGlmIEludGwgZmFpbHMsIHRyeSBhZ2FpbiB3aXRob3V0IHRoZSAtdQoJICB2YXIgdUluZGV4ID0gbG9jYWxlU3RyLmluZGV4T2YoIi11LSIpOwoKCSAgaWYgKHVJbmRleCA9PT0gLTEpIHsKCSAgICByZXR1cm4gW2xvY2FsZVN0cl07CgkgIH0gZWxzZSB7CgkgICAgdmFyIG9wdGlvbnM7CgkgICAgdmFyIHNtYWxsZXIgPSBsb2NhbGVTdHIuc3Vic3RyaW5nKDAsIHVJbmRleCk7CgoJICAgIHRyeSB7CgkgICAgICBvcHRpb25zID0gZ2V0Q2FjaGVkRFRGKGxvY2FsZVN0cikucmVzb2x2ZWRPcHRpb25zKCk7CgkgICAgfSBjYXRjaCAoZSkgewoJICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihzbWFsbGVyKS5yZXNvbHZlZE9wdGlvbnMoKTsKCSAgICB9CgoJICAgIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9vcHRpb25zLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgY2FsZW5kYXIgPSBfb3B0aW9ucy5jYWxlbmRhcjsgLy8gcmV0dXJuIHRoZSBzbWFsbGVyIG9uZSBzbyB0aGF0IHdlIGNhbiBhcHBlbmQgdGhlIGNhbGVuZGFyIGFuZCBudW1iZXJpbmcgb3ZlcnJpZGVzIHRvIGl0CgoJICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07CgkgIH0KCX0KCglmdW5jdGlvbiBpbnRsQ29uZmlnU3RyaW5nKGxvY2FsZVN0ciwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikgewoJICBpZiAob3V0cHV0Q2FsZW5kYXIgfHwgbnVtYmVyaW5nU3lzdGVtKSB7CgkgICAgbG9jYWxlU3RyICs9ICItdSI7CgoJICAgIGlmIChvdXRwdXRDYWxlbmRhcikgewoJICAgICAgbG9jYWxlU3RyICs9ICItY2EtIiArIG91dHB1dENhbGVuZGFyOwoJICAgIH0KCgkgICAgaWYgKG51bWJlcmluZ1N5c3RlbSkgewoJICAgICAgbG9jYWxlU3RyICs9ICItbnUtIiArIG51bWJlcmluZ1N5c3RlbTsKCSAgICB9CgoJICAgIHJldHVybiBsb2NhbGVTdHI7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIGxvY2FsZVN0cjsKCSAgfQoJfQoKCWZ1bmN0aW9uIG1hcE1vbnRocyhmKSB7CgkgIHZhciBtcyA9IFtdOwoKCSAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTI7IGkrKykgewoJICAgIHZhciBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCBpLCAxKTsKCSAgICBtcy5wdXNoKGYoZHQpKTsKCSAgfQoKCSAgcmV0dXJuIG1zOwoJfQoKCWZ1bmN0aW9uIG1hcFdlZWtkYXlzKGYpIHsKCSAgdmFyIG1zID0gW107CgoJICBmb3IgKHZhciBpID0gMTsgaSA8PSA3OyBpKyspIHsKCSAgICB2YXIgZHQgPSBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzICsgaSk7CgkgICAgbXMucHVzaChmKGR0KSk7CgkgIH0KCgkgIHJldHVybiBtczsKCX0KCglmdW5jdGlvbiBsaXN0U3R1ZmYobG9jLCBsZW5ndGgsIGRlZmF1bHRPSywgZW5nbGlzaEZuLCBpbnRsRm4pIHsKCSAgdmFyIG1vZGUgPSBsb2MubGlzdGluZ01vZGUoZGVmYXVsdE9LKTsKCgkgIGlmIChtb2RlID09PSAiZXJyb3IiKSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0gZWxzZSBpZiAobW9kZSA9PT0gImVuIikgewoJICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7CgkgIH0KCX0KCglmdW5jdGlvbiBzdXBwb3J0c0Zhc3ROdW1iZXJzKGxvYykgewoJICBpZiAobG9jLm51bWJlcmluZ1N5c3RlbSAmJiBsb2MubnVtYmVyaW5nU3lzdGVtICE9PSAibGF0biIpIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09ICJsYXRuIiB8fCAhbG9jLmxvY2FsZSB8fCBsb2MubG9jYWxlLnN0YXJ0c1dpdGgoImVuIikgfHwgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jLmludGwpLnJlc29sdmVkT3B0aW9ucygpLm51bWJlcmluZ1N5c3RlbSA9PT0gImxhdG4iOwoJICB9Cgl9CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgoJdmFyIFBvbHlOdW1iZXJGb3JtYXR0ZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBQb2x5TnVtYmVyRm9ybWF0dGVyKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7CgkgICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDsKCSAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTsKCgkgICAgb3B0cy5wYWRUbzsKCSAgICAgICAgb3B0cy5mbG9vcjsKCSAgICAgICAgdmFyIG90aGVyT3B0cyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKG9wdHMsIF9leGNsdWRlZDIpOwoKCSAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkgewoJICAgICAgdmFyIGludGxPcHRzID0gX2V4dGVuZHMoewoJICAgICAgICB1c2VHcm91cGluZzogZmFsc2UKCSAgICAgIH0sIG9wdHMpOwoKCSAgICAgIGlmIChvcHRzLnBhZFRvID4gMCkgaW50bE9wdHMubWluaW11bUludGVnZXJEaWdpdHMgPSBvcHRzLnBhZFRvOwoJICAgICAgdGhpcy5pbmYgPSBnZXRDYWNoZWRJTkYoaW50bCwgaW50bE9wdHMpOwoJICAgIH0KCSAgfQoKCSAgdmFyIF9wcm90byA9IFBvbHlOdW1iZXJGb3JtYXR0ZXIucHJvdG90eXBlOwoKCSAgX3Byb3RvLmZvcm1hdCA9IGZ1bmN0aW9uIGZvcm1hdChpKSB7CgkgICAgaWYgKHRoaXMuaW5mKSB7CgkgICAgICB2YXIgZml4ZWQgPSB0aGlzLmZsb29yID8gTWF0aC5mbG9vcihpKSA6IGk7CgkgICAgICByZXR1cm4gdGhpcy5pbmYuZm9ybWF0KGZpeGVkKTsKCSAgICB9IGVsc2UgewoJICAgICAgLy8gdG8gbWF0Y2ggdGhlIGJyb3dzZXIncyBudW1iZXJmb3JtYXR0ZXIgZGVmYXVsdHMKCSAgICAgIHZhciBfZml4ZWQgPSB0aGlzLmZsb29yID8gTWF0aC5mbG9vcihpKSA6IHJvdW5kVG8oaSwgMyk7CgoJICAgICAgcmV0dXJuIHBhZFN0YXJ0KF9maXhlZCwgdGhpcy5wYWRUbyk7CgkgICAgfQoJICB9OwoKCSAgcmV0dXJuIFBvbHlOdW1iZXJGb3JtYXR0ZXI7Cgl9KCk7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgoJdmFyIFBvbHlEYXRlRm9ybWF0dGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKCSAgZnVuY3Rpb24gUG9seURhdGVGb3JtYXR0ZXIoZHQsIGludGwsIG9wdHMpIHsKCSAgICB0aGlzLm9wdHMgPSBvcHRzOwoJICAgIHZhciB6OwoKCSAgICBpZiAoZHQuem9uZS5pc1VuaXZlcnNhbCkgewoJICAgICAgLy8gVVRDLTggb3IgRXRjL1VUQy04IGFyZSBub3QgcGFydCBvZiB0emRhdGEsIG9ubHkgRXRjL0dNVCs4IGFuZCB0aGUgbGlrZS4KCSAgICAgIC8vIFRoYXQgaXMgd2h5IGZpeGVkLW9mZnNldCBUWiBpcyBzZXQgdG8gdGhhdCB1bmxlc3MgaXQgaXM6CgkgICAgICAvLyAxLiBSZXByZXNlbnRpbmcgb2Zmc2V0IDAgd2hlbiBVVEMgaXMgdXNlZCB0byBtYWludGFpbiBwcmV2aW91cyBiZWhhdmlvciBhbmQgZG9lcyBub3QgYmVjb21lIEdNVC4KCSAgICAgIC8vIDIuIFVuc3VwcG9ydGVkIGJ5IHRoZSBicm93c2VyOgoJICAgICAgLy8gICAgLSBzb21lIGRvIG5vdCBzdXBwb3J0IEV0Yy8KCSAgICAgIC8vICAgIC0gPCBFdGMvR01ULTE0LCA+IEV0Yy9HTVQrMTIsIGFuZCAzMC1taW51dGUgb3IgNDUtbWludXRlIG9mZnNldHMgYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YQoJICAgICAgdmFyIGdtdE9mZnNldCA9IC0xICogKGR0Lm9mZnNldCAvIDYwKTsKCSAgICAgIHZhciBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyAiRXRjL0dNVCsiICsgZ210T2Zmc2V0IDogIkV0Yy9HTVQiICsgZ210T2Zmc2V0OwoKCSAgICAgIGlmIChkdC5vZmZzZXQgIT09IDAgJiYgSUFOQVpvbmUuY3JlYXRlKG9mZnNldFopLnZhbGlkKSB7CgkgICAgICAgIHogPSBvZmZzZXRaOwoJICAgICAgICB0aGlzLmR0ID0gZHQ7CgkgICAgICB9IGVsc2UgewoJICAgICAgICAvLyBOb3QgYWxsIGZpeGVkLW9mZnNldCB6b25lcyBsaWtlIEV0Yy8rNDozMCBhcmUgcHJlc2VudCBpbiB0emRhdGEuCgkgICAgICAgIC8vIFNvIHdlIGhhdmUgdG8gbWFrZSBkby4gVHdvIGNhc2VzOgoJICAgICAgICAvLyAxLiBUaGUgZm9ybWF0IG9wdGlvbnMgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBXZSBjYW4ndCBkbyB0aGF0LCBzbyB0aGUgYmVzdAoJICAgICAgICAvLyB3ZSBjYW4gZG8gaXMgZm9ybWF0IHRoZSBkYXRlIGluIFVUQy4KCSAgICAgICAgLy8gMi4gVGhlIGZvcm1hdCBvcHRpb25zIGRvbid0IHRlbGwgdXMgdG8gc2hvdyB0aGUgem9uZS4gVGhlbiB3ZSBjYW4gYWRqdXN0IHRoZW0KCSAgICAgICAgLy8gdGhlIHRpbWUgYW5kIHRlbGwgdGhlIGZvcm1hdHRlciB0byBzaG93IGl0IHRvIHVzIGluIFVUQywgc28gdGhhdCB0aGUgdGltZSBpcyByaWdodAoJICAgICAgICAvLyBhbmQgdGhlIGJhZCB6b25lIGRvZXNuJ3Qgc2hvdyB1cC4KCSAgICAgICAgeiA9ICJVVEMiOwoKCSAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7CgkgICAgICAgICAgdGhpcy5kdCA9IGR0OwoJICAgICAgICB9IGVsc2UgewoJICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApOwoJICAgICAgICB9CgkgICAgICB9CgkgICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09ICJzeXN0ZW0iKSB7CgkgICAgICB0aGlzLmR0ID0gZHQ7CgkgICAgfSBlbHNlIHsKCSAgICAgIHRoaXMuZHQgPSBkdDsKCSAgICAgIHogPSBkdC56b25lLm5hbWU7CgkgICAgfQoKCSAgICB2YXIgaW50bE9wdHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5vcHRzKTsKCgkgICAgaWYgKHopIHsKCSAgICAgIGludGxPcHRzLnRpbWVab25lID0gejsKCSAgICB9CgoJICAgIHRoaXMuZHRmID0gZ2V0Q2FjaGVkRFRGKGludGwsIGludGxPcHRzKTsKCSAgfQoKCSAgdmFyIF9wcm90bzIgPSBQb2x5RGF0ZUZvcm1hdHRlci5wcm90b3R5cGU7CgoJICBfcHJvdG8yLmZvcm1hdCA9IGZ1bmN0aW9uIGZvcm1hdCgpIHsKCSAgICByZXR1cm4gdGhpcy5kdGYuZm9ybWF0KHRoaXMuZHQudG9KU0RhdGUoKSk7CgkgIH07CgoJICBfcHJvdG8yLmZvcm1hdFRvUGFydHMgPSBmdW5jdGlvbiBmb3JtYXRUb1BhcnRzKCkgewoJICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXRUb1BhcnRzKHRoaXMuZHQudG9KU0RhdGUoKSk7CgkgIH07CgoJICBfcHJvdG8yLnJlc29sdmVkT3B0aW9ucyA9IGZ1bmN0aW9uIHJlc29sdmVkT3B0aW9ucygpIHsKCSAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7CgkgIH07CgoJICByZXR1cm4gUG9seURhdGVGb3JtYXR0ZXI7Cgl9KCk7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgoJdmFyIFBvbHlSZWxGb3JtYXR0ZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBQb2x5UmVsRm9ybWF0dGVyKGludGwsIGlzRW5nbGlzaCwgb3B0cykgewoJICAgIHRoaXMub3B0cyA9IF9leHRlbmRzKHsKCSAgICAgIHN0eWxlOiAibG9uZyIKCSAgICB9LCBvcHRzKTsKCgkgICAgaWYgKCFpc0VuZ2xpc2ggJiYgaGFzUmVsYXRpdmUoKSkgewoJICAgICAgdGhpcy5ydGYgPSBnZXRDYWNoZWRSVEYoaW50bCwgb3B0cyk7CgkgICAgfQoJICB9CgoJICB2YXIgX3Byb3RvMyA9IFBvbHlSZWxGb3JtYXR0ZXIucHJvdG90eXBlOwoKCSAgX3Byb3RvMy5mb3JtYXQgPSBmdW5jdGlvbiBmb3JtYXQoY291bnQsIHVuaXQpIHsKCSAgICBpZiAodGhpcy5ydGYpIHsKCSAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCB0aGlzLm9wdHMubnVtZXJpYywgdGhpcy5vcHRzLnN0eWxlICE9PSAibG9uZyIpOwoJICAgIH0KCSAgfTsKCgkgIF9wcm90bzMuZm9ybWF0VG9QYXJ0cyA9IGZ1bmN0aW9uIGZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpIHsKCSAgICBpZiAodGhpcy5ydGYpIHsKCSAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KTsKCSAgICB9IGVsc2UgewoJICAgICAgcmV0dXJuIFtdOwoJICAgIH0KCSAgfTsKCgkgIHJldHVybiBQb2x5UmVsRm9ybWF0dGVyOwoJfSgpOwoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoKCXZhciBMb2NhbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBMb2NhbGUuZnJvbU9wdHMgPSBmdW5jdGlvbiBmcm9tT3B0cyhvcHRzKSB7CgkgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTsKCSAgfTsKCgkgIExvY2FsZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTikgewoJICAgIGlmIChkZWZhdWx0VG9FTiA9PT0gdm9pZCAwKSB7CgkgICAgICBkZWZhdWx0VG9FTiA9IGZhbHNlOwoJICAgIH0KCgkgICAgdmFyIHNwZWNpZmllZExvY2FsZSA9IGxvY2FsZSB8fCBTZXR0aW5ncy5kZWZhdWx0TG9jYWxlOyAvLyB0aGUgc3lzdGVtIGxvY2FsZSBpcyB1c2VmdWwgZm9yIGh1bWFuIHJlYWRhYmxlIHN0cmluZ3MgYnV0IGFubm95aW5nIGZvciBwYXJzaW5nL2Zvcm1hdHRpbmcga25vd24gZm9ybWF0cwoKCSAgICB2YXIgbG9jYWxlUiA9IHNwZWNpZmllZExvY2FsZSB8fCAoZGVmYXVsdFRvRU4gPyAiZW4tVVMiIDogc3lzdGVtTG9jYWxlKCkpOwoJICAgIHZhciBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07CgkgICAgdmFyIG91dHB1dENhbGVuZGFyUiA9IG91dHB1dENhbGVuZGFyIHx8IFNldHRpbmdzLmRlZmF1bHRPdXRwdXRDYWxlbmRhcjsKCSAgICByZXR1cm4gbmV3IExvY2FsZShsb2NhbGVSLCBudW1iZXJpbmdTeXN0ZW1SLCBvdXRwdXRDYWxlbmRhclIsIHNwZWNpZmllZExvY2FsZSk7CgkgIH07CgoJICBMb2NhbGUucmVzZXRDYWNoZSA9IGZ1bmN0aW9uIHJlc2V0Q2FjaGUoKSB7CgkgICAgc3lzTG9jYWxlQ2FjaGUgPSBudWxsOwoJICAgIGludGxEVENhY2hlID0ge307CgkgICAgaW50bE51bUNhY2hlID0ge307CgkgICAgaW50bFJlbENhY2hlID0ge307CgkgIH07CgoJICBMb2NhbGUuZnJvbU9iamVjdCA9IGZ1bmN0aW9uIGZyb21PYmplY3QoX3RlbXApIHsKCSAgICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLAoJICAgICAgICBsb2NhbGUgPSBfcmVmLmxvY2FsZSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX3JlZi5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG91dHB1dENhbGVuZGFyID0gX3JlZi5vdXRwdXRDYWxlbmRhcjsKCgkgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTsKCSAgfTsKCgkgIGZ1bmN0aW9uIExvY2FsZShsb2NhbGUsIG51bWJlcmluZywgb3V0cHV0Q2FsZW5kYXIsIHNwZWNpZmllZExvY2FsZSkgewoJICAgIHZhciBfcGFyc2VMb2NhbGVTdHJpbmcgPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpLAoJICAgICAgICBwYXJzZWRMb2NhbGUgPSBfcGFyc2VMb2NhbGVTdHJpbmdbMF0sCgkgICAgICAgIHBhcnNlZE51bWJlcmluZ1N5c3RlbSA9IF9wYXJzZUxvY2FsZVN0cmluZ1sxXSwKCSAgICAgICAgcGFyc2VkT3V0cHV0Q2FsZW5kYXIgPSBfcGFyc2VMb2NhbGVTdHJpbmdbMl07CgoJICAgIHRoaXMubG9jYWxlID0gcGFyc2VkTG9jYWxlOwoJICAgIHRoaXMubnVtYmVyaW5nU3lzdGVtID0gbnVtYmVyaW5nIHx8IHBhcnNlZE51bWJlcmluZ1N5c3RlbSB8fCBudWxsOwoJICAgIHRoaXMub3V0cHV0Q2FsZW5kYXIgPSBvdXRwdXRDYWxlbmRhciB8fCBwYXJzZWRPdXRwdXRDYWxlbmRhciB8fCBudWxsOwoJICAgIHRoaXMuaW50bCA9IGludGxDb25maWdTdHJpbmcodGhpcy5sb2NhbGUsIHRoaXMubnVtYmVyaW5nU3lzdGVtLCB0aGlzLm91dHB1dENhbGVuZGFyKTsKCSAgICB0aGlzLndlZWtkYXlzQ2FjaGUgPSB7CgkgICAgICBmb3JtYXQ6IHt9LAoJICAgICAgc3RhbmRhbG9uZToge30KCSAgICB9OwoJICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7CgkgICAgICBmb3JtYXQ6IHt9LAoJICAgICAgc3RhbmRhbG9uZToge30KCSAgICB9OwoJICAgIHRoaXMubWVyaWRpZW1DYWNoZSA9IG51bGw7CgkgICAgdGhpcy5lcmFDYWNoZSA9IHt9OwoJICAgIHRoaXMuc3BlY2lmaWVkTG9jYWxlID0gc3BlY2lmaWVkTG9jYWxlOwoJICAgIHRoaXMuZmFzdE51bWJlcnNDYWNoZWQgPSBudWxsOwoJICB9CgoJICB2YXIgX3Byb3RvNCA9IExvY2FsZS5wcm90b3R5cGU7CgoJICBfcHJvdG80Lmxpc3RpbmdNb2RlID0gZnVuY3Rpb24gbGlzdGluZ01vZGUoKSB7CgkgICAgdmFyIGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7CgkgICAgdmFyIGhhc05vV2VpcmRuZXNzID0gKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSAibGF0biIpICYmICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09ICJncmVnb3J5Iik7CgkgICAgcmV0dXJuIGlzQWN0dWFsbHlFbiAmJiBoYXNOb1dlaXJkbmVzcyA/ICJlbiIgOiAiaW50bCI7CgkgIH07CgoJICBfcHJvdG80LmNsb25lID0gZnVuY3Rpb24gY2xvbmUoYWx0cykgewoJICAgIGlmICghYWx0cyB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhbHRzKS5sZW5ndGggPT09IDApIHsKCSAgICAgIHJldHVybiB0aGlzOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSwgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhciwgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZSk7CgkgICAgfQoJICB9OwoKCSAgX3Byb3RvNC5yZWRlZmF1bHRUb0VOID0gZnVuY3Rpb24gcmVkZWZhdWx0VG9FTihhbHRzKSB7CgkgICAgaWYgKGFsdHMgPT09IHZvaWQgMCkgewoJICAgICAgYWx0cyA9IHt9OwoJICAgIH0KCgkgICAgcmV0dXJuIHRoaXMuY2xvbmUoX2V4dGVuZHMoe30sIGFsdHMsIHsKCSAgICAgIGRlZmF1bHRUb0VOOiB0cnVlCgkgICAgfSkpOwoJICB9OwoKCSAgX3Byb3RvNC5yZWRlZmF1bHRUb1N5c3RlbSA9IGZ1bmN0aW9uIHJlZGVmYXVsdFRvU3lzdGVtKGFsdHMpIHsKCSAgICBpZiAoYWx0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBhbHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5jbG9uZShfZXh0ZW5kcyh7fSwgYWx0cywgewoJICAgICAgZGVmYXVsdFRvRU46IGZhbHNlCgkgICAgfSkpOwoJICB9OwoKCSAgX3Byb3RvNC5tb250aHMgPSBmdW5jdGlvbiBtb250aHMkMShsZW5ndGgsIGZvcm1hdCwgZGVmYXVsdE9LKSB7CgkgICAgdmFyIF90aGlzID0gdGhpczsKCgkgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CgkgICAgICBmb3JtYXQgPSBmYWxzZTsKCSAgICB9CgoJICAgIGlmIChkZWZhdWx0T0sgPT09IHZvaWQgMCkgewoJICAgICAgZGVmYXVsdE9LID0gdHJ1ZTsKCSAgICB9CgoJICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIG1vbnRocywgZnVuY3Rpb24gKCkgewoJICAgICAgdmFyIGludGwgPSBmb3JtYXQgPyB7CgkgICAgICAgIG1vbnRoOiBsZW5ndGgsCgkgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICB9IDogewoJICAgICAgICBtb250aDogbGVuZ3RoCgkgICAgICB9LAoJICAgICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/ICJmb3JtYXQiIDogInN0YW5kYWxvbmUiOwoKCSAgICAgIGlmICghX3RoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7CgkgICAgICAgIF90aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcE1vbnRocyhmdW5jdGlvbiAoZHQpIHsKCSAgICAgICAgICByZXR1cm4gX3RoaXMuZXh0cmFjdChkdCwgaW50bCwgIm1vbnRoIik7CgkgICAgICAgIH0pOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBfdGhpcy5tb250aHNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07CgkgICAgfSk7CgkgIH07CgoJICBfcHJvdG80LndlZWtkYXlzID0gZnVuY3Rpb24gd2Vla2RheXMkMShsZW5ndGgsIGZvcm1hdCwgZGVmYXVsdE9LKSB7CgkgICAgdmFyIF90aGlzMiA9IHRoaXM7CgoJICAgIGlmIChmb3JtYXQgPT09IHZvaWQgMCkgewoJICAgICAgZm9ybWF0ID0gZmFsc2U7CgkgICAgfQoKCSAgICBpZiAoZGVmYXVsdE9LID09PSB2b2lkIDApIHsKCSAgICAgIGRlZmF1bHRPSyA9IHRydWU7CgkgICAgfQoKCSAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCB3ZWVrZGF5cywgZnVuY3Rpb24gKCkgewoJICAgICAgdmFyIGludGwgPSBmb3JtYXQgPyB7CgkgICAgICAgIHdlZWtkYXk6IGxlbmd0aCwKCSAgICAgICAgeWVhcjogIm51bWVyaWMiLAoJICAgICAgICBtb250aDogImxvbmciLAoJICAgICAgICBkYXk6ICJudW1lcmljIgoJICAgICAgfSA6IHsKCSAgICAgICAgd2Vla2RheTogbGVuZ3RoCgkgICAgICB9LAoJICAgICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/ICJmb3JtYXQiIDogInN0YW5kYWxvbmUiOwoKCSAgICAgIGlmICghX3RoaXMyLndlZWtkYXlzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7CgkgICAgICAgIF90aGlzMi53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKGZ1bmN0aW9uIChkdCkgewoJICAgICAgICAgIHJldHVybiBfdGhpczIuZXh0cmFjdChkdCwgaW50bCwgIndlZWtkYXkiKTsKCSAgICAgICAgfSk7CgkgICAgICB9CgoJICAgICAgcmV0dXJuIF90aGlzMi53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTsKCSAgICB9KTsKCSAgfTsKCgkgIF9wcm90bzQubWVyaWRpZW1zID0gZnVuY3Rpb24gbWVyaWRpZW1zJDEoZGVmYXVsdE9LKSB7CgkgICAgdmFyIF90aGlzMyA9IHRoaXM7CgoJICAgIGlmIChkZWZhdWx0T0sgPT09IHZvaWQgMCkgewoJICAgICAgZGVmYXVsdE9LID0gdHJ1ZTsKCSAgICB9CgoJICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgdW5kZWZpbmVkLCBkZWZhdWx0T0ssIGZ1bmN0aW9uICgpIHsKCSAgICAgIHJldHVybiBtZXJpZGllbXM7CgkgICAgfSwgZnVuY3Rpb24gKCkgewoJICAgICAgLy8gSW4gdGhlb3J5IHRoZXJlIGNvdWxkIGJlIGFyaWJpdHJhcnkgZGF5IHBlcmlvZHMuIFdlJ3JlIGdvbm5hIGFzc3VtZSB0aGVyZSBhcmUgZXhhY3RseSB0d28KCSAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci4KCSAgICAgIGlmICghX3RoaXMzLm1lcmlkaWVtQ2FjaGUpIHsKCSAgICAgICAgdmFyIGludGwgPSB7CgkgICAgICAgICAgaG91cjogIm51bWVyaWMiLAoJICAgICAgICAgIGhvdXJDeWNsZTogImgxMiIKCSAgICAgICAgfTsKCSAgICAgICAgX3RoaXMzLm1lcmlkaWVtQ2FjaGUgPSBbRGF0ZVRpbWUudXRjKDIwMTYsIDExLCAxMywgOSksIERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDE5KV0ubWFwKGZ1bmN0aW9uIChkdCkgewoJICAgICAgICAgIHJldHVybiBfdGhpczMuZXh0cmFjdChkdCwgaW50bCwgImRheXBlcmlvZCIpOwoJICAgICAgICB9KTsKCSAgICAgIH0KCgkgICAgICByZXR1cm4gX3RoaXMzLm1lcmlkaWVtQ2FjaGU7CgkgICAgfSk7CgkgIH07CgoJICBfcHJvdG80LmVyYXMgPSBmdW5jdGlvbiBlcmFzJDEobGVuZ3RoLCBkZWZhdWx0T0spIHsKCSAgICB2YXIgX3RoaXM0ID0gdGhpczsKCgkgICAgaWYgKGRlZmF1bHRPSyA9PT0gdm9pZCAwKSB7CgkgICAgICBkZWZhdWx0T0sgPSB0cnVlOwoJICAgIH0KCgkgICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgZXJhcywgZnVuY3Rpb24gKCkgewoJICAgICAgdmFyIGludGwgPSB7CgkgICAgICAgIGVyYTogbGVuZ3RoCgkgICAgICB9OyAvLyBUaGlzIGlzIHByb2JsZW1hdGljLiBEaWZmZXJlbnQgY2FsZW5kYXJzIGFyZSBnb2luZyB0byBkZWZpbmUgZXJhcyB0b3RhbGx5IGRpZmZlcmVudGx5LiBXaGF0IEkgbmVlZCBpcyB0aGUgbWluaW11bSBzZXQgb2YgZGF0ZXMKCSAgICAgIC8vIHRvIGRlZmluaXRlbHkgZW51bWVyYXRlIHRoZW0uCgoJICAgICAgaWYgKCFfdGhpczQuZXJhQ2FjaGVbbGVuZ3RoXSkgewoJICAgICAgICBfdGhpczQuZXJhQ2FjaGVbbGVuZ3RoXSA9IFtEYXRlVGltZS51dGMoLTQwLCAxLCAxKSwgRGF0ZVRpbWUudXRjKDIwMTcsIDEsIDEpXS5tYXAoZnVuY3Rpb24gKGR0KSB7CgkgICAgICAgICAgcmV0dXJuIF90aGlzNC5leHRyYWN0KGR0LCBpbnRsLCAiZXJhIik7CgkgICAgICAgIH0pOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBfdGhpczQuZXJhQ2FjaGVbbGVuZ3RoXTsKCSAgICB9KTsKCSAgfTsKCgkgIF9wcm90bzQuZXh0cmFjdCA9IGZ1bmN0aW9uIGV4dHJhY3QoZHQsIGludGxPcHRzLCBmaWVsZCkgewoJICAgIHZhciBkZiA9IHRoaXMuZHRGb3JtYXR0ZXIoZHQsIGludGxPcHRzKSwKCSAgICAgICAgcmVzdWx0cyA9IGRmLmZvcm1hdFRvUGFydHMoKSwKCSAgICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoZnVuY3Rpb24gKG0pIHsKCSAgICAgIHJldHVybiBtLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQ7CgkgICAgfSk7CgkgICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsOwoJICB9OwoKCSAgX3Byb3RvNC5udW1iZXJGb3JtYXR0ZXIgPSBmdW5jdGlvbiBudW1iZXJGb3JtYXR0ZXIob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKQoJICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpCgkgICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTsKCSAgfTsKCgkgIF9wcm90bzQuZHRGb3JtYXR0ZXIgPSBmdW5jdGlvbiBkdEZvcm1hdHRlcihkdCwgaW50bE9wdHMpIHsKCSAgICBpZiAoaW50bE9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgaW50bE9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiBuZXcgUG9seURhdGVGb3JtYXR0ZXIoZHQsIHRoaXMuaW50bCwgaW50bE9wdHMpOwoJICB9OwoKCSAgX3Byb3RvNC5yZWxGb3JtYXR0ZXIgPSBmdW5jdGlvbiByZWxGb3JtYXR0ZXIob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiBuZXcgUG9seVJlbEZvcm1hdHRlcih0aGlzLmludGwsIHRoaXMuaXNFbmdsaXNoKCksIG9wdHMpOwoJICB9OwoKCSAgX3Byb3RvNC5saXN0Rm9ybWF0dGVyID0gZnVuY3Rpb24gbGlzdEZvcm1hdHRlcihvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgcmV0dXJuIGdldENhY2hlZExGKHRoaXMuaW50bCwgb3B0cyk7CgkgIH07CgoJICBfcHJvdG80LmlzRW5nbGlzaCA9IGZ1bmN0aW9uIGlzRW5nbGlzaCgpIHsKCSAgICByZXR1cm4gdGhpcy5sb2NhbGUgPT09ICJlbiIgfHwgdGhpcy5sb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gImVuLXVzIiB8fCBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmludGwpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZS5zdGFydHNXaXRoKCJlbi11cyIpOwoJICB9OwoKCSAgX3Byb3RvNC5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXIpIHsKCSAgICByZXR1cm4gdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJiB0aGlzLm51bWJlcmluZ1N5c3RlbSA9PT0gb3RoZXIubnVtYmVyaW5nU3lzdGVtICYmIHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG90aGVyLm91dHB1dENhbGVuZGFyOwoJICB9OwoKCSAgX2NyZWF0ZUNsYXNzKExvY2FsZSwgW3sKCSAgICBrZXk6ICJmYXN0TnVtYmVycyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7CgkgICAgICAgIHRoaXMuZmFzdE51bWJlcnNDYWNoZWQgPSBzdXBwb3J0c0Zhc3ROdW1iZXJzKHRoaXMpOwoJICAgICAgfQoKCSAgICAgIHJldHVybiB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkOwoJICAgIH0KCSAgfV0pOwoKCSAgcmV0dXJuIExvY2FsZTsKCX0oKTsKCgkvKgoJICogVGhpcyBmaWxlIGhhbmRsZXMgcGFyc2luZyBmb3Igd2VsbC1zcGVjaWZpZWQgZm9ybWF0cy4gSGVyZSdzIGhvdyBpdCB3b3JrczoKCSAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLgoJICogQW4gZXh0cmFjdG9yIGlzIGp1c3QgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVnZXggbWF0Y2ggYXJyYXkgYW5kIHJldHVybnMgYSB7IHllYXI6IC4uLiwgbW9udGg6IC4uLiB9IG9iamVjdAoJICogcGFyc2UoKSBkb2VzIHRoZSB3b3JrIG9mIGV4ZWN1dGluZyB0aGUgcmVnZXggYW5kIGFwcGx5aW5nIHRoZSBleHRyYWN0b3IuIEl0IHRha2VzIG11bHRpcGxlIHJlZ2V4L2V4dHJhY3RvciBwYWlycyB0byB0cnkgaW4gc2VxdWVuY2UuCgkgKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgImN1cnNvciIgcmVwcmVzZW50aW5nIHRoZSBvZmZzZXQgaW4gdGhlIG1hdGNoIHRvIGxvb2sgYXQuIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBjb21iaW5lIGV4dHJhY3RvcnMuCgkgKiBjb21iaW5lRXh0cmFjdG9ycygpIGRvZXMgdGhlIHdvcmsgb2YgY29tYmluaW5nIHRoZW0sIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGN1cnNvciB0aHJvdWdoIG11bHRpcGxlIGV4dHJhY3Rpb25zLgoJICogU29tZSBleHRyYWN0aW9ucyBhcmUgc3VwZXIgZHVtYiBhbmQgc2ltcGxlUGFyc2UgYW5kIGZyb21TdHJpbmdzIGhlbHAgRFJZIHRoZW0uCgkgKi8KCglmdW5jdGlvbiBjb21iaW5lUmVnZXhlcygpIHsKCSAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHJlZ2V4ZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CgkgICAgcmVnZXhlc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTsKCSAgfQoKCSAgdmFyIGZ1bGwgPSByZWdleGVzLnJlZHVjZShmdW5jdGlvbiAoZiwgcikgewoJICAgIHJldHVybiBmICsgci5zb3VyY2U7CgkgIH0sICIiKTsKCSAgcmV0dXJuIFJlZ0V4cCgiXiIgKyBmdWxsICsgIiQiKTsKCX0KCglmdW5jdGlvbiBjb21iaW5lRXh0cmFjdG9ycygpIHsKCSAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBleHRyYWN0b3JzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7CgkgICAgZXh0cmFjdG9yc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdOwoJICB9CgoJICByZXR1cm4gZnVuY3Rpb24gKG0pIHsKCSAgICByZXR1cm4gZXh0cmFjdG9ycy5yZWR1Y2UoZnVuY3Rpb24gKF9yZWYsIGV4KSB7CgkgICAgICB2YXIgbWVyZ2VkVmFscyA9IF9yZWZbMF0sCgkgICAgICAgICAgbWVyZ2VkWm9uZSA9IF9yZWZbMV0sCgkgICAgICAgICAgY3Vyc29yID0gX3JlZlsyXTsKCgkgICAgICB2YXIgX2V4ID0gZXgobSwgY3Vyc29yKSwKCSAgICAgICAgICB2YWwgPSBfZXhbMF0sCgkgICAgICAgICAgem9uZSA9IF9leFsxXSwKCSAgICAgICAgICBuZXh0ID0gX2V4WzJdOwoKCSAgICAgIHJldHVybiBbX2V4dGVuZHMoe30sIG1lcmdlZFZhbHMsIHZhbCksIHpvbmUgfHwgbWVyZ2VkWm9uZSwgbmV4dF07CgkgICAgfSwgW3t9LCBudWxsLCAxXSkuc2xpY2UoMCwgMik7CgkgIH07Cgl9CgoJZnVuY3Rpb24gcGFyc2UocykgewoJICBpZiAocyA9PSBudWxsKSB7CgkgICAgcmV0dXJuIFtudWxsLCBudWxsXTsKCSAgfQoKCSAgZm9yICh2YXIgX2xlbjMgPSBhcmd1bWVudHMubGVuZ3RoLCBwYXR0ZXJucyA9IG5ldyBBcnJheShfbGVuMyA+IDEgPyBfbGVuMyAtIDEgOiAwKSwgX2tleTMgPSAxOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7CgkgICAgcGF0dGVybnNbX2tleTMgLSAxXSA9IGFyZ3VtZW50c1tfa2V5M107CgkgIH0KCgkgIGZvciAodmFyIF9pID0gMCwgX3BhdHRlcm5zID0gcGF0dGVybnM7IF9pIDwgX3BhdHRlcm5zLmxlbmd0aDsgX2krKykgewoJICAgIHZhciBfcGF0dGVybnMkX2kgPSBfcGF0dGVybnNbX2ldLAoJICAgICAgICByZWdleCA9IF9wYXR0ZXJucyRfaVswXSwKCSAgICAgICAgZXh0cmFjdG9yID0gX3BhdHRlcm5zJF9pWzFdOwoJICAgIHZhciBtID0gcmVnZXguZXhlYyhzKTsKCgkgICAgaWYgKG0pIHsKCSAgICAgIHJldHVybiBleHRyYWN0b3IobSk7CgkgICAgfQoJICB9CgoJICByZXR1cm4gW251bGwsIG51bGxdOwoJfQoKCWZ1bmN0aW9uIHNpbXBsZVBhcnNlKCkgewoJICBmb3IgKHZhciBfbGVuNCA9IGFyZ3VtZW50cy5sZW5ndGgsIGtleXMgPSBuZXcgQXJyYXkoX2xlbjQpLCBfa2V5NCA9IDA7IF9rZXk0IDwgX2xlbjQ7IF9rZXk0KyspIHsKCSAgICBrZXlzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07CgkgIH0KCgkgIHJldHVybiBmdW5jdGlvbiAobWF0Y2gsIGN1cnNvcikgewoJICAgIHZhciByZXQgPSB7fTsKCSAgICB2YXIgaTsKCgkgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKCSAgICAgIHJldFtrZXlzW2ldXSA9IHBhcnNlSW50ZWdlcihtYXRjaFtjdXJzb3IgKyBpXSk7CgkgICAgfQoKCSAgICByZXR1cm4gW3JldCwgbnVsbCwgY3Vyc29yICsgaV07CgkgIH07Cgl9IC8vIElTTyBhbmQgU1FMIHBhcnNpbmcKCgoJdmFyIG9mZnNldFJlZ2V4ID0gLyg/OihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPykvOwoJdmFyIGlzb0V4dGVuZGVkWm9uZSA9ICIoPzoiICsgb2Zmc2V0UmVnZXguc291cmNlICsgIj8oPzpcXFsoIiArIGlhbmFSZWdleC5zb3VyY2UgKyAiKVxcXSk/KT8iOwoJdmFyIGlzb1RpbWVCYXNlUmVnZXggPSAvKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlsuLF0oXGR7MSwzMH0pKT8pPyk/LzsKCXZhciBpc29UaW1lUmVnZXggPSBSZWdFeHAoIiIgKyBpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZSArIGlzb0V4dGVuZGVkWm9uZSk7Cgl2YXIgaXNvVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKCIoPzpUIiArIGlzb1RpbWVSZWdleC5zb3VyY2UgKyAiKT8iKTsKCXZhciBpc29ZbWRSZWdleCA9IC8oWystXVxkezZ9fFxkezR9KSg/Oi0/KFxkXGQpKD86LT8oXGRcZCkpPyk/LzsKCXZhciBpc29XZWVrUmVnZXggPSAvKFxkezR9KS0/VyhcZFxkKSg/Oi0/KFxkKSk/LzsKCXZhciBpc29PcmRpbmFsUmVnZXggPSAvKFxkezR9KS0/KFxkezN9KS87Cgl2YXIgZXh0cmFjdElTT1dlZWtEYXRhID0gc2ltcGxlUGFyc2UoIndlZWtZZWFyIiwgIndlZWtOdW1iZXIiLCAid2Vla0RheSIpOwoJdmFyIGV4dHJhY3RJU09PcmRpbmFsRGF0YSA9IHNpbXBsZVBhcnNlKCJ5ZWFyIiwgIm9yZGluYWwiKTsKCXZhciBzcWxZbWRSZWdleCA9IC8oXGR7NH0pLShcZFxkKS0oXGRcZCkvOyAvLyBkdW1iZWQtZG93biB2ZXJzaW9uIG9mIHRoZSBJU08gb25lCgoJdmFyIHNxbFRpbWVSZWdleCA9IFJlZ0V4cChpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZSArICIgPyg/OiIgKyBvZmZzZXRSZWdleC5zb3VyY2UgKyAifCgiICsgaWFuYVJlZ2V4LnNvdXJjZSArICIpKT8iKTsKCXZhciBzcWxUaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoIig/OiAiICsgc3FsVGltZVJlZ2V4LnNvdXJjZSArICIpPyIpOwoKCWZ1bmN0aW9uIGludChtYXRjaCwgcG9zLCBmYWxsYmFjaykgewoJICB2YXIgbSA9IG1hdGNoW3Bvc107CgkgIHJldHVybiBpc1VuZGVmaW5lZChtKSA/IGZhbGxiYWNrIDogcGFyc2VJbnRlZ2VyKG0pOwoJfQoKCWZ1bmN0aW9uIGV4dHJhY3RJU09ZbWQobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgaXRlbSA9IHsKCSAgICB5ZWFyOiBpbnQobWF0Y2gsIGN1cnNvciksCgkgICAgbW9udGg6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMSksCgkgICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpCgkgIH07CgkgIHJldHVybiBbaXRlbSwgbnVsbCwgY3Vyc29yICsgM107Cgl9CgoJZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgaXRlbSA9IHsKCSAgICBob3VyczogaW50KG1hdGNoLCBjdXJzb3IsIDApLAoJICAgIG1pbnV0ZXM6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMCksCgkgICAgc2Vjb25kczogaW50KG1hdGNoLCBjdXJzb3IgKyAyLCAwKSwKCSAgICBtaWxsaXNlY29uZHM6IHBhcnNlTWlsbGlzKG1hdGNoW2N1cnNvciArIDNdKQoJICB9OwoJICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDRdOwoJfQoKCWZ1bmN0aW9uIGV4dHJhY3RJU09PZmZzZXQobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgbG9jYWwgPSAhbWF0Y2hbY3Vyc29yXSAmJiAhbWF0Y2hbY3Vyc29yICsgMV0sCgkgICAgICBmdWxsT2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG1hdGNoW2N1cnNvciArIDFdLCBtYXRjaFtjdXJzb3IgKyAyXSksCgkgICAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpOwoJICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTsKCX0KCglmdW5jdGlvbiBleHRyYWN0SUFOQVpvbmUobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsOwoJICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTsKCX0gLy8gSVNPIHRpbWUgcGFyc2luZwoKCgl2YXIgaXNvVGltZU9ubHkgPSBSZWdFeHAoIl5UPyIgKyBpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZSArICIkIik7IC8vIElTTyBkdXJhdGlvbiBwYXJzaW5nCgoJdmFyIGlzb0R1cmF0aW9uID0gL14tP1AoPzooPzooLT9cZHsxLDl9KD86XC5cZHsxLDl9KT8pWSk/KD86KC0/XGR7MSw5fSg/OlwuXGR7MSw5fSk/KU0pPyg/OigtP1xkezEsOX0oPzpcLlxkezEsOX0pPylXKT8oPzooLT9cZHsxLDl9KD86XC5cZHsxLDl9KT8pRCk/KD86VCg/OigtP1xkezEsOX0oPzpcLlxkezEsOX0pPylIKT8oPzooLT9cZHsxLDl9KD86XC5cZHsxLDl9KT8pTSk/KD86KC0/XGR7MSwyMH0pKD86Wy4sXSgtP1xkezEsOX0pKT9TKT8pPykkLzsKCglmdW5jdGlvbiBleHRyYWN0SVNPRHVyYXRpb24obWF0Y2gpIHsKCSAgdmFyIHMgPSBtYXRjaFswXSwKCSAgICAgIHllYXJTdHIgPSBtYXRjaFsxXSwKCSAgICAgIG1vbnRoU3RyID0gbWF0Y2hbMl0sCgkgICAgICB3ZWVrU3RyID0gbWF0Y2hbM10sCgkgICAgICBkYXlTdHIgPSBtYXRjaFs0XSwKCSAgICAgIGhvdXJTdHIgPSBtYXRjaFs1XSwKCSAgICAgIG1pbnV0ZVN0ciA9IG1hdGNoWzZdLAoJICAgICAgc2Vjb25kU3RyID0gbWF0Y2hbN10sCgkgICAgICBtaWxsaXNlY29uZHNTdHIgPSBtYXRjaFs4XTsKCSAgdmFyIGhhc05lZ2F0aXZlUHJlZml4ID0gc1swXSA9PT0gIi0iOwoJICB2YXIgbmVnYXRpdmVTZWNvbmRzID0gc2Vjb25kU3RyICYmIHNlY29uZFN0clswXSA9PT0gIi0iOwoKCSAgdmFyIG1heWJlTmVnYXRlID0gZnVuY3Rpb24gbWF5YmVOZWdhdGUobnVtLCBmb3JjZSkgewoJICAgIGlmIChmb3JjZSA9PT0gdm9pZCAwKSB7CgkgICAgICBmb3JjZSA9IGZhbHNlOwoJICAgIH0KCgkgICAgcmV0dXJuIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCBudW0gJiYgaGFzTmVnYXRpdmVQcmVmaXgpID8gLW51bSA6IG51bTsKCSAgfTsKCgkgIHJldHVybiBbewoJICAgIHllYXJzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHllYXJTdHIpKSwKCSAgICBtb250aHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobW9udGhTdHIpKSwKCSAgICB3ZWVrczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh3ZWVrU3RyKSksCgkgICAgZGF5czogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhkYXlTdHIpKSwKCSAgICBob3VyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhob3VyU3RyKSksCgkgICAgbWludXRlczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhtaW51dGVTdHIpKSwKCSAgICBzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHNlY29uZFN0ciksIHNlY29uZFN0ciA9PT0gIi0wIiksCgkgICAgbWlsbGlzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZU1pbGxpcyhtaWxsaXNlY29uZHNTdHIpLCBuZWdhdGl2ZVNlY29uZHMpCgkgIH1dOwoJfSAvLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmsKCS8vIGFuZCBub3QganVzdCB0aGF0IHdlJ3JlIGluIC0yNDAgKnJpZ2h0IG5vdyouIEJ1dCBzaW5jZSBJIGRvbid0IHRoaW5rIHRoZXNlIGFyZSB1c2VkIHRoYXQgb2Z0ZW4KCS8vIEknbSBqdXN0IGdvaW5nIHRvIGlnbm9yZSB0aGF0CgoKCXZhciBvYnNPZmZzZXRzID0gewoJICBHTVQ6IDAsCgkgIEVEVDogLTQgKiA2MCwKCSAgRVNUOiAtNSAqIDYwLAoJICBDRFQ6IC01ICogNjAsCgkgIENTVDogLTYgKiA2MCwKCSAgTURUOiAtNiAqIDYwLAoJICBNU1Q6IC03ICogNjAsCgkgIFBEVDogLTcgKiA2MCwKCSAgUFNUOiAtOCAqIDYwCgl9OwoKCWZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7CgkgIHZhciByZXN1bHQgPSB7CgkgICAgeWVhcjogeWVhclN0ci5sZW5ndGggPT09IDIgPyB1bnRydW5jYXRlWWVhcihwYXJzZUludGVnZXIoeWVhclN0cikpIDogcGFyc2VJbnRlZ2VyKHllYXJTdHIpLAoJICAgIG1vbnRoOiBtb250aHNTaG9ydC5pbmRleE9mKG1vbnRoU3RyKSArIDEsCgkgICAgZGF5OiBwYXJzZUludGVnZXIoZGF5U3RyKSwKCSAgICBob3VyOiBwYXJzZUludGVnZXIoaG91clN0ciksCgkgICAgbWludXRlOiBwYXJzZUludGVnZXIobWludXRlU3RyKQoJICB9OwoJICBpZiAoc2Vjb25kU3RyKSByZXN1bHQuc2Vjb25kID0gcGFyc2VJbnRlZ2VyKHNlY29uZFN0cik7CgoJICBpZiAod2Vla2RheVN0cikgewoJICAgIHJlc3VsdC53ZWVrZGF5ID0gd2Vla2RheVN0ci5sZW5ndGggPiAzID8gd2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxIDogd2Vla2RheXNTaG9ydC5pbmRleE9mKHdlZWtkYXlTdHIpICsgMTsKCSAgfQoKCSAgcmV0dXJuIHJlc3VsdDsKCX0gLy8gUkZDIDI4MjIvNTMyMgoKCgl2YXIgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXHMpPyhcZHsxLDJ9KVxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxzKFxkezIsNH0pXHMoXGRcZCk6KFxkXGQpKD86OihcZFxkKSk/XHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KD86KFsrLV1cZFxkKShcZFxkKSkpJC87CgoJZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHsKCSAgdmFyIHdlZWtkYXlTdHIgPSBtYXRjaFsxXSwKCSAgICAgIGRheVN0ciA9IG1hdGNoWzJdLAoJICAgICAgbW9udGhTdHIgPSBtYXRjaFszXSwKCSAgICAgIHllYXJTdHIgPSBtYXRjaFs0XSwKCSAgICAgIGhvdXJTdHIgPSBtYXRjaFs1XSwKCSAgICAgIG1pbnV0ZVN0ciA9IG1hdGNoWzZdLAoJICAgICAgc2Vjb25kU3RyID0gbWF0Y2hbN10sCgkgICAgICBvYnNPZmZzZXQgPSBtYXRjaFs4XSwKCSAgICAgIG1pbE9mZnNldCA9IG1hdGNoWzldLAoJICAgICAgb2ZmSG91clN0ciA9IG1hdGNoWzEwXSwKCSAgICAgIG9mZk1pbnV0ZVN0ciA9IG1hdGNoWzExXSwKCSAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKCSAgdmFyIG9mZnNldDsKCgkgIGlmIChvYnNPZmZzZXQpIHsKCSAgICBvZmZzZXQgPSBvYnNPZmZzZXRzW29ic09mZnNldF07CgkgIH0gZWxzZSBpZiAobWlsT2Zmc2V0KSB7CgkgICAgb2Zmc2V0ID0gMDsKCSAgfSBlbHNlIHsKCSAgICBvZmZzZXQgPSBzaWduZWRPZmZzZXQob2ZmSG91clN0ciwgb2ZmTWludXRlU3RyKTsKCSAgfQoKCSAgcmV0dXJuIFtyZXN1bHQsIG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KV07Cgl9CgoJZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykgewoJICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZQoJICByZXR1cm4gcy5yZXBsYWNlKC9cKFteKV0qXCl8W1xuXHRdL2csICIgIikucmVwbGFjZSgvKFxzXHMrKS9nLCAiICIpLnRyaW0oKTsKCX0gLy8gaHR0cCBkYXRlCgoKCXZhciByZmMxMTIzID0gL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSwgKFxkXGQpIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKFxkezR9KSAoXGRcZCk6KFxkXGQpOihcZFxkKSBHTVQkLywKCSAgICByZmM4NTAgPSAvXihNb25kYXl8VHVlc2RheXxXZWRzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXGRcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXGRcZCkgKFxkXGQpOihcZFxkKTooXGRcZCkgR01UJC8sCgkgICAgYXNjaWkgPSAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKCBcZHxcZFxkKSAoXGRcZCk6KFxkXGQpOihcZFxkKSAoXGR7NH0pJC87CgoJZnVuY3Rpb24gZXh0cmFjdFJGQzExMjNPcjg1MChtYXRjaCkgewoJICB2YXIgd2Vla2RheVN0ciA9IG1hdGNoWzFdLAoJICAgICAgZGF5U3RyID0gbWF0Y2hbMl0sCgkgICAgICBtb250aFN0ciA9IG1hdGNoWzNdLAoJICAgICAgeWVhclN0ciA9IG1hdGNoWzRdLAoJICAgICAgaG91clN0ciA9IG1hdGNoWzVdLAoJICAgICAgbWludXRlU3RyID0gbWF0Y2hbNl0sCgkgICAgICBzZWNvbmRTdHIgPSBtYXRjaFs3XSwKCSAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKCSAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07Cgl9CgoJZnVuY3Rpb24gZXh0cmFjdEFTQ0lJKG1hdGNoKSB7CgkgIHZhciB3ZWVrZGF5U3RyID0gbWF0Y2hbMV0sCgkgICAgICBtb250aFN0ciA9IG1hdGNoWzJdLAoJICAgICAgZGF5U3RyID0gbWF0Y2hbM10sCgkgICAgICBob3VyU3RyID0gbWF0Y2hbNF0sCgkgICAgICBtaW51dGVTdHIgPSBtYXRjaFs1XSwKCSAgICAgIHNlY29uZFN0ciA9IG1hdGNoWzZdLAoJICAgICAgeWVhclN0ciA9IG1hdGNoWzddLAoJICAgICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpOwoJICByZXR1cm4gW3Jlc3VsdCwgRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlXTsKCX0KCgl2YXIgaXNvWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1ltZFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpOwoJdmFyIGlzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvV2Vla1JlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpOwoJdmFyIGlzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvT3JkaW5hbFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpOwoJdmFyIGlzb1RpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvVGltZVJlZ2V4KTsKCXZhciBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09ZbWQsIGV4dHJhY3RJU09UaW1lLCBleHRyYWN0SVNPT2Zmc2V0LCBleHRyYWN0SUFOQVpvbmUpOwoJdmFyIGV4dHJhY3RJU09XZWVrVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09XZWVrRGF0YSwgZXh0cmFjdElTT1RpbWUsIGV4dHJhY3RJU09PZmZzZXQsIGV4dHJhY3RJQU5BWm9uZSk7Cgl2YXIgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZSA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09PcmRpbmFsRGF0YSwgZXh0cmFjdElTT1RpbWUsIGV4dHJhY3RJU09PZmZzZXQsIGV4dHJhY3RJQU5BWm9uZSk7Cgl2YXIgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhleHRyYWN0SVNPVGltZSwgZXh0cmFjdElTT09mZnNldCwgZXh0cmFjdElBTkFab25lKTsKCS8qCgkgKiBAcHJpdmF0ZQoJICovCgoJZnVuY3Rpb24gcGFyc2VJU09EYXRlKHMpIHsKCSAgcmV0dXJuIHBhcnNlKHMsIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sIFtpc29XZWVrV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0XSwgW2lzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPT3JkaW5hbERhdGVBbmRUaW1lXSwgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF0pOwoJfQoJZnVuY3Rpb24gcGFyc2VSRkMyODIyRGF0ZShzKSB7CgkgIHJldHVybiBwYXJzZShwcmVwcm9jZXNzUkZDMjgyMihzKSwgW3JmYzI4MjIsIGV4dHJhY3RSRkMyODIyXSk7Cgl9CglmdW5jdGlvbiBwYXJzZUhUVFBEYXRlKHMpIHsKCSAgcmV0dXJuIHBhcnNlKHMsIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSwgW3JmYzg1MCwgZXh0cmFjdFJGQzExMjNPcjg1MF0sIFthc2NpaSwgZXh0cmFjdEFTQ0lJXSk7Cgl9CglmdW5jdGlvbiBwYXJzZUlTT0R1cmF0aW9uKHMpIHsKCSAgcmV0dXJuIHBhcnNlKHMsIFtpc29EdXJhdGlvbiwgZXh0cmFjdElTT0R1cmF0aW9uXSk7Cgl9Cgl2YXIgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpOwoJZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7CgkgIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pOwoJfQoJdmFyIHNxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhzcWxZbWRSZWdleCwgc3FsVGltZUV4dGVuc2lvblJlZ2V4KTsKCXZhciBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7Cgl2YXIgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZSA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09UaW1lLCBleHRyYWN0SVNPT2Zmc2V0LCBleHRyYWN0SUFOQVpvbmUpOwoJZnVuY3Rpb24gcGFyc2VTUUwocykgewoJICByZXR1cm4gcGFyc2UocywgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSwgW3NxbFRpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZU9mZnNldEFuZElBTkFab25lXSk7Cgl9CgoJdmFyIElOVkFMSUQkMiA9ICJJbnZhbGlkIER1cmF0aW9uIjsgLy8gdW5pdCBjb252ZXJzaW9uIGNvbnN0YW50cwoKCXZhciBsb3dPcmRlck1hdHJpeCA9IHsKCSAgd2Vla3M6IHsKCSAgICBkYXlzOiA3LAoJICAgIGhvdXJzOiA3ICogMjQsCgkgICAgbWludXRlczogNyAqIDI0ICogNjAsCgkgICAgc2Vjb25kczogNyAqIDI0ICogNjAgKiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIGRheXM6IHsKCSAgICBob3VyczogMjQsCgkgICAgbWludXRlczogMjQgKiA2MCwKCSAgICBzZWNvbmRzOiAyNCAqIDYwICogNjAsCgkgICAgbWlsbGlzZWNvbmRzOiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIGhvdXJzOiB7CgkgICAgbWludXRlczogNjAsCgkgICAgc2Vjb25kczogNjAgKiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIG1pbnV0ZXM6IHsKCSAgICBzZWNvbmRzOiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IDYwICogMTAwMAoJICB9LAoJICBzZWNvbmRzOiB7CgkgICAgbWlsbGlzZWNvbmRzOiAxMDAwCgkgIH0KCX0sCgkgICAgY2FzdWFsTWF0cml4ID0gX2V4dGVuZHMoewoJICB5ZWFyczogewoJICAgIHF1YXJ0ZXJzOiA0LAoJICAgIG1vbnRoczogMTIsCgkgICAgd2Vla3M6IDUyLAoJICAgIGRheXM6IDM2NSwKCSAgICBob3VyczogMzY1ICogMjQsCgkgICAgbWludXRlczogMzY1ICogMjQgKiA2MCwKCSAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsCgkgICAgbWlsbGlzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIHF1YXJ0ZXJzOiB7CgkgICAgbW9udGhzOiAzLAoJICAgIHdlZWtzOiAxMywKCSAgICBkYXlzOiA5MSwKCSAgICBob3VyczogOTEgKiAyNCwKCSAgICBtaW51dGVzOiA5MSAqIDI0ICogNjAsCgkgICAgc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAsCgkgICAgbWlsbGlzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCAqIDEwMDAKCSAgfSwKCSAgbW9udGhzOiB7CgkgICAgd2Vla3M6IDQsCgkgICAgZGF5czogMzAsCgkgICAgaG91cnM6IDMwICogMjQsCgkgICAgbWludXRlczogMzAgKiAyNCAqIDYwLAoJICAgIHNlY29uZHM6IDMwICogMjQgKiA2MCAqIDYwLAoJICAgIG1pbGxpc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0KCX0sIGxvd09yZGVyTWF0cml4KSwKCSAgICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCwKCSAgICBkYXlzSW5Nb250aEFjY3VyYXRlID0gMTQ2MDk3LjAgLyA0ODAwLAoJICAgIGFjY3VyYXRlTWF0cml4ID0gX2V4dGVuZHMoewoJICB5ZWFyczogewoJICAgIHF1YXJ0ZXJzOiA0LAoJICAgIG1vbnRoczogMTIsCgkgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDcsCgkgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlLAoJICAgIGhvdXJzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCwKCSAgICBtaW51dGVzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwLAoJICAgIHNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAKCSAgfSwKCSAgcXVhcnRlcnM6IHsKCSAgICBtb250aHM6IDMsCgkgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDI4LAoJICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSAvIDQsCgkgICAgaG91cnM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0IC8gNCwKCSAgICBtaW51dGVzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwIC8gNCwKCSAgICBzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgLyA0LAoJICAgIG1pbGxpc2Vjb25kczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCAvIDQKCSAgfSwKCSAgbW9udGhzOiB7CgkgICAgd2Vla3M6IGRheXNJbk1vbnRoQWNjdXJhdGUgLyA3LAoJICAgIGRheXM6IGRheXNJbk1vbnRoQWNjdXJhdGUsCgkgICAgaG91cnM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCwKCSAgICBtaW51dGVzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCwKCSAgICBzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwLAoJICAgIG1pbGxpc2Vjb25kczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAKCSAgfQoJfSwgbG93T3JkZXJNYXRyaXgpOyAvLyB1bml0cyBvcmRlcmVkIGJ5IHNpemUKCgl2YXIgb3JkZXJlZFVuaXRzJDEgPSBbInllYXJzIiwgInF1YXJ0ZXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiXTsKCXZhciByZXZlcnNlVW5pdHMgPSBvcmRlcmVkVW5pdHMkMS5zbGljZSgwKS5yZXZlcnNlKCk7IC8vIGNsb25lIHJlYWxseSBtZWFucyAiY3JlYXRlIGFub3RoZXIgaW5zdGFuY2UganVzdCBsaWtlIHRoaXMgb25lLCBidXQgd2l0aCB0aGVzZSBjaGFuZ2VzIgoKCWZ1bmN0aW9uIGNsb25lJDEoZHVyLCBhbHRzLCBjbGVhcikgewoJICBpZiAoY2xlYXIgPT09IHZvaWQgMCkgewoJICAgIGNsZWFyID0gZmFsc2U7CgkgIH0KCgkgIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHMKCSAgdmFyIGNvbmYgPSB7CgkgICAgdmFsdWVzOiBjbGVhciA/IGFsdHMudmFsdWVzIDogX2V4dGVuZHMoe30sIGR1ci52YWx1ZXMsIGFsdHMudmFsdWVzIHx8IHt9KSwKCSAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLAoJICAgIGNvbnZlcnNpb25BY2N1cmFjeTogYWx0cy5jb252ZXJzaW9uQWNjdXJhY3kgfHwgZHVyLmNvbnZlcnNpb25BY2N1cmFjeQoJICB9OwoJICByZXR1cm4gbmV3IER1cmF0aW9uKGNvbmYpOwoJfQoKCWZ1bmN0aW9uIGFudGlUcnVuYyhuKSB7CgkgIHJldHVybiBuIDwgMCA/IE1hdGguZmxvb3IobikgOiBNYXRoLmNlaWwobik7Cgl9IC8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnMKCgoJZnVuY3Rpb24gY29udmVydChtYXRyaXgsIGZyb21NYXAsIGZyb21Vbml0LCB0b01hcCwgdG9Vbml0KSB7CgkgIHZhciBjb252ID0gbWF0cml4W3RvVW5pdF1bZnJvbVVuaXRdLAoJICAgICAgcmF3ID0gZnJvbU1hcFtmcm9tVW5pdF0gLyBjb252LAoJICAgICAgc2FtZVNpZ24gPSBNYXRoLnNpZ24ocmF3KSA9PT0gTWF0aC5zaWduKHRvTWFwW3RvVW5pdF0pLAoJICAgICAgLy8gb2ssIHNvIHRoaXMgaXMgd2lsZCwgYnV0IHNlZSB0aGUgbWF0cml4IGluIHRoZSB0ZXN0cwoJICBhZGRlZCA9ICFzYW1lU2lnbiAmJiB0b01hcFt0b1VuaXRdICE9PSAwICYmIE1hdGguYWJzKHJhdykgPD0gMSA/IGFudGlUcnVuYyhyYXcpIDogTWF0aC50cnVuYyhyYXcpOwoJICB0b01hcFt0b1VuaXRdICs9IGFkZGVkOwoJICBmcm9tTWFwW2Zyb21Vbml0XSAtPSBhZGRlZCAqIGNvbnY7Cgl9IC8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnMKCgoJZnVuY3Rpb24gbm9ybWFsaXplVmFsdWVzKG1hdHJpeCwgdmFscykgewoJICByZXZlcnNlVW5pdHMucmVkdWNlKGZ1bmN0aW9uIChwcmV2aW91cywgY3VycmVudCkgewoJICAgIGlmICghaXNVbmRlZmluZWQodmFsc1tjdXJyZW50XSkpIHsKCSAgICAgIGlmIChwcmV2aW91cykgewoJICAgICAgICBjb252ZXJ0KG1hdHJpeCwgdmFscywgcHJldmlvdXMsIHZhbHMsIGN1cnJlbnQpOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBjdXJyZW50OwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gcHJldmlvdXM7CgkgICAgfQoJICB9LCBudWxsKTsKCX0KCS8qKgoJICogQSBEdXJhdGlvbiBvYmplY3QgcmVwcmVzZW50cyBhIHBlcmlvZCBvZiB0aW1lLCBsaWtlICIyIG1vbnRocyIgb3IgIjEgZGF5LCAxIGhvdXIiLiBDb25jZXB0dWFsbHksIGl0J3MganVzdCBhIG1hcCBvZiB1bml0cyB0byB0aGVpciBxdWFudGl0aWVzLCBhY2NvbXBhbmllZCBieSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS4gVGhleSBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24gb3IgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBMdXhvbiB0eXBlczsgZm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHtAbGluayBEYXRlVGltZSNwbHVzfSB0byBhZGQgYSBEdXJhdGlvbiBvYmplY3QgdG8gYSBEYXRlVGltZSwgcHJvZHVjaW5nIGFub3RoZXIgRGF0ZVRpbWUuCgkgKgoJICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBEdXJhdGlvbjoKCSAqCgkgKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYSBEdXJhdGlvbiwgdXNlIHtAbGluayBEdXJhdGlvbiNmcm9tTWlsbGlzfSwge0BsaW5rIER1cmF0aW9uI2Zyb21PYmplY3R9LCBvciB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT30uCgkgKiAqICoqVW5pdCB2YWx1ZXMqKiBTZWUgdGhlIHtAbGluayBEdXJhdGlvbiN5ZWFyc30sIHtAbGluayBEdXJhdGlvbi5tb250aHN9LCB7QGxpbmsgRHVyYXRpb24jd2Vla3N9LCB7QGxpbmsgRHVyYXRpb24jZGF5c30sIHtAbGluayBEdXJhdGlvbiNob3Vyc30sIHtAbGluayBEdXJhdGlvbiNtaW51dGVzfSwge0BsaW5rIER1cmF0aW9uI3NlY29uZHN9LCB7QGxpbmsgRHVyYXRpb24jbWlsbGlzZWNvbmRzfSBhY2Nlc3NvcnMuCgkgKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSAge0BsaW5rIER1cmF0aW9uI2xvY2FsZX0gYW5kIHtAbGluayBEdXJhdGlvbiNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy4KCSAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBuZXcgRHVyYXRpb25zIG91dCBvZiBvbGQgb25lcyB1c2Uge0BsaW5rIER1cmF0aW9uI3BsdXN9LCB7QGxpbmsgRHVyYXRpb24jbWludXN9LCB7QGxpbmsgRHVyYXRpb24jbm9ybWFsaXplfSwge0BsaW5rIER1cmF0aW9uI3NldH0sIHtAbGluayBEdXJhdGlvbiNyZWNvbmZpZ3VyZX0sIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSwgYW5kIHtAbGluayBEdXJhdGlvbiNuZWdhdGV9LgoJICogKiAqKk91dHB1dCoqIFRvIGNvbnZlcnQgdGhlIER1cmF0aW9uIGludG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCBzZWUge0BsaW5rIER1cmF0aW9uI2FzfSwge0BsaW5rIER1cmF0aW9uI3RvSVNPfSwge0BsaW5rIER1cmF0aW9uI3RvRm9ybWF0fSwgYW5kIHtAbGluayBEdXJhdGlvbiN0b0pTT059CgkgKgoJICogVGhlcmUncyBhcmUgbW9yZSBtZXRob2RzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCB2YWxpZGl0eSwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLgoJICovCgoKCXZhciBEdXJhdGlvbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CgkgIC8qKgoJICAgKiBAcHJpdmF0ZQoJICAgKi8KCSAgZnVuY3Rpb24gRHVyYXRpb24oY29uZmlnKSB7CgkgICAgdmFyIGFjY3VyYXRlID0gY29uZmlnLmNvbnZlcnNpb25BY2N1cmFjeSA9PT0gImxvbmd0ZXJtIiB8fCBmYWxzZTsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy52YWx1ZXMgPSBjb25maWcudmFsdWVzOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmxvYyA9IGNvbmZpZy5sb2MgfHwgTG9jYWxlLmNyZWF0ZSgpOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGFjY3VyYXRlID8gImxvbmd0ZXJtIiA6ICJjYXN1YWwiOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLm1hdHJpeCA9IGFjY3VyYXRlID8gYWNjdXJhdGVNYXRyaXggOiBjYXN1YWxNYXRyaXg7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMuaXNMdXhvbkR1cmF0aW9uID0gdHJ1ZTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIER1cmF0aW9uIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLgoJICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgoKCSAgRHVyYXRpb24uZnJvbU1pbGxpcyA9IGZ1bmN0aW9uIGZyb21NaWxsaXMoY291bnQsIG9wdHMpIHsKCSAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdCh7CgkgICAgICBtaWxsaXNlY29uZHM6IGNvdW50CgkgICAgfSwgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLgoJICAgKiBJZiB0aGlzIG9iamVjdCBpcyBlbXB0eSB0aGVuIGEgemVybyBtaWxsaXNlY29uZHMgZHVyYXRpb24gaXMgcmV0dXJuZWQuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbQoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXJzCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoucXVhcnRlcnMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrcwoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheXMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VycwoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZXMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmRzCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz1bXV0gLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIER1cmF0aW9uCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgRHVyYXRpb24uZnJvbU9iamVjdCA9IGZ1bmN0aW9uIGZyb21PYmplY3Qob2JqLCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIkR1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICIgKyAob2JqID09PSBudWxsID8gIm51bGwiIDogdHlwZW9mIG9iaikpOwoJICAgIH0KCgkgICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7CgkgICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLAoJICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSwKCSAgICAgIGNvbnZlcnNpb25BY2N1cmFjeTogb3B0cy5jb252ZXJzaW9uQWNjdXJhY3kKCSAgICB9KTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBEdXJhdGlvbkxpa2UuCgkgICAqCgkgICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZQoJICAgKiBPbmUgb2Y6CgkgICAqIC0gb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFycycgYW5kICdob3VycycuCgkgICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHMKCSAgICogLSBEdXJhdGlvbiBpbnN0YW5jZQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UgPSBmdW5jdGlvbiBmcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uTGlrZSkgewoJICAgIGlmIChpc051bWJlcihkdXJhdGlvbkxpa2UpKSB7CgkgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpOwoJICAgIH0gZWxzZSBpZiAoRHVyYXRpb24uaXNEdXJhdGlvbihkdXJhdGlvbkxpa2UpKSB7CgkgICAgICByZXR1cm4gZHVyYXRpb25MaWtlOwoJICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gIm9iamVjdCIpIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KGR1cmF0aW9uTGlrZSk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigiVW5rbm93biBkdXJhdGlvbiBhcmd1bWVudCAiICsgZHVyYXRpb25MaWtlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZHVyYXRpb25MaWtlKTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYW4gSVNPIDg2MDEgZHVyYXRpb24gc3RyaW5nLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2UKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRHVyYXRpb25zCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1AzWTZNMVc0RFQxMkgzME01UycpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAzLCBtb250aHM6IDYsIHdlZWtzOiAxLCBkYXlzOiA0LCBob3VyczogMTIsIG1pbnV0ZXM6IDMwLCBzZWNvbmRzOiA1IH0KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUFQyM0gnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjMgfQoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQNVkzTScpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiA1LCBtb250aHM6IDMgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIER1cmF0aW9uLmZyb21JU08gPSBmdW5jdGlvbiBmcm9tSVNPKHRleHQsIG9wdHMpIHsKCSAgICB2YXIgX3BhcnNlSVNPRHVyYXRpb24gPSBwYXJzZUlTT0R1cmF0aW9uKHRleHQpLAoJICAgICAgICBwYXJzZWQgPSBfcGFyc2VJU09EdXJhdGlvblswXTsKCgkgICAgaWYgKHBhcnNlZCkgewoJICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QocGFyc2VkLCBvcHRzKTsKCSAgICB9IGVsc2UgewoJICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoInVucGFyc2FibGUiLCAidGhlIGlucHV0IFwiIiArIHRleHQgKyAiXCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxIik7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGFuIElTTyA4NjAxIHRpbWUgc3RyaW5nLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2UKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZXMKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjIyOjMzLjQ0NCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMjIsIHNlY29uZHM6IDMzLCBtaWxsaXNlY29uZHM6IDQ0NCB9CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCdUMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfQoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCdUMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgRHVyYXRpb24uZnJvbUlTT1RpbWUgPSBmdW5jdGlvbiBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7CgkgICAgdmFyIF9wYXJzZUlTT1RpbWVPbmx5ID0gcGFyc2VJU09UaW1lT25seSh0ZXh0KSwKCSAgICAgICAgcGFyc2VkID0gX3BhcnNlSVNPVGltZU9ubHlbMF07CgoJICAgIGlmIChwYXJzZWQpIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKCJ1bnBhcnNhYmxlIiwgInRoZSBpbnB1dCBcIiIgKyB0ZXh0ICsgIlwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMSIpOwoJICAgIH0KCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGFuIGludmFsaWQgRHVyYXRpb24uCgkgICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIGRhdGV0aW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnQKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbgoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIER1cmF0aW9uLmludmFsaWQgPSBmdW5jdGlvbiBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pIHsKCSAgICBpZiAoZXhwbGFuYXRpb24gPT09IHZvaWQgMCkgewoJICAgICAgZXhwbGFuYXRpb24gPSBudWxsOwoJICAgIH0KCgkgICAgaWYgKCFyZWFzb24pIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkIik7CgkgICAgfQoKCSAgICB2YXIgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTsKCgkgICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZER1cmF0aW9uRXJyb3IoaW52YWxpZCk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBuZXcgRHVyYXRpb24oewoJICAgICAgICBpbnZhbGlkOiBpbnZhbGlkCgkgICAgICB9KTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIEBwcml2YXRlCgkgICAqLwoJICA7CgoJICBEdXJhdGlvbi5ub3JtYWxpemVVbml0ID0gZnVuY3Rpb24gbm9ybWFsaXplVW5pdCh1bml0KSB7CgkgICAgdmFyIG5vcm1hbGl6ZWQgPSB7CgkgICAgICB5ZWFyOiAieWVhcnMiLAoJICAgICAgeWVhcnM6ICJ5ZWFycyIsCgkgICAgICBxdWFydGVyOiAicXVhcnRlcnMiLAoJICAgICAgcXVhcnRlcnM6ICJxdWFydGVycyIsCgkgICAgICBtb250aDogIm1vbnRocyIsCgkgICAgICBtb250aHM6ICJtb250aHMiLAoJICAgICAgd2VlazogIndlZWtzIiwKCSAgICAgIHdlZWtzOiAid2Vla3MiLAoJICAgICAgZGF5OiAiZGF5cyIsCgkgICAgICBkYXlzOiAiZGF5cyIsCgkgICAgICBob3VyOiAiaG91cnMiLAoJICAgICAgaG91cnM6ICJob3VycyIsCgkgICAgICBtaW51dGU6ICJtaW51dGVzIiwKCSAgICAgIG1pbnV0ZXM6ICJtaW51dGVzIiwKCSAgICAgIHNlY29uZDogInNlY29uZHMiLAoJICAgICAgc2Vjb25kczogInNlY29uZHMiLAoJICAgICAgbWlsbGlzZWNvbmQ6ICJtaWxsaXNlY29uZHMiLAoJICAgICAgbWlsbGlzZWNvbmRzOiAibWlsbGlzZWNvbmRzIgoJICAgIH1bdW5pdCA/IHVuaXQudG9Mb3dlckNhc2UoKSA6IHVuaXRdOwoJICAgIGlmICghbm9ybWFsaXplZCkgdGhyb3cgbmV3IEludmFsaWRVbml0RXJyb3IodW5pdCk7CgkgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7CgkgIH0KCSAgLyoqCgkgICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIER1cmF0aW9uLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCgkgICAqIEBwYXJhbSB7b2JqZWN0fSBvCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBEdXJhdGlvbi5pc0R1cmF0aW9uID0gZnVuY3Rpb24gaXNEdXJhdGlvbihvKSB7CgkgICAgcmV0dXJuIG8gJiYgby5pc0x1eG9uRHVyYXRpb24gfHwgZmFsc2U7CgkgIH0KCSAgLyoqCgkgICAqIEdldCAgdGhlIGxvY2FsZSBvZiBhIER1cmF0aW9uLCBzdWNoICdlbi1HQicKCSAgICogQHR5cGUge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIHZhciBfcHJvdG8gPSBEdXJhdGlvbi5wcm90b3R5cGU7CgoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLiBZb3UgbWF5IHVzZSB0aGVzZSB0b2tlbnM6CgkgICAqICogYFNgIGZvciBtaWxsaXNlY29uZHMKCSAgICogKiBgc2AgZm9yIHNlY29uZHMKCSAgICogKiBgbWAgZm9yIG1pbnV0ZXMKCSAgICogKiBgaGAgZm9yIGhvdXJzCgkgICAqICogYGRgIGZvciBkYXlzCgkgICAqICogYHdgIGZvciB3ZWVrcwoJICAgKiAqIGBNYCBmb3IgbW9udGhzCgkgICAqICogYHlgIGZvciB5ZWFycwoJICAgKiBOb3RlczoKCSAgICogKiBBZGQgcGFkZGluZyBieSByZXBlYXRpbmcgdGhlIHRva2VuLCBlLmcuICJ5eSIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgImhoaGgiIHBhZHMgdGhlIGhvdXJzIG91dCB0byBmb3VyIGRpZ2l0cwoJICAgKiAqIFRoZSBkdXJhdGlvbiB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgc2V0IG9mIHVuaXRzIGluIHRoZSBmb3JtYXQgc3RyaW5nIHVzaW5nIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSBhbmQgdGhlIER1cmF0aW9ucydzIGNvbnZlcnNpb24gYWNjdXJhY3kgc2V0dGluZy4KCSAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmZsb29yPXRydWVdIC0gZmxvb3IgbnVtZXJpY2FsIHZhbHVlcwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoInkgZCBzIikgLy89PiAiMSA2IDIiCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdCgieXkgZGQgc3NzIikgLy89PiAiMDEgMDYgMDAyIgoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoIk0gUyIpIC8vPT4gIjEyIDUxODQwMjAwMCIKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgX3Byb3RvLnRvRm9ybWF0ID0gZnVuY3Rpb24gdG9Gb3JtYXQoZm10LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdAoJICAgIHZhciBmbXRPcHRzID0gX2V4dGVuZHMoe30sIG9wdHMsIHsKCSAgICAgIGZsb29yOiBvcHRzLnJvdW5kICE9PSBmYWxzZSAmJiBvcHRzLmZsb29yICE9PSBmYWxzZQoJICAgIH0pOwoKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYywgZm10T3B0cykuZm9ybWF0RHVyYXRpb25Gcm9tU3RyaW5nKHRoaXMsIGZtdCkgOiBJTlZBTElEJDI7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEdXJhdGlvbiB3aXRoIGFsbCB1bml0cyBpbmNsdWRlZC4KCSAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LgoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTnVtYmVyRm9ybWF0CgkgICAqIEBwYXJhbSBvcHRzIC0gT24gb3B0aW9uIG9iamVjdCB0byBvdmVycmlkZSB0aGUgZm9ybWF0dGluZy4gQWNjZXB0cyB0aGUgc2FtZSBrZXlzIGFzIHRoZSBvcHRpb25zIHBhcmFtZXRlciBvZiB0aGUgbmF0aXZlIGBJbnQuTnVtYmVyRm9ybWF0YCBjb25zdHJ1Y3RvciwgYXMgd2VsbCBhcyBgbGlzdFN0eWxlYC4KCSAgICogQGV4YW1wbGUKCSAgICogYGBganMKCSAgICogdmFyIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxLCBob3VyczogNSwgbWludXRlczogNiB9KQoJICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnCgkgICAqIGR1ci50b0h1bWFuKHsgbGlzdFN0eWxlOiAibG9uZyIgfSkgLy89PiAnMSBkYXksIDUgaG91cnMsIGFuZCA2IG1pbnV0ZXMnCgkgICAqIGR1ci50b0h1bWFuKHsgdW5pdERpc3BsYXk6ICJzaG9ydCIgfSkgLy89PiAnMSBkYXksIDUgaHIsIDYgbWluJwoJICAgKiBgYGAKCSAgICovCgkgIDsKCgkgIF9wcm90by50b0h1bWFuID0gZnVuY3Rpb24gdG9IdW1hbihvcHRzKSB7CgkgICAgdmFyIF90aGlzID0gdGhpczsKCgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIGwgPSBvcmRlcmVkVW5pdHMkMS5tYXAoZnVuY3Rpb24gKHVuaXQpIHsKCSAgICAgIHZhciB2YWwgPSBfdGhpcy52YWx1ZXNbdW5pdF07CgoJICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbCkpIHsKCSAgICAgICAgcmV0dXJuIG51bGw7CgkgICAgICB9CgoJICAgICAgcmV0dXJuIF90aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIoX2V4dGVuZHMoewoJICAgICAgICBzdHlsZTogInVuaXQiLAoJICAgICAgICB1bml0RGlzcGxheTogImxvbmciCgkgICAgICB9LCBvcHRzLCB7CgkgICAgICAgIHVuaXQ6IHVuaXQuc2xpY2UoMCwgLTEpCgkgICAgICB9KSkuZm9ybWF0KHZhbCk7CgkgICAgfSkuZmlsdGVyKGZ1bmN0aW9uIChuKSB7CgkgICAgICByZXR1cm4gbjsKCSAgICB9KTsKCSAgICByZXR1cm4gdGhpcy5sb2MubGlzdEZvcm1hdHRlcihfZXh0ZW5kcyh7CgkgICAgICB0eXBlOiAiY29uanVuY3Rpb24iLAoJICAgICAgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8ICJuYXJyb3ciCgkgICAgfSwgb3B0cykpLmZvcm1hdChsKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEdXJhdGlvbidzIHZhbHVlcy4KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0KCSAgICogQHJldHVybiB7T2JqZWN0fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvT2JqZWN0ID0gZnVuY3Rpb24gdG9PYmplY3QoKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKCSAgICByZXR1cm4gX2V4dGVuZHMoe30sIHRoaXMudmFsdWVzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24uCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRHVyYXRpb25zCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMywgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQM1lUNDVTJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiA0LCBzZWNvbmRzOiA0NSB9KS50b0lTTygpIC8vPT4gJ1A0TVQ0NVMnCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDUgfSkudG9JU08oKSAvLz0+ICdQNU0nCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiA1IH0pLnRvSVNPKCkgLy89PiAnUFQ1TScKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbGxpc2Vjb25kczogNiB9KS50b0lTTygpIC8vPT4gJ1BUMC4wMDZTJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9JU08gPSBmdW5jdGlvbiB0b0lTTygpIHsKCSAgICAvLyB3ZSBjb3VsZCB1c2UgdGhlIGZvcm1hdHRlciwgYnV0IHRoaXMgaXMgYW4gZWFzaWVyIHdheSB0byBnZXQgdGhlIG1pbmltdW0gc3RyaW5nCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoJICAgIHZhciBzID0gIlAiOwoJICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyAiWSI7CgkgICAgaWYgKHRoaXMubW9udGhzICE9PSAwIHx8IHRoaXMucXVhcnRlcnMgIT09IDApIHMgKz0gdGhpcy5tb250aHMgKyB0aGlzLnF1YXJ0ZXJzICogMyArICJNIjsKCSAgICBpZiAodGhpcy53ZWVrcyAhPT0gMCkgcyArPSB0aGlzLndlZWtzICsgIlciOwoJICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgIkQiOwoJICAgIGlmICh0aGlzLmhvdXJzICE9PSAwIHx8IHRoaXMubWludXRlcyAhPT0gMCB8fCB0aGlzLnNlY29uZHMgIT09IDAgfHwgdGhpcy5taWxsaXNlY29uZHMgIT09IDApIHMgKz0gIlQiOwoJICAgIGlmICh0aGlzLmhvdXJzICE9PSAwKSBzICs9IHRoaXMuaG91cnMgKyAiSCI7CgkgICAgaWYgKHRoaXMubWludXRlcyAhPT0gMCkgcyArPSB0aGlzLm1pbnV0ZXMgKyAiTSI7CgkgICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMCkgLy8gdGhpcyB3aWxsIGhhbmRsZSAiZmxvYXRpbmcgcG9pbnQgbWFkbmVzcyIgYnkgcmVtb3ZpbmcgZXh0cmEgZGVjaW1hbCBwbGFjZXMKCSAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlbgoJICAgICAgcyArPSByb3VuZFRvKHRoaXMuc2Vjb25kcyArIHRoaXMubWlsbGlzZWNvbmRzIC8gMTAwMCwgMykgKyAiUyI7CgkgICAgaWYgKHMgPT09ICJQIikgcyArPSAiVDBTIjsKCSAgICByZXR1cm4gczsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24sIGZvcm1hdHRlZCBhcyBhIHRpbWUgb2YgZGF5LgoJICAgKiBOb3RlIHRoYXQgdGhpcyB3aWxsIHJldHVybiBudWxsIGlmIHRoZSBkdXJhdGlvbiBpcyBpbnZhbGlkLCBuZWdhdGl2ZSwgb3IgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIDI0IGhvdXJzLgoJICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlUHJlZml4PWZhbHNlXSAtIGluY2x1ZGUgdGhlIGBUYCBwcmVmaXgKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKCkgLy89PiAnMTE6MDA6MDAuMDAwJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzTWlsbGlzZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwOjAwJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzU2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMCcKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QxMTowMDowMC4wMDAnCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzExMDAwMC4wMDAnCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT1RpbWUgPSBmdW5jdGlvbiB0b0lTT1RpbWUob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDsKCSAgICB2YXIgbWlsbGlzID0gdGhpcy50b01pbGxpcygpOwoJICAgIGlmIChtaWxsaXMgPCAwIHx8IG1pbGxpcyA+PSA4NjQwMDAwMCkgcmV0dXJuIG51bGw7CgkgICAgb3B0cyA9IF9leHRlbmRzKHsKCSAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzOiBmYWxzZSwKCSAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsCgkgICAgICBpbmNsdWRlUHJlZml4OiBmYWxzZSwKCSAgICAgIGZvcm1hdDogImV4dGVuZGVkIgoJICAgIH0sIG9wdHMpOwoJICAgIHZhciB2YWx1ZSA9IHRoaXMuc2hpZnRUbygiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIiwgIm1pbGxpc2Vjb25kcyIpOwoJICAgIHZhciBmbXQgPSBvcHRzLmZvcm1hdCA9PT0gImJhc2ljIiA/ICJoaG1tIiA6ICJoaDptbSI7CgoJICAgIGlmICghb3B0cy5zdXBwcmVzc1NlY29uZHMgfHwgdmFsdWUuc2Vjb25kcyAhPT0gMCB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHsKCSAgICAgIGZtdCArPSBvcHRzLmZvcm1hdCA9PT0gImJhc2ljIiA/ICJzcyIgOiAiOnNzIjsKCgkgICAgICBpZiAoIW9wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHMgfHwgdmFsdWUubWlsbGlzZWNvbmRzICE9PSAwKSB7CgkgICAgICAgIGZtdCArPSAiLlNTUyI7CgkgICAgICB9CgkgICAgfQoKCSAgICB2YXIgc3RyID0gdmFsdWUudG9Gb3JtYXQoZm10KTsKCgkgICAgaWYgKG9wdHMuaW5jbHVkZVByZWZpeCkgewoJICAgICAgc3RyID0gIlQiICsgc3RyOwoJICAgIH0KCgkgICAgcmV0dXJuIHN0cjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi4KCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTigpIHsKCSAgICByZXR1cm4gdGhpcy50b0lTTygpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBkZWJ1Z2dpbmcuCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkgewoJICAgIHJldHVybiB0aGlzLnRvSVNPKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gbWlsbGlzZWNvbmRzIHZhbHVlIG9mIHRoaXMgRHVyYXRpb24uCgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b01pbGxpcyA9IGZ1bmN0aW9uIHRvTWlsbGlzKCkgewoJICAgIHJldHVybiB0aGlzLmFzKCJtaWxsaXNlY29uZHMiKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi4gQWxpYXMgb2Yge0BsaW5rIHRvTWlsbGlzfQoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udmFsdWVPZiA9IGZ1bmN0aW9uIHZhbHVlT2YoKSB7CgkgICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTsKCSAgfQoJICAvKioKCSAgICogTWFrZSB0aGlzIER1cmF0aW9uIGxvbmdlciBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uCgkgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8ucGx1cyA9IGZ1bmN0aW9uIHBsdXMoZHVyYXRpb24pIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAoJICAgICAgICByZXN1bHQgPSB7fTsKCgkgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvcmRlcmVkVW5pdHMkMSksIF9zdGVwOyAhKF9zdGVwID0gX2l0ZXJhdG9yKCkpLmRvbmU7KSB7CgkgICAgICB2YXIgayA9IF9zdGVwLnZhbHVlOwoKCSAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShkdXIudmFsdWVzLCBrKSB8fCBoYXNPd25Qcm9wZXJ0eSh0aGlzLnZhbHVlcywgaykpIHsKCSAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspOwoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIGNsb25lJDEodGhpcywgewoJICAgICAgdmFsdWVzOiByZXN1bHQKCSAgICB9LCB0cnVlKTsKCSAgfQoJICAvKioKCSAgICogTWFrZSB0aGlzIER1cmF0aW9uIHNob3J0ZXIgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLgoJICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8ubWludXMgPSBmdW5jdGlvbiBtaW51cyhkdXJhdGlvbikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbik7CgkgICAgcmV0dXJuIHRoaXMucGx1cyhkdXIubmVnYXRlKCkpOwoJICB9CgkgIC8qKgoJICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KCSAgICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB1bml0LiBBcml0eSBpcyAxIG9yIDI6IHRoZSB2YWx1ZSBvZiB0aGUgdW5pdCBhbmQsIG9wdGlvbmFsbHksIHRoZSB1bml0IG5hbWUuIE11c3QgcmV0dXJuIGEgbnVtYmVyLgoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKHggPT4geCAqIDIpIC8vPT4geyBob3VyczogMiwgbWludXRlczogNjAgfQoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSAiaG91ciIgPyB4ICogMiA6IHgpIC8vPT4geyBob3VyczogMiwgbWludXRlczogMzAgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5tYXBVbml0cyA9IGZ1bmN0aW9uIG1hcFVuaXRzKGZuKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoJICAgIHZhciByZXN1bHQgPSB7fTsKCgkgICAgZm9yICh2YXIgX2kgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcyk7IF9pIDwgX09iamVjdCRrZXlzLmxlbmd0aDsgX2krKykgewoJICAgICAgdmFyIGsgPSBfT2JqZWN0JGtleXNbX2ldOwoJICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTsKCSAgICB9CgoJICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIHsKCSAgICAgIHZhbHVlczogcmVzdWx0CgkgICAgfSwgdHJ1ZSk7CgkgIH0KCSAgLyoqCgkgICAqIEdldCB0aGUgdmFsdWUgb2YgdW5pdC4KCSAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5JwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgneWVhcnMnKSAvLz0+IDIKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ21vbnRocycpIC8vPT4gMAoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gMwoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZ2V0ID0gZnVuY3Rpb24gZ2V0KHVuaXQpIHsKCSAgICByZXR1cm4gdGhpc1tEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpXTsKCSAgfQoJICAvKioKCSAgICogIlNldCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLgoJICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnMKCSAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pCgkgICAqIEBleGFtcGxlIGR1ci5zZXQoeyBob3VyczogOCwgbWludXRlczogMzAgfSkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8uc2V0ID0gZnVuY3Rpb24gc2V0KHZhbHVlcykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCgkgICAgdmFyIG1peGVkID0gX2V4dGVuZHMoe30sIHRoaXMudmFsdWVzLCBub3JtYWxpemVPYmplY3QodmFsdWVzLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSk7CgoJICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIHsKCSAgICAgIHZhbHVlczogbWl4ZWQKCSAgICB9KTsKCSAgfQoJICAvKioKCSAgICogIlNldCIgdGhlIGxvY2FsZSBhbmQvb3IgbnVtYmVyaW5nU3lzdGVtLiAgUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLgoJICAgKiBAZXhhbXBsZSBkdXIucmVjb25maWd1cmUoeyBsb2NhbGU6ICdlbi1HQicgfSkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8ucmVjb25maWd1cmUgPSBmdW5jdGlvbiByZWNvbmZpZ3VyZShfdGVtcCkgewoJICAgIHZhciBfcmVmID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAsCgkgICAgICAgIGxvY2FsZSA9IF9yZWYubG9jYWxlLAoJICAgICAgICBudW1iZXJpbmdTeXN0ZW0gPSBfcmVmLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgY29udmVyc2lvbkFjY3VyYWN5ID0gX3JlZi5jb252ZXJzaW9uQWNjdXJhY3k7CgoJICAgIHZhciBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7CgkgICAgICBsb2NhbGU6IGxvY2FsZSwKCSAgICAgIG51bWJlcmluZ1N5c3RlbTogbnVtYmVyaW5nU3lzdGVtCgkgICAgfSksCgkgICAgICAgIG9wdHMgPSB7CgkgICAgICBsb2M6IGxvYwoJICAgIH07CgoJICAgIGlmIChjb252ZXJzaW9uQWNjdXJhY3kpIHsKCSAgICAgIG9wdHMuY29udmVyc2lvbkFjY3VyYWN5ID0gY29udmVyc2lvbkFjY3VyYWN5OwoJICAgIH0KCgkgICAgcmV0dXJuIGNsb25lJDEodGhpcywgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBkdXJhdGlvbiBpbiB0aGUgc3BlY2lmaWVkIHVuaXQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZXMnIG9yICdkYXlzJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdkYXlzJykgLy89PiAzNjUKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnbW9udGhzJykgLy89PiAxMgoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtob3VyczogNjB9KS5hcygnZGF5cycpIC8vPT4gMi41CgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5hcyA9IGZ1bmN0aW9uIGFzKHVuaXQpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5zaGlmdFRvKHVuaXQpLmdldCh1bml0KSA6IE5hTjsKCSAgfQoJICAvKioKCSAgICogUmVkdWNlIHRoaXMgRHVyYXRpb24gdG8gaXRzIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbiBpbiBpdHMgY3VycmVudCB1bml0cy4KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAyLCBkYXlzOiA1MDAwIH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxNSwgZGF5czogMjU1IH0KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMiwgbWludXRlczogLTQ1IH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMTUgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5ub3JtYWxpemUgPSBmdW5jdGlvbiBub3JtYWxpemUoKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoJICAgIHZhciB2YWxzID0gdGhpcy50b09iamVjdCgpOwoJICAgIG5vcm1hbGl6ZVZhbHVlcyh0aGlzLm1hdHJpeCwgdmFscyk7CgkgICAgcmV0dXJuIGNsb25lJDEodGhpcywgewoJICAgICAgdmFsdWVzOiB2YWxzCgkgICAgfSwgdHJ1ZSk7CgkgIH0KCSAgLyoqCgkgICAqIENvbnZlcnQgdGhpcyBEdXJhdGlvbiBpbnRvIGl0cyByZXByZXNlbnRhdGlvbiBpbiBhIGRpZmZlcmVudCBzZXQgb2YgdW5pdHMuCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgc2Vjb25kczogMzAgfSkuc2hpZnRUbygnbWludXRlcycsICdtaWxsaXNlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBtaW51dGVzOiA2MCwgbWlsbGlzZWNvbmRzOiAzMDAwMCB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNoaWZ0VG8gPSBmdW5jdGlvbiBzaGlmdFRvKCkgewoJICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCB1bml0cyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHsKCSAgICAgIHVuaXRzW19rZXldID0gYXJndW1lbnRzW19rZXldOwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoKCSAgICBpZiAodW5pdHMubGVuZ3RoID09PSAwKSB7CgkgICAgICByZXR1cm4gdGhpczsKCSAgICB9CgoJICAgIHVuaXRzID0gdW5pdHMubWFwKGZ1bmN0aW9uICh1KSB7CgkgICAgICByZXR1cm4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KTsKCSAgICB9KTsKCSAgICB2YXIgYnVpbHQgPSB7fSwKCSAgICAgICAgYWNjdW11bGF0ZWQgPSB7fSwKCSAgICAgICAgdmFscyA9IHRoaXMudG9PYmplY3QoKTsKCSAgICB2YXIgbGFzdFVuaXQ7CgoJICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKG9yZGVyZWRVbml0cyQxKSwgX3N0ZXAyOyAhKF9zdGVwMiA9IF9pdGVyYXRvcjIoKSkuZG9uZTspIHsKCSAgICAgIHZhciBrID0gX3N0ZXAyLnZhbHVlOwoKCSAgICAgIGlmICh1bml0cy5pbmRleE9mKGspID49IDApIHsKCSAgICAgICAgbGFzdFVuaXQgPSBrOwoJICAgICAgICB2YXIgb3duID0gMDsgLy8gYW55dGhpbmcgd2UgaGF2ZW4ndCBib2lsZWQgZG93biB5ZXQgc2hvdWxkIGdldCBib2lsZWQgdG8gdGhpcyB1bml0CgoJICAgICAgICBmb3IgKHZhciBhayBpbiBhY2N1bXVsYXRlZCkgewoJICAgICAgICAgIG93biArPSB0aGlzLm1hdHJpeFtha11ba10gKiBhY2N1bXVsYXRlZFtha107CgkgICAgICAgICAgYWNjdW11bGF0ZWRbYWtdID0gMDsKCSAgICAgICAgfSAvLyBwbHVzIGFueXRoaW5nIHRoYXQncyBhbHJlYWR5IGluIHRoaXMgdW5pdAoKCgkgICAgICAgIGlmIChpc051bWJlcih2YWxzW2tdKSkgewoJICAgICAgICAgIG93biArPSB2YWxzW2tdOwoJICAgICAgICB9CgoJICAgICAgICB2YXIgaSA9IE1hdGgudHJ1bmMob3duKTsKCSAgICAgICAgYnVpbHRba10gPSBpOwoJICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IChvd24gKiAxMDAwIC0gaSAqIDEwMDApIC8gMTAwMDsgLy8gcGx1cyBhbnl0aGluZyBmdXJ0aGVyIGRvd24gdGhlIGNoYWluIHRoYXQgc2hvdWxkIGJlIHJvbGxlZCB1cCBpbiB0byB0aGlzCgoJICAgICAgICBmb3IgKHZhciBkb3duIGluIHZhbHMpIHsKCSAgICAgICAgICBpZiAob3JkZXJlZFVuaXRzJDEuaW5kZXhPZihkb3duKSA+IG9yZGVyZWRVbml0cyQxLmluZGV4T2YoaykpIHsKCSAgICAgICAgICAgIGNvbnZlcnQodGhpcy5tYXRyaXgsIHZhbHMsIGRvd24sIGJ1aWx0LCBrKTsKCSAgICAgICAgICB9CgkgICAgICAgIH0gLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyCgoJICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkgewoJICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IHZhbHNba107CgkgICAgICB9CgkgICAgfSAvLyBhbnl0aGluZyBsZWZ0b3ZlciBiZWNvbWVzIHRoZSBkZWNpbWFsIGZvciB0aGUgbGFzdCB1bml0CgkgICAgLy8gbGFzdFVuaXQgbXVzdCBiZSBkZWZpbmVkIHNpbmNlIHVuaXRzIGlzIG5vdCBlbXB0eQoKCgkgICAgZm9yICh2YXIga2V5IGluIGFjY3VtdWxhdGVkKSB7CgkgICAgICBpZiAoYWNjdW11bGF0ZWRba2V5XSAhPT0gMCkgewoJICAgICAgICBidWlsdFtsYXN0VW5pdF0gKz0ga2V5ID09PSBsYXN0VW5pdCA/IGFjY3VtdWxhdGVkW2tleV0gOiBhY2N1bXVsYXRlZFtrZXldIC8gdGhpcy5tYXRyaXhbbGFzdFVuaXRdW2tleV07CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7CgkgICAgICB2YWx1ZXM6IGJ1aWx0CgkgICAgfSwgdHJ1ZSkubm9ybWFsaXplKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB0aGUgbmVnYXRpdmUgb2YgdGhpcyBEdXJhdGlvbi4KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLm5lZ2F0ZSA9IGZ1bmN0aW9uIG5lZ2F0ZSgpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIG5lZ2F0ZWQgPSB7fTsKCgkgICAgZm9yICh2YXIgX2kyID0gMCwgX09iamVjdCRrZXlzMiA9IE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKTsgX2kyIDwgX09iamVjdCRrZXlzMi5sZW5ndGg7IF9pMisrKSB7CgkgICAgICB2YXIgayA9IF9PYmplY3Qka2V5czJbX2kyXTsKCSAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107CgkgICAgfQoKCSAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7CgkgICAgICB2YWx1ZXM6IG5lZ2F0ZWQKCSAgICB9LCB0cnVlKTsKCSAgfQoJICAvKioKCSAgICogR2V0IHRoZSB5ZWFycy4KCSAgICogQHR5cGUge251bWJlcn0KCSAgICovCgkgIDsKCgkgIC8qKgoJICAgKiBFcXVhbGl0eSBjaGVjawoJICAgKiBUd28gRHVyYXRpb25zIGFyZSBlcXVhbCBpZmYgdGhleSBoYXZlIHRoZSBzYW1lIHVuaXRzIGFuZCB0aGUgc2FtZSB2YWx1ZXMgZm9yIGVhY2ggdW5pdC4KCSAgICogQHBhcmFtIHtEdXJhdGlvbn0gb3RoZXIKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXIpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXIuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmxvYy5lcXVhbHMob3RoZXIubG9jKSkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCgkgICAgZnVuY3Rpb24gZXEodjEsIHYyKSB7CgkgICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWwKCSAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkIHx8IHYxID09PSAwKSByZXR1cm4gdjIgPT09IHVuZGVmaW5lZCB8fCB2MiA9PT0gMDsKCSAgICAgIHJldHVybiB2MSA9PT0gdjI7CgkgICAgfQoKCSAgICBmb3IgKHZhciBfaXRlcmF0b3IzID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvcmRlcmVkVW5pdHMkMSksIF9zdGVwMzsgIShfc3RlcDMgPSBfaXRlcmF0b3IzKCkpLmRvbmU7KSB7CgkgICAgICB2YXIgdSA9IF9zdGVwMy52YWx1ZTsKCgkgICAgICBpZiAoIWVxKHRoaXMudmFsdWVzW3VdLCBvdGhlci52YWx1ZXNbdV0pKSB7CgkgICAgICAgIHJldHVybiBmYWxzZTsKCSAgICAgIH0KCSAgICB9CgoJICAgIHJldHVybiB0cnVlOwoJICB9OwoKCSAgX2NyZWF0ZUNsYXNzKER1cmF0aW9uLCBbewoJICAgIGtleTogImxvY2FsZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRHVyYXRpb24KCSAgICAgKgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibnVtYmVyaW5nU3lzdGVtIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsOwoJICAgIH0KCSAgfSwgewoJICAgIGtleTogInllYXJzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy55ZWFycyB8fCAwIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHF1YXJ0ZXJzLgoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAicXVhcnRlcnMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnF1YXJ0ZXJzIHx8IDAgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbW9udGhzLgoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibW9udGhzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5tb250aHMgfHwgMCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSB3ZWVrcwoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAid2Vla3MiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLndlZWtzIHx8IDAgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgZGF5cy4KCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImRheXMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmRheXMgfHwgMCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBob3Vycy4KCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImhvdXJzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5ob3VycyB8fCAwIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG1pbnV0ZXMuCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJtaW51dGVzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taW51dGVzIHx8IDAgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgc2Vjb25kcy4KCSAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAic2Vjb25kcyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuc2Vjb25kcyB8fCAwIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG1pbGxpc2Vjb25kcy4KCSAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibWlsbGlzZWNvbmRzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taWxsaXNlY29uZHMgfHwgMCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkLiBJbnZhbGlkIGR1cmF0aW9ucyBhcmUgcmV0dXJuZWQgYnkgZGlmZiBvcGVyYXRpb25zCgkgICAgICogb24gaW52YWxpZCBEYXRlVGltZXMgb3IgSW50ZXJ2YWxzLgoJICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWQKCSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaW52YWxpZFJlYXNvbiIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpbnZhbGlkRXhwbGFuYXRpb24iLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gRHVyYXRpb247Cgl9KCk7CgoJdmFyIElOVkFMSUQkMSA9ICJJbnZhbGlkIEludGVydmFsIjsgLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZAoKCWZ1bmN0aW9uIHZhbGlkYXRlU3RhcnRFbmQoc3RhcnQsIGVuZCkgewoJICBpZiAoIXN0YXJ0IHx8ICFzdGFydC5pc1ZhbGlkKSB7CgkgICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoIm1pc3Npbmcgb3IgaW52YWxpZCBzdGFydCIpOwoJICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7CgkgICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoIm1pc3Npbmcgb3IgaW52YWxpZCBlbmQiKTsKCSAgfSBlbHNlIGlmIChlbmQgPCBzdGFydCkgewoJICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKCJlbmQgYmVmb3JlIHN0YXJ0IiwgIlRoZSBlbmQgb2YgYW4gaW50ZXJ2YWwgbXVzdCBiZSBhZnRlciBpdHMgc3RhcnQsIGJ1dCB5b3UgaGFkIHN0YXJ0PSIgKyBzdGFydC50b0lTTygpICsgIiBhbmQgZW5kPSIgKyBlbmQudG9JU08oKSk7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0KCX0KCS8qKgoJICogQW4gSW50ZXJ2YWwgb2JqZWN0IHJlcHJlc2VudHMgYSBoYWxmLW9wZW4gaW50ZXJ2YWwgb2YgdGltZSwgd2hlcmUgZWFjaCBlbmRwb2ludCBpcyBhIHtAbGluayBEYXRlVGltZX0uIENvbmNlcHR1YWxseSwgaXQncyBhIGNvbnRhaW5lciBmb3IgdGhvc2UgdHdvIGVuZHBvaW50cywgYWNjb21wYW5pZWQgYnkgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIGNvbXBhcmluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLgoJICoKCSAqIEhlcmUgaXMgYSBicmllZiBvdmVydmlldyBvZiB0aGUgbW9zdCBjb21tb25seSB1c2VkIG1ldGhvZHMgYW5kIGdldHRlcnMgaW4gSW50ZXJ2YWw6CgkgKgoJICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGFuIEludGVydmFsLCB1c2Uge0BsaW5rIEludGVydmFsI2Zyb21EYXRlVGltZXN9LCB7QGxpbmsgSW50ZXJ2YWwjYWZ0ZXJ9LCB7QGxpbmsgSW50ZXJ2YWwjYmVmb3JlfSwgb3Ige0BsaW5rIEludGVydmFsI2Zyb21JU099LgoJICogKiAqKkFjY2Vzc29ycyoqIFVzZSB7QGxpbmsgSW50ZXJ2YWwjc3RhcnR9IGFuZCB7QGxpbmsgSW50ZXJ2YWwjZW5kfSB0byBnZXQgdGhlIHN0YXJ0IGFuZCBlbmQuCgkgKiAqICoqSW50ZXJyb2dhdGlvbioqIFRvIGFuYWx5emUgdGhlIEludGVydmFsLCB1c2Uge0BsaW5rIEludGVydmFsI2NvdW50fSwge0BsaW5rIEludGVydmFsI2xlbmd0aH0sIHtAbGluayBJbnRlcnZhbCNoYXNTYW1lfSwge0BsaW5rIEludGVydmFsI2NvbnRhaW5zfSwge0BsaW5rIEludGVydmFsI2lzQWZ0ZXJ9LCBvciB7QGxpbmsgSW50ZXJ2YWwjaXNCZWZvcmV9LgoJICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG90aGVyIEludGVydmFscyBvdXQgb2YgdGhpcyBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjc2V0fSwge0BsaW5rIEludGVydmFsI3NwbGl0QXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRCeX0sIHtAbGluayBJbnRlcnZhbCNkaXZpZGVFcXVhbGx5fSwge0BsaW5rIEludGVydmFsI21lcmdlfSwge0BsaW5rIEludGVydmFsI3hvcn0sIHtAbGluayBJbnRlcnZhbCN1bmlvbn0sIHtAbGluayBJbnRlcnZhbCNpbnRlcnNlY3Rpb259LCBvciB7QGxpbmsgSW50ZXJ2YWwjZGlmZmVyZW5jZX0uCgkgKiAqICoqQ29tcGFyaXNvbioqIFRvIGNvbXBhcmUgdGhpcyBJbnRlcnZhbCB0byBhbm90aGVyIG9uZSwgdXNlIHtAbGluayBJbnRlcnZhbCNlcXVhbHN9LCB7QGxpbmsgSW50ZXJ2YWwjb3ZlcmxhcHN9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNTdGFydH0sIHtAbGluayBJbnRlcnZhbCNhYnV0c0VuZH0sIHtAbGluayBJbnRlcnZhbCNlbmd1bGZzfQoJICogKiAqKk91dHB1dCoqIFRvIGNvbnZlcnQgdGhlIEludGVydmFsIGludG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCBzZWUge0BsaW5rIEludGVydmFsI3RvU3RyaW5nfSwge0BsaW5rIEludGVydmFsI3RvSVNPfSwge0BsaW5rIEludGVydmFsI3RvSVNPRGF0ZX0sIHtAbGluayBJbnRlcnZhbCN0b0lTT1RpbWV9LCB7QGxpbmsgSW50ZXJ2YWwjdG9Gb3JtYXR9LCBhbmQge0BsaW5rIEludGVydmFsI3RvRHVyYXRpb259LgoJICovCgoKCXZhciBJbnRlcnZhbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CgkgIC8qKgoJICAgKiBAcHJpdmF0ZQoJICAgKi8KCSAgZnVuY3Rpb24gSW50ZXJ2YWwoY29uZmlnKSB7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgkgICAgdGhpcy5zID0gY29uZmlnLnN0YXJ0OwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmUgPSBjb25maWcuZW5kOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmlzTHV4b25JbnRlcnZhbCA9IHRydWU7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBpbnZhbGlkIEludGVydmFsLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KCSAgICogQHJldHVybiB7SW50ZXJ2YWx9CgkgICAqLwoKCgkgIEludGVydmFsLmludmFsaWQgPSBmdW5jdGlvbiBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pIHsKCSAgICBpZiAoZXhwbGFuYXRpb24gPT09IHZvaWQgMCkgewoJICAgICAgZXhwbGFuYXRpb24gPSBudWxsOwoJICAgIH0KCgkgICAgaWYgKCFyZWFzb24pIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkIik7CgkgICAgfQoKCSAgICB2YXIgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTsKCgkgICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEludGVydmFsRXJyb3IoaW52YWxpZCk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoewoJICAgICAgICBpbnZhbGlkOiBpbnZhbGlkCgkgICAgICB9KTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuCgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0CgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZAoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIEludGVydmFsLmZyb21EYXRlVGltZXMgPSBmdW5jdGlvbiBmcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpIHsKCSAgICB2YXIgYnVpbHRTdGFydCA9IGZyaWVuZGx5RGF0ZVRpbWUoc3RhcnQpLAoJICAgICAgICBidWlsdEVuZCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTsKCSAgICB2YXIgdmFsaWRhdGVFcnJvciA9IHZhbGlkYXRlU3RhcnRFbmQoYnVpbHRTdGFydCwgYnVpbHRFbmQpOwoKCSAgICBpZiAodmFsaWRhdGVFcnJvciA9PSBudWxsKSB7CgkgICAgICByZXR1cm4gbmV3IEludGVydmFsKHsKCSAgICAgICAgc3RhcnQ6IGJ1aWx0U3RhcnQsCgkgICAgICAgIGVuZDogYnVpbHRFbmQKCSAgICAgIH0pOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gdmFsaWRhdGVFcnJvcjsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGEgRHVyYXRpb24gdG8gZXh0ZW5kIHRvLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBzdGFydAoJICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwuCgkgICAqIEByZXR1cm4ge0ludGVydmFsfQoJICAgKi8KCSAgOwoKCSAgSW50ZXJ2YWwuYWZ0ZXIgPSBmdW5jdGlvbiBhZnRlcihzdGFydCwgZHVyYXRpb24pIHsKCSAgICB2YXIgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksCgkgICAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7CgkgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQsIGR0LnBsdXMoZHVyKSk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIGVuZCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgYmFja3dhcmRzIHRvLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmQKCSAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLgoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIEludGVydmFsLmJlZm9yZSA9IGZ1bmN0aW9uIGJlZm9yZShlbmQsIGR1cmF0aW9uKSB7CgkgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAoJICAgICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTsKCSAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdC5taW51cyhkdXIpLCBkdCk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy4KCSAgICogQWNjZXB0cyBgPHN0YXJ0Pi88ZW5kPmAsIGA8c3RhcnQ+LzxkdXJhdGlvbj5gLCBhbmQgYDxkdXJhdGlvbj4vPGVuZD5gIGZvcm1hdHMuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIElTTyBzdHJpbmcgdG8gcGFyc2UKCSAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099CgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHMKCSAgICogQHJldHVybiB7SW50ZXJ2YWx9CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC5mcm9tSVNPID0gZnVuY3Rpb24gZnJvbUlTTyh0ZXh0LCBvcHRzKSB7CgkgICAgdmFyIF9zcGxpdCA9ICh0ZXh0IHx8ICIiKS5zcGxpdCgiLyIsIDIpLAoJICAgICAgICBzID0gX3NwbGl0WzBdLAoJICAgICAgICBlID0gX3NwbGl0WzFdOwoKCSAgICBpZiAocyAmJiBlKSB7CgkgICAgICB2YXIgc3RhcnQsIHN0YXJ0SXNWYWxpZDsKCgkgICAgICB0cnkgewoJICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7CgkgICAgICAgIHN0YXJ0SXNWYWxpZCA9IHN0YXJ0LmlzVmFsaWQ7CgkgICAgICB9IGNhdGNoIChlKSB7CgkgICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlOwoJICAgICAgfQoKCSAgICAgIHZhciBlbmQsIGVuZElzVmFsaWQ7CgoJICAgICAgdHJ5IHsKCSAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTsKCSAgICAgICAgZW5kSXNWYWxpZCA9IGVuZC5pc1ZhbGlkOwoJICAgICAgfSBjYXRjaCAoZSkgewoJICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7CgkgICAgICB9CgoJICAgICAgaWYgKHN0YXJ0SXNWYWxpZCAmJiBlbmRJc1ZhbGlkKSB7CgkgICAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpOwoJICAgICAgfQoKCSAgICAgIGlmIChzdGFydElzVmFsaWQpIHsKCSAgICAgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21JU08oZSwgb3B0cyk7CgoJICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHsKCSAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7CgkgICAgICAgIH0KCSAgICAgIH0gZWxzZSBpZiAoZW5kSXNWYWxpZCkgewoJICAgICAgICB2YXIgX2R1ciA9IER1cmF0aW9uLmZyb21JU08ocywgb3B0cyk7CgoJICAgICAgICBpZiAoX2R1ci5pc1ZhbGlkKSB7CgkgICAgICAgICAgcmV0dXJuIEludGVydmFsLmJlZm9yZShlbmQsIF9kdXIpOwoJICAgICAgICB9CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZCgidW5wYXJzYWJsZSIsICJ0aGUgaW5wdXQgXCIiICsgdGV4dCArICJcIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDEiKTsKCSAgfQoJICAvKioKCSAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCgkgICAqIEBwYXJhbSB7b2JqZWN0fSBvCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC5pc0ludGVydmFsID0gZnVuY3Rpb24gaXNJbnRlcnZhbChvKSB7CgkgICAgcmV0dXJuIG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwgfHwgZmFsc2U7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBJbnRlcnZhbAoJICAgKiBAdHlwZSB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICB2YXIgX3Byb3RvID0gSW50ZXJ2YWwucHJvdG90eXBlOwoKCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwgaW4gdGhlIHNwZWNpZmllZCB1bml0LgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byByZXR1cm4gdGhlIGxlbmd0aCBpbi4KCSAgICogQHJldHVybiB7bnVtYmVyfQoJICAgKi8KCSAgX3Byb3RvLmxlbmd0aCA9IGZ1bmN0aW9uIGxlbmd0aCh1bml0KSB7CgkgICAgaWYgKHVuaXQgPT09IHZvaWQgMCkgewoJICAgICAgdW5pdCA9ICJtaWxsaXNlY29uZHMiOwoJICAgIH0KCgkgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9EdXJhdGlvbi5hcHBseSh0aGlzLCBbdW5pdF0pLmdldCh1bml0KSA6IE5hTjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyB0aGUgY291bnQgb2YgbWludXRlcywgaG91cnMsIGRheXMsIG1vbnRocywgb3IgeWVhcnMgaW5jbHVkZWQgaW4gdGhlIEludGVydmFsLCBldmVuIGluIHBhcnQuCgkgICAqIFVubGlrZSB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSB0aGlzIGNvdW50cyBzZWN0aW9ucyBvZiB0aGUgY2FsZW5kYXIsIG5vdCBwZXJpb2RzIG9mIHRpbWUsIGUuZy4gc3BlY2lmeWluZyAnZGF5JwoJICAgKiBhc2tzICd3aGF0IGRhdGVzIGFyZSBpbmNsdWRlZCBpbiB0aGlzIGludGVydmFsPycsIG5vdCAnaG93IG1hbnkgZGF5cyBsb25nIGlzIHRoaXMgaW50ZXJ2YWw/JwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW3VuaXQ9J21pbGxpc2Vjb25kcyddIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC4KCSAgICogQHJldHVybiB7bnVtYmVyfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmNvdW50ID0gZnVuY3Rpb24gY291bnQodW5pdCkgewoJICAgIGlmICh1bml0ID09PSB2b2lkIDApIHsKCSAgICAgIHVuaXQgPSAibWlsbGlzZWNvbmRzIjsKCSAgICB9CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gTmFOOwoJICAgIHZhciBzdGFydCA9IHRoaXMuc3RhcnQuc3RhcnRPZih1bml0KSwKCSAgICAgICAgZW5kID0gdGhpcy5lbmQuc3RhcnRPZih1bml0KTsKCSAgICByZXR1cm4gTWF0aC5mbG9vcihlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpKSArIDE7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgYW5kIGVuZCBhcmUgYm90aCBpbiB0aGUgc2FtZSB1bml0IG9mIHRpbWUKCSAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNoZWNrIHNhbWVuZXNzIG9uCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uaGFzU2FtZSA9IGZ1bmN0aW9uIGhhc1NhbWUodW5pdCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmlzRW1wdHkoKSB8fCB0aGlzLmUubWludXMoMSkuaGFzU2FtZSh0aGlzLnMsIHVuaXQpIDogZmFsc2U7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgRGF0ZVRpbWVzLgoJICAgKiBAcmV0dXJuIHtib29sZWFufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmlzRW1wdHkgPSBmdW5jdGlvbiBpc0VtcHR5KCkgewoJICAgIHJldHVybiB0aGlzLnMudmFsdWVPZigpID09PSB0aGlzLmUudmFsdWVPZigpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBEYXRlVGltZS4KCSAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5pc0FmdGVyID0gZnVuY3Rpb24gaXNBZnRlcihkYXRlVGltZSkgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgkgICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBkYXRlVGltZQoJICAgKiBAcmV0dXJuIHtib29sZWFufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmlzQmVmb3JlID0gZnVuY3Rpb24gaXNCZWZvcmUoZGF0ZVRpbWUpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwoJICAgIHJldHVybiB0aGlzLmUgPD0gZGF0ZVRpbWU7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgY29udGFpbnMgdGhlIHNwZWNpZmllZCBEYXRlVGltZS4KCSAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5jb250YWlucyA9IGZ1bmN0aW9uIGNvbnRhaW5zKGRhdGVUaW1lKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTsKCSAgICByZXR1cm4gdGhpcy5zIDw9IGRhdGVUaW1lICYmIHRoaXMuZSA+IGRhdGVUaW1lOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0cyIgdGhlIHN0YXJ0IGFuZC9vciBlbmQgZGF0ZXMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBJbnRlcnZhbC4KCSAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIHRoZSB2YWx1ZXMgdG8gc2V0CgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IHZhbHVlcy5zdGFydCAtIHRoZSBzdGFydGluZyBEYXRlVGltZQoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuZW5kIC0gdGhlIGVuZGluZyBEYXRlVGltZQoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIF9wcm90by5zZXQgPSBmdW5jdGlvbiBzZXQoX3RlbXApIHsKCSAgICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLAoJICAgICAgICBzdGFydCA9IF9yZWYuc3RhcnQsCgkgICAgICAgIGVuZCA9IF9yZWYuZW5kOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTsKCSAgfQoJICAvKioKCSAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBhdCBlYWNoIG9mIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWVzCgkgICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY291bnQuCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNwbGl0QXQgPSBmdW5jdGlvbiBzcGxpdEF0KCkgewoJICAgIHZhciBfdGhpcyA9IHRoaXM7CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107CgoJICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBkYXRlVGltZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CgkgICAgICBkYXRlVGltZXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07CgkgICAgfQoKCSAgICB2YXIgc29ydGVkID0gZGF0ZVRpbWVzLm1hcChmcmllbmRseURhdGVUaW1lKS5maWx0ZXIoZnVuY3Rpb24gKGQpIHsKCSAgICAgIHJldHVybiBfdGhpcy5jb250YWlucyhkKTsKCSAgICB9KS5zb3J0KCksCgkgICAgICAgIHJlc3VsdHMgPSBbXTsKCSAgICB2YXIgcyA9IHRoaXMucywKCSAgICAgICAgaSA9IDA7CgoJICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7CgkgICAgICB2YXIgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLAoJICAgICAgICAgIG5leHQgPSArYWRkZWQgPiArdGhpcy5lID8gdGhpcy5lIDogYWRkZWQ7CgkgICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7CgkgICAgICBzID0gbmV4dDsKCSAgICAgIGkgKz0gMTsKCSAgICB9CgoJICAgIHJldHVybiByZXN1bHRzOwoJICB9CgkgIC8qKgoJICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gc21hbGxlciBJbnRlcnZhbHMsIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBsZW5ndGguCgkgICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWwKCSAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBsZW5ndGggb2YgZWFjaCByZXN1bHRpbmcgaW50ZXJ2YWwuCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNwbGl0QnkgPSBmdW5jdGlvbiBzcGxpdEJ5KGR1cmF0aW9uKSB7CgkgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhZHVyLmlzVmFsaWQgfHwgZHVyLmFzKCJtaWxsaXNlY29uZHMiKSA9PT0gMCkgewoJICAgICAgcmV0dXJuIFtdOwoJICAgIH0KCgkgICAgdmFyIHMgPSB0aGlzLnMsCgkgICAgICAgIGlkeCA9IDEsCgkgICAgICAgIG5leHQ7CgkgICAgdmFyIHJlc3VsdHMgPSBbXTsKCgkgICAgd2hpbGUgKHMgPCB0aGlzLmUpIHsKCSAgICAgIHZhciBhZGRlZCA9IHRoaXMuc3RhcnQucGx1cyhkdXIubWFwVW5pdHMoZnVuY3Rpb24gKHgpIHsKCSAgICAgICAgcmV0dXJuIHggKiBpZHg7CgkgICAgICB9KSk7CgkgICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkOwoJICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpOwoJICAgICAgcyA9IG5leHQ7CgkgICAgICBpZHggKz0gMTsKCSAgICB9CgoJICAgIHJldHVybiByZXN1bHRzOwoJICB9CgkgIC8qKgoJICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc21hbGxlciBpbnRlcnZhbHMuCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZlBhcnRzIC0gVGhlIG51bWJlciBvZiBJbnRlcnZhbHMgdG8gZGl2aWRlIHRoZSBJbnRlcnZhbCBpbnRvLgoJICAgKiBAcmV0dXJuIHtBcnJheX0KCSAgICovCgkgIDsKCgkgIF9wcm90by5kaXZpZGVFcXVhbGx5ID0gZnVuY3Rpb24gZGl2aWRlRXF1YWxseShudW1iZXJPZlBhcnRzKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBbXTsKCSAgICByZXR1cm4gdGhpcy5zcGxpdEJ5KHRoaXMubGVuZ3RoKCkgLyBudW1iZXJPZlBhcnRzKS5zbGljZSgwLCBudW1iZXJPZlBhcnRzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwKCSAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXIKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5vdmVybGFwcyA9IGZ1bmN0aW9uIG92ZXJsYXBzKG90aGVyKSB7CgkgICAgcmV0dXJuIHRoaXMuZSA+IG90aGVyLnMgJiYgdGhpcy5zIDwgb3RoZXIuZTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uYWJ1dHNTdGFydCA9IGZ1bmN0aW9uIGFidXRzU3RhcnQob3RoZXIpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwoJICAgIHJldHVybiArdGhpcy5lID09PSArb3RoZXIuczsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBlbmQuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uYWJ1dHNFbmQgPSBmdW5jdGlvbiBhYnV0c0VuZChvdGhlcikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgkgICAgcmV0dXJuICtvdGhlci5lID09PSArdGhpcy5zOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGVuZ3VsZnMgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KCSAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXIKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5lbmd1bGZzID0gZnVuY3Rpb24gZW5ndWxmcyhvdGhlcikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgkgICAgcmV0dXJuIHRoaXMucyA8PSBvdGhlci5zICYmIHRoaXMuZSA+PSBvdGhlci5lOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGhhcyB0aGUgc2FtZSBzdGFydCBhbmQgZW5kIGFzIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzKG90aGVyKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBmYWxzZTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLnMuZXF1YWxzKG90aGVyLnMpICYmIHRoaXMuZS5lcXVhbHMob3RoZXIuZSk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIGludGVyc2VjdGlvbiBvZiB0aGlzIEludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIEludGVydmFsLgoJICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtYXhpbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtaW5pbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLgoJICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge0ludGVydmFsfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmludGVyc2VjdGlvbiA9IGZ1bmN0aW9uIGludGVyc2VjdGlvbihvdGhlcikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgcyA9IHRoaXMucyA+IG90aGVyLnMgPyB0aGlzLnMgOiBvdGhlci5zLAoJICAgICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7CgoJICAgIGlmIChzID49IGUpIHsKCSAgICAgIHJldHVybiBudWxsOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBlKTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCgkgICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1pbmltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1heGltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge0ludGVydmFsfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnVuaW9uID0gZnVuY3Rpb24gdW5pb24ob3RoZXIpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIHMgPSB0aGlzLnMgPCBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucywKCSAgICAgICAgZSA9IHRoaXMuZSA+IG90aGVyLmUgPyB0aGlzLmUgOiBvdGhlci5lOwoJICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpOwoJICB9CgkgIC8qKgoJICAgKiBNZXJnZSBhbiBhcnJheSBvZiBJbnRlcnZhbHMgaW50byBhIGVxdWl2YWxlbnQgbWluaW1hbCBzZXQgb2YgSW50ZXJ2YWxzLgoJICAgKiBDb21iaW5lcyBvdmVybGFwcGluZyBhbmQgYWRqYWNlbnQgSW50ZXJ2YWxzLgoJICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHMKCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC5tZXJnZSA9IGZ1bmN0aW9uIG1lcmdlKGludGVydmFscykgewoJICAgIHZhciBfaW50ZXJ2YWxzJHNvcnQkcmVkdWMgPSBpbnRlcnZhbHMuc29ydChmdW5jdGlvbiAoYSwgYikgewoJICAgICAgcmV0dXJuIGEucyAtIGIuczsKCSAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKF9yZWYyLCBpdGVtKSB7CgkgICAgICB2YXIgc29mYXIgPSBfcmVmMlswXSwKCSAgICAgICAgICBjdXJyZW50ID0gX3JlZjJbMV07CgoJICAgICAgaWYgKCFjdXJyZW50KSB7CgkgICAgICAgIHJldHVybiBbc29mYXIsIGl0ZW1dOwoJICAgICAgfSBlbHNlIGlmIChjdXJyZW50Lm92ZXJsYXBzKGl0ZW0pIHx8IGN1cnJlbnQuYWJ1dHNTdGFydChpdGVtKSkgewoJICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIHJldHVybiBbc29mYXIuY29uY2F0KFtjdXJyZW50XSksIGl0ZW1dOwoJICAgICAgfQoJICAgIH0sIFtbXSwgbnVsbF0pLAoJICAgICAgICBmb3VuZCA9IF9pbnRlcnZhbHMkc29ydCRyZWR1Y1swXSwKCSAgICAgICAgZmluYWwgPSBfaW50ZXJ2YWxzJHNvcnQkcmVkdWNbMV07CgoJICAgIGlmIChmaW5hbCkgewoJICAgICAgZm91bmQucHVzaChmaW5hbCk7CgkgICAgfQoKCSAgICByZXR1cm4gZm91bmQ7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhbiBhcnJheSBvZiBJbnRlcnZhbHMgcmVwcmVzZW50aW5nIHRoZSBzcGFucyBvZiB0aW1lIHRoYXQgb25seSBhcHBlYXIgaW4gb25lIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxzLgoJICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHMKCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC54b3IgPSBmdW5jdGlvbiB4b3IoaW50ZXJ2YWxzKSB7CgkgICAgdmFyIF9BcnJheSRwcm90b3R5cGU7CgoJICAgIHZhciBzdGFydCA9IG51bGwsCgkgICAgICAgIGN1cnJlbnRDb3VudCA9IDA7CgoJICAgIHZhciByZXN1bHRzID0gW10sCgkgICAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKGZ1bmN0aW9uIChpKSB7CgkgICAgICByZXR1cm4gW3sKCSAgICAgICAgdGltZTogaS5zLAoJICAgICAgICB0eXBlOiAicyIKCSAgICAgIH0sIHsKCSAgICAgICAgdGltZTogaS5lLAoJICAgICAgICB0eXBlOiAiZSIKCSAgICAgIH1dOwoJICAgIH0pLAoJICAgICAgICBmbGF0dGVuZWQgPSAoX0FycmF5JHByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZSkuY29uY2F0LmFwcGx5KF9BcnJheSRwcm90b3R5cGUsIGVuZHMpLAoJICAgICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydChmdW5jdGlvbiAoYSwgYikgewoJICAgICAgcmV0dXJuIGEudGltZSAtIGIudGltZTsKCSAgICB9KTsKCgkgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShhcnIpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykgewoJICAgICAgdmFyIGkgPSBfc3RlcC52YWx1ZTsKCSAgICAgIGN1cnJlbnRDb3VudCArPSBpLnR5cGUgPT09ICJzIiA/IDEgOiAtMTsKCgkgICAgICBpZiAoY3VycmVudENvdW50ID09PSAxKSB7CgkgICAgICAgIHN0YXJ0ID0gaS50aW1lOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgaWYgKHN0YXJ0ICYmICtzdGFydCAhPT0gK2kudGltZSkgewoJICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTsKCSAgICAgICAgfQoKCSAgICAgICAgc3RhcnQgPSBudWxsOwoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIEludGVydmFsLm1lcmdlKHJlc3VsdHMpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy4KCSAgICogQHBhcmFtIHsuLi5JbnRlcnZhbH0gaW50ZXJ2YWxzCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmRpZmZlcmVuY2UgPSBmdW5jdGlvbiBkaWZmZXJlbmNlKCkgewoJICAgIHZhciBfdGhpczIgPSB0aGlzOwoKCSAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGludGVydmFscyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykgewoJICAgICAgaW50ZXJ2YWxzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07CgkgICAgfQoKCSAgICByZXR1cm4gSW50ZXJ2YWwueG9yKFt0aGlzXS5jb25jYXQoaW50ZXJ2YWxzKSkubWFwKGZ1bmN0aW9uIChpKSB7CgkgICAgICByZXR1cm4gX3RoaXMyLmludGVyc2VjdGlvbihpKTsKCSAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGkpIHsKCSAgICAgIHJldHVybiBpICYmICFpLmlzRW1wdHkoKTsKCSAgICB9KTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmcuCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwoJICAgIHJldHVybiAiWyIgKyB0aGlzLnMudG9JU08oKSArICIgXHUyMDEzICIgKyB0aGlzLmUudG9JU08oKSArICIpIjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwuCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT30KCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSVNPID0gZnVuY3Rpb24gdG9JU08ob3B0cykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwoJICAgIHJldHVybiB0aGlzLnMudG9JU08ob3B0cykgKyAiLyIgKyB0aGlzLmUudG9JU08ob3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuCgkgICAqIFRoZSB0aW1lIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHMKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSVNPRGF0ZSA9IGZ1bmN0aW9uIHRvSVNPRGF0ZSgpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKCSAgICByZXR1cm4gdGhpcy5zLnRvSVNPRGF0ZSgpICsgIi8iICsgdGhpcy5lLnRvSVNPRGF0ZSgpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGltZSBvZiB0aGlzIEludGVydmFsLgoJICAgKiBUaGUgZGF0ZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLgoJICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099CgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT1RpbWUgPSBmdW5jdGlvbiB0b0lTT1RpbWUob3B0cykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwoJICAgIHJldHVybiB0aGlzLnMudG9JU09UaW1lKG9wdHMpICsgIi8iICsgdGhpcy5lLnRvSVNPVGltZShvcHRzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0ZUZvcm1hdCAtIHRoZSBmb3JtYXQgc3RyaW5nLiBUaGlzIHN0cmluZyBmb3JtYXRzIHRoZSBzdGFydCBhbmQgZW5kIHRpbWUuIFNlZSB7QGxpbmsgRGF0ZVRpbWUjdG9Gb3JtYXR9IGZvciBkZXRhaWxzLgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLnNlcGFyYXRvciA9ICAnIOKAkyAnXSAtIGEgc2VwYXJhdG9yIHRvIHBsYWNlIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgcmVwcmVzZW50YXRpb25zCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0Zvcm1hdCA9IGZ1bmN0aW9uIHRvRm9ybWF0KGRhdGVGb3JtYXQsIF90ZW1wMikgewoJICAgIHZhciBfcmVmMyA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDIsCgkgICAgICAgIF9yZWYzJHNlcGFyYXRvciA9IF9yZWYzLnNlcGFyYXRvciwKCSAgICAgICAgc2VwYXJhdG9yID0gX3JlZjMkc2VwYXJhdG9yID09PSB2b2lkIDAgPyAiIOKAkyAiIDogX3JlZjMkc2VwYXJhdG9yOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKCSAgICByZXR1cm4gIiIgKyB0aGlzLnMudG9Gb3JtYXQoZGF0ZUZvcm1hdCkgKyBzZXBhcmF0b3IgKyB0aGlzLmUudG9Gb3JtYXQoZGF0ZUZvcm1hdCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhIER1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBzcGFubmVkIGJ5IHRoaXMgaW50ZXJ2YWwuCgkgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi4KCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDg4NDg5MjU3IH0KCSAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9CgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQuODIwOTUgfQoJICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcycsICdzZWNvbmRzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQsIHNlY29uZHM6IDQ5LjI1NyB9CgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0R1cmF0aW9uID0gZnVuY3Rpb24gdG9EdXJhdGlvbih1bml0LCBvcHRzKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKHRoaXMuaW52YWxpZFJlYXNvbik7CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5lLmRpZmYodGhpcy5zLCB1bml0LCBvcHRzKTsKCSAgfQoJICAvKioKCSAgICogUnVuIG1hcEZuIG9uIHRoZSBpbnRlcnZhbCBzdGFydCBhbmQgZW5kLCByZXR1cm5pbmcgYSBuZXcgSW50ZXJ2YWwgZnJvbSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lcwoJICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGbgoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnRvVVRDKCkpCgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpCgkgICAqLwoJICA7CgoJICBfcHJvdG8ubWFwRW5kcG9pbnRzID0gZnVuY3Rpb24gbWFwRW5kcG9pbnRzKG1hcEZuKSB7CgkgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMobWFwRm4odGhpcy5zKSwgbWFwRm4odGhpcy5lKSk7CgkgIH07CgoJICBfY3JlYXRlQ2xhc3MoSW50ZXJ2YWwsIFt7CgkgICAga2V5OiAic3RhcnQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgdGhlIGVuZCBvZiB0aGUgSW50ZXJ2YWwKCSAgICAgKiBAdHlwZSB7RGF0ZVRpbWV9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZW5kIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhdCBsZWFzdCBpdHMgc3RhcnQsIG1lYW5pbmcgdGhhdCB0aGUgSW50ZXJ2YWwgaXNuJ3QgJ2JhY2t3YXJkcycuCgkgICAgICogQHR5cGUge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZAoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaW52YWxpZFJlYXNvbiIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpbnZhbGlkRXhwbGFuYXRpb24iLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gSW50ZXJ2YWw7Cgl9KCk7CgoJLyoqCgkgKiBUaGUgSW5mbyBjbGFzcyBjb250YWlucyBzdGF0aWMgbWV0aG9kcyBmb3IgcmV0cmlldmluZyBnZW5lcmFsIHRpbWUgYW5kIGRhdGUgcmVsYXRlZCBkYXRhLiBGb3IgZXhhbXBsZSwgaXQgaGFzIG1ldGhvZHMgZm9yIGZpbmRpbmcgb3V0IGlmIGEgdGltZSB6b25lIGhhcyBhIERTVCwgZm9yIGxpc3RpbmcgdGhlIG1vbnRocyBpbiBhbnkgc3VwcG9ydGVkIGxvY2FsZSwgYW5kIGZvciBkaXNjb3ZlcmluZyB3aGljaCBvZiBMdXhvbiBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LgoJICovCgoJdmFyIEluZm8gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBJbmZvKCkge30KCgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgY29udGFpbnMgYSBEU1QuCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS4KCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIEluZm8uaGFzRFNUID0gZnVuY3Rpb24gaGFzRFNUKHpvbmUpIHsKCSAgICBpZiAoem9uZSA9PT0gdm9pZCAwKSB7CgkgICAgICB6b25lID0gU2V0dGluZ3MuZGVmYXVsdFpvbmU7CgkgICAgfQoKCSAgICB2YXIgcHJvdG8gPSBEYXRlVGltZS5ub3coKS5zZXRab25lKHpvbmUpLnNldCh7CgkgICAgICBtb250aDogMTIKCSAgICB9KTsKCSAgICByZXR1cm4gIXpvbmUuaXNVbml2ZXJzYWwgJiYgcHJvdG8ub2Zmc2V0ICE9PSBwcm90by5zZXQoewoJICAgICAgbW9udGg6IDYKCSAgICB9KS5vZmZzZXQ7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBpcyBhIHZhbGlkIElBTkEgc3BlY2lmaWVyLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFpvbmUgdG8gY2hlY2sKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIEluZm8uaXNWYWxpZElBTkFab25lID0gZnVuY3Rpb24gaXNWYWxpZElBTkFab25lKHpvbmUpIHsKCSAgICByZXR1cm4gSUFOQVpvbmUuaXNWYWxpZFpvbmUoem9uZSk7CgkgIH0KCSAgLyoqCgkgICAqIENvbnZlcnRzIHRoZSBpbnB1dCBpbnRvIGEge0BsaW5rIFpvbmV9IGluc3RhbmNlLgoJICAgKgoJICAgKiAqIElmIGBpbnB1dGAgaXMgYWxyZWFkeSBhIFpvbmUgaW5zdGFuY2UsIGl0IGlzIHJldHVybmVkIHVuY2hhbmdlZC4KCSAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCB0aW1lIHpvbmUgbmFtZSwgYSBab25lIGluc3RhbmNlCgkgICAqICAgd2l0aCB0aGF0IG5hbWUgaXMgcmV0dXJuZWQuCgkgICAqICogSWYgYGlucHV0YCBpcyBhIHN0cmluZyB0aGF0IGRvZXNuJ3QgcmVmZXIgdG8gYSBrbm93biB0aW1lIHpvbmUsIGEgWm9uZQoJICAgKiAgIGluc3RhbmNlIHdpdGgge0BsaW5rIFpvbmUjaXNWYWxpZH0gPT0gZmFsc2UgaXMgcmV0dXJuZWQuCgkgICAqICogSWYgYGlucHV0IGlzIGEgbnVtYmVyLCBhIFpvbmUgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGZpeGVkIG9mZnNldAoJICAgKiAgIGluIG1pbnV0ZXMgaXMgcmV0dXJuZWQuCgkgICAqICogSWYgYGlucHV0YCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZSBkZWZhdWx0IHpvbmUgaXMgcmV0dXJuZWQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV8bnVtYmVyfSBbaW5wdXRdIC0gdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZAoJICAgKiBAcmV0dXJuIHtab25lfQoJICAgKi8KCSAgOwoKCSAgSW5mby5ub3JtYWxpemVab25lID0gZnVuY3Rpb24gbm9ybWFsaXplWm9uZSQxKGlucHV0KSB7CgkgICAgcmV0dXJuIG5vcm1hbGl6ZVpvbmUoaW5wdXQsIFNldHRpbmdzLmRlZmF1bHRab25lKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIGFuIGFycmF5IG9mIHN0YW5kYWxvbmUgbW9udGggbmFtZXMuCgkgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJudW1lcmljIiwgIjItZGlnaXQiLCAibmFycm93IiwgInNob3J0IiwgImxvbmciCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyCgkgICAqIEBleGFtcGxlIEluZm8ubW9udGhzKClbMF0gLy89PiAnSmFudWFyeScKCSAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ3Nob3J0JylbMF0gLy89PiAnSmFuJwoJICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycpWzBdIC8vPT4gJzEnCgkgICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0gKVswXSAvLz0+ICdqYW52LicKCSAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ251bWVyaWMnLCB7IGxvY2FsZTogJ2FyJyB9KVswXSAvLz0+ICfZoScKCSAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ2xvbmcnLCB7IG91dHB1dENhbGVuZGFyOiAnaXNsYW1pYycgfSlbMF0gLy89PiAnUmFiacq7IEknCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgSW5mby5tb250aHMgPSBmdW5jdGlvbiBtb250aHMobGVuZ3RoLCBfdGVtcCkgewoJICAgIGlmIChsZW5ndGggPT09IHZvaWQgMCkgewoJICAgICAgbGVuZ3RoID0gImxvbmciOwoJICAgIH0KCgkgICAgdmFyIF9yZWYgPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcCwKCSAgICAgICAgX3JlZiRsb2NhbGUgPSBfcmVmLmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZiRsb2NhbGUgPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJGxvY2FsZSwKCSAgICAgICAgX3JlZiRudW1iZXJpbmdTeXN0ZW0gPSBfcmVmLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX3JlZiRudW1iZXJpbmdTeXN0ZW0gPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJG51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgX3JlZiRsb2NPYmogPSBfcmVmLmxvY09iaiwKCSAgICAgICAgbG9jT2JqID0gX3JlZiRsb2NPYmogPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJGxvY09iaiwKCSAgICAgICAgX3JlZiRvdXRwdXRDYWxlbmRhciA9IF9yZWYub3V0cHV0Q2FsZW5kYXIsCgkgICAgICAgIG91dHB1dENhbGVuZGFyID0gX3JlZiRvdXRwdXRDYWxlbmRhciA9PT0gdm9pZCAwID8gImdyZWdvcnkiIDogX3JlZiRvdXRwdXRDYWxlbmRhcjsKCgkgICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCBtb250aCBuYW1lcy4KCSAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0CgkgICAqIGNoYW5nZXMgdGhlIHN0cmluZy4KCSAgICogU2VlIHtAbGluayBJbmZvI21vbnRoc30KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJudW1lcmljIiwgIjItZGlnaXQiLCAibmFycm93IiwgInNob3J0IiwgImxvbmciCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgSW5mby5tb250aHNGb3JtYXQgPSBmdW5jdGlvbiBtb250aHNGb3JtYXQobGVuZ3RoLCBfdGVtcDIpIHsKCSAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsKCSAgICAgIGxlbmd0aCA9ICJsb25nIjsKCSAgICB9CgoJICAgIHZhciBfcmVmMiA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDIsCgkgICAgICAgIF9yZWYyJGxvY2FsZSA9IF9yZWYyLmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZjIkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjIkbG9jYWxlLAoJICAgICAgICBfcmVmMiRudW1iZXJpbmdTeXN0ZW0gPSBfcmVmMi5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9yZWYyJG51bWJlcmluZ1N5c3RlbSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYyJG51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgX3JlZjIkbG9jT2JqID0gX3JlZjIubG9jT2JqLAoJICAgICAgICBsb2NPYmogPSBfcmVmMiRsb2NPYmogPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmMiRsb2NPYmosCgkgICAgICAgIF9yZWYyJG91dHB1dENhbGVuZGFyID0gX3JlZjIub3V0cHV0Q2FsZW5kYXIsCgkgICAgICAgIG91dHB1dENhbGVuZGFyID0gX3JlZjIkb3V0cHV0Q2FsZW5kYXIgPT09IHZvaWQgMCA/ICJncmVnb3J5IiA6IF9yZWYyJG91dHB1dENhbGVuZGFyOwoKCSAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgsIHRydWUpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSB3ZWVrIG5hbWVzLgoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSB3ZWVrZGF5IHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlCgkgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoKVswXSAvLz0+ICdNb25kYXknCgkgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JylbMF0gLy89PiAnTW9uJwoJICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0pWzBdIC8vPT4gJ2x1bi4nCgkgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAn2KfZhNin2KvZhtmK2YYnCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgSW5mby53ZWVrZGF5cyA9IGZ1bmN0aW9uIHdlZWtkYXlzKGxlbmd0aCwgX3RlbXAzKSB7CgkgICAgaWYgKGxlbmd0aCA9PT0gdm9pZCAwKSB7CgkgICAgICBsZW5ndGggPSAibG9uZyI7CgkgICAgfQoKCSAgICB2YXIgX3JlZjMgPSBfdGVtcDMgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAzLAoJICAgICAgICBfcmVmMyRsb2NhbGUgPSBfcmVmMy5sb2NhbGUsCgkgICAgICAgIGxvY2FsZSA9IF9yZWYzJGxvY2FsZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYzJGxvY2FsZSwKCSAgICAgICAgX3JlZjMkbnVtYmVyaW5nU3lzdGVtID0gX3JlZjMubnVtYmVyaW5nU3lzdGVtLAoJICAgICAgICBudW1iZXJpbmdTeXN0ZW0gPSBfcmVmMyRudW1iZXJpbmdTeXN0ZW0gPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmMyRudW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIF9yZWYzJGxvY09iaiA9IF9yZWYzLmxvY09iaiwKCSAgICAgICAgbG9jT2JqID0gX3JlZjMkbG9jT2JqID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjMkbG9jT2JqOwoKCSAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCB3ZWVrIG5hbWVzLgoJICAgKiBGb3JtYXQgd2Vla2RheXMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSB3ZWVrZGF5cyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gbW9yZSBkYXRlIGluZm9ybWF0aW9uLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdAoJICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuCgkgICAqIFNlZSB7QGxpbmsgSW5mbyN3ZWVrZGF5c30KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPW51bGxdIC0gdGhlIGxvY2FsZSBjb2RlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbmZvLndlZWtkYXlzRm9ybWF0ID0gZnVuY3Rpb24gd2Vla2RheXNGb3JtYXQobGVuZ3RoLCBfdGVtcDQpIHsKCSAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsKCSAgICAgIGxlbmd0aCA9ICJsb25nIjsKCSAgICB9CgoJICAgIHZhciBfcmVmNCA9IF90ZW1wNCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDQsCgkgICAgICAgIF9yZWY0JGxvY2FsZSA9IF9yZWY0LmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZjQkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjQkbG9jYWxlLAoJICAgICAgICBfcmVmNCRudW1iZXJpbmdTeXN0ZW0gPSBfcmVmNC5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9yZWY0JG51bWJlcmluZ1N5c3RlbSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWY0JG51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgX3JlZjQkbG9jT2JqID0gX3JlZjQubG9jT2JqLAoJICAgICAgICBsb2NPYmogPSBfcmVmNCRsb2NPYmogPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmNCRsb2NPYmo7CgoJICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgsIHRydWUpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgbWVyaWRpZW1zLgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGUKCSAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoKSAvLz0+IFsgJ0FNJywgJ1BNJyBdCgkgICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKHsgbG9jYWxlOiAnbXknIH0pIC8vPT4gWyAn4YCU4YC24YCU4YCA4YC6JywgJ+GAiuGAlOGAsScgXQoJICAgKiBAcmV0dXJuIHtBcnJheX0KCSAgICovCgkgIDsKCgkgIEluZm8ubWVyaWRpZW1zID0gZnVuY3Rpb24gbWVyaWRpZW1zKF90ZW1wNSkgewoJICAgIHZhciBfcmVmNSA9IF90ZW1wNSA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDUsCgkgICAgICAgIF9yZWY1JGxvY2FsZSA9IF9yZWY1LmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZjUkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjUkbG9jYWxlOwoKCSAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUpLm1lcmlkaWVtcygpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZXJhcywgc3VjaCBhcyBbJ0JDJywgJ0FEJ10uIFRoZSBsb2NhbGUgY2FuIGJlIHNwZWNpZmllZCwgYnV0IHRoZSBjYWxlbmRhciBzeXN0ZW0gaXMgYWx3YXlzIEdyZWdvcmlhbi4KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J3Nob3J0J10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBlcmEgcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgInNob3J0IiBvciAibG9uZyIuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoKSAvLz0+IFsgJ0JDJywgJ0FEJyBdCgkgICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycpIC8vPT4gWyAnQmVmb3JlIENocmlzdCcsICdBbm5vIERvbWluaScgXQoJICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnLCB7IGxvY2FsZTogJ2ZyJyB9KSAvLz0+IFsgJ2F2YW50IErDqXN1cy1DaHJpc3QnLCAnYXByw6hzIErDqXN1cy1DaHJpc3QnIF0KCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbmZvLmVyYXMgPSBmdW5jdGlvbiBlcmFzKGxlbmd0aCwgX3RlbXA2KSB7CgkgICAgaWYgKGxlbmd0aCA9PT0gdm9pZCAwKSB7CgkgICAgICBsZW5ndGggPSAic2hvcnQiOwoJICAgIH0KCgkgICAgdmFyIF9yZWY2ID0gX3RlbXA2ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNiwKCSAgICAgICAgX3JlZjYkbG9jYWxlID0gX3JlZjYubG9jYWxlLAoJICAgICAgICBsb2NhbGUgPSBfcmVmNiRsb2NhbGUgPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmNiRsb2NhbGU7CgoJICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgImdyZWdvcnkiKS5lcmFzKGxlbmd0aCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBmZWF0dXJlcyBpbiB0aGlzIGVudmlyb25tZW50LgoJICAgKiBTb21lIGZlYXR1cmVzIG9mIEx1eG9uIGFyZSBub3QgYXZhaWxhYmxlIGluIGFsbCBlbnZpcm9ubWVudHMuIEZvciBleGFtcGxlLCBvbiBvbGRlciBicm93c2VycywgcmVsYXRpdmUgdGltZSBmb3JtYXR0aW5nIHN1cHBvcnQgaXMgbm90IGF2YWlsYWJsZS4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gZmlndXJlIG91dCBpZiB0aGF0J3MgdGhlIGNhc2UuCgkgICAqIEtleXM6CgkgICAqICogYHJlbGF0aXZlYDogd2hldGhlciB0aGlzIGVudmlyb25tZW50IHN1cHBvcnRzIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZwoJICAgKiBAZXhhbXBsZSBJbmZvLmZlYXR1cmVzKCkgLy89PiB7IHJlbGF0aXZlOiBmYWxzZSB9CgkgICAqIEByZXR1cm4ge09iamVjdH0KCSAgICovCgkgIDsKCgkgIEluZm8uZmVhdHVyZXMgPSBmdW5jdGlvbiBmZWF0dXJlcygpIHsKCSAgICByZXR1cm4gewoJICAgICAgcmVsYXRpdmU6IGhhc1JlbGF0aXZlKCkKCSAgICB9OwoJICB9OwoKCSAgcmV0dXJuIEluZm87Cgl9KCk7CgoJZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikgewoJICB2YXIgdXRjRGF5U3RhcnQgPSBmdW5jdGlvbiB1dGNEYXlTdGFydChkdCkgewoJICAgIHJldHVybiBkdC50b1VUQygwLCB7CgkgICAgICBrZWVwTG9jYWxUaW1lOiB0cnVlCgkgICAgfSkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpOwoJICB9LAoJICAgICAgbXMgPSB1dGNEYXlTdGFydChsYXRlcikgLSB1dGNEYXlTdGFydChlYXJsaWVyKTsKCgkgIHJldHVybiBNYXRoLmZsb29yKER1cmF0aW9uLmZyb21NaWxsaXMobXMpLmFzKCJkYXlzIikpOwoJfQoKCWZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7CgkgIHZhciBkaWZmZXJzID0gW1sieWVhcnMiLCBmdW5jdGlvbiAoYSwgYikgewoJICAgIHJldHVybiBiLnllYXIgLSBhLnllYXI7CgkgIH1dLCBbInF1YXJ0ZXJzIiwgZnVuY3Rpb24gKGEsIGIpIHsKCSAgICByZXR1cm4gYi5xdWFydGVyIC0gYS5xdWFydGVyOwoJICB9XSwgWyJtb250aHMiLCBmdW5jdGlvbiAoYSwgYikgewoJICAgIHJldHVybiBiLm1vbnRoIC0gYS5tb250aCArIChiLnllYXIgLSBhLnllYXIpICogMTI7CgkgIH1dLCBbIndlZWtzIiwgZnVuY3Rpb24gKGEsIGIpIHsKCSAgICB2YXIgZGF5cyA9IGRheURpZmYoYSwgYik7CgkgICAgcmV0dXJuIChkYXlzIC0gZGF5cyAlIDcpIC8gNzsKCSAgfV0sIFsiZGF5cyIsIGRheURpZmZdXTsKCSAgdmFyIHJlc3VsdHMgPSB7fTsKCSAgdmFyIGxvd2VzdE9yZGVyLCBoaWdoV2F0ZXI7CgoJICBmb3IgKHZhciBfaSA9IDAsIF9kaWZmZXJzID0gZGlmZmVyczsgX2kgPCBfZGlmZmVycy5sZW5ndGg7IF9pKyspIHsKCSAgICB2YXIgX2RpZmZlcnMkX2kgPSBfZGlmZmVyc1tfaV0sCgkgICAgICAgIHVuaXQgPSBfZGlmZmVycyRfaVswXSwKCSAgICAgICAgZGlmZmVyID0gX2RpZmZlcnMkX2lbMV07CgoJICAgIGlmICh1bml0cy5pbmRleE9mKHVuaXQpID49IDApIHsKCSAgICAgIHZhciBfY3Vyc29yJHBsdXM7CgoJICAgICAgbG93ZXN0T3JkZXIgPSB1bml0OwoJICAgICAgdmFyIGRlbHRhID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpOwoJICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoKF9jdXJzb3IkcGx1cyA9IHt9LCBfY3Vyc29yJHBsdXNbdW5pdF0gPSBkZWx0YSwgX2N1cnNvciRwbHVzKSk7CgoJICAgICAgaWYgKGhpZ2hXYXRlciA+IGxhdGVyKSB7CgkgICAgICAgIHZhciBfY3Vyc29yJHBsdXMyOwoKCSAgICAgICAgY3Vyc29yID0gY3Vyc29yLnBsdXMoKF9jdXJzb3IkcGx1czIgPSB7fSwgX2N1cnNvciRwbHVzMlt1bml0XSA9IGRlbHRhIC0gMSwgX2N1cnNvciRwbHVzMikpOwoJICAgICAgICBkZWx0YSAtPSAxOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgY3Vyc29yID0gaGlnaFdhdGVyOwoJICAgICAgfQoKCSAgICAgIHJlc3VsdHNbdW5pdF0gPSBkZWx0YTsKCSAgICB9CgkgIH0KCgkgIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTsKCX0KCglmdW5jdGlvbiBfZGlmZiAoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBvcHRzKSB7CgkgIHZhciBfaGlnaE9yZGVyRGlmZnMgPSBoaWdoT3JkZXJEaWZmcyhlYXJsaWVyLCBsYXRlciwgdW5pdHMpLAoJICAgICAgY3Vyc29yID0gX2hpZ2hPcmRlckRpZmZzWzBdLAoJICAgICAgcmVzdWx0cyA9IF9oaWdoT3JkZXJEaWZmc1sxXSwKCSAgICAgIGhpZ2hXYXRlciA9IF9oaWdoT3JkZXJEaWZmc1syXSwKCSAgICAgIGxvd2VzdE9yZGVyID0gX2hpZ2hPcmRlckRpZmZzWzNdOwoKCSAgdmFyIHJlbWFpbmluZ01pbGxpcyA9IGxhdGVyIC0gY3Vyc29yOwoJICB2YXIgbG93ZXJPcmRlclVuaXRzID0gdW5pdHMuZmlsdGVyKGZ1bmN0aW9uICh1KSB7CgkgICAgcmV0dXJuIFsiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIiwgIm1pbGxpc2Vjb25kcyJdLmluZGV4T2YodSkgPj0gMDsKCSAgfSk7CgoJICBpZiAobG93ZXJPcmRlclVuaXRzLmxlbmd0aCA9PT0gMCkgewoJICAgIGlmIChoaWdoV2F0ZXIgPCBsYXRlcikgewoJICAgICAgdmFyIF9jdXJzb3IkcGx1czM7CgoJICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoKF9jdXJzb3IkcGx1czMgPSB7fSwgX2N1cnNvciRwbHVzM1tsb3dlc3RPcmRlcl0gPSAxLCBfY3Vyc29yJHBsdXMzKSk7CgkgICAgfQoKCSAgICBpZiAoaGlnaFdhdGVyICE9PSBjdXJzb3IpIHsKCSAgICAgIHJlc3VsdHNbbG93ZXN0T3JkZXJdID0gKHJlc3VsdHNbbG93ZXN0T3JkZXJdIHx8IDApICsgcmVtYWluaW5nTWlsbGlzIC8gKGhpZ2hXYXRlciAtIGN1cnNvcik7CgkgICAgfQoJICB9CgoJICB2YXIgZHVyYXRpb24gPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHJlc3VsdHMsIG9wdHMpOwoKCSAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPiAwKSB7CgkgICAgdmFyIF9EdXJhdGlvbiRmcm9tTWlsbGlzOwoKCSAgICByZXR1cm4gKF9EdXJhdGlvbiRmcm9tTWlsbGlzID0gRHVyYXRpb24uZnJvbU1pbGxpcyhyZW1haW5pbmdNaWxsaXMsIG9wdHMpKS5zaGlmdFRvLmFwcGx5KF9EdXJhdGlvbiRmcm9tTWlsbGlzLCBsb3dlck9yZGVyVW5pdHMpLnBsdXMoZHVyYXRpb24pOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBkdXJhdGlvbjsKCSAgfQoJfQoKCXZhciBudW1iZXJpbmdTeXN0ZW1zID0gewoJICBhcmFiOiAiW1x1MDY2MC1cdTA2NjldIiwKCSAgYXJhYmV4dDogIltcdTA2RjAtXHUwNkY5XSIsCgkgIGJhbGk6ICJbXHUxQjUwLVx1MUI1OV0iLAoJICBiZW5nOiAiW1x1MDlFNi1cdTA5RUZdIiwKCSAgZGV2YTogIltcdTA5NjYtXHUwOTZGXSIsCgkgIGZ1bGx3aWRlOiAiW1x1RkYxMC1cdUZGMTldIiwKCSAgZ3VqcjogIltcdTBBRTYtXHUwQUVGXSIsCgkgIGhhbmlkZWM6ICJb44CHfOS4gHzkuox85LiJfOWbm3zkupR85YWtfOS4g3zlhat85LmdXSIsCgkgIGtobXI6ICJbXHUxN0UwLVx1MTdFOV0iLAoJICBrbmRhOiAiW1x1MENFNi1cdTBDRUZdIiwKCSAgbGFvbzogIltcdTBFRDAtXHUwRUQ5XSIsCgkgIGxpbWI6ICJbXHUxOTQ2LVx1MTk0Rl0iLAoJICBtbHltOiAiW1x1MEQ2Ni1cdTBENkZdIiwKCSAgbW9uZzogIltcdTE4MTAtXHUxODE5XSIsCgkgIG15bXI6ICJbXHUxMDQwLVx1MTA0OV0iLAoJICBvcnlhOiAiW1x1MEI2Ni1cdTBCNkZdIiwKCSAgdGFtbGRlYzogIltcdTBCRTYtXHUwQkVGXSIsCgkgIHRlbHU6ICJbXHUwQzY2LVx1MEM2Rl0iLAoJICB0aGFpOiAiW1x1MEU1MC1cdTBFNTldIiwKCSAgdGlidDogIltcdTBGMjAtXHUwRjI5XSIsCgkgIGxhdG46ICJcXGQiCgl9OwoJdmFyIG51bWJlcmluZ1N5c3RlbXNVVEYxNiA9IHsKCSAgYXJhYjogWzE2MzIsIDE2NDFdLAoJICBhcmFiZXh0OiBbMTc3NiwgMTc4NV0sCgkgIGJhbGk6IFs2OTkyLCA3MDAxXSwKCSAgYmVuZzogWzI1MzQsIDI1NDNdLAoJICBkZXZhOiBbMjQwNiwgMjQxNV0sCgkgIGZ1bGx3aWRlOiBbNjUyOTYsIDY1MzAzXSwKCSAgZ3VqcjogWzI3OTAsIDI3OTldLAoJICBraG1yOiBbNjExMiwgNjEyMV0sCgkgIGtuZGE6IFszMzAyLCAzMzExXSwKCSAgbGFvbzogWzM3OTIsIDM4MDFdLAoJICBsaW1iOiBbNjQ3MCwgNjQ3OV0sCgkgIG1seW06IFszNDMwLCAzNDM5XSwKCSAgbW9uZzogWzYxNjAsIDYxNjldLAoJICBteW1yOiBbNDE2MCwgNDE2OV0sCgkgIG9yeWE6IFsyOTE4LCAyOTI3XSwKCSAgdGFtbGRlYzogWzMwNDYsIDMwNTVdLAoJICB0ZWx1OiBbMzE3NCwgMzE4M10sCgkgIHRoYWk6IFszNjY0LCAzNjczXSwKCSAgdGlidDogWzM4NzIsIDM4ODFdCgl9OwoJdmFyIGhhbmlkZWNDaGFycyA9IG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYy5yZXBsYWNlKC9bXFt8XF1dL2csICIiKS5zcGxpdCgiIik7CglmdW5jdGlvbiBwYXJzZURpZ2l0cyhzdHIpIHsKCSAgdmFyIHZhbHVlID0gcGFyc2VJbnQoc3RyLCAxMCk7CgoJICBpZiAoaXNOYU4odmFsdWUpKSB7CgkgICAgdmFsdWUgPSAiIjsKCgkgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHsKCSAgICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7CgoJICAgICAgaWYgKHN0cltpXS5zZWFyY2gobnVtYmVyaW5nU3lzdGVtcy5oYW5pZGVjKSAhPT0gLTEpIHsKCSAgICAgICAgdmFsdWUgKz0gaGFuaWRlY0NoYXJzLmluZGV4T2Yoc3RyW2ldKTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIGZvciAodmFyIGtleSBpbiBudW1iZXJpbmdTeXN0ZW1zVVRGMTYpIHsKCSAgICAgICAgICB2YXIgX251bWJlcmluZ1N5c3RlbXNVVEYgPSBudW1iZXJpbmdTeXN0ZW1zVVRGMTZba2V5XSwKCSAgICAgICAgICAgICAgbWluID0gX251bWJlcmluZ1N5c3RlbXNVVEZbMF0sCgkgICAgICAgICAgICAgIG1heCA9IF9udW1iZXJpbmdTeXN0ZW1zVVRGWzFdOwoKCSAgICAgICAgICBpZiAoY29kZSA+PSBtaW4gJiYgY29kZSA8PSBtYXgpIHsKCSAgICAgICAgICAgIHZhbHVlICs9IGNvZGUgLSBtaW47CgkgICAgICAgICAgfQoJICAgICAgICB9CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gdmFsdWU7CgkgIH0KCX0KCWZ1bmN0aW9uIGRpZ2l0UmVnZXgoX3JlZiwgYXBwZW5kKSB7CgkgIHZhciBudW1iZXJpbmdTeXN0ZW0gPSBfcmVmLm51bWJlcmluZ1N5c3RlbTsKCgkgIGlmIChhcHBlbmQgPT09IHZvaWQgMCkgewoJICAgIGFwcGVuZCA9ICIiOwoJICB9CgoJICByZXR1cm4gbmV3IFJlZ0V4cCgiIiArIG51bWJlcmluZ1N5c3RlbXNbbnVtYmVyaW5nU3lzdGVtIHx8ICJsYXRuIl0gKyBhcHBlbmQpOwoJfQoKCXZhciBNSVNTSU5HX0ZUUCA9ICJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0IjsKCglmdW5jdGlvbiBpbnRVbml0KHJlZ2V4LCBwb3N0KSB7CgkgIGlmIChwb3N0ID09PSB2b2lkIDApIHsKCSAgICBwb3N0ID0gZnVuY3Rpb24gcG9zdChpKSB7CgkgICAgICByZXR1cm4gaTsKCSAgICB9OwoJICB9CgoJICByZXR1cm4gewoJICAgIHJlZ2V4OiByZWdleCwKCSAgICBkZXNlcjogZnVuY3Rpb24gZGVzZXIoX3JlZikgewoJICAgICAgdmFyIHMgPSBfcmVmWzBdOwoJICAgICAgcmV0dXJuIHBvc3QocGFyc2VEaWdpdHMocykpOwoJICAgIH0KCSAgfTsKCX0KCgl2YXIgTkJTUCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTsKCXZhciBzcGFjZU9yTkJTUCA9ICJbICIgKyBOQlNQICsgIl0iOwoJdmFyIHNwYWNlT3JOQlNQUmVnRXhwID0gbmV3IFJlZ0V4cChzcGFjZU9yTkJTUCwgImciKTsKCglmdW5jdGlvbiBmaXhMaXN0UmVnZXgocykgewoJICAvLyBtYWtlIGRvdHMgb3B0aW9uYWwgYW5kIGFsc28gbWFrZSB0aGVtIGxpdGVyYWwKCSAgLy8gbWFrZSBzcGFjZSBhbmQgbm9uIGJyZWFrYWJsZSBzcGFjZSBjaGFyYWN0ZXJzIGludGVyY2hhbmdlYWJsZQoJICByZXR1cm4gcy5yZXBsYWNlKC9cLi9nLCAiXFwuPyIpLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIHNwYWNlT3JOQlNQKTsKCX0KCglmdW5jdGlvbiBzdHJpcEluc2Vuc2l0aXZpdGllcyhzKSB7CgkgIHJldHVybiBzLnJlcGxhY2UoL1wuL2csICIiKSAvLyBpZ25vcmUgZG90cyB0aGF0IHdlcmUgbWFkZSBvcHRpb25hbAoJICAucmVwbGFjZShzcGFjZU9yTkJTUFJlZ0V4cCwgIiAiKSAvLyBpbnRlcmNoYW5nZSBzcGFjZSBhbmQgbmJzcAoJICAudG9Mb3dlckNhc2UoKTsKCX0KCglmdW5jdGlvbiBvbmVPZihzdHJpbmdzLCBzdGFydEluZGV4KSB7CgkgIGlmIChzdHJpbmdzID09PSBudWxsKSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIHsKCSAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKCJ8IikpLAoJICAgICAgZGVzZXI6IGZ1bmN0aW9uIGRlc2VyKF9yZWYyKSB7CgkgICAgICAgIHZhciBzID0gX3JlZjJbMF07CgkgICAgICAgIHJldHVybiBzdHJpbmdzLmZpbmRJbmRleChmdW5jdGlvbiAoaSkgewoJICAgICAgICAgIHJldHVybiBzdHJpcEluc2Vuc2l0aXZpdGllcyhzKSA9PT0gc3RyaXBJbnNlbnNpdGl2aXRpZXMoaSk7CgkgICAgICAgIH0pICsgc3RhcnRJbmRleDsKCSAgICAgIH0KCSAgICB9OwoJICB9Cgl9CgoJZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHsKCSAgcmV0dXJuIHsKCSAgICByZWdleDogcmVnZXgsCgkgICAgZGVzZXI6IGZ1bmN0aW9uIGRlc2VyKF9yZWYzKSB7CgkgICAgICB2YXIgaCA9IF9yZWYzWzFdLAoJICAgICAgICAgIG0gPSBfcmVmM1syXTsKCSAgICAgIHJldHVybiBzaWduZWRPZmZzZXQoaCwgbSk7CgkgICAgfSwKCSAgICBncm91cHM6IGdyb3VwcwoJICB9OwoJfQoKCWZ1bmN0aW9uIHNpbXBsZShyZWdleCkgewoJICByZXR1cm4gewoJICAgIHJlZ2V4OiByZWdleCwKCSAgICBkZXNlcjogZnVuY3Rpb24gZGVzZXIoX3JlZjQpIHsKCSAgICAgIHZhciBzID0gX3JlZjRbMF07CgkgICAgICByZXR1cm4gczsKCSAgICB9CgkgIH07Cgl9CgoJZnVuY3Rpb24gZXNjYXBlVG9rZW4odmFsdWUpIHsKCSAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1tcLVxbXF17fSgpKis/LixcXFxeJHwjXHNdL2csICJcXCQmIik7Cgl9CgoJZnVuY3Rpb24gdW5pdEZvclRva2VuKHRva2VuLCBsb2MpIHsKCSAgdmFyIG9uZSA9IGRpZ2l0UmVnZXgobG9jKSwKCSAgICAgIHR3byA9IGRpZ2l0UmVnZXgobG9jLCAiezJ9IiksCgkgICAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCAiezN9IiksCgkgICAgICBmb3VyID0gZGlnaXRSZWdleChsb2MsICJ7NH0iKSwKCSAgICAgIHNpeCA9IGRpZ2l0UmVnZXgobG9jLCAiezZ9IiksCgkgICAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCAiezEsMn0iKSwKCSAgICAgIG9uZVRvVGhyZWUgPSBkaWdpdFJlZ2V4KGxvYywgInsxLDN9IiksCgkgICAgICBvbmVUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCAiezEsNn0iKSwKCSAgICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCAiezEsOX0iKSwKCSAgICAgIHR3b1RvRm91ciA9IGRpZ2l0UmVnZXgobG9jLCAiezIsNH0iKSwKCSAgICAgIGZvdXJUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCAiezQsNn0iKSwKCSAgICAgIGxpdGVyYWwgPSBmdW5jdGlvbiBsaXRlcmFsKHQpIHsKCSAgICByZXR1cm4gewoJICAgICAgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLAoJICAgICAgZGVzZXI6IGZ1bmN0aW9uIGRlc2VyKF9yZWY1KSB7CgkgICAgICAgIHZhciBzID0gX3JlZjVbMF07CgkgICAgICAgIHJldHVybiBzOwoJICAgICAgfSwKCSAgICAgIGxpdGVyYWw6IHRydWUKCSAgICB9OwoJICB9LAoJICAgICAgdW5pdGF0ZSA9IGZ1bmN0aW9uIHVuaXRhdGUodCkgewoJICAgIGlmICh0b2tlbi5saXRlcmFsKSB7CgkgICAgICByZXR1cm4gbGl0ZXJhbCh0KTsKCSAgICB9CgoJICAgIHN3aXRjaCAodC52YWwpIHsKCSAgICAgIC8vIGVyYQoJICAgICAgY2FzZSAiRyI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcygic2hvcnQiLCBmYWxzZSksIDApOwoKCSAgICAgIGNhc2UgIkdHIjoKCSAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5lcmFzKCJsb25nIiwgZmFsc2UpLCAwKTsKCSAgICAgIC8vIHllYXJzCgoJICAgICAgY2FzZSAieSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvU2l4KTsKCgkgICAgICBjYXNlICJ5eSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpOwoKCSAgICAgIGNhc2UgInl5eXkiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTsKCgkgICAgICBjYXNlICJ5eXl5eSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXJUb1NpeCk7CgoJICAgICAgY2FzZSAieXl5eXl5IjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQoc2l4KTsKCSAgICAgIC8vIG1vbnRocwoKCSAgICAgIGNhc2UgIk0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAiTU0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgIk1NTSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJzaG9ydCIsIHRydWUsIGZhbHNlKSwgMSk7CgoJICAgICAgY2FzZSAiTU1NTSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJsb25nIiwgdHJ1ZSwgZmFsc2UpLCAxKTsKCgkgICAgICBjYXNlICJMIjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pOwoKCSAgICAgIGNhc2UgIkxMIjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKCgkgICAgICBjYXNlICJMTEwiOgoJICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocygic2hvcnQiLCBmYWxzZSwgZmFsc2UpLCAxKTsKCgkgICAgICBjYXNlICJMTExMIjoKCSAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoImxvbmciLCBmYWxzZSwgZmFsc2UpLCAxKTsKCSAgICAgIC8vIGRhdGVzCgoJICAgICAgY2FzZSAiZCI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKCgkgICAgICBjYXNlICJkZCI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CgkgICAgICAvLyBvcmRpbmFscwoKCSAgICAgIGNhc2UgIm8iOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1RocmVlKTsKCgkgICAgICBjYXNlICJvb28iOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7CgkgICAgICAvLyB0aW1lCgoJICAgICAgY2FzZSAiSEgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgIkgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAiaGgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgImgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAibW0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgIm0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAicSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKCgkgICAgICBjYXNlICJxcSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CgoJICAgICAgY2FzZSAicyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKCgkgICAgICBjYXNlICJzcyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CgoJICAgICAgY2FzZSAiUyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpOwoKCSAgICAgIGNhc2UgIlNTUyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHRocmVlKTsKCgkgICAgICBjYXNlICJ1IjoKCSAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpOwoKCSAgICAgIGNhc2UgInV1IjoKCSAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVPclR3byk7CgoJICAgICAgY2FzZSAidXV1IjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTsKCSAgICAgIC8vIG1lcmlkaWVtCgoJICAgICAgY2FzZSAiYSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApOwoJICAgICAgLy8gd2Vla1llYXIgKGspCgoJICAgICAgY2FzZSAia2trayI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpOwoKCSAgICAgIGNhc2UgImtrIjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7CgkgICAgICAvLyB3ZWVrTnVtYmVyIChXKQoKCSAgICAgIGNhc2UgIlciOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAiV1ciOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoJICAgICAgLy8gd2Vla2RheXMKCgkgICAgICBjYXNlICJFIjoKCSAgICAgIGNhc2UgImMiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmUpOwoKCSAgICAgIGNhc2UgIkVFRSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoInNob3J0IiwgZmFsc2UsIGZhbHNlKSwgMSk7CgoJICAgICAgY2FzZSAiRUVFRSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoImxvbmciLCBmYWxzZSwgZmFsc2UpLCAxKTsKCgkgICAgICBjYXNlICJjY2MiOgoJICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKCJzaG9ydCIsIHRydWUsIGZhbHNlKSwgMSk7CgoJICAgICAgY2FzZSAiY2NjYyI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoImxvbmciLCB0cnVlLCBmYWxzZSksIDEpOwoJICAgICAgLy8gb2Zmc2V0L3pvbmUKCgkgICAgICBjYXNlICJaIjoKCSAgICAgIGNhc2UgIlpaIjoKCSAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKCIoWystXSIgKyBvbmVPclR3by5zb3VyY2UgKyAiKSg/OjooIiArIHR3by5zb3VyY2UgKyAiKSk/IiksIDIpOwoKCSAgICAgIGNhc2UgIlpaWiI6CgkgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cCgiKFsrLV0iICsgb25lT3JUd28uc291cmNlICsgIikoIiArIHR3by5zb3VyY2UgKyAiKT8iKSwgMik7CgkgICAgICAvLyB3ZSBkb24ndCBzdXBwb3J0IFpaWlogKFBTVCkgb3IgWlpaWlogKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkgaW4gcGFyc2luZwoJICAgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueSB3YXkgdG8gZmlndXJlIG91dCB3aGF0IHRoZXkgYXJlCgoJICAgICAgY2FzZSAieiI6CgkgICAgICAgIHJldHVybiBzaW1wbGUoL1thLXpfKy0vXXsxLDI1Nn0/L2kpOwoKCSAgICAgIGRlZmF1bHQ6CgkgICAgICAgIHJldHVybiBsaXRlcmFsKHQpOwoJICAgIH0KCSAgfTsKCgkgIHZhciB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwgewoJICAgIGludmFsaWRSZWFzb246IE1JU1NJTkdfRlRQCgkgIH07CgkgIHVuaXQudG9rZW4gPSB0b2tlbjsKCSAgcmV0dXJuIHVuaXQ7Cgl9CgoJdmFyIHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsID0gewoJICB5ZWFyOiB7CgkgICAgIjItZGlnaXQiOiAieXkiLAoJICAgIG51bWVyaWM6ICJ5eXl5eSIKCSAgfSwKCSAgbW9udGg6IHsKCSAgICBudW1lcmljOiAiTSIsCgkgICAgIjItZGlnaXQiOiAiTU0iLAoJICAgIHNob3J0OiAiTU1NIiwKCSAgICBsb25nOiAiTU1NTSIKCSAgfSwKCSAgZGF5OiB7CgkgICAgbnVtZXJpYzogImQiLAoJICAgICIyLWRpZ2l0IjogImRkIgoJICB9LAoJICB3ZWVrZGF5OiB7CgkgICAgc2hvcnQ6ICJFRUUiLAoJICAgIGxvbmc6ICJFRUVFIgoJICB9LAoJICBkYXlwZXJpb2Q6ICJhIiwKCSAgZGF5UGVyaW9kOiAiYSIsCgkgIGhvdXI6IHsKCSAgICBudW1lcmljOiAiaCIsCgkgICAgIjItZGlnaXQiOiAiaGgiCgkgIH0sCgkgIG1pbnV0ZTogewoJICAgIG51bWVyaWM6ICJtIiwKCSAgICAiMi1kaWdpdCI6ICJtbSIKCSAgfSwKCSAgc2Vjb25kOiB7CgkgICAgbnVtZXJpYzogInMiLAoJICAgICIyLWRpZ2l0IjogInNzIgoJICB9Cgl9OwoKCWZ1bmN0aW9uIHRva2VuRm9yUGFydChwYXJ0LCBsb2NhbGUsIGZvcm1hdE9wdHMpIHsKCSAgdmFyIHR5cGUgPSBwYXJ0LnR5cGUsCgkgICAgICB2YWx1ZSA9IHBhcnQudmFsdWU7CgoJICBpZiAodHlwZSA9PT0gImxpdGVyYWwiKSB7CgkgICAgcmV0dXJuIHsKCSAgICAgIGxpdGVyYWw6IHRydWUsCgkgICAgICB2YWw6IHZhbHVlCgkgICAgfTsKCSAgfQoKCSAgdmFyIHN0eWxlID0gZm9ybWF0T3B0c1t0eXBlXTsKCSAgdmFyIHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW3R5cGVdOwoKCSAgaWYgKHR5cGVvZiB2YWwgPT09ICJvYmplY3QiKSB7CgkgICAgdmFsID0gdmFsW3N0eWxlXTsKCSAgfQoKCSAgaWYgKHZhbCkgewoJICAgIHJldHVybiB7CgkgICAgICBsaXRlcmFsOiBmYWxzZSwKCSAgICAgIHZhbDogdmFsCgkgICAgfTsKCSAgfQoKCSAgcmV0dXJuIHVuZGVmaW5lZDsKCX0KCglmdW5jdGlvbiBidWlsZFJlZ2V4KHVuaXRzKSB7CgkgIHZhciByZSA9IHVuaXRzLm1hcChmdW5jdGlvbiAodSkgewoJICAgIHJldHVybiB1LnJlZ2V4OwoJICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGYsIHIpIHsKCSAgICByZXR1cm4gZiArICIoIiArIHIuc291cmNlICsgIikiOwoJICB9LCAiIik7CgkgIHJldHVybiBbIl4iICsgcmUgKyAiJCIsIHVuaXRzXTsKCX0KCglmdW5jdGlvbiBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSB7CgkgIHZhciBtYXRjaGVzID0gaW5wdXQubWF0Y2gocmVnZXgpOwoKCSAgaWYgKG1hdGNoZXMpIHsKCSAgICB2YXIgYWxsID0ge307CgkgICAgdmFyIG1hdGNoSW5kZXggPSAxOwoKCSAgICBmb3IgKHZhciBpIGluIGhhbmRsZXJzKSB7CgkgICAgICBpZiAoaGFzT3duUHJvcGVydHkoaGFuZGxlcnMsIGkpKSB7CgkgICAgICAgIHZhciBoID0gaGFuZGxlcnNbaV0sCgkgICAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7CgoJICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7CgkgICAgICAgICAgYWxsW2gudG9rZW4udmFsWzBdXSA9IGguZGVzZXIobWF0Y2hlcy5zbGljZShtYXRjaEluZGV4LCBtYXRjaEluZGV4ICsgZ3JvdXBzKSk7CgkgICAgICAgIH0KCgkgICAgICAgIG1hdGNoSW5kZXggKz0gZ3JvdXBzOwoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIFttYXRjaGVzLCBhbGxdOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBbbWF0Y2hlcywge31dOwoJICB9Cgl9CgoJZnVuY3Rpb24gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKSB7CgkgIHZhciB0b0ZpZWxkID0gZnVuY3Rpb24gdG9GaWVsZCh0b2tlbikgewoJICAgIHN3aXRjaCAodG9rZW4pIHsKCSAgICAgIGNhc2UgIlMiOgoJICAgICAgICByZXR1cm4gIm1pbGxpc2Vjb25kIjsKCgkgICAgICBjYXNlICJzIjoKCSAgICAgICAgcmV0dXJuICJzZWNvbmQiOwoKCSAgICAgIGNhc2UgIm0iOgoJICAgICAgICByZXR1cm4gIm1pbnV0ZSI7CgoJICAgICAgY2FzZSAiaCI6CgkgICAgICBjYXNlICJIIjoKCSAgICAgICAgcmV0dXJuICJob3VyIjsKCgkgICAgICBjYXNlICJkIjoKCSAgICAgICAgcmV0dXJuICJkYXkiOwoKCSAgICAgIGNhc2UgIm8iOgoJICAgICAgICByZXR1cm4gIm9yZGluYWwiOwoKCSAgICAgIGNhc2UgIkwiOgoJICAgICAgY2FzZSAiTSI6CgkgICAgICAgIHJldHVybiAibW9udGgiOwoKCSAgICAgIGNhc2UgInkiOgoJICAgICAgICByZXR1cm4gInllYXIiOwoKCSAgICAgIGNhc2UgIkUiOgoJICAgICAgY2FzZSAiYyI6CgkgICAgICAgIHJldHVybiAid2Vla2RheSI7CgoJICAgICAgY2FzZSAiVyI6CgkgICAgICAgIHJldHVybiAid2Vla051bWJlciI7CgoJICAgICAgY2FzZSAiayI6CgkgICAgICAgIHJldHVybiAid2Vla1llYXIiOwoKCSAgICAgIGNhc2UgInEiOgoJICAgICAgICByZXR1cm4gInF1YXJ0ZXIiOwoKCSAgICAgIGRlZmF1bHQ6CgkgICAgICAgIHJldHVybiBudWxsOwoJICAgIH0KCSAgfTsKCgkgIHZhciB6b25lID0gbnVsbDsKCSAgdmFyIHNwZWNpZmljT2Zmc2V0OwoKCSAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7CgkgICAgem9uZSA9IElBTkFab25lLmNyZWF0ZShtYXRjaGVzLnopOwoJICB9CgoJICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHsKCSAgICBpZiAoIXpvbmUpIHsKCSAgICAgIHpvbmUgPSBuZXcgRml4ZWRPZmZzZXRab25lKG1hdGNoZXMuWik7CgkgICAgfQoKCSAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjsKCSAgfQoKCSAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnEpKSB7CgkgICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7CgkgIH0KCgkgIGlmICghaXNVbmRlZmluZWQobWF0Y2hlcy5oKSkgewoJICAgIGlmIChtYXRjaGVzLmggPCAxMiAmJiBtYXRjaGVzLmEgPT09IDEpIHsKCSAgICAgIG1hdGNoZXMuaCArPSAxMjsKCSAgICB9IGVsc2UgaWYgKG1hdGNoZXMuaCA9PT0gMTIgJiYgbWF0Y2hlcy5hID09PSAwKSB7CgkgICAgICBtYXRjaGVzLmggPSAwOwoJICAgIH0KCSAgfQoKCSAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHsKCSAgICBtYXRjaGVzLnkgPSAtbWF0Y2hlcy55OwoJICB9CgoJICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHsKCSAgICBtYXRjaGVzLlMgPSBwYXJzZU1pbGxpcyhtYXRjaGVzLnUpOwoJICB9CgoJICB2YXIgdmFscyA9IE9iamVjdC5rZXlzKG1hdGNoZXMpLnJlZHVjZShmdW5jdGlvbiAociwgaykgewoJICAgIHZhciBmID0gdG9GaWVsZChrKTsKCgkgICAgaWYgKGYpIHsKCSAgICAgIHJbZl0gPSBtYXRjaGVzW2tdOwoJICAgIH0KCgkgICAgcmV0dXJuIHI7CgkgIH0sIHt9KTsKCSAgcmV0dXJuIFt2YWxzLCB6b25lLCBzcGVjaWZpY09mZnNldF07Cgl9CgoJdmFyIGR1bW15RGF0ZVRpbWVDYWNoZSA9IG51bGw7CgoJZnVuY3Rpb24gZ2V0RHVtbXlEYXRlVGltZSgpIHsKCSAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHsKCSAgICBkdW1teURhdGVUaW1lQ2FjaGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpOwoJICB9CgoJICByZXR1cm4gZHVtbXlEYXRlVGltZUNhY2hlOwoJfQoKCWZ1bmN0aW9uIG1heWJlRXhwYW5kTWFjcm9Ub2tlbih0b2tlbiwgbG9jYWxlKSB7CgkgIGlmICh0b2tlbi5saXRlcmFsKSB7CgkgICAgcmV0dXJuIHRva2VuOwoJICB9CgoJICB2YXIgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuLnZhbCk7CgoJICBpZiAoIWZvcm1hdE9wdHMpIHsKCSAgICByZXR1cm4gdG9rZW47CgkgIH0KCgkgIHZhciBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7CgkgIHZhciBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXREYXRlVGltZVBhcnRzKGdldER1bW15RGF0ZVRpbWUoKSk7CgkgIHZhciB0b2tlbnMgPSBwYXJ0cy5tYXAoZnVuY3Rpb24gKHApIHsKCSAgICByZXR1cm4gdG9rZW5Gb3JQYXJ0KHAsIGxvY2FsZSwgZm9ybWF0T3B0cyk7CgkgIH0pOwoKCSAgaWYgKHRva2Vucy5pbmNsdWRlcyh1bmRlZmluZWQpKSB7CgkgICAgcmV0dXJuIHRva2VuOwoJICB9CgoJICByZXR1cm4gdG9rZW5zOwoJfQoKCWZ1bmN0aW9uIGV4cGFuZE1hY3JvVG9rZW5zKHRva2VucywgbG9jYWxlKSB7CgkgIHZhciBfQXJyYXkkcHJvdG90eXBlOwoKCSAgcmV0dXJuIChfQXJyYXkkcHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlKS5jb25jYXQuYXBwbHkoX0FycmF5JHByb3RvdHlwZSwgdG9rZW5zLm1hcChmdW5jdGlvbiAodCkgewoJICAgIHJldHVybiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKTsKCSAgfSkpOwoJfQoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoKCWZ1bmN0aW9uIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkgewoJICB2YXIgdG9rZW5zID0gZXhwYW5kTWFjcm9Ub2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZvcm1hdCksIGxvY2FsZSksCgkgICAgICB1bml0cyA9IHRva2Vucy5tYXAoZnVuY3Rpb24gKHQpIHsKCSAgICByZXR1cm4gdW5pdEZvclRva2VuKHQsIGxvY2FsZSk7CgkgIH0pLAoJICAgICAgZGlzcXVhbGlmeWluZ1VuaXQgPSB1bml0cy5maW5kKGZ1bmN0aW9uICh0KSB7CgkgICAgcmV0dXJuIHQuaW52YWxpZFJlYXNvbjsKCSAgfSk7CgoJICBpZiAoZGlzcXVhbGlmeWluZ1VuaXQpIHsKCSAgICByZXR1cm4gewoJICAgICAgaW5wdXQ6IGlucHV0LAoJICAgICAgdG9rZW5zOiB0b2tlbnMsCgkgICAgICBpbnZhbGlkUmVhc29uOiBkaXNxdWFsaWZ5aW5nVW5pdC5pbnZhbGlkUmVhc29uCgkgICAgfTsKCSAgfSBlbHNlIHsKCSAgICB2YXIgX2J1aWxkUmVnZXggPSBidWlsZFJlZ2V4KHVuaXRzKSwKCSAgICAgICAgcmVnZXhTdHJpbmcgPSBfYnVpbGRSZWdleFswXSwKCSAgICAgICAgaGFuZGxlcnMgPSBfYnVpbGRSZWdleFsxXSwKCSAgICAgICAgcmVnZXggPSBSZWdFeHAocmVnZXhTdHJpbmcsICJpIiksCgkgICAgICAgIF9tYXRjaCA9IG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpLAoJICAgICAgICByYXdNYXRjaGVzID0gX21hdGNoWzBdLAoJICAgICAgICBtYXRjaGVzID0gX21hdGNoWzFdLAoJICAgICAgICBfcmVmNiA9IG1hdGNoZXMgPyBkYXRlVGltZUZyb21NYXRjaGVzKG1hdGNoZXMpIDogW251bGwsIG51bGwsIHVuZGVmaW5lZF0sCgkgICAgICAgIHJlc3VsdCA9IF9yZWY2WzBdLAoJICAgICAgICB6b25lID0gX3JlZjZbMV0sCgkgICAgICAgIHNwZWNpZmljT2Zmc2V0ID0gX3JlZjZbMl07CgoJICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCAiYSIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsICJIIikpIHsKCSAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXQiKTsKCSAgICB9CgoJICAgIHJldHVybiB7CgkgICAgICBpbnB1dDogaW5wdXQsCgkgICAgICB0b2tlbnM6IHRva2VucywKCSAgICAgIHJlZ2V4OiByZWdleCwKCSAgICAgIHJhd01hdGNoZXM6IHJhd01hdGNoZXMsCgkgICAgICBtYXRjaGVzOiBtYXRjaGVzLAoJICAgICAgcmVzdWx0OiByZXN1bHQsCgkgICAgICB6b25lOiB6b25lLAoJICAgICAgc3BlY2lmaWNPZmZzZXQ6IHNwZWNpZmljT2Zmc2V0CgkgICAgfTsKCSAgfQoJfQoJZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkgewoJICB2YXIgX2V4cGxhaW5Gcm9tVG9rZW5zID0gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlLCBpbnB1dCwgZm9ybWF0KSwKCSAgICAgIHJlc3VsdCA9IF9leHBsYWluRnJvbVRva2Vucy5yZXN1bHQsCgkgICAgICB6b25lID0gX2V4cGxhaW5Gcm9tVG9rZW5zLnpvbmUsCgkgICAgICBzcGVjaWZpY09mZnNldCA9IF9leHBsYWluRnJvbVRva2Vucy5zcGVjaWZpY09mZnNldCwKCSAgICAgIGludmFsaWRSZWFzb24gPSBfZXhwbGFpbkZyb21Ub2tlbnMuaW52YWxpZFJlYXNvbjsKCgkgIHJldHVybiBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZFJlYXNvbl07Cgl9CgoJdmFyIG5vbkxlYXBMYWRkZXIgPSBbMCwgMzEsIDU5LCA5MCwgMTIwLCAxNTEsIDE4MSwgMjEyLCAyNDMsIDI3MywgMzA0LCAzMzRdLAoJICAgIGxlYXBMYWRkZXIgPSBbMCwgMzEsIDYwLCA5MSwgMTIxLCAxNTIsIDE4MiwgMjEzLCAyNDQsIDI3NCwgMzA1LCAzMzVdOwoKCWZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7CgkgIHJldHVybiBuZXcgSW52YWxpZCgidW5pdCBvdXQgb2YgcmFuZ2UiLCAieW91IHNwZWNpZmllZCAiICsgdmFsdWUgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgdmFsdWUgKyAiKSBhcyBhICIgKyB1bml0ICsgIiwgd2hpY2ggaXMgaW52YWxpZCIpOwoJfQoKCWZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7CgkgIHZhciBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTsKCgkgIGlmICh5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkgewoJICAgIGQuc2V0VVRDRnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCk7CgkgIH0KCgkgIHZhciBqcyA9IGQuZ2V0VVRDRGF5KCk7CgkgIHJldHVybiBqcyA9PT0gMCA/IDcgOiBqczsKCX0KCglmdW5jdGlvbiBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSB7CgkgIHJldHVybiBkYXkgKyAoaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyKVttb250aCAtIDFdOwoJfQoKCWZ1bmN0aW9uIHVuY29tcHV0ZU9yZGluYWwoeWVhciwgb3JkaW5hbCkgewoJICB2YXIgdGFibGUgPSBpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIsCgkgICAgICBtb250aDAgPSB0YWJsZS5maW5kSW5kZXgoZnVuY3Rpb24gKGkpIHsKCSAgICByZXR1cm4gaSA8IG9yZGluYWw7CgkgIH0pLAoJICAgICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07CgkgIHJldHVybiB7CgkgICAgbW9udGg6IG1vbnRoMCArIDEsCgkgICAgZGF5OiBkYXkKCSAgfTsKCX0KCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCglmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikgewoJICB2YXIgeWVhciA9IGdyZWdPYmoueWVhciwKCSAgICAgIG1vbnRoID0gZ3JlZ09iai5tb250aCwKCSAgICAgIGRheSA9IGdyZWdPYmouZGF5LAoJICAgICAgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpLAoJICAgICAgd2Vla2RheSA9IGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KTsKCSAgdmFyIHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLAoJICAgICAgd2Vla1llYXI7CgoJICBpZiAod2Vla051bWJlciA8IDEpIHsKCSAgICB3ZWVrWWVhciA9IHllYXIgLSAxOwoJICAgIHdlZWtOdW1iZXIgPSB3ZWVrc0luV2Vla1llYXIod2Vla1llYXIpOwoJICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHsKCSAgICB3ZWVrWWVhciA9IHllYXIgKyAxOwoJICAgIHdlZWtOdW1iZXIgPSAxOwoJICB9IGVsc2UgewoJICAgIHdlZWtZZWFyID0geWVhcjsKCSAgfQoKCSAgcmV0dXJuIF9leHRlbmRzKHsKCSAgICB3ZWVrWWVhcjogd2Vla1llYXIsCgkgICAgd2Vla051bWJlcjogd2Vla051bWJlciwKCSAgICB3ZWVrZGF5OiB3ZWVrZGF5CgkgIH0sIHRpbWVPYmplY3QoZ3JlZ09iaikpOwoJfQoJZnVuY3Rpb24gd2Vla1RvR3JlZ29yaWFuKHdlZWtEYXRhKSB7CgkgIHZhciB3ZWVrWWVhciA9IHdlZWtEYXRhLndlZWtZZWFyLAoJICAgICAgd2Vla051bWJlciA9IHdlZWtEYXRhLndlZWtOdW1iZXIsCgkgICAgICB3ZWVrZGF5ID0gd2Vla0RhdGEud2Vla2RheSwKCSAgICAgIHdlZWtkYXlPZkphbjQgPSBkYXlPZldlZWsod2Vla1llYXIsIDEsIDQpLAoJICAgICAgeWVhckluRGF5cyA9IGRheXNJblllYXIod2Vla1llYXIpOwoJICB2YXIgb3JkaW5hbCA9IHdlZWtOdW1iZXIgKiA3ICsgd2Vla2RheSAtIHdlZWtkYXlPZkphbjQgLSAzLAoJICAgICAgeWVhcjsKCgkgIGlmIChvcmRpbmFsIDwgMSkgewoJICAgIHllYXIgPSB3ZWVrWWVhciAtIDE7CgkgICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpOwoJICB9IGVsc2UgaWYgKG9yZGluYWwgPiB5ZWFySW5EYXlzKSB7CgkgICAgeWVhciA9IHdlZWtZZWFyICsgMTsKCSAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpOwoJICB9IGVsc2UgewoJICAgIHllYXIgPSB3ZWVrWWVhcjsKCSAgfQoKCSAgdmFyIF91bmNvbXB1dGVPcmRpbmFsID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSwKCSAgICAgIG1vbnRoID0gX3VuY29tcHV0ZU9yZGluYWwubW9udGgsCgkgICAgICBkYXkgPSBfdW5jb21wdXRlT3JkaW5hbC5kYXk7CgoJICByZXR1cm4gX2V4dGVuZHMoewoJICAgIHllYXI6IHllYXIsCgkgICAgbW9udGg6IG1vbnRoLAoJICAgIGRheTogZGF5CgkgIH0sIHRpbWVPYmplY3Qod2Vla0RhdGEpKTsKCX0KCWZ1bmN0aW9uIGdyZWdvcmlhblRvT3JkaW5hbChncmVnRGF0YSkgewoJICB2YXIgeWVhciA9IGdyZWdEYXRhLnllYXIsCgkgICAgICBtb250aCA9IGdyZWdEYXRhLm1vbnRoLAoJICAgICAgZGF5ID0gZ3JlZ0RhdGEuZGF5OwoJICB2YXIgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpOwoJICByZXR1cm4gX2V4dGVuZHMoewoJICAgIHllYXI6IHllYXIsCgkgICAgb3JkaW5hbDogb3JkaW5hbAoJICB9LCB0aW1lT2JqZWN0KGdyZWdEYXRhKSk7Cgl9CglmdW5jdGlvbiBvcmRpbmFsVG9HcmVnb3JpYW4ob3JkaW5hbERhdGEpIHsKCSAgdmFyIHllYXIgPSBvcmRpbmFsRGF0YS55ZWFyLAoJICAgICAgb3JkaW5hbCA9IG9yZGluYWxEYXRhLm9yZGluYWw7CgoJICB2YXIgX3VuY29tcHV0ZU9yZGluYWwyID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSwKCSAgICAgIG1vbnRoID0gX3VuY29tcHV0ZU9yZGluYWwyLm1vbnRoLAoJICAgICAgZGF5ID0gX3VuY29tcHV0ZU9yZGluYWwyLmRheTsKCgkgIHJldHVybiBfZXh0ZW5kcyh7CgkgICAgeWVhcjogeWVhciwKCSAgICBtb250aDogbW9udGgsCgkgICAgZGF5OiBkYXkKCSAgfSwgdGltZU9iamVjdChvcmRpbmFsRGF0YSkpOwoJfQoJZnVuY3Rpb24gaGFzSW52YWxpZFdlZWtEYXRhKG9iaikgewoJICB2YXIgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai53ZWVrWWVhciksCgkgICAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLAoJICAgICAgdmFsaWRXZWVrZGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLndlZWtkYXksIDEsIDcpOwoKCSAgaWYgKCF2YWxpZFllYXIpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIndlZWtZZWFyIiwgb2JqLndlZWtZZWFyKTsKCSAgfSBlbHNlIGlmICghdmFsaWRXZWVrKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ3ZWVrIiwgb2JqLndlZWspOwoJICB9IGVsc2UgaWYgKCF2YWxpZFdlZWtkYXkpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIndlZWtkYXkiLCBvYmoud2Vla2RheSk7CgkgIH0gZWxzZSByZXR1cm4gZmFsc2U7Cgl9CglmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7CgkgIHZhciB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLAoJICAgICAgdmFsaWRPcmRpbmFsID0gaW50ZWdlckJldHdlZW4ob2JqLm9yZGluYWwsIDEsIGRheXNJblllYXIob2JqLnllYXIpKTsKCgkgIGlmICghdmFsaWRZZWFyKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ5ZWFyIiwgb2JqLnllYXIpOwoJICB9IGVsc2UgaWYgKCF2YWxpZE9yZGluYWwpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm9yZGluYWwiLCBvYmoub3JkaW5hbCk7CgkgIH0gZWxzZSByZXR1cm4gZmFsc2U7Cgl9CglmdW5jdGlvbiBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHsKCSAgdmFyIHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksCgkgICAgICB2YWxpZE1vbnRoID0gaW50ZWdlckJldHdlZW4ob2JqLm1vbnRoLCAxLCAxMiksCgkgICAgICB2YWxpZERheSA9IGludGVnZXJCZXR3ZWVuKG9iai5kYXksIDEsIGRheXNJbk1vbnRoKG9iai55ZWFyLCBvYmoubW9udGgpKTsKCgkgIGlmICghdmFsaWRZZWFyKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ5ZWFyIiwgb2JqLnllYXIpOwoJICB9IGVsc2UgaWYgKCF2YWxpZE1vbnRoKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtb250aCIsIG9iai5tb250aCk7CgkgIH0gZWxzZSBpZiAoIXZhbGlkRGF5KSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJkYXkiLCBvYmouZGF5KTsKCSAgfSBlbHNlIHJldHVybiBmYWxzZTsKCX0KCWZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHsKCSAgdmFyIGhvdXIgPSBvYmouaG91ciwKCSAgICAgIG1pbnV0ZSA9IG9iai5taW51dGUsCgkgICAgICBzZWNvbmQgPSBvYmouc2Vjb25kLAoJICAgICAgbWlsbGlzZWNvbmQgPSBvYmoubWlsbGlzZWNvbmQ7CgkgIHZhciB2YWxpZEhvdXIgPSBpbnRlZ2VyQmV0d2Vlbihob3VyLCAwLCAyMykgfHwgaG91ciA9PT0gMjQgJiYgbWludXRlID09PSAwICYmIHNlY29uZCA9PT0gMCAmJiBtaWxsaXNlY29uZCA9PT0gMCwKCSAgICAgIHZhbGlkTWludXRlID0gaW50ZWdlckJldHdlZW4obWludXRlLCAwLCA1OSksCgkgICAgICB2YWxpZFNlY29uZCA9IGludGVnZXJCZXR3ZWVuKHNlY29uZCwgMCwgNTkpLAoJICAgICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpOwoKCSAgaWYgKCF2YWxpZEhvdXIpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoImhvdXIiLCBob3VyKTsKCSAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm1pbnV0ZSIsIG1pbnV0ZSk7CgkgIH0gZWxzZSBpZiAoIXZhbGlkU2Vjb25kKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJzZWNvbmQiLCBzZWNvbmQpOwoJICB9IGVsc2UgaWYgKCF2YWxpZE1pbGxpc2Vjb25kKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtaWxsaXNlY29uZCIsIG1pbGxpc2Vjb25kKTsKCSAgfSBlbHNlIHJldHVybiBmYWxzZTsKCX0KCgl2YXIgSU5WQUxJRCA9ICJJbnZhbGlkIERhdGVUaW1lIjsKCXZhciBNQVhfREFURSA9IDguNjRlMTU7CgoJZnVuY3Rpb24gdW5zdXBwb3J0ZWRab25lKHpvbmUpIHsKCSAgcmV0dXJuIG5ldyBJbnZhbGlkKCJ1bnN1cHBvcnRlZCB6b25lIiwgInRoZSB6b25lIFwiIiArIHpvbmUubmFtZSArICJcIiBpcyBub3Qgc3VwcG9ydGVkIik7Cgl9IC8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlCgoKCWZ1bmN0aW9uIHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEoZHQpIHsKCSAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7CgkgICAgZHQud2Vla0RhdGEgPSBncmVnb3JpYW5Ub1dlZWsoZHQuYyk7CgkgIH0KCgkgIHJldHVybiBkdC53ZWVrRGF0YTsKCX0gLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCAibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zIi4gYWxsICJzZXR0ZXJzIiByZWFsbHkgdXNlIHRoaXMKCS8vIHRvIGNyZWF0ZSBhIG5ldyBvYmplY3Qgd2hpbGUgb25seSBjaGFuZ2luZyBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzCgoKCWZ1bmN0aW9uIGNsb25lKGluc3QsIGFsdHMpIHsKCSAgdmFyIGN1cnJlbnQgPSB7CgkgICAgdHM6IGluc3QudHMsCgkgICAgem9uZTogaW5zdC56b25lLAoJICAgIGM6IGluc3QuYywKCSAgICBvOiBpbnN0Lm8sCgkgICAgbG9jOiBpbnN0LmxvYywKCSAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQKCSAgfTsKCSAgcmV0dXJuIG5ldyBEYXRlVGltZShfZXh0ZW5kcyh7fSwgY3VycmVudCwgYWx0cywgewoJICAgIG9sZDogY3VycmVudAoJICB9KSk7Cgl9IC8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaAoJLy8gb2Zmc2V0IHdlJ2xsIHBpY2sgaW4gYW1iaWd1b3VzIGNhc2VzIChlLmcuIHRoZXJlIGFyZSB0d28gMyBBTXMgYi9jIEZhbGxiYWNrIERTVCkKCgoJZnVuY3Rpb24gZml4T2Zmc2V0KGxvY2FsVFMsIG8sIHR6KSB7CgkgIC8vIE91ciBVVEMgdGltZSBpcyBqdXN0IGEgZ3Vlc3MgYmVjYXVzZSBvdXIgb2Zmc2V0IGlzIGp1c3QgYSBndWVzcwoJICB2YXIgdXRjR3Vlc3MgPSBsb2NhbFRTIC0gbyAqIDYwICogMTAwMDsgLy8gVGVzdCB3aGV0aGVyIHRoZSB6b25lIG1hdGNoZXMgdGhlIG9mZnNldCBmb3IgdGhpcyB0cwoKCSAgdmFyIG8yID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTsgLy8gSWYgc28sIG9mZnNldCBkaWRuJ3QgY2hhbmdlIGFuZCB3ZSdyZSBkb25lCgoJICBpZiAobyA9PT0gbzIpIHsKCSAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTsKCSAgfSAvLyBJZiBub3QsIGNoYW5nZSB0aGUgdHMgYnkgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIG9mZnNldAoKCgkgIHV0Y0d1ZXNzIC09IChvMiAtIG8pICogNjAgKiAxMDAwOyAvLyBJZiB0aGF0IGdpdmVzIHVzIHRoZSBsb2NhbCB0aW1lIHdlIHdhbnQsIHdlJ3JlIGRvbmUKCgkgIHZhciBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7CgoJICBpZiAobzIgPT09IG8zKSB7CgkgICAgcmV0dXJuIFt1dGNHdWVzcywgbzJdOwoJICB9IC8vIElmIGl0J3MgZGlmZmVyZW50LCB3ZSdyZSBpbiBhIGhvbGUgdGltZS4gVGhlIG9mZnNldCBoYXMgY2hhbmdlZCwgYnV0IHRoZSB3ZSBkb24ndCBhZGp1c3QgdGhlIHRpbWUKCgoJICByZXR1cm4gW2xvY2FsVFMgLSBNYXRoLm1pbihvMiwgbzMpICogNjAgKiAxMDAwLCBNYXRoLm1heChvMiwgbzMpXTsKCX0gLy8gY29udmVydCBhbiBlcG9jaCB0aW1lc3RhbXAgaW50byBhIGNhbGVuZGFyIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBvZmZzZXQKCgoJZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7CgkgIHRzICs9IG9mZnNldCAqIDYwICogMTAwMDsKCSAgdmFyIGQgPSBuZXcgRGF0ZSh0cyk7CgkgIHJldHVybiB7CgkgICAgeWVhcjogZC5nZXRVVENGdWxsWWVhcigpLAoJICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLAoJICAgIGRheTogZC5nZXRVVENEYXRlKCksCgkgICAgaG91cjogZC5nZXRVVENIb3VycygpLAoJICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksCgkgICAgc2Vjb25kOiBkLmdldFVUQ1NlY29uZHMoKSwKCSAgICBtaWxsaXNlY29uZDogZC5nZXRVVENNaWxsaXNlY29uZHMoKQoJICB9OwoJfSAvLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgZXBvY2ggdGltZXN0YW1wCgoKCWZ1bmN0aW9uIG9ialRvVFMob2JqLCBvZmZzZXQsIHpvbmUpIHsKCSAgcmV0dXJuIGZpeE9mZnNldChvYmpUb0xvY2FsVFMob2JqKSwgb2Zmc2V0LCB6b25lKTsKCX0gLy8gY3JlYXRlIGEgbmV3IERUIGluc3RhbmNlIGJ5IGFkZGluZyBhIGR1cmF0aW9uLCBhZGp1c3RpbmcgZm9yIERTVHMKCgoJZnVuY3Rpb24gYWRqdXN0VGltZShpbnN0LCBkdXIpIHsKCSAgdmFyIG9QcmUgPSBpbnN0Lm8sCgkgICAgICB5ZWFyID0gaW5zdC5jLnllYXIgKyBNYXRoLnRydW5jKGR1ci55ZWFycyksCgkgICAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLAoJICAgICAgYyA9IF9leHRlbmRzKHt9LCBpbnN0LmMsIHsKCSAgICB5ZWFyOiB5ZWFyLAoJICAgIG1vbnRoOiBtb250aCwKCSAgICBkYXk6IE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgKyBNYXRoLnRydW5jKGR1ci5kYXlzKSArIE1hdGgudHJ1bmMoZHVyLndlZWtzKSAqIDcKCSAgfSksCgkgICAgICBtaWxsaXNUb0FkZCA9IER1cmF0aW9uLmZyb21PYmplY3QoewoJICAgIHllYXJzOiBkdXIueWVhcnMgLSBNYXRoLnRydW5jKGR1ci55ZWFycyksCgkgICAgcXVhcnRlcnM6IGR1ci5xdWFydGVycyAtIE1hdGgudHJ1bmMoZHVyLnF1YXJ0ZXJzKSwKCSAgICBtb250aHM6IGR1ci5tb250aHMgLSBNYXRoLnRydW5jKGR1ci5tb250aHMpLAoJICAgIHdlZWtzOiBkdXIud2Vla3MgLSBNYXRoLnRydW5jKGR1ci53ZWVrcyksCgkgICAgZGF5czogZHVyLmRheXMgLSBNYXRoLnRydW5jKGR1ci5kYXlzKSwKCSAgICBob3VyczogZHVyLmhvdXJzLAoJICAgIG1pbnV0ZXM6IGR1ci5taW51dGVzLAoJICAgIHNlY29uZHM6IGR1ci5zZWNvbmRzLAoJICAgIG1pbGxpc2Vjb25kczogZHVyLm1pbGxpc2Vjb25kcwoJICB9KS5hcygibWlsbGlzZWNvbmRzIiksCgkgICAgICBsb2NhbFRTID0gb2JqVG9Mb2NhbFRTKGMpOwoKCSAgdmFyIF9maXhPZmZzZXQgPSBmaXhPZmZzZXQobG9jYWxUUywgb1ByZSwgaW5zdC56b25lKSwKCSAgICAgIHRzID0gX2ZpeE9mZnNldFswXSwKCSAgICAgIG8gPSBfZml4T2Zmc2V0WzFdOwoKCSAgaWYgKG1pbGxpc1RvQWRkICE9PSAwKSB7CgkgICAgdHMgKz0gbWlsbGlzVG9BZGQ7IC8vIHRoYXQgY291bGQgaGF2ZSBjaGFuZ2VkIHRoZSBvZmZzZXQgYnkgZ29pbmcgb3ZlciBhIERTVCwgYnV0IHdlIHdhbnQgdG8ga2VlcCB0aGUgdHMgdGhlIHNhbWUKCgkgICAgbyA9IGluc3Quem9uZS5vZmZzZXQodHMpOwoJICB9CgoJICByZXR1cm4gewoJICAgIHRzOiB0cywKCSAgICBvOiBvCgkgIH07Cgl9IC8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlcwoJLy8gYnkgaGFuZGxpbmcgdGhlIHpvbmUgb3B0aW9ucwoKCglmdW5jdGlvbiBwYXJzZURhdGFUb0RhdGVUaW1lKHBhcnNlZCwgcGFyc2VkWm9uZSwgb3B0cywgZm9ybWF0LCB0ZXh0LCBzcGVjaWZpY09mZnNldCkgewoJICB2YXIgc2V0Wm9uZSA9IG9wdHMuc2V0Wm9uZSwKCSAgICAgIHpvbmUgPSBvcHRzLnpvbmU7CgoJICBpZiAocGFyc2VkICYmIE9iamVjdC5rZXlzKHBhcnNlZCkubGVuZ3RoICE9PSAwKSB7CgkgICAgdmFyIGludGVycHJldGF0aW9uWm9uZSA9IHBhcnNlZFpvbmUgfHwgem9uZSwKCSAgICAgICAgaW5zdCA9IERhdGVUaW1lLmZyb21PYmplY3QocGFyc2VkLCBfZXh0ZW5kcyh7fSwgb3B0cywgewoJICAgICAgem9uZTogaW50ZXJwcmV0YXRpb25ab25lLAoJICAgICAgc3BlY2lmaWNPZmZzZXQ6IHNwZWNpZmljT2Zmc2V0CgkgICAgfSkpOwoJICAgIHJldHVybiBzZXRab25lID8gaW5zdCA6IGluc3Quc2V0Wm9uZSh6b25lKTsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChuZXcgSW52YWxpZCgidW5wYXJzYWJsZSIsICJ0aGUgaW5wdXQgXCIiICsgdGV4dCArICJcIiBjYW4ndCBiZSBwYXJzZWQgYXMgIiArIGZvcm1hdCkpOwoJICB9Cgl9IC8vIGlmIHlvdSB3YW50IHRvIG91dHB1dCBhIHRlY2huaWNhbCBmb3JtYXQgKGUuZy4gUkZDIDI4MjIpLCB0aGlzIGhlbHBlcgoJLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzCgoKCWZ1bmN0aW9uIHRvVGVjaEZvcm1hdChkdCwgZm9ybWF0LCBhbGxvd1opIHsKCSAgaWYgKGFsbG93WiA9PT0gdm9pZCAwKSB7CgkgICAgYWxsb3daID0gdHJ1ZTsKCSAgfQoKCSAgcmV0dXJuIGR0LmlzVmFsaWQgPyBGb3JtYXR0ZXIuY3JlYXRlKExvY2FsZS5jcmVhdGUoImVuLVVTIiksIHsKCSAgICBhbGxvd1o6IGFsbG93WiwKCSAgICBmb3JjZVNpbXBsZTogdHJ1ZQoJICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdCkgOiBudWxsOwoJfQoKCWZ1bmN0aW9uIF90b0lTT0RhdGUobywgZXh0ZW5kZWQpIHsKCSAgdmFyIGxvbmdGb3JtYXQgPSBvLmMueWVhciA+IDk5OTkgfHwgby5jLnllYXIgPCAwOwoJICB2YXIgYyA9ICIiOwoJICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9ICIrIjsKCSAgYyArPSBwYWRTdGFydChvLmMueWVhciwgbG9uZ0Zvcm1hdCA/IDYgOiA0KTsKCgkgIGlmIChleHRlbmRlZCkgewoJICAgIGMgKz0gIi0iOwoJICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTsKCSAgICBjICs9ICItIjsKCSAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwoJICB9IGVsc2UgewoJICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTsKCSAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwoJICB9CgoJICByZXR1cm4gYzsKCX0KCglmdW5jdGlvbiBfdG9JU09UaW1lKG8sIGV4dGVuZGVkLCBzdXBwcmVzc1NlY29uZHMsIHN1cHByZXNzTWlsbGlzZWNvbmRzLCBpbmNsdWRlT2Zmc2V0LCBleHRlbmRlZFpvbmUpIHsKCSAgdmFyIGMgPSBwYWRTdGFydChvLmMuaG91cik7CgoJICBpZiAoZXh0ZW5kZWQpIHsKCSAgICBjICs9ICI6IjsKCSAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpOwoKCSAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7CgkgICAgICBjICs9ICI6IjsKCSAgICB9CgkgIH0gZWxzZSB7CgkgICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTsKCSAgfQoKCSAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykgewoJICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7CgoJICAgIGlmIChvLmMubWlsbGlzZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzTWlsbGlzZWNvbmRzKSB7CgkgICAgICBjICs9ICIuIjsKCSAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTsKCSAgICB9CgkgIH0KCgkgIGlmIChpbmNsdWRlT2Zmc2V0KSB7CgkgICAgaWYgKG8uaXNPZmZzZXRGaXhlZCAmJiBvLm9mZnNldCA9PT0gMCAmJiAhZXh0ZW5kZWRab25lKSB7CgkgICAgICBjICs9ICJaIjsKCSAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHsKCSAgICAgIGMgKz0gIi0iOwoJICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gLyA2MCkpOwoJICAgICAgYyArPSAiOiI7CgkgICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAlIDYwKSk7CgkgICAgfSBlbHNlIHsKCSAgICAgIGMgKz0gIisiOwoJICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAvIDYwKSk7CgkgICAgICBjICs9ICI6IjsKCSAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gJSA2MCkpOwoJICAgIH0KCSAgfQoKCSAgaWYgKGV4dGVuZGVkWm9uZSkgewoJICAgIGMgKz0gIlsiICsgby56b25lLmlhbmFOYW1lICsgIl0iOwoJICB9CgoJICByZXR1cm4gYzsKCX0gLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzCgoKCXZhciBkZWZhdWx0VW5pdFZhbHVlcyA9IHsKCSAgbW9udGg6IDEsCgkgIGRheTogMSwKCSAgaG91cjogMCwKCSAgbWludXRlOiAwLAoJICBzZWNvbmQ6IDAsCgkgIG1pbGxpc2Vjb25kOiAwCgl9LAoJICAgIGRlZmF1bHRXZWVrVW5pdFZhbHVlcyA9IHsKCSAgd2Vla051bWJlcjogMSwKCSAgd2Vla2RheTogMSwKCSAgaG91cjogMCwKCSAgbWludXRlOiAwLAoJICBzZWNvbmQ6IDAsCgkgIG1pbGxpc2Vjb25kOiAwCgl9LAoJICAgIGRlZmF1bHRPcmRpbmFsVW5pdFZhbHVlcyA9IHsKCSAgb3JkaW5hbDogMSwKCSAgaG91cjogMCwKCSAgbWludXRlOiAwLAoJICBzZWNvbmQ6IDAsCgkgIG1pbGxpc2Vjb25kOiAwCgl9OyAvLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3MKCgl2YXIgb3JkZXJlZFVuaXRzID0gWyJ5ZWFyIiwgIm1vbnRoIiwgImRheSIsICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAibWlsbGlzZWNvbmQiXSwKCSAgICBvcmRlcmVkV2Vla1VuaXRzID0gWyJ3ZWVrWWVhciIsICJ3ZWVrTnVtYmVyIiwgIndlZWtkYXkiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIl0sCgkgICAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFsieWVhciIsICJvcmRpbmFsIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlY29uZCJdOyAvLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHMKCglmdW5jdGlvbiBub3JtYWxpemVVbml0KHVuaXQpIHsKCSAgdmFyIG5vcm1hbGl6ZWQgPSB7CgkgICAgeWVhcjogInllYXIiLAoJICAgIHllYXJzOiAieWVhciIsCgkgICAgbW9udGg6ICJtb250aCIsCgkgICAgbW9udGhzOiAibW9udGgiLAoJICAgIGRheTogImRheSIsCgkgICAgZGF5czogImRheSIsCgkgICAgaG91cjogImhvdXIiLAoJICAgIGhvdXJzOiAiaG91ciIsCgkgICAgbWludXRlOiAibWludXRlIiwKCSAgICBtaW51dGVzOiAibWludXRlIiwKCSAgICBxdWFydGVyOiAicXVhcnRlciIsCgkgICAgcXVhcnRlcnM6ICJxdWFydGVyIiwKCSAgICBzZWNvbmQ6ICJzZWNvbmQiLAoJICAgIHNlY29uZHM6ICJzZWNvbmQiLAoJICAgIG1pbGxpc2Vjb25kOiAibWlsbGlzZWNvbmQiLAoJICAgIG1pbGxpc2Vjb25kczogIm1pbGxpc2Vjb25kIiwKCSAgICB3ZWVrZGF5OiAid2Vla2RheSIsCgkgICAgd2Vla2RheXM6ICJ3ZWVrZGF5IiwKCSAgICB3ZWVrbnVtYmVyOiAid2Vla051bWJlciIsCgkgICAgd2Vla3NudW1iZXI6ICJ3ZWVrTnVtYmVyIiwKCSAgICB3ZWVrbnVtYmVyczogIndlZWtOdW1iZXIiLAoJICAgIHdlZWt5ZWFyOiAid2Vla1llYXIiLAoJICAgIHdlZWt5ZWFyczogIndlZWtZZWFyIiwKCSAgICBvcmRpbmFsOiAib3JkaW5hbCIKCSAgfVt1bml0LnRvTG93ZXJDYXNlKCldOwoJICBpZiAoIW5vcm1hbGl6ZWQpIHRocm93IG5ldyBJbnZhbGlkVW5pdEVycm9yKHVuaXQpOwoJICByZXR1cm4gbm9ybWFsaXplZDsKCX0gLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyCgkvLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzCgkvLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLgoKCglmdW5jdGlvbiBxdWlja0RUKG9iaiwgb3B0cykgewoJICB2YXIgem9uZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksCgkgICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSwKCSAgICAgIHRzTm93ID0gU2V0dGluZ3Mubm93KCk7CgkgIHZhciB0cywgbzsgLy8gYXNzdW1lIHdlIGhhdmUgdGhlIGhpZ2hlci1vcmRlciB1bml0cwoKCSAgaWYgKCFpc1VuZGVmaW5lZChvYmoueWVhcikpIHsKCSAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKG9yZGVyZWRVbml0cyksIF9zdGVwOyAhKF9zdGVwID0gX2l0ZXJhdG9yKCkpLmRvbmU7KSB7CgkgICAgICB2YXIgdSA9IF9zdGVwLnZhbHVlOwoKCSAgICAgIGlmIChpc1VuZGVmaW5lZChvYmpbdV0pKSB7CgkgICAgICAgIG9ialt1XSA9IGRlZmF1bHRVbml0VmFsdWVzW3VdOwoJICAgICAgfQoJICAgIH0KCgkgICAgdmFyIGludmFsaWQgPSBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHx8IGhhc0ludmFsaWRUaW1lRGF0YShvYmopOwoKCSAgICBpZiAoaW52YWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CgkgICAgfQoKCSAgICB2YXIgb2Zmc2V0UHJvdmlzID0gem9uZS5vZmZzZXQodHNOb3cpOwoKCSAgICB2YXIgX29ialRvVFMgPSBvYmpUb1RTKG9iaiwgb2Zmc2V0UHJvdmlzLCB6b25lKTsKCgkgICAgdHMgPSBfb2JqVG9UU1swXTsKCSAgICBvID0gX29ialRvVFNbMV07CgkgIH0gZWxzZSB7CgkgICAgdHMgPSB0c05vdzsKCSAgfQoKCSAgcmV0dXJuIG5ldyBEYXRlVGltZSh7CgkgICAgdHM6IHRzLAoJICAgIHpvbmU6IHpvbmUsCgkgICAgbG9jOiBsb2MsCgkgICAgbzogbwoJICB9KTsKCX0KCglmdW5jdGlvbiBkaWZmUmVsYXRpdmUoc3RhcnQsIGVuZCwgb3B0cykgewoJICB2YXIgcm91bmQgPSBpc1VuZGVmaW5lZChvcHRzLnJvdW5kKSA/IHRydWUgOiBvcHRzLnJvdW5kLAoJICAgICAgZm9ybWF0ID0gZnVuY3Rpb24gZm9ybWF0KGMsIHVuaXQpIHsKCSAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTsKCSAgICB2YXIgZm9ybWF0dGVyID0gZW5kLmxvYy5jbG9uZShvcHRzKS5yZWxGb3JtYXR0ZXIob3B0cyk7CgkgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQoYywgdW5pdCk7CgkgIH0sCgkgICAgICBkaWZmZXIgPSBmdW5jdGlvbiBkaWZmZXIodW5pdCkgewoJICAgIGlmIChvcHRzLmNhbGVuZGFyeSkgewoJICAgICAgaWYgKCFlbmQuaGFzU2FtZShzdGFydCwgdW5pdCkpIHsKCSAgICAgICAgcmV0dXJuIGVuZC5zdGFydE9mKHVuaXQpLmRpZmYoc3RhcnQuc3RhcnRPZih1bml0KSwgdW5pdCkuZ2V0KHVuaXQpOwoJICAgICAgfSBlbHNlIHJldHVybiAwOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsIHVuaXQpLmdldCh1bml0KTsKCSAgICB9CgkgIH07CgoJICBpZiAob3B0cy51bml0KSB7CgkgICAgcmV0dXJuIGZvcm1hdChkaWZmZXIob3B0cy51bml0KSwgb3B0cy51bml0KTsKCSAgfQoKCSAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyTG9vc2Uob3B0cy51bml0cyksIF9zdGVwMjsgIShfc3RlcDIgPSBfaXRlcmF0b3IyKCkpLmRvbmU7KSB7CgkgICAgdmFyIHVuaXQgPSBfc3RlcDIudmFsdWU7CgkgICAgdmFyIGNvdW50ID0gZGlmZmVyKHVuaXQpOwoKCSAgICBpZiAoTWF0aC5hYnMoY291bnQpID49IDEpIHsKCSAgICAgIHJldHVybiBmb3JtYXQoY291bnQsIHVuaXQpOwoJICAgIH0KCSAgfQoKCSAgcmV0dXJuIGZvcm1hdChzdGFydCA+IGVuZCA/IC0wIDogMCwgb3B0cy51bml0c1tvcHRzLnVuaXRzLmxlbmd0aCAtIDFdKTsKCX0KCglmdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7CgkgIHZhciBvcHRzID0ge30sCgkgICAgICBhcmdzOwoKCSAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSAib2JqZWN0IikgewoJICAgIG9wdHMgPSBhcmdMaXN0W2FyZ0xpc3QubGVuZ3RoIC0gMV07CgkgICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCkuc2xpY2UoMCwgYXJnTGlzdC5sZW5ndGggLSAxKTsKCSAgfSBlbHNlIHsKCSAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KTsKCSAgfQoKCSAgcmV0dXJuIFtvcHRzLCBhcmdzXTsKCX0KCS8qKgoJICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLgoJICoKCSAqIEEgRGF0ZVRpbWUgY29tcHJpc2VzIG9mOgoJICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC4KCSAqICogQSB0aW1lIHpvbmUuIEVhY2ggaW5zdGFuY2UgaXMgY29uc2lkZXJlZCBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHpvbmUgKGJ5IGRlZmF1bHQgdGhlIGxvY2FsIHN5c3RlbSdzIHpvbmUpLgoJICogKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBlZmZlY3QgaG93IG91dHB1dCBzdHJpbmdzIGFyZSBmb3JtYXR0ZWQsIHN1Y2ggYXMgYGxvY2FsZWAsIGBudW1iZXJpbmdTeXN0ZW1gLCBhbmQgYG91dHB1dENhbGVuZGFyYC4KCSAqCgkgKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbmFsaXR5IGl0IHByb3ZpZGVzOgoJICoKCSAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZSNsb2NhbH0sIHtAbGluayBEYXRlVGltZSN1dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZSNmcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lI2Zyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZSNmcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSlNEYXRlfS4KCSAqICogKipHcmVnb3JpYW4gY2FsZW5kYXIgYW5kIHRpbWUqKjogVG8gZXhhbWluZSB0aGUgR3JlZ29yaWFuIHByb3BlcnRpZXMgb2YgYSBEYXRlVGltZSBpbmRpdmlkdWFsbHkgKGkuZSBhcyBvcHBvc2VkIHRvIGNvbGxlY3RpdmVseSB0aHJvdWdoIHtAbGluayBEYXRlVGltZSN0b09iamVjdH0pLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN5ZWFyfSwge0BsaW5rIERhdGVUaW1lI21vbnRofSwKCSAqIHtAbGluayBEYXRlVGltZSNkYXl9LCB7QGxpbmsgRGF0ZVRpbWUjaG91cn0sIHtAbGluayBEYXRlVGltZSNtaW51dGV9LCB7QGxpbmsgRGF0ZVRpbWUjc2Vjb25kfSwge0BsaW5rIERhdGVUaW1lI21pbGxpc2Vjb25kfSBhY2Nlc3NvcnMuCgkgKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLgoJICogKiAqKkNvbmZpZ3VyYXRpb24qKiBTZWUgdGhlIHtAbGluayBEYXRlVGltZSNsb2NhbGV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjbnVtYmVyaW5nU3lzdGVtfSBhY2Nlc3NvcnMuCgkgKiAqICoqVHJhbnNmb3JtYXRpb24qKjogVG8gdHJhbnNmb3JtIHRoZSBEYXRlVGltZSBpbnRvIG90aGVyIERhdGVUaW1lcywgdXNlIHtAbGluayBEYXRlVGltZSNzZXR9LCB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9LCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0sIHtAbGluayBEYXRlVGltZSNzZXRMb2NhbGV9LCB7QGxpbmsgRGF0ZVRpbWUucGx1c30sIHtAbGluayBEYXRlVGltZSNtaW51c30sIHtAbGluayBEYXRlVGltZSNlbmRPZn0sIHtAbGluayBEYXRlVGltZSNzdGFydE9mfSwge0BsaW5rIERhdGVUaW1lI3RvVVRDfSwgYW5kIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfS4KCSAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uCgkgKgoJICogVGhlcmUncyBwbGVudHkgb3RoZXJzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uLCB0aW1lIHpvbmVzLCBhbHRlcm5hdGl2ZSBjYWxlbmRhcnMsIHZhbGlkaXR5LCBhbmQgc28gb24sIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi4KCSAqLwoKCgl2YXIgRGF0ZVRpbWUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICAvKioKCSAgICogQGFjY2VzcyBwcml2YXRlCgkgICAqLwoJICBmdW5jdGlvbiBEYXRlVGltZShjb25maWcpIHsKCSAgICB2YXIgem9uZSA9IGNvbmZpZy56b25lIHx8IFNldHRpbmdzLmRlZmF1bHRab25lOwoJICAgIHZhciBpbnZhbGlkID0gY29uZmlnLmludmFsaWQgfHwgKE51bWJlci5pc05hTihjb25maWcudHMpID8gbmV3IEludmFsaWQoImludmFsaWQgaW5wdXQiKSA6IG51bGwpIHx8ICghem9uZS5pc1ZhbGlkID8gdW5zdXBwb3J0ZWRab25lKHpvbmUpIDogbnVsbCk7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMudHMgPSBpc1VuZGVmaW5lZChjb25maWcudHMpID8gU2V0dGluZ3Mubm93KCkgOiBjb25maWcudHM7CgkgICAgdmFyIGMgPSBudWxsLAoJICAgICAgICBvID0gbnVsbDsKCgkgICAgaWYgKCFpbnZhbGlkKSB7CgkgICAgICB2YXIgdW5jaGFuZ2VkID0gY29uZmlnLm9sZCAmJiBjb25maWcub2xkLnRzID09PSB0aGlzLnRzICYmIGNvbmZpZy5vbGQuem9uZS5lcXVhbHMoem9uZSk7CgoJICAgICAgaWYgKHVuY2hhbmdlZCkgewoJICAgICAgICB2YXIgX3JlZiA9IFtjb25maWcub2xkLmMsIGNvbmZpZy5vbGQub107CgkgICAgICAgIGMgPSBfcmVmWzBdOwoJICAgICAgICBvID0gX3JlZlsxXTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIHZhciBvdCA9IHpvbmUub2Zmc2V0KHRoaXMudHMpOwoJICAgICAgICBjID0gdHNUb09iaih0aGlzLnRzLCBvdCk7CgkgICAgICAgIGludmFsaWQgPSBOdW1iZXIuaXNOYU4oYy55ZWFyKSA/IG5ldyBJbnZhbGlkKCJpbnZhbGlkIGlucHV0IikgOiBudWxsOwoJICAgICAgICBjID0gaW52YWxpZCA/IG51bGwgOiBjOwoJICAgICAgICBvID0gaW52YWxpZCA/IG51bGwgOiBvdDsKCSAgICAgIH0KCSAgICB9CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoKCSAgICB0aGlzLl96b25lID0gem9uZTsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy5pbnZhbGlkID0gaW52YWxpZDsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy53ZWVrRGF0YSA9IG51bGw7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMuYyA9IGM7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMubyA9IG87CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMuaXNMdXhvbkRhdGVUaW1lID0gdHJ1ZTsKCSAgfSAvLyBDT05TVFJVQ1QKCgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS4KCSAgICoKCSAgICogVXNlIFNldHRpbmdzIHRvIG92ZXJyaWRlIHRoZXNlIGRlZmF1bHQgdmFsdWVzIGlmIG5lZWRlZC4KCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdAoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgoKCSAgRGF0ZVRpbWUubm93ID0gZnVuY3Rpb24gbm93KCkgewoJICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pOwoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBsb2NhbCBEYXRlVGltZQoJICAgKiBAcGFyYW0ge251bWJlcn0gW3llYXJdIC0gVGhlIGNhbGVuZGFyIHllYXIuIElmIG9taXR0ZWQgKGFzIGluLCBjYWxsIGBsb2NhbCgpYCB3aXRoIG5vIGFyZ3VtZW50cyksIHRoZSBjdXJyZW50IHRpbWUgd2lsbCBiZSB1c2VkCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZAoJICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoLCAxLWluZGV4ZWQKCSAgICogQHBhcmFtIHtudW1iZXJ9IFtob3VyPTBdIC0gVGhlIGhvdXIgb2YgdGhlIGRheSwgaW4gMjQtaG91ciB0aW1lCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2Vjb25kPTBdIC0gVGhlIHNlY29uZCBvZiB0aGUgbWludXRlLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTkKCSAgICogQHBhcmFtIHtudW1iZXJ9IFttaWxsaXNlY29uZD0wXSAtIFRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgOTk5CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiBub3cKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoeyB6b25lOiAiQW1lcmljYS9OZXdfWW9yayIgfSkgICAgICAvL34+IG5vdywgaW4gVVMgZWFzdCBjb2FzdCB0aW1lCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCB7IGxvY2FsZTogImZyIiB9KSAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwLCB3aXRoIGEgRnJlbmNoIGxvY2FsZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMAoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiAidXRjIiB9KSAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMCwgaW4gVVRDCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSkgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwLjc2NQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmxvY2FsID0gZnVuY3Rpb24gbG9jYWwoKSB7CgkgICAgdmFyIF9sYXN0T3B0cyA9IGxhc3RPcHRzKGFyZ3VtZW50cyksCgkgICAgICAgIG9wdHMgPSBfbGFzdE9wdHNbMF0sCgkgICAgICAgIGFyZ3MgPSBfbGFzdE9wdHNbMV0sCgkgICAgICAgIHllYXIgPSBhcmdzWzBdLAoJICAgICAgICBtb250aCA9IGFyZ3NbMV0sCgkgICAgICAgIGRheSA9IGFyZ3NbMl0sCgkgICAgICAgIGhvdXIgPSBhcmdzWzNdLAoJICAgICAgICBtaW51dGUgPSBhcmdzWzRdLAoJICAgICAgICBzZWNvbmQgPSBhcmdzWzVdLAoJICAgICAgICBtaWxsaXNlY29uZCA9IGFyZ3NbNl07CgoJICAgIHJldHVybiBxdWlja0RUKHsKCSAgICAgIHllYXI6IHllYXIsCgkgICAgICBtb250aDogbW9udGgsCgkgICAgICBkYXk6IGRheSwKCSAgICAgIGhvdXI6IGhvdXIsCgkgICAgICBtaW51dGU6IG1pbnV0ZSwKCSAgICAgIHNlY29uZDogc2Vjb25kLAoJICAgICAgbWlsbGlzZWNvbmQ6IG1pbGxpc2Vjb25kCgkgICAgfSwgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGluIFVUQwoJICAgKiBAcGFyYW0ge251bWJlcn0gW3llYXJdIC0gVGhlIGNhbGVuZGFyIHllYXIuIElmIG9taXR0ZWQgKGFzIGluLCBjYWxsIGB1dGMoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZAoJICAgKiBAcGFyYW0ge251bWJlcn0gW21vbnRoPTFdIC0gVGhlIG1vbnRoLCAxLWluZGV4ZWQKCSAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aAoJICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWUKCSAgICogQHBhcmFtIHtudW1iZXJ9IFttaW51dGU9MF0gLSBUaGUgbWludXRlIG9mIHRoZSBob3VyLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTkKCSAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWNvbmQ9MF0gLSBUaGUgc2Vjb25kIG9mIHRoZSBtaW51dGUsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OQoJICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTkKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW1dIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiBub3cKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwWgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMDFUMDA6MDA6MDBaCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwMDowMDowMFoKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwWgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBaCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUsIHsgbG9jYWxlOiAiZnIiIH0pICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFogd2l0aCBhIEZyZW5jaCBsb2NhbGUKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1LCB7IGxvY2FsZTogImZyIiB9KSAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1WiB3aXRoIGEgRnJlbmNoIGxvY2FsZQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLnV0YyA9IGZ1bmN0aW9uIHV0YygpIHsKCSAgICB2YXIgX2xhc3RPcHRzMiA9IGxhc3RPcHRzKGFyZ3VtZW50cyksCgkgICAgICAgIG9wdHMgPSBfbGFzdE9wdHMyWzBdLAoJICAgICAgICBhcmdzID0gX2xhc3RPcHRzMlsxXSwKCSAgICAgICAgeWVhciA9IGFyZ3NbMF0sCgkgICAgICAgIG1vbnRoID0gYXJnc1sxXSwKCSAgICAgICAgZGF5ID0gYXJnc1syXSwKCSAgICAgICAgaG91ciA9IGFyZ3NbM10sCgkgICAgICAgIG1pbnV0ZSA9IGFyZ3NbNF0sCgkgICAgICAgIHNlY29uZCA9IGFyZ3NbNV0sCgkgICAgICAgIG1pbGxpc2Vjb25kID0gYXJnc1s2XTsKCgkgICAgb3B0cy56b25lID0gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlOwoJICAgIHJldHVybiBxdWlja0RUKHsKCSAgICAgIHllYXI6IHllYXIsCgkgICAgICBtb250aDogbW9udGgsCgkgICAgICBkYXk6IGRheSwKCSAgICAgIGhvdXI6IGhvdXIsCgkgICAgICBtaW51dGU6IG1pbnV0ZSwKCSAgICAgIHNlY29uZDogc2Vjb25kLAoJICAgICAgbWlsbGlzZWNvbmQ6IG1pbGxpc2Vjb25kCgkgICAgfSwgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0LiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuCgkgICAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdAoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50bwoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21KU0RhdGUgPSBmdW5jdGlvbiBmcm9tSlNEYXRlKGRhdGUsIG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICB2YXIgdHMgPSBpc0RhdGUoZGF0ZSkgPyBkYXRlLnZhbHVlT2YoKSA6IE5hTjsKCgkgICAgaWYgKE51bWJlci5pc05hTih0cykpIHsKCSAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKCJpbnZhbGlkIGlucHV0Iik7CgkgICAgfQoKCSAgICB2YXIgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTsKCgkgICAgaWYgKCF6b25lVG9Vc2UuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpOwoJICAgIH0KCgkgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7CgkgICAgICB0czogdHMsCgkgICAgICB6b25lOiB6b25lVG9Vc2UsCgkgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpCgkgICAgfSk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVEMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZQoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG8KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tTWlsbGlzID0gZnVuY3Rpb24gZnJvbU1pbGxpcyhtaWxsaXNlY29uZHMsIG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICBpZiAoIWlzTnVtYmVyKG1pbGxpc2Vjb25kcykpIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigiZnJvbU1pbGxpcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCwgYnV0IHJlY2VpdmVkIGEgIiArIHR5cGVvZiBtaWxsaXNlY29uZHMgKyAiIHdpdGggdmFsdWUgIiArIG1pbGxpc2Vjb25kcyk7CgkgICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPCAtTUFYX0RBVEUgfHwgbWlsbGlzZWNvbmRzID4gTUFYX0RBVEUpIHsKCSAgICAgIC8vIHRoaXMgaXNuJ3QgcGVyZmVjdCBiZWNhdXNlIGJlY2F1c2Ugd2UgY2FuIHN0aWxsIGVuZCB1cCBvdXQgb2YgcmFuZ2UgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIHNoaWZ0aW5nLCBidXQgaXQncyBhIHN0YXJ0CgkgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgiVGltZXN0YW1wIG91dCBvZiByYW5nZSIpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKCSAgICAgICAgdHM6IG1pbGxpc2Vjb25kcywKCSAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSwKCSAgICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRpb25zKQoJICAgICAgfSk7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS4KCSAgICogQHBhcmFtIHtudW1iZXJ9IHNlY29uZHMgLSBhIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIDE5NzAgVVRDCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWUKCSAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdGlvbnMuem9uZT0nbG9jYWwnXSAtIHRoZSB6b25lIHRvIHBsYWNlIHRoZSBEYXRlVGltZSBpbnRvCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgRGF0ZVRpbWUuZnJvbVNlY29uZHMgPSBmdW5jdGlvbiBmcm9tU2Vjb25kcyhzZWNvbmRzLCBvcHRpb25zKSB7CgkgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0aW9ucyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKCFpc051bWJlcihzZWNvbmRzKSkgewoJICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCIpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKCSAgICAgICAgdHM6IHNlY29uZHMgKiAxMDAwLAoJICAgICAgICB6b25lOiBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpLAoJICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpCgkgICAgICB9KTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcicgYW5kICdob3VyJyB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbQoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXIgLSBhIHllYXIsIHN1Y2ggYXMgMTk4NwoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1vbnRoIC0gYSBtb250aCwgMS0xMgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheSAtIGEgZGF5IG9mIHRoZSBtb250aCwgMS0zMSwgZGVwZW5kaW5nIG9uIHRoZSBtb250aAoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm9yZGluYWwgLSBkYXkgb2YgdGhlIHllYXIsIDEtMzY1IG9yIDM2NgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtZZWFyIC0gYW4gSVNPIHdlZWsgeWVhcgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtOdW1iZXIgLSBhbiBJU08gd2VlayBudW1iZXIsIGJldHdlZW4gMSBhbmQgNTIgb3IgNTMsIGRlcGVuZGluZyBvbiB0aGUgeWVhcgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtkYXkgLSBhbiBJU08gd2Vla2RheSwgMS03LCB3aGVyZSAxIGlzIE1vbmRheSBhbmQgNyBpcyBTdW5kYXkKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VyIC0gaG91ciBvZiB0aGUgZGF5LCAwLTIzCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWludXRlIC0gbWludXRlIG9mIHRoZSBob3VyLCAwLTU5CgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouc2Vjb25kIC0gc2Vjb25kIG9mIHRoZSBtaW51dGUsIDAtNTkKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taWxsaXNlY29uZCAtIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIDAtOTk5CgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhpcyBEYXRlVGltZQoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gaW50ZXJwcmV0IHRoZSBudW1iZXJzIGluIHRoZSBjb250ZXh0IG9mIGEgcGFydGljdWxhciB6b25lLiBDYW4gdGFrZSBhbnkgdmFsdWUgdGFrZW4gYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHNldFpvbmUoKQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogMTk4MiwgbW9udGg6IDUsIGRheTogMjV9KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1JwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogMTk4MiB9KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTAxLTAxJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9KSAvL34+IHRvZGF5IGF0IDEwOjI2OjA2CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ3V0YycgfSksCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ2xvY2FsJyB9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyB9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgd2Vla1llYXI6IDIwMTYsIHdlZWtOdW1iZXI6IDIsIHdlZWtkYXk6IDMgfSkudG9JU09EYXRlKCkgLy89PiAnMjAxNi0wMS0xMycKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tT2JqZWN0ID0gZnVuY3Rpb24gZnJvbU9iamVjdChvYmosIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICBvYmogPSBvYmogfHwge307CgkgICAgdmFyIHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CgoJICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lVG9Vc2UpKTsKCSAgICB9CgoJICAgIHZhciB0c05vdyA9IFNldHRpbmdzLm5vdygpLAoJICAgICAgICBvZmZzZXRQcm92aXMgPSAhaXNVbmRlZmluZWQob3B0cy5zcGVjaWZpY09mZnNldCkgPyBvcHRzLnNwZWNpZmljT2Zmc2V0IDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksCgkgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVVbml0KSwKCSAgICAgICAgY29udGFpbnNPcmRpbmFsID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQub3JkaW5hbCksCgkgICAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLAoJICAgICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksCgkgICAgICAgIGNvbnRhaW5zR3JlZ29yID0gY29udGFpbnNHcmVnb3JZZWFyIHx8IGNvbnRhaW5zR3JlZ29yTUQsCgkgICAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLAoJICAgICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKTsgLy8gY2FzZXM6CgkgICAgLy8ganVzdCBhIHdlZWtkYXkgLT4gdGhpcyB3ZWVrJ3MgaW5zdGFuY2Ugb2YgdGhhdCB3ZWVrZGF5LCBubyB3b3JyaWVzCgkgICAgLy8gKGdyZWdvcmlhbiBkYXRhIG9yIG9yZGluYWwpICsgKHdlZWtZZWFyIG9yIHdlZWtOdW1iZXIpIC0+IGVycm9yCgkgICAgLy8gKGdyZWdvcmlhbiBtb250aCBvciBkYXkpICsgb3JkaW5hbCAtPiBlcnJvcgoJICAgIC8vIG90aGVyd2lzZSBqdXN0IHVzZSB3ZWVrcyBvciBvcmRpbmFscyBvciBncmVnb3JpYW4sIGRlcGVuZGluZyBvbiB3aGF0J3Mgc3BlY2lmaWVkCgoJICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHsKCSAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgbWl4IHdlZWtZZWFyL3dlZWtOdW1iZXIgdW5pdHMgd2l0aCB5ZWFyL21vbnRoL2RheSBvciBvcmRpbmFscyIpOwoJICAgIH0KCgkgICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7CgkgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5Iik7CgkgICAgfQoKCSAgICB2YXIgdXNlV2Vla0RhdGEgPSBkZWZpbml0ZVdlZWtEZWYgfHwgbm9ybWFsaXplZC53ZWVrZGF5ICYmICFjb250YWluc0dyZWdvcjsgLy8gY29uZmlndXJlIG91cnNlbHZlcyB0byBkZWFsIHdpdGggZ3JlZ29yaWFuIGRhdGVzIG9yIHdlZWsgc3R1ZmYKCgkgICAgdmFyIHVuaXRzLAoJICAgICAgICBkZWZhdWx0VmFsdWVzLAoJICAgICAgICBvYmpOb3cgPSB0c1RvT2JqKHRzTm93LCBvZmZzZXRQcm92aXMpOwoKCSAgICBpZiAodXNlV2Vla0RhdGEpIHsKCSAgICAgIHVuaXRzID0gb3JkZXJlZFdlZWtVbml0czsKCSAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0V2Vla1VuaXRWYWx1ZXM7CgkgICAgICBvYmpOb3cgPSBncmVnb3JpYW5Ub1dlZWsob2JqTm93KTsKCSAgICB9IGVsc2UgaWYgKGNvbnRhaW5zT3JkaW5hbCkgewoJICAgICAgdW5pdHMgPSBvcmRlcmVkT3JkaW5hbFVuaXRzOwoJICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRPcmRpbmFsVW5pdFZhbHVlczsKCSAgICAgIG9iak5vdyA9IGdyZWdvcmlhblRvT3JkaW5hbChvYmpOb3cpOwoJICAgIH0gZWxzZSB7CgkgICAgICB1bml0cyA9IG9yZGVyZWRVbml0czsKCSAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VW5pdFZhbHVlczsKCSAgICB9IC8vIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBzdHVmZgoKCgkgICAgdmFyIGZvdW5kRmlyc3QgPSBmYWxzZTsKCgkgICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyTG9vc2UodW5pdHMpLCBfc3RlcDM7ICEoX3N0ZXAzID0gX2l0ZXJhdG9yMygpKS5kb25lOykgewoJICAgICAgdmFyIHUgPSBfc3RlcDMudmFsdWU7CgkgICAgICB2YXIgdiA9IG5vcm1hbGl6ZWRbdV07CgoJICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkgewoJICAgICAgICBmb3VuZEZpcnN0ID0gdHJ1ZTsKCSAgICAgIH0gZWxzZSBpZiAoZm91bmRGaXJzdCkgewoJICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIG5vcm1hbGl6ZWRbdV0gPSBvYmpOb3dbdV07CgkgICAgICB9CgkgICAgfSAvLyBtYWtlIHN1cmUgdGhlIHZhbHVlcyB3ZSBoYXZlIGFyZSBpbiByYW5nZQoKCgkgICAgdmFyIGhpZ2hlck9yZGVySW52YWxpZCA9IHVzZVdlZWtEYXRhID8gaGFzSW52YWxpZFdlZWtEYXRhKG5vcm1hbGl6ZWQpIDogY29udGFpbnNPcmRpbmFsID8gaGFzSW52YWxpZE9yZGluYWxEYXRhKG5vcm1hbGl6ZWQpIDogaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEobm9ybWFsaXplZCksCgkgICAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpOwoKCSAgICBpZiAoaW52YWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CgkgICAgfSAvLyBjb21wdXRlIHRoZSBhY3R1YWwgdGltZQoKCgkgICAgdmFyIGdyZWdvcmlhbiA9IHVzZVdlZWtEYXRhID8gd2Vla1RvR3JlZ29yaWFuKG5vcm1hbGl6ZWQpIDogY29udGFpbnNPcmRpbmFsID8gb3JkaW5hbFRvR3JlZ29yaWFuKG5vcm1hbGl6ZWQpIDogbm9ybWFsaXplZCwKCSAgICAgICAgX29ialRvVFMyID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSwKCSAgICAgICAgdHNGaW5hbCA9IF9vYmpUb1RTMlswXSwKCSAgICAgICAgb2Zmc2V0RmluYWwgPSBfb2JqVG9UUzJbMV0sCgkgICAgICAgIGluc3QgPSBuZXcgRGF0ZVRpbWUoewoJICAgICAgdHM6IHRzRmluYWwsCgkgICAgICB6b25lOiB6b25lVG9Vc2UsCgkgICAgICBvOiBvZmZzZXRGaW5hbCwKCSAgICAgIGxvYzogbG9jCgkgICAgfSk7IC8vIGdyZWdvcmlhbiBkYXRhICsgd2Vla2RheSBzZXJ2ZXMgb25seSB0byB2YWxpZGF0ZQoKCgkgICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7CgkgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgibWlzbWF0Y2hlZCB3ZWVrZGF5IiwgInlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICIgKyBub3JtYWxpemVkLndlZWtkYXkgKyAiIGFuZCBhIGRhdGUgb2YgIiArIGluc3QudG9JU08oKSk7CgkgICAgfQoKCSAgICByZXR1cm4gaW5zdDsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBJU08gODYwMSBzdHJpbmcKCSAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZwoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMrMDY6MDAnKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnLCB7em9uZTogJ3V0Yyd9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LVcwNS00JykKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tSVNPID0gZnVuY3Rpb24gZnJvbUlTTyh0ZXh0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIF9wYXJzZUlTT0RhdGUgPSBwYXJzZUlTT0RhdGUodGV4dCksCgkgICAgICAgIHZhbHMgPSBfcGFyc2VJU09EYXRlWzBdLAoJICAgICAgICBwYXJzZWRab25lID0gX3BhcnNlSVNPRGF0ZVsxXTsKCgkgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgIklTTyA4NjAxIiwgdGV4dCk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gUkZDIDI4MjIgc3RyaW5nCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZwoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUuIFNpbmNlIHRoZSBvZmZzZXQgaXMgYWx3YXlzIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi4KCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzOjEyIEdNVCcpCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCdGcmksIDI1IE5vdiAyMDE2IDEzOjIzOjEyICswNjAwJykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21SRkMyODIyID0gZnVuY3Rpb24gZnJvbVJGQzI4MjIodGV4dCwgb3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfcGFyc2VSRkMyODIyRGF0ZSA9IHBhcnNlUkZDMjgyMkRhdGUodGV4dCksCgkgICAgICAgIHZhbHMgPSBfcGFyc2VSRkMyODIyRGF0ZVswXSwKCSAgICAgICAgcGFyc2VkWm9uZSA9IF9wYXJzZVJGQzI4MjJEYXRlWzFdOwoKCSAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCAiUkZDIDI4MjIiLCB0ZXh0KTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBIVFRQIGhlYWRlciBkYXRlCgkgICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIEhUVFAgaGVhZGVyIGRhdGUKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KCSAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLgoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCB0aGUgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcuIEZvciBIVFRQIGRhdGVzLCB0aGlzIGlzIGFsd2F5cyBVVEMsIHNvIHRoaXMgb3B0aW9uIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGUgYHpvbmVgIG9wdGlvbiB0byAndXRjJywgYnV0IHRoaXMgb3B0aW9uIGlzIGluY2x1ZGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHNpbWlsYXIgbWV0aG9kcy4KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1biwgMDYgTm92IDE5OTQgMDg6NDk6MzcgR01UJykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4gTm92ICA2IDA4OjQ5OjM3IDE5OTQnKQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21IVFRQID0gZnVuY3Rpb24gZnJvbUhUVFAodGV4dCwgb3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfcGFyc2VIVFRQRGF0ZSA9IHBhcnNlSFRUUERhdGUodGV4dCksCgkgICAgICAgIHZhbHMgPSBfcGFyc2VIVFRQRGF0ZVswXSwKCSAgICAgICAgcGFyc2VkWm9uZSA9IF9wYXJzZUhUVFBEYXRlWzFdOwoKCSAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCAiSFRUUCIsIG9wdHMpOwoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy4KCSAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9wYXJzaW5nP2lkPXRhYmxlLW9mLXRva2VucykuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKQoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21Gb3JtYXQgPSBmdW5jdGlvbiBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoImZyb21Gb3JtYXQgcmVxdWlyZXMgYW4gaW5wdXQgc3RyaW5nIGFuZCBhIGZvcm1hdCIpOwoJICAgIH0KCgkgICAgdmFyIF9vcHRzID0gb3B0cywKCSAgICAgICAgX29wdHMkbG9jYWxlID0gX29wdHMubG9jYWxlLAoJICAgICAgICBsb2NhbGUgPSBfb3B0cyRsb2NhbGUgPT09IHZvaWQgMCA/IG51bGwgOiBfb3B0cyRsb2NhbGUsCgkgICAgICAgIF9vcHRzJG51bWJlcmluZ1N5c3RlbSA9IF9vcHRzLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX29wdHMkbnVtYmVyaW5nU3lzdGVtID09PSB2b2lkIDAgPyBudWxsIDogX29wdHMkbnVtYmVyaW5nU3lzdGVtLAoJICAgICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7CgkgICAgICBsb2NhbGU6IGxvY2FsZSwKCSAgICAgIG51bWJlcmluZ1N5c3RlbTogbnVtYmVyaW5nU3lzdGVtLAoJICAgICAgZGVmYXVsdFRvRU46IHRydWUKCSAgICB9KSwKCSAgICAgICAgX3BhcnNlRnJvbVRva2VucyA9IHBhcnNlRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KSwKCSAgICAgICAgdmFscyA9IF9wYXJzZUZyb21Ub2tlbnNbMF0sCgkgICAgICAgIHBhcnNlZFpvbmUgPSBfcGFyc2VGcm9tVG9rZW5zWzFdLAoJICAgICAgICBzcGVjaWZpY09mZnNldCA9IF9wYXJzZUZyb21Ub2tlbnNbMl0sCgkgICAgICAgIGludmFsaWQgPSBfcGFyc2VGcm9tVG9rZW5zWzNdOwoKCSAgICBpZiAoaW52YWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsICJmb3JtYXQgIiArIGZtdCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpOwoJICAgIH0KCSAgfQoJICAvKioKCSAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21Gb3JtYXQgaW5zdGVhZAoJICAgKi8KCSAgOwoKCSAgRGF0ZVRpbWUuZnJvbVN0cmluZyA9IGZ1bmN0aW9uIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodGV4dCwgZm10LCBvcHRzKTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIFNRTCBkYXRlLCB0aW1lLCBvciBkYXRldGltZQoJICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGUKCSAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmUKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gYSBsb2NhbGUgc3RyaW5nIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIERhdGVUaW1lIHRvIHRoaXMgbG9jYWxlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUnKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0JykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiswNjowMCcpCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyIEFtZXJpY2EvTG9zX0FuZ2VsZXMnKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJywgeyB6b25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycgfSkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMDk6MTI6MzQuMzQyJykKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tU1FMID0gZnVuY3Rpb24gZnJvbVNRTCh0ZXh0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIF9wYXJzZVNRTCA9IHBhcnNlU1FMKHRleHQpLAoJICAgICAgICB2YWxzID0gX3BhcnNlU1FMWzBdLAoJICAgICAgICBwYXJzZWRab25lID0gX3BhcnNlU1FMWzFdOwoKCSAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCAiU1FMIiwgdGV4dCk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBpbnZhbGlkIERhdGVUaW1lLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBEYXRlVGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5pbnZhbGlkID0gZnVuY3Rpb24gaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKSB7CgkgICAgaWYgKGV4cGxhbmF0aW9uID09PSB2b2lkIDApIHsKCSAgICAgIGV4cGxhbmF0aW9uID0gbnVsbDsKCSAgICB9CgoJICAgIGlmICghcmVhc29uKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRGF0ZVRpbWUgaXMgaW52YWxpZCIpOwoJICAgIH0KCgkgICAgdmFyIGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7CgoJICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkgewoJICAgICAgdGhyb3cgbmV3IEludmFsaWREYXRlVGltZUVycm9yKGludmFsaWQpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKCSAgICAgICAgaW52YWxpZDogaW52YWxpZAoJICAgICAgfSk7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZVRpbWUuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXMKCSAgICogQHBhcmFtIHtvYmplY3R9IG8KCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmlzRGF0ZVRpbWUgPSBmdW5jdGlvbiBpc0RhdGVUaW1lKG8pIHsKCSAgICByZXR1cm4gbyAmJiBvLmlzTHV4b25EYXRlVGltZSB8fCBmYWxzZTsKCSAgfSAvLyBJTkZPCgoJICAvKioKCSAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnbW9udGgnKTsgLy89PiA3CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnZGF5Jyk7IC8vPT4gNAoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICB2YXIgX3Byb3RvID0gRGF0ZVRpbWUucHJvdG90eXBlOwoKCSAgX3Byb3RvLmdldCA9IGZ1bmN0aW9uIGdldCh1bml0KSB7CgkgICAgcmV0dXJuIHRoaXNbdW5pdF07CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQuIEludmFsaWQgRGF0ZVRpbWVzIG9jY3VyIHdoZW46CgkgICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGZyb20gaW52YWxpZCBjYWxlbmRhciBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgMTN0aCBtb250aCBvciBGZWJydWFyeSAzMAoJICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBieSBhbiBvcGVyYXRpb24gb24gYW5vdGhlciBpbnZhbGlkIGRhdGUKCSAgICogQHR5cGUge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICAvKioKCSAgICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgSW50bCBvcHRpb25zIGZvciB0aGlzIERhdGVUaW1lLgoJICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSB0aGUgc2FtZSBvcHRpb25zIGFzIHRvTG9jYWxlU3RyaW5nCgkgICAqIEByZXR1cm4ge09iamVjdH0KCSAgICovCgkgIF9wcm90by5yZXNvbHZlZExvY2FsZU9wdGlvbnMgPSBmdW5jdGlvbiByZXNvbHZlZExvY2FsZU9wdGlvbnMob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfRm9ybWF0dGVyJGNyZWF0ZSRyZXMgPSBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5yZXNvbHZlZE9wdGlvbnModGhpcyksCgkgICAgICAgIGxvY2FsZSA9IF9Gb3JtYXR0ZXIkY3JlYXRlJHJlcy5sb2NhbGUsCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9Gb3JtYXR0ZXIkY3JlYXRlJHJlcy5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIGNhbGVuZGFyID0gX0Zvcm1hdHRlciRjcmVhdGUkcmVzLmNhbGVuZGFyOwoKCSAgICByZXR1cm4gewoJICAgICAgbG9jYWxlOiBsb2NhbGUsCgkgICAgICBudW1iZXJpbmdTeXN0ZW06IG51bWJlcmluZ1N5c3RlbSwKCSAgICAgIG91dHB1dENhbGVuZGFyOiBjYWxlbmRhcgoJICAgIH07CgkgIH0gLy8gVFJBTlNGT1JNCgoJICAvKioKCSAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBVVEMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS4KCSAgICoKCSAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdIC0gb3B0aW9uYWxseSwgYW4gb2Zmc2V0IGZyb20gVVRDIGluIG1pbnV0ZXMKCSAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzPXt9XSAtIG9wdGlvbnMgdG8gcGFzcyB0byBgc2V0Wm9uZSgpYAoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1VUQyA9IGZ1bmN0aW9uIHRvVVRDKG9mZnNldCwgb3B0cykgewoJICAgIGlmIChvZmZzZXQgPT09IHZvaWQgMCkgewoJICAgICAgb2Zmc2V0ID0gMDsKCSAgICB9CgoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgRGF0ZVRpbWUncyB6b25lIHRvIHRoZSBob3N0J3MgbG9jYWwgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgoJICAgKgoJICAgKiBFcXVpdmFsZW50IHRvIGBzZXRab25lKCdsb2NhbCcpYAoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0xvY2FsID0gZnVuY3Rpb24gdG9Mb2NhbCgpIHsKCSAgICByZXR1cm4gdGhpcy5zZXRab25lKFNldHRpbmdzLmRlZmF1bHRab25lKTsKCSAgfQoJICAvKioKCSAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgoJICAgKgoJICAgKiBCeSBkZWZhdWx0LCB0aGUgc2V0dGVyIGtlZXBzIHRoZSB1bmRlcmx5aW5nIHRpbWUgdGhlIHNhbWUgKGFzIGluLCB0aGUgc2FtZSB0aW1lc3RhbXApLCBidXQgdGhlIG5ldyBpbnN0YW5jZSB3aWxsIHJlcG9ydCBkaWZmZXJlbnQgbG9jYWwgdGltZXMgYW5kIGNvbnNpZGVyIERTVHMgd2hlbiBtYWtpbmcgY29tcHV0YXRpb25zLCBhcyB3aXRoIHtAbGluayBEYXRlVGltZSNwbHVzfS4gWW91IG1heSB3aXNoIHRvIHVzZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbH0gYW5kIHtAbGluayBEYXRlVGltZSN0b1VUQ30gd2hpY2ggcHJvdmlkZSBzaW1wbGUgY29udmVuaWVuY2Ugd3JhcHBlcnMgZm9yIGNvbW1vbmx5IHVzZWQgem9uZXMuCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5rZWVwTG9jYWxUaW1lPWZhbHNlXSAtIElmIHRydWUsIGFkanVzdCB0aGUgdW5kZXJseWluZyB0aW1lIHNvIHRoYXQgdGhlIGxvY2FsIHRpbWUgc3RheXMgdGhlIHNhbWUsIGJ1dCBpbiB0aGUgdGFyZ2V0IHpvbmUuIFlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdGhpcy4KCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uc2V0Wm9uZSA9IGZ1bmN0aW9uIHNldFpvbmUoem9uZSwgX3RlbXApIHsKCSAgICB2YXIgX3JlZjIgPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcCwKCSAgICAgICAgX3JlZjIka2VlcExvY2FsVGltZSA9IF9yZWYyLmtlZXBMb2NhbFRpbWUsCgkgICAgICAgIGtlZXBMb2NhbFRpbWUgPSBfcmVmMiRrZWVwTG9jYWxUaW1lID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYyJGtlZXBMb2NhbFRpbWUsCgkgICAgICAgIF9yZWYyJGtlZXBDYWxlbmRhclRpbSA9IF9yZWYyLmtlZXBDYWxlbmRhclRpbWUsCgkgICAgICAgIGtlZXBDYWxlbmRhclRpbWUgPSBfcmVmMiRrZWVwQ2FsZW5kYXJUaW0gPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjIka2VlcENhbGVuZGFyVGltOwoKCSAgICB6b25lID0gbm9ybWFsaXplWm9uZSh6b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CgoJICAgIGlmICh6b25lLmVxdWFscyh0aGlzLnpvbmUpKSB7CgkgICAgICByZXR1cm4gdGhpczsKCSAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lKSk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHZhciBuZXdUUyA9IHRoaXMudHM7CgoJICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkgewoJICAgICAgICB2YXIgb2Zmc2V0R3Vlc3MgPSB6b25lLm9mZnNldCh0aGlzLnRzKTsKCSAgICAgICAgdmFyIGFzT2JqID0gdGhpcy50b09iamVjdCgpOwoKCSAgICAgICAgdmFyIF9vYmpUb1RTMyA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTsKCgkgICAgICAgIG5ld1RTID0gX29ialRvVFMzWzBdOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7CgkgICAgICAgIHRzOiBuZXdUUywKCSAgICAgICAgem9uZTogem9uZQoJICAgICAgfSk7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzIC0gdGhlIHByb3BlcnRpZXMgdG8gc2V0CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIF9wcm90by5yZWNvbmZpZ3VyZSA9IGZ1bmN0aW9uIHJlY29uZmlndXJlKF90ZW1wMikgewoJICAgIHZhciBfcmVmMyA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDIsCgkgICAgICAgIGxvY2FsZSA9IF9yZWYzLmxvY2FsZSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX3JlZjMubnVtYmVyaW5nU3lzdGVtLAoJICAgICAgICBvdXRwdXRDYWxlbmRhciA9IF9yZWYzLm91dHB1dENhbGVuZGFyOwoKCSAgICB2YXIgbG9jID0gdGhpcy5sb2MuY2xvbmUoewoJICAgICAgbG9jYWxlOiBsb2NhbGUsCgkgICAgICBudW1iZXJpbmdTeXN0ZW06IG51bWJlcmluZ1N5c3RlbSwKCSAgICAgIG91dHB1dENhbGVuZGFyOiBvdXRwdXRDYWxlbmRhcgoJICAgIH0pOwoJICAgIHJldHVybiBjbG9uZSh0aGlzLCB7CgkgICAgICBsb2M6IGxvYwoJICAgIH0pOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgbG9jYWxlLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCgkgICAqIEp1c3QgYSBjb252ZW5pZW50IGFsaWFzIGZvciByZWNvbmZpZ3VyZSh7IGxvY2FsZSB9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkuc2V0TG9jYWxlKCdlbi1HQicpCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNldExvY2FsZSA9IGZ1bmN0aW9uIHNldExvY2FsZShsb2NhbGUpIHsKCSAgICByZXR1cm4gdGhpcy5yZWNvbmZpZ3VyZSh7CgkgICAgICBsb2NhbGU6IGxvY2FsZQoJICAgIH0pOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgoJICAgKiBZb3UgY2FuIG9ubHkgc2V0IHVuaXRzIHdpdGggdGhpcyBtZXRob2Q7IGZvciAic2V0dGluZyIgbWV0YWRhdGEsIHNlZSB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0uCgkgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVycwoJICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB5ZWFyOiAyMDE3IH0pCgkgICAqIEBleGFtcGxlIGR0LnNldCh7IGhvdXI6IDgsIG1pbnV0ZTogMzAgfSkKCSAgICogQGV4YW1wbGUgZHQuc2V0KHsgd2Vla2RheTogNSB9KQoJICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB5ZWFyOiAyMDA1LCBvcmRpbmFsOiAyMzQgfSkKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uc2V0ID0gZnVuY3Rpb24gc2V0KHZhbHVlcykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIG5vcm1hbGl6ZVVuaXQpLAoJICAgICAgICBzZXR0aW5nV2Vla1N0dWZmID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla1llYXIpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtkYXkpLAoJICAgICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSwKCSAgICAgICAgY29udGFpbnNHcmVnb3JZZWFyID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQueWVhciksCgkgICAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSwKCSAgICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCwKCSAgICAgICAgZGVmaW5pdGVXZWVrRGVmID0gbm9ybWFsaXplZC53ZWVrWWVhciB8fCBub3JtYWxpemVkLndlZWtOdW1iZXI7CgoJICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHsKCSAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgbWl4IHdlZWtZZWFyL3dlZWtOdW1iZXIgdW5pdHMgd2l0aCB5ZWFyL21vbnRoL2RheSBvciBvcmRpbmFscyIpOwoJICAgIH0KCgkgICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7CgkgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5Iik7CgkgICAgfQoKCSAgICB2YXIgbWl4ZWQ7CgoJICAgIGlmIChzZXR0aW5nV2Vla1N0dWZmKSB7CgkgICAgICBtaXhlZCA9IHdlZWtUb0dyZWdvcmlhbihfZXh0ZW5kcyh7fSwgZ3JlZ29yaWFuVG9XZWVrKHRoaXMuYyksIG5vcm1hbGl6ZWQpKTsKCSAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7CgkgICAgICBtaXhlZCA9IG9yZGluYWxUb0dyZWdvcmlhbihfZXh0ZW5kcyh7fSwgZ3JlZ29yaWFuVG9PcmRpbmFsKHRoaXMuYyksIG5vcm1hbGl6ZWQpKTsKCSAgICB9IGVsc2UgewoJICAgICAgbWl4ZWQgPSBfZXh0ZW5kcyh7fSwgdGhpcy50b09iamVjdCgpLCBub3JtYWxpemVkKTsgLy8gaWYgd2UgZGlkbid0IHNldCB0aGUgZGF5IGJ1dCB3ZSBlbmRlZCB1cCBvbiBhbiBvdmVyZmxvdyBkYXRlLAoJICAgICAgLy8gdXNlIHRoZSBsYXN0IGRheSBvZiB0aGUgcmlnaHQgbW9udGgKCgkgICAgICBpZiAoaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpKSB7CgkgICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTsKCSAgICAgIH0KCSAgICB9CgoJICAgIHZhciBfb2JqVG9UUzQgPSBvYmpUb1RTKG1peGVkLCB0aGlzLm8sIHRoaXMuem9uZSksCgkgICAgICAgIHRzID0gX29ialRvVFM0WzBdLAoJICAgICAgICBvID0gX29ialRvVFM0WzFdOwoKCSAgICByZXR1cm4gY2xvbmUodGhpcywgewoJICAgICAgdHM6IHRzLAoJICAgICAgbzogbwoJICAgIH0pOwoJICB9CgkgIC8qKgoJICAgKiBBZGQgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZQoJICAgKgoJICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uCgkgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cygxMjMpIC8vfj4gaW4gMTIzIG1pbGxpc2Vjb25kcwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pIC8vfj4gdGhpcyB0aW1lIHRvbW9ycm93CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAtMSB9KSAvL34+IHRoaXMgdGltZSB5ZXN0ZXJkYXkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pbgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMywgbWludXRlczogMTMgfSkpIC8vfj4gaW4gMyBociwgMTMgbWluCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnBsdXMgPSBmdW5jdGlvbiBwbHVzKGR1cmF0aW9uKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoJICAgIHZhciBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTsKCSAgICByZXR1cm4gY2xvbmUodGhpcywgYWRqdXN0VGltZSh0aGlzLCBkdXIpKTsKCSAgfQoJICAvKioKCSAgICogU3VidHJhY3QgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZQoJICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI3BsdXN9CgkgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIHN1YnRyYWN0LiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKQoJICAgQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8ubWludXMgPSBmdW5jdGlvbiBtaW51cyhkdXJhdGlvbikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbikubmVnYXRlKCk7CgkgICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7CgkgIH0KCSAgLyoqCgkgICAqICJTZXQiIHRoaXMgRGF0ZVRpbWUgdG8gdGhlIGJlZ2lubmluZyBvZiBhIHVuaXQgb2YgdGltZS4KCSAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBUaGUgdW5pdCB0byBnbyB0byB0aGUgYmVnaW5uaW5nIG9mLiBDYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLCBvciAnbWlsbGlzZWNvbmQnLgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCdtb250aCcpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAxJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCd5ZWFyJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDEtMDEnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ3dlZWsnKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMy0wMycsIHdlZWtzIGFsd2F5cyBzdGFydCBvbiBNb25kYXlzCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdkYXknKS50b0lTT1RpbWUoKTsgLy89PiAnMDA6MDAuMDAwLTA1OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuc3RhcnRPZignaG91cicpLnRvSVNPVGltZSgpOyAvLz0+ICcwNTowMDowMC4wMDAtMDU6MDAnCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnN0YXJ0T2YgPSBmdW5jdGlvbiBzdGFydE9mKHVuaXQpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIG8gPSB7fSwKCSAgICAgICAgbm9ybWFsaXplZFVuaXQgPSBEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpOwoKCSAgICBzd2l0Y2ggKG5vcm1hbGl6ZWRVbml0KSB7CgkgICAgICBjYXNlICJ5ZWFycyI6CgkgICAgICAgIG8ubW9udGggPSAxOwoJICAgICAgLy8gZmFsbHMgdGhyb3VnaAoKCSAgICAgIGNhc2UgInF1YXJ0ZXJzIjoKCSAgICAgIGNhc2UgIm1vbnRocyI6CgkgICAgICAgIG8uZGF5ID0gMTsKCSAgICAgIC8vIGZhbGxzIHRocm91Z2gKCgkgICAgICBjYXNlICJ3ZWVrcyI6CgkgICAgICBjYXNlICJkYXlzIjoKCSAgICAgICAgby5ob3VyID0gMDsKCSAgICAgIC8vIGZhbGxzIHRocm91Z2gKCgkgICAgICBjYXNlICJob3VycyI6CgkgICAgICAgIG8ubWludXRlID0gMDsKCSAgICAgIC8vIGZhbGxzIHRocm91Z2gKCgkgICAgICBjYXNlICJtaW51dGVzIjoKCSAgICAgICAgby5zZWNvbmQgPSAwOwoJICAgICAgLy8gZmFsbHMgdGhyb3VnaAoKCSAgICAgIGNhc2UgInNlY29uZHMiOgoJICAgICAgICBvLm1pbGxpc2Vjb25kID0gMDsKCSAgICAgICAgYnJlYWs7CgkgICAgICAvLyBubyBkZWZhdWx0LCBpbnZhbGlkIHVuaXRzIHRocm93IGluIG5vcm1hbGl6ZVVuaXQoKQoJICAgIH0KCgkgICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSAid2Vla3MiKSB7CgkgICAgICBvLndlZWtkYXkgPSAxOwoJICAgIH0KCgkgICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSAicXVhcnRlcnMiKSB7CgkgICAgICB2YXIgcSA9IE1hdGguY2VpbCh0aGlzLm1vbnRoIC8gMyk7CgkgICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxOwoJICAgIH0KCgkgICAgcmV0dXJuIHRoaXMuc2V0KG8pOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGVuZCBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy4KCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ21vbnRoJykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0zMVQyMzo1OTo1OS45OTktMDU6MDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd3ZWVrJykudG9JU08oKTsgLy8gPT4gJzIwMTQtMDMtMDlUMjM6NTk6NTkuOTk5LTA1OjAwJywgd2Vla3Mgc3RhcnQgb24gTW9uZGF5cwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2RheScpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMjM6NTk6NTkuOTk5LTA1OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCcKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZW5kT2YgPSBmdW5jdGlvbiBlbmRPZih1bml0KSB7CgkgICAgdmFyIF90aGlzJHBsdXM7CgoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnBsdXMoKF90aGlzJHBsdXMgPSB7fSwgX3RoaXMkcGx1c1t1bml0XSA9IDEsIF90aGlzJHBsdXMpKS5zdGFydE9mKHVuaXQpLm1pbnVzKDEpIDogdGhpczsKCSAgfSAvLyBPVVRQVVQKCgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuCgkgICAqICoqWW91IG1heSBub3Qgd2FudCB0aGlzLioqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvciBhIG1vcmUgZmxleGlibGUgZm9ybWF0dGluZyB0b29sLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9mb3JtYXR0aW5nP2lkPXRhYmxlLW9mLXRva2VucykuCgkgICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4KCSAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0cyB0byBvdmVycmlkZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9uIHRoaXMgRGF0ZVRpbWUKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJykgLy89PiAnMjAxNyBBcHIgMjInCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZnInKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IGF2ci4gMjInCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcsIHsgbG9jYWxlOiAiZnIiIH0pIC8vPT4gJzIwMTcgYXZyLiAyMicKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoIkhIICdob3VycyBhbmQnIG1tICdtaW51dGVzJyIpIC8vPT4gJzIwIGhvdXJzIGFuZCA1NSBtaW51dGVzJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9Gb3JtYXQgPSBmdW5jdGlvbiB0b0Zvcm1hdChmbXQsIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5yZWRlZmF1bHRUb0VOKG9wdHMpKS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcodGhpcywgZm10KSA6IElOVkFMSUQ7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBsb2NhbGl6ZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGlzIGRhdGUuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUgSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBhbmQgYW55IHByZXNldHMgZGVmaW5lZCBieSBMdXhvbiwgc3VjaCBhcyBgRGF0ZVRpbWUuREFURV9GVUxMYCBvciBgRGF0ZVRpbWUuVElNRV9TSU1QTEVgLgoJICAgKiBUaGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhpcyBtZXRob2QgaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb24KCSAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuCgkgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0CgkgICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDQvMjAvMjAxNwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNycKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyBsb2NhbGU6ICdlbi1nYicgfSk7IC8vPT4gJzIwLzA0LzIwMTcnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3JwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5USU1FX1NJTVBMRSk7IC8vPT4gJzExOjMyIEFNJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1cnNkYXksIEFwcmlsIDIwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdzaG9ydCcsIG1vbnRoOiAnc2hvcnQnLCBkYXk6ICcyLWRpZ2l0JywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1LCBBcHIgMjAsIDExOjI3IEFNJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9Mb2NhbGVTdHJpbmcgPSBmdW5jdGlvbiB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzLCBvcHRzKSB7CgkgICAgaWYgKGZvcm1hdE9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgZm9ybWF0T3B0cyA9IERBVEVfU0hPUlQ7CgkgICAgfQoKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0RGF0ZVRpbWUodGhpcykgOiBJTlZBTElEOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGZvcm1hdCAicGFydHMiLCBtZWFuaW5nIGluZGl2aWR1YWwgdG9rZW5zIGFsb25nIHdpdGggbWV0YWRhdGEuIFRoaXMgaXMgYWxsb3dzIGNhbGxlcnMgdG8gcG9zdC1wcm9jZXNzIGluZGl2aWR1YWwgc2VjdGlvbnMgb2YgdGhlIGZvcm1hdHRlZCBvdXRwdXQuCgkgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHMKCSAgICogQHBhcmFtIG9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMsIHNhbWUgYXMgYHRvTG9jYWxlU3RyaW5nYC4KCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVQYXJ0cygpOyAvLz0+IFsKCSAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LAoJICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sCgkgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbW9udGgnLCB2YWx1ZTogJzA1JyB9LAoJICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sCgkgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAneWVhcicsIHZhbHVlOiAnMTk4MicgfQoJICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiBdCgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9Mb2NhbGVQYXJ0cyA9IGZ1bmN0aW9uIHRvTG9jYWxlUGFydHMob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpIDogW107CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmV4dGVuZGVkWm9uZT10cnVlXSAtIGFkZCB0aGUgdGltZSB6b25lIGZvcm1hdCBleHRlbnNpb24KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgzLCA1LCAyNSkudG9JU08oKSAvLz0+ICcxOTgyLTA1LTI1VDAwOjAwOjAwLjAwMFonCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKCkgLy89PiAnMjAxNy0wNC0yMlQyMDo0NzowNS4zMzUtMDQ6MDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMjAxNy0wNC0yMlQyMDo0NzowNS4zMzUnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzIwMTcwNDIyVDIwNDcwNS4zMzUtMDQwMCcKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSVNPID0gZnVuY3Rpb24gdG9JU08oX3RlbXAzKSB7CgkgICAgdmFyIF9yZWY0ID0gX3RlbXAzID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wMywKCSAgICAgICAgX3JlZjQkZm9ybWF0ID0gX3JlZjQuZm9ybWF0LAoJICAgICAgICBmb3JtYXQgPSBfcmVmNCRmb3JtYXQgPT09IHZvaWQgMCA/ICJleHRlbmRlZCIgOiBfcmVmNCRmb3JtYXQsCgkgICAgICAgIF9yZWY0JHN1cHByZXNzU2Vjb25kcyA9IF9yZWY0LnN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgc3VwcHJlc3NTZWNvbmRzID0gX3JlZjQkc3VwcHJlc3NTZWNvbmRzID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY0JHN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgX3JlZjQkc3VwcHJlc3NNaWxsaXNlID0gX3JlZjQuc3VwcHJlc3NNaWxsaXNlY29uZHMsCgkgICAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gX3JlZjQkc3VwcHJlc3NNaWxsaXNlID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY0JHN1cHByZXNzTWlsbGlzZSwKCSAgICAgICAgX3JlZjQkaW5jbHVkZU9mZnNldCA9IF9yZWY0LmluY2x1ZGVPZmZzZXQsCgkgICAgICAgIGluY2x1ZGVPZmZzZXQgPSBfcmVmNCRpbmNsdWRlT2Zmc2V0ID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjQkaW5jbHVkZU9mZnNldCwKCSAgICAgICAgX3JlZjQkZXh0ZW5kZWRab25lID0gX3JlZjQuZXh0ZW5kZWRab25lLAoJICAgICAgICBleHRlbmRlZFpvbmUgPSBfcmVmNCRleHRlbmRlZFpvbmUgPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjQkZXh0ZW5kZWRab25lOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIG51bGw7CgkgICAgfQoKCSAgICB2YXIgZXh0ID0gZm9ybWF0ID09PSAiZXh0ZW5kZWQiOwoKCSAgICB2YXIgYyA9IF90b0lTT0RhdGUodGhpcywgZXh0KTsKCgkgICAgYyArPSAiVCI7CgkgICAgYyArPSBfdG9JU09UaW1lKHRoaXMsIGV4dCwgc3VwcHJlc3NTZWNvbmRzLCBzdXBwcmVzc01pbGxpc2Vjb25kcywgaW5jbHVkZU9mZnNldCwgZXh0ZW5kZWRab25lKTsKCSAgICByZXR1cm4gYzsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyBkYXRlIGNvbXBvbmVudAoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNScKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT0RhdGUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMTk4MjA1MjUnCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT0RhdGUgPSBmdW5jdGlvbiB0b0lTT0RhdGUoX3RlbXA0KSB7CgkgICAgdmFyIF9yZWY1ID0gX3RlbXA0ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNCwKCSAgICAgICAgX3JlZjUkZm9ybWF0ID0gX3JlZjUuZm9ybWF0LAoJICAgICAgICBmb3JtYXQgPSBfcmVmNSRmb3JtYXQgPT09IHZvaWQgMCA/ICJleHRlbmRlZCIgOiBfcmVmNSRmb3JtYXQ7CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gbnVsbDsKCSAgICB9CgoJICAgIHJldHVybiBfdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gImV4dGVuZGVkIik7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3Mgd2VlayBkYXRlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09XZWVrRGF0ZSgpIC8vPT4gJzE5ODItVzIxLTInCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT1dlZWtEYXRlID0gZnVuY3Rpb24gdG9JU09XZWVrRGF0ZSgpIHsKCSAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsICJra2trLSdXJ1dXLWMiKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyB0aW1lIGNvbXBvbmVudAoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCcKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdAoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSgpIC8vPT4gJzA3OjM0OjE5LjM2MVonCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQsIHNlY29uZHM6IDAsIG1pbGxpc2Vjb25kczogMCB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMDc6MzRaJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWicKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QwNzozNDoxOS4zNjFaJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9JU09UaW1lID0gZnVuY3Rpb24gdG9JU09UaW1lKF90ZW1wNSkgewoJICAgIHZhciBfcmVmNiA9IF90ZW1wNSA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDUsCgkgICAgICAgIF9yZWY2JHN1cHByZXNzTWlsbGlzZSA9IF9yZWY2LnN1cHByZXNzTWlsbGlzZWNvbmRzLAoJICAgICAgICBzdXBwcmVzc01pbGxpc2Vjb25kcyA9IF9yZWY2JHN1cHByZXNzTWlsbGlzZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmNiRzdXBwcmVzc01pbGxpc2UsCgkgICAgICAgIF9yZWY2JHN1cHByZXNzU2Vjb25kcyA9IF9yZWY2LnN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgc3VwcHJlc3NTZWNvbmRzID0gX3JlZjYkc3VwcHJlc3NTZWNvbmRzID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY2JHN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgX3JlZjYkaW5jbHVkZU9mZnNldCA9IF9yZWY2LmluY2x1ZGVPZmZzZXQsCgkgICAgICAgIGluY2x1ZGVPZmZzZXQgPSBfcmVmNiRpbmNsdWRlT2Zmc2V0ID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjYkaW5jbHVkZU9mZnNldCwKCSAgICAgICAgX3JlZjYkaW5jbHVkZVByZWZpeCA9IF9yZWY2LmluY2x1ZGVQcmVmaXgsCgkgICAgICAgIGluY2x1ZGVQcmVmaXggPSBfcmVmNiRpbmNsdWRlUHJlZml4ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY2JGluY2x1ZGVQcmVmaXgsCgkgICAgICAgIF9yZWY2JGV4dGVuZGVkWm9uZSA9IF9yZWY2LmV4dGVuZGVkWm9uZSwKCSAgICAgICAgZXh0ZW5kZWRab25lID0gX3JlZjYkZXh0ZW5kZWRab25lID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY2JGV4dGVuZGVkWm9uZSwKCSAgICAgICAgX3JlZjYkZm9ybWF0ID0gX3JlZjYuZm9ybWF0LAoJICAgICAgICBmb3JtYXQgPSBfcmVmNiRmb3JtYXQgPT09IHZvaWQgMCA/ICJleHRlbmRlZCIgOiBfcmVmNiRmb3JtYXQ7CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gbnVsbDsKCSAgICB9CgoJICAgIHZhciBjID0gaW5jbHVkZVByZWZpeCA/ICJUIiA6ICIiOwoJICAgIHJldHVybiBjICsgX3RvSVNPVGltZSh0aGlzLCBmb3JtYXQgPT09ICJleHRlbmRlZCIsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQsIGV4dGVuZGVkWm9uZSk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gUkZDIDI4MjItY29tcGF0aWJsZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgKzAwMDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9SRkMyODIyID0gZnVuY3Rpb24gdG9SRkMyODIyKCkgewoJICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaIiwgZmFsc2UpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBIVFRQIGhlYWRlcnMuIFRoZSBvdXRwdXQgaXMgYWx3YXlzIGV4cHJlc3NlZCBpbiBHTVQuCgkgICAqIFNwZWNpZmljYWxseSwgdGhlIHN0cmluZyBjb25mb3JtcyB0byBSRkMgMTEyMy4KCSAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjEKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIEdNVCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzLCAxOSkudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAxOTowMDowMCBHTVQnCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0hUVFAgPSBmdW5jdGlvbiB0b0hUVFAoKSB7CgkgICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLnRvVVRDKCksICJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnIik7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9TUUxEYXRlKCkgLy89PiAnMjAxNC0wNy0xMycKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvU1FMRGF0ZSA9IGZ1bmN0aW9uIHRvU1FMRGF0ZSgpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIG51bGw7CgkgICAgfQoKCSAgICByZXR1cm4gX3RvSVNPRGF0ZSh0aGlzLCB0cnVlKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIFRpbWUKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LgoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldFNwYWNlPXRydWVdIC0gaW5jbHVkZSB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgdGltZSBhbmQgdGhlIG9mZnNldCwgc3VjaCBhcyAnMDU6MTU6MTYuMzQ1IC0wNDowMCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKCkgLy89PiAnMDU6MTU6MTYuMzQ1IC0wNDowMCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcwNToxNToxNi4zNDUnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSBBbWVyaWNhL05ld19Zb3JrJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9TUUxUaW1lID0gZnVuY3Rpb24gdG9TUUxUaW1lKF90ZW1wNikgewoJICAgIHZhciBfcmVmNyA9IF90ZW1wNiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDYsCgkgICAgICAgIF9yZWY3JGluY2x1ZGVPZmZzZXQgPSBfcmVmNy5pbmNsdWRlT2Zmc2V0LAoJICAgICAgICBpbmNsdWRlT2Zmc2V0ID0gX3JlZjckaW5jbHVkZU9mZnNldCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWY3JGluY2x1ZGVPZmZzZXQsCgkgICAgICAgIF9yZWY3JGluY2x1ZGVab25lID0gX3JlZjcuaW5jbHVkZVpvbmUsCgkgICAgICAgIGluY2x1ZGVab25lID0gX3JlZjckaW5jbHVkZVpvbmUgPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjckaW5jbHVkZVpvbmUsCgkgICAgICAgIF9yZWY3JGluY2x1ZGVPZmZzZXRTcCA9IF9yZWY3LmluY2x1ZGVPZmZzZXRTcGFjZSwKCSAgICAgICAgaW5jbHVkZU9mZnNldFNwYWNlID0gX3JlZjckaW5jbHVkZU9mZnNldFNwID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjckaW5jbHVkZU9mZnNldFNwOwoKCSAgICB2YXIgZm10ID0gIkhIOm1tOnNzLlNTUyI7CgoJICAgIGlmIChpbmNsdWRlWm9uZSB8fCBpbmNsdWRlT2Zmc2V0KSB7CgkgICAgICBpZiAoaW5jbHVkZU9mZnNldFNwYWNlKSB7CgkgICAgICAgIGZtdCArPSAiICI7CgkgICAgICB9CgoJICAgICAgaWYgKGluY2x1ZGVab25lKSB7CgkgICAgICAgIGZtdCArPSAieiI7CgkgICAgICB9IGVsc2UgaWYgKGluY2x1ZGVPZmZzZXQpIHsKCSAgICAgICAgZm10ICs9ICJaWiI7CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIGZtdCwgdHJ1ZSk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlVGltZQoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCcKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgWicKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgLTA0OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IHRydWUgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgQW1lcmljYS9OZXdfWW9yaycKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvU1FMID0gZnVuY3Rpb24gdG9TUUwob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gbnVsbDsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLnRvU1FMRGF0ZSgpICsgIiAiICsgdGhpcy50b1NRTFRpbWUob3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBtaWxsaXNlY29uZHMgb2YgdGhpcyBEYXRlVGltZS4gQWxpYXMgb2Yge0BsaW5rIERhdGVUaW1lI3RvTWlsbGlzfQoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udmFsdWVPZiA9IGZ1bmN0aW9uIHZhbHVlT2YoKSB7CgkgICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuCgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b01pbGxpcyA9IGZ1bmN0aW9uIHRvTWlsbGlzKCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRzIDogTmFOOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuCgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1NlY29uZHMgPSBmdW5jdGlvbiB0b1NlY29uZHMoKSB7CgkgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIChhcyBhIHdob2xlIG51bWJlcikgb2YgdGhpcyBEYXRlVGltZS4KCSAgICogQHJldHVybiB7bnVtYmVyfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvVW5peEludGVnZXIgPSBmdW5jdGlvbiB0b1VuaXhJbnRlZ2VyKCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi4KCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTigpIHsKCSAgICByZXR1cm4gdGhpcy50b0lTTygpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgQlNPTiBzZXJpYWxpemFibGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLgoJICAgKiBAcmV0dXJuIHtEYXRlfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvQlNPTiA9IGZ1bmN0aW9uIHRvQlNPTigpIHsKCSAgICByZXR1cm4gdGhpcy50b0pTRGF0ZSgpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGlzIERhdGVUaW1lJ3MgeWVhciwgbW9udGgsIGRheSwgYW5kIHNvIG9uLgoJICAgKiBAcGFyYW0gb3B0cyAtIG9wdGlvbnMgZm9yIGdlbmVyYXRpbmcgdGhlIG9iamVjdAoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVDb25maWc9ZmFsc2VdIC0gaW5jbHVkZSBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgaW4gdGhlIG91dHB1dAoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b09iamVjdCgpIC8vPT4geyB5ZWFyOiAyMDE3LCBtb250aDogNCwgZGF5OiAyMiwgaG91cjogMjAsIG1pbnV0ZTogNDksIHNlY29uZDogNDIsIG1pbGxpc2Vjb25kOiAyNjggfQoJICAgKiBAcmV0dXJuIHtPYmplY3R9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9PYmplY3QgPSBmdW5jdGlvbiB0b09iamVjdChvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKCgkgICAgdmFyIGJhc2UgPSBfZXh0ZW5kcyh7fSwgdGhpcy5jKTsKCgkgICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykgewoJICAgICAgYmFzZS5vdXRwdXRDYWxlbmRhciA9IHRoaXMub3V0cHV0Q2FsZW5kYXI7CgkgICAgICBiYXNlLm51bWJlcmluZ1N5c3RlbSA9IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbTsKCSAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlOwoJICAgIH0KCgkgICAgcmV0dXJuIGJhc2U7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IERhdGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLgoJICAgKiBAcmV0dXJuIHtEYXRlfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSlNEYXRlID0gZnVuY3Rpb24gdG9KU0RhdGUoKSB7CgkgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU4pOwoJICB9IC8vIENPTVBBUkUKCgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gRGF0ZVRpbWVzIGFzIGEgRHVyYXRpb24uCgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgRGF0ZVRpbWUgdG8gY29tcGFyZSB0aGlzIG9uZSB0bwoJICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciBhcnJheSBvZiB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb24uCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQoJICAgKiBAZXhhbXBsZQoJICAgKiB2YXIgaTEgPSBEYXRlVGltZS5mcm9tSVNPKCcxOTgyLTA1LTI1VDA5OjQ1JyksCgkgICAqICAgICBpMiA9IERhdGVUaW1lLmZyb21JU08oJzE5ODMtMTAtMTRUMTA6MzAnKTsKCSAgICogaTIuZGlmZihpMSkudG9PYmplY3QoKSAvLz0+IHsgbWlsbGlzZWNvbmRzOiA0MzgwNzUwMDAwMCB9CgkgICAqIGkyLmRpZmYoaTEsICdob3VycycpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMjE2OC43NSB9CgkgICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTkuMDMxMjUgfQoJICAgKiBpMi5kaWZmKGkxLCBbJ21vbnRocycsICdkYXlzJywgJ2hvdXJzJ10pLnRvT2JqZWN0KCkgLy89PiB7IG1vbnRoczogMTYsIGRheXM6IDE5LCBob3VyczogMC43NSB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmRpZmYgPSBmdW5jdGlvbiBkaWZmKG90aGVyRGF0ZVRpbWUsIHVuaXQsIG9wdHMpIHsKCSAgICBpZiAodW5pdCA9PT0gdm9pZCAwKSB7CgkgICAgICB1bml0ID0gIm1pbGxpc2Vjb25kcyI7CgkgICAgfQoKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXJEYXRlVGltZS5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZCgiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWUiKTsKCSAgICB9CgoJICAgIHZhciBkdXJPcHRzID0gX2V4dGVuZHMoewoJICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSwKCSAgICAgIG51bWJlcmluZ1N5c3RlbTogdGhpcy5udW1iZXJpbmdTeXN0ZW0KCSAgICB9LCBvcHRzKTsKCgkgICAgdmFyIHVuaXRzID0gbWF5YmVBcnJheSh1bml0KS5tYXAoRHVyYXRpb24ubm9ybWFsaXplVW5pdCksCgkgICAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksCgkgICAgICAgIGVhcmxpZXIgPSBvdGhlcklzTGF0ZXIgPyB0aGlzIDogb3RoZXJEYXRlVGltZSwKCSAgICAgICAgbGF0ZXIgPSBvdGhlcklzTGF0ZXIgPyBvdGhlckRhdGVUaW1lIDogdGhpcywKCSAgICAgICAgZGlmZmVkID0gX2RpZmYoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBkdXJPcHRzKTsKCgkgICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBEYXRlVGltZSBhbmQgcmlnaHQgbm93LgoJICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI2RpZmZ9CgkgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZGlmZk5vdyA9IGZ1bmN0aW9uIGRpZmZOb3codW5pdCwgb3B0cykgewoJICAgIGlmICh1bml0ID09PSB2b2lkIDApIHsKCSAgICAgIHVuaXQgPSAibWlsbGlzZWNvbmRzIjsKCSAgICB9CgoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLmRpZmYoRGF0ZVRpbWUubm93KCksIHVuaXQsIG9wdHMpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgc3Bhbm5pbmcgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCBhbm90aGVyIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgb3RoZXIgZW5kIHBvaW50IG9mIHRoZSBJbnRlcnZhbAoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIF9wcm90by51bnRpbCA9IGZ1bmN0aW9uIHVudGlsKG90aGVyRGF0ZVRpbWUpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyh0aGlzLCBvdGhlckRhdGVUaW1lKSA6IHRoaXM7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgRGF0ZVRpbWUgaXMgaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lIGFzIGFub3RoZXIgRGF0ZVRpbWUuCgkgICAqIEhpZ2hlci1vcmRlciB1bml0cyBtdXN0IGFsc28gYmUgaWRlbnRpY2FsIGZvciB0aGlzIGZ1bmN0aW9uIHRvIHJldHVybiBgdHJ1ZWAuCgkgICAqIE5vdGUgdGhhdCB0aW1lIHpvbmVzIGFyZSAqKmlnbm9yZWQqKiBpbiB0aGlzIGNvbXBhcmlzb24sIHdoaWNoIGNvbXBhcmVzIHRoZSAqKmxvY2FsKiogY2FsZW5kYXIgdGltZS4gVXNlIHtAbGluayBEYXRlVGltZSNzZXRab25lfSB0byBjb252ZXJ0IG9uZSBvZiB0aGUgZGF0ZXMgaWYgbmVlZGVkLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgb2YgdGltZSB0byBjaGVjayBzYW1lbmVzcyBvbgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5oYXNTYW1lKG90aGVyRFQsICdkYXknKTsgLy9+PiB0cnVlIGlmIG90aGVyRFQgaXMgaW4gdGhlIHNhbWUgY3VycmVudCBjYWxlbmRhciBkYXkKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5oYXNTYW1lID0gZnVuY3Rpb24gaGFzU2FtZShvdGhlckRhdGVUaW1lLCB1bml0KSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTsKCSAgICB2YXIgaW5wdXRNcyA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpOwoJICAgIHZhciBhZGp1c3RlZFRvWm9uZSA9IHRoaXMuc2V0Wm9uZShvdGhlckRhdGVUaW1lLnpvbmUsIHsKCSAgICAgIGtlZXBMb2NhbFRpbWU6IHRydWUKCSAgICB9KTsKCSAgICByZXR1cm4gYWRqdXN0ZWRUb1pvbmUuc3RhcnRPZih1bml0KSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gYWRqdXN0ZWRUb1pvbmUuZW5kT2YodW5pdCk7CgkgIH0KCSAgLyoqCgkgICAqIEVxdWFsaXR5IGNoZWNrCgkgICAqIFR3byBEYXRlVGltZXMgYXJlIGVxdWFsIGlmZiB0aGV5IHJlcHJlc2VudCB0aGUgc2FtZSBtaWxsaXNlY29uZCwgaGF2ZSB0aGUgc2FtZSB6b25lIGFuZCBsb2NhdGlvbiwgYW5kIGFyZSBib3RoIHZhbGlkLgoJICAgKiBUbyBjb21wYXJlIGp1c3QgdGhlIG1pbGxpc2Vjb25kIHZhbHVlcywgdXNlIGArZHQxID09PSArZHQyYC4KCSAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXIgLSB0aGUgb3RoZXIgRGF0ZVRpbWUKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXIpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkICYmIG90aGVyLmlzVmFsaWQgJiYgdGhpcy52YWx1ZU9mKCkgPT09IG90aGVyLnZhbHVlT2YoKSAmJiB0aGlzLnpvbmUuZXF1YWxzKG90aGVyLnpvbmUpICYmIHRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdGhpcyB0aW1lIHJlbGF0aXZlIHRvIG5vdywgc3VjaCBhcyAiaW4gdHdvIGRheXMiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXIKCSAgICogcGxhdGZvcm0gc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuIFJvdW5kcyBkb3duIGJ5IGRlZmF1bHQuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0CgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zdHlsZT0ibG9uZyJdIC0gdGhlIHN0eWxlIG9mIHVuaXRzLCBtdXN0IGJlICJsb25nIiwgInNob3J0Iiwgb3IgIm5hcnJvdyIKCSAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHM7IGlmIG9taXR0ZWQsIG9yIGFuIGFycmF5LCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgYmVzdCB1bml0LiBVc2UgYW4gYXJyYXkgb3Igb25lIG9mICJ5ZWFycyIsICJxdWFydGVycyIsICJtb250aHMiLCAid2Vla3MiLCAiZGF5cyIsICJob3VycyIsICJtaW51dGVzIiwgb3IgInNlY29uZHMiCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5wYWRkaW5nPTBdIC0gcGFkZGluZyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgYWxsb3dzIHlvdSB0byByb3VuZCB1cCB0aGUgcmVzdWx0IGlmIGl0IGZpdHMgaW5zaWRlIHRoZSB0aHJlc2hvbGQuIERvbid0IHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIHtyb3VuZDogZmFsc2V9IGJlY2F1c2UgdGhlIGRlY2ltYWwgb3V0cHV0IHdpbGwgaW5jbHVkZSB0aGUgcGFkZGluZy4KCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubG9jYWxlIC0gb3ZlcnJpZGUgdGhlIGxvY2FsZSBvZiB0aGlzIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXMKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gImluIDEgZGF5IgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoImVzIikudG9SZWxhdGl2ZSh7IGRheXM6IDEgfSkgLy89PiAiZGVudHJvIGRlIDEgZMOtYSIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSh7IGxvY2FsZTogImZyIiB9KSAvLz0+ICJkYW5zIDIzIGhldXJlcyIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoKSAvLz0+ICIyIGRheXMgYWdvIgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZSh7IHVuaXQ6ICJob3VycyIgfSkgLy89PiAiNDggaG91cnMgYWdvIgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGhvdXJzOiAzNiB9KS50b1JlbGF0aXZlKHsgcm91bmQ6IGZhbHNlIH0pIC8vPT4gIjEuNSBkYXlzIGFnbyIKCSAgICovCgkgIDsKCgkgIF9wcm90by50b1JlbGF0aXZlID0gZnVuY3Rpb24gdG9SZWxhdGl2ZShvcHRpb25zKSB7CgkgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0aW9ucyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoJICAgIHZhciBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsKCSAgICAgIHpvbmU6IHRoaXMuem9uZQoJICAgIH0pLAoJICAgICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nID8gdGhpcyA8IGJhc2UgPyAtb3B0aW9ucy5wYWRkaW5nIDogb3B0aW9ucy5wYWRkaW5nIDogMDsKCSAgICB2YXIgdW5pdHMgPSBbInllYXJzIiwgIm1vbnRocyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyJdOwoJICAgIHZhciB1bml0ID0gb3B0aW9ucy51bml0OwoKCSAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnVuaXQpKSB7CgkgICAgICB1bml0cyA9IG9wdGlvbnMudW5pdDsKCSAgICAgIHVuaXQgPSB1bmRlZmluZWQ7CgkgICAgfQoKCSAgICByZXR1cm4gZGlmZlJlbGF0aXZlKGJhc2UsIHRoaXMucGx1cyhwYWRkaW5nKSwgX2V4dGVuZHMoe30sIG9wdGlvbnMsIHsKCSAgICAgIG51bWVyaWM6ICJhbHdheXMiLAoJICAgICAgdW5pdHM6IHVuaXRzLAoJICAgICAgdW5pdDogdW5pdAoJICAgIH0pKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGRhdGUgcmVsYXRpdmUgdG8gdG9kYXksIHN1Y2ggYXMgInllc3RlcmRheSIgb3IgIm5leHQgbW9udGgiLgoJICAgKiBPbmx5IGludGVybmF0aW9uYWxpemVzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIG91dHB1dAoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBbb3B0aW9ucy5iYXNlPURhdGVUaW1lLm5vdygpXSAtIHRoZSBEYXRlVGltZSB0byB1c2UgYXMgdGhlIGJhc2lzIHRvIHdoaWNoIHRoaXMgdGltZSBpcyBjb21wYXJlZC4gRGVmYXVsdHMgdG8gbm93LgoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWUKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQ7IGlmIG9taXR0ZWQsIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSB1bml0LiBVc2Ugb25lIG9mICJ5ZWFycyIsICJxdWFydGVycyIsICJtb250aHMiLCAid2Vla3MiLCBvciAiZGF5cyIKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gb3ZlcnJpZGUgdGhlIG51bWJlcmluZ1N5c3RlbSBvZiB0aGlzIERhdGVUaW1lLiBUaGUgSW50bCBzeXN0ZW0gbWF5IGNob29zZSBub3QgdG8gaG9ub3IgdGhpcwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+ICJ0b21vcnJvdyIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKCJlcyIpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+ICIibWHDsWFuYSIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKHsgbG9jYWxlOiAiZnIiIH0pIC8vPT4gImRlbWFpbiIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gIjIgZGF5cyBhZ28iCgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9SZWxhdGl2ZUNhbGVuZGFyID0gZnVuY3Rpb24gdG9SZWxhdGl2ZUNhbGVuZGFyKG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7CgkgICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgewoJICAgICAgem9uZTogdGhpcy56b25lCgkgICAgfSksIHRoaXMsIF9leHRlbmRzKHt9LCBvcHRpb25zLCB7CgkgICAgICBudW1lcmljOiAiYXV0byIsCgkgICAgICB1bml0czogWyJ5ZWFycyIsICJtb250aHMiLCAiZGF5cyJdLAoJICAgICAgY2FsZW5kYXJ5OiB0cnVlCgkgICAgfSkpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXMKCSAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWluaW11bQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1pbiBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5taW4gPSBmdW5jdGlvbiBtaW4oKSB7CgkgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGRhdGVUaW1lcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHsKCSAgICAgIGRhdGVUaW1lc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTsKCSAgICB9CgoJICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm1pbiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lcyIpOwoJICAgIH0KCgkgICAgcmV0dXJuIGJlc3RCeShkYXRlVGltZXMsIGZ1bmN0aW9uIChpKSB7CgkgICAgICByZXR1cm4gaS52YWx1ZU9mKCk7CgkgICAgfSwgTWF0aC5taW4pOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIG1heCBvZiBzZXZlcmFsIGRhdGUgdGltZXMKCSAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1heCBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5tYXggPSBmdW5jdGlvbiBtYXgoKSB7CgkgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBkYXRlVGltZXMgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHsKCSAgICAgIGRhdGVUaW1lc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdOwoJICAgIH0KCgkgICAgaWYgKCFkYXRlVGltZXMuZXZlcnkoRGF0ZVRpbWUuaXNEYXRlVGltZSkpIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibWF4IHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzIik7CgkgICAgfQoKCSAgICByZXR1cm4gYmVzdEJ5KGRhdGVUaW1lcywgZnVuY3Rpb24gKGkpIHsKCSAgICAgIHJldHVybiBpLnZhbHVlT2YoKTsKCSAgICB9LCBNYXRoLm1heCk7CgkgIH0gLy8gTUlTQwoKCSAgLyoqCgkgICAqIEV4cGxhaW4gaG93IGEgc3RyaW5nIHdvdWxkIGJlIHBhcnNlZCBieSBmcm9tRm9ybWF0KCkKCSAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHRoZSBzdHJpbmcgaXMgZXhwZWN0ZWQgdG8gYmUgaW4gKHNlZSBkZXNjcmlwdGlvbikKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRha2VuIGJ5IGZyb21Gb3JtYXQoKQoJICAgKiBAcmV0dXJuIHtPYmplY3R9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tRm9ybWF0RXhwbGFpbiA9IGZ1bmN0aW9uIGZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucykgewoJICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsKCSAgICAgIG9wdGlvbnMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsCgkgICAgICAgIF9vcHRpb25zJGxvY2FsZSA9IF9vcHRpb25zLmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX29wdGlvbnMkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX29wdGlvbnMkbG9jYWxlLAoJICAgICAgICBfb3B0aW9ucyRudW1iZXJpbmdTeXMgPSBfb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9vcHRpb25zJG51bWJlcmluZ1N5cyA9PT0gdm9pZCAwID8gbnVsbCA6IF9vcHRpb25zJG51bWJlcmluZ1N5cywKCSAgICAgICAgbG9jYWxlVG9Vc2UgPSBMb2NhbGUuZnJvbU9wdHMoewoJICAgICAgbG9jYWxlOiBsb2NhbGUsCgkgICAgICBudW1iZXJpbmdTeXN0ZW06IG51bWJlcmluZ1N5c3RlbSwKCSAgICAgIGRlZmF1bHRUb0VOOiB0cnVlCgkgICAgfSk7CgkgICAgcmV0dXJuIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZVRvVXNlLCB0ZXh0LCBmbXQpOwoJICB9CgkgIC8qKgoJICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdEV4cGxhaW4gaW5zdGVhZAoJICAgKi8KCSAgOwoKCSAgRGF0ZVRpbWUuZnJvbVN0cmluZ0V4cGxhaW4gPSBmdW5jdGlvbiBmcm9tU3RyaW5nRXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zKTsKCSAgfSAvLyBGT1JNQVQgUFJFU0VUUwoKCSAgLyoqCgkgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4MwoJICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgKi8KCSAgOwoKCSAgX2NyZWF0ZUNsYXNzKERhdGVUaW1lLCBbewoJICAgIGtleTogImlzVmFsaWQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA9PT0gbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImludmFsaWRSZWFzb24iLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZAoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaW52YWxpZEV4cGxhbmF0aW9uIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lCgkgICAgICoKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImxvY2FsZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWUKCSAgICAgKgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibnVtYmVyaW5nU3lzdGVtIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG91dHB1dCBjYWxlbmRhciBvZiBhIERhdGVUaW1lLCBzdWNoICdpc2xhbWljJy4gVGhlIG91dHB1dCBjYWxlbmRhciBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWUKCSAgICAgKgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAib3V0cHV0Q2FsZW5kYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLm91dHB1dENhbGVuZGFyIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuCgkgICAgICogQHR5cGUge1pvbmV9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiem9uZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5fem9uZTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJ6b25lTmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy56b25lLm5hbWUgOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHllYXIKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkueWVhciAvLz0+IDIwMTcKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogInllYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy55ZWFyIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHF1YXJ0ZXIKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkucXVhcnRlciAvLz0+IDIKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogInF1YXJ0ZXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBtb250aCAoMS0xMikuCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNQoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibW9udGgiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5tb250aCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS4KCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkuZGF5IC8vPT4gMjUKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImRheSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmRheSA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBob3VyIG9mIHRoZSBkYXkgKDAtMjMpLgoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5KS5ob3VyIC8vPT4gOQoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaG91ciIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbWludXRlIG9mIHRoZSBob3VyICgwLTU5KS4KCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJtaW51dGUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5taW51dGUgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLgoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIpLnNlY29uZCAvLz0+IDUyCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJzZWNvbmQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5zZWNvbmQgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCAoMC05OTkpLgoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIsIDY1NCkubWlsbGlzZWNvbmQgLy89PiA2NTQKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIm1pbGxpc2Vjb25kIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgd2VlayB5ZWFyCgkgICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTIsIDMxKS53ZWVrWWVhciAvLz0+IDIwMTUKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIndlZWtZZWFyIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtZZWFyIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHdlZWsgbnVtYmVyIG9mIHRoZSB3ZWVrIHllYXIgKDEtNTJpc2gpLgoJICAgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZQoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjEKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIndlZWtOdW1iZXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla051bWJlciA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuCgkgICAgICogMSBpcyBNb25kYXkgYW5kIDcgaXMgU3VuZGF5CgkgICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNAoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAid2Vla2RheSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrZGF5IDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcikKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkub3JkaW5hbCAvLz0+IDE0NQoJICAgICAqIEB0eXBlIHtudW1iZXJ8RGF0ZVRpbWV9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAib3JkaW5hbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZ3JlZ29yaWFuVG9PcmRpbmFsKHRoaXMuYykub3JkaW5hbCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBzaG9ydCBtb250aCBuYW1lLCBzdWNoIGFzICdPY3QnLgoJICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdAoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibW9udGhTaG9ydCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoInNob3J0IiwgewoJICAgICAgICBsb2NPYmo6IHRoaXMubG9jCgkgICAgICB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgbW9udGggbmFtZSwgc3VjaCBhcyAnT2N0b2JlcicuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJtb250aExvbmciLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ubW9udGhzKCJsb25nIiwgewoJICAgICAgICBsb2NPYmo6IHRoaXMubG9jCgkgICAgICB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IHdlZWtkYXksIHN1Y2ggYXMgJ01vbicuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb24KCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIndlZWtkYXlTaG9ydCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cygic2hvcnQiLCB7CgkgICAgICAgIGxvY09iajogdGhpcy5sb2MKCSAgICAgIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBsb25nIHdlZWtkYXksIHN1Y2ggYXMgJ01vbmRheScuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheQoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAid2Vla2RheUxvbmciLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ud2Vla2RheXMoImxvbmciLCB7CgkgICAgICAgIGxvY09iajogdGhpcy5sb2MKCSAgICAgIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBVVEMgb2Zmc2V0IG9mIHRoaXMgRGF0ZVRpbWUgaW4gbWludXRlcwoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm9mZnNldCAvLz0+IC0yNDAKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJvZmZzZXQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/ICt0aGlzLm8gOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgIkVTVCIgb3IgIkVEVCIuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJvZmZzZXROYW1lU2hvcnQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgaWYgKHRoaXMuaXNWYWxpZCkgewoJICAgICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywgewoJICAgICAgICAgIGZvcm1hdDogInNob3J0IiwKCSAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlCgkgICAgICAgIH0pOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIG51bGw7CgkgICAgICB9CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbG9uZyBodW1hbiBuYW1lIGZvciB0aGUgem9uZSdzIGN1cnJlbnQgb2Zmc2V0LCBmb3IgZXhhbXBsZSAiRWFzdGVybiBTdGFuZGFyZCBUaW1lIiBvciAiRWFzdGVybiBEYXlsaWdodCBUaW1lIi4KCSAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIm9mZnNldE5hbWVMb25nIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIGlmICh0aGlzLmlzVmFsaWQpIHsKCSAgICAgICAgcmV0dXJuIHRoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMsIHsKCSAgICAgICAgICBmb3JtYXQ6ICJsb25nIiwKCSAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlCgkgICAgICAgIH0pOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIG51bGw7CgkgICAgICB9CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB3aGV0aGVyIHRoaXMgem9uZSdzIG9mZnNldCBldmVyIGNoYW5nZXMsIGFzIGluIGEgRFNULgoJICAgICAqIEB0eXBlIHtib29sZWFufQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImlzT2Zmc2V0Rml4ZWQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5pc1VuaXZlcnNhbCA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyBpbiBhIERTVC4KCSAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpc0luRFNUIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIGlmICh0aGlzLmlzT2Zmc2V0Rml4ZWQpIHsKCSAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoewoJICAgICAgICAgIG1vbnRoOiAxLAoJICAgICAgICAgIGRheTogMQoJICAgICAgICB9KS5vZmZzZXQgfHwgdGhpcy5vZmZzZXQgPiB0aGlzLnNldCh7CgkgICAgICAgICAgbW9udGg6IDUKCSAgICAgICAgfSkub2Zmc2V0OwoJICAgICAgfQoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBEYXRlVGltZSBpcyBpbiBhIGxlYXAgeWVhciwgZmFsc2Ugb3RoZXJ3aXNlCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuaXNJbkxlYXBZZWFyIC8vPT4gdHJ1ZQoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLmlzSW5MZWFwWWVhciAvLz0+IGZhbHNlCgkgICAgICogQHR5cGUge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNJbkxlYXBZZWFyIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcik7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyBtb250aAoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYsIDIpLmRheXNJbk1vbnRoIC8vPT4gMjkKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2LCAzKS5kYXlzSW5Nb250aCAvLz0+IDMxCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJkYXlzSW5Nb250aCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZGF5c0luTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIHllYXIKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2KS5kYXlzSW5ZZWFyIC8vPT4gMzY2CgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuZGF5c0luWWVhciAvLz0+IDM2NQoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZGF5c0luWWVhciIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZGF5c0luWWVhcih0aGlzLnllYXIpIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygd2Vla3MgaW4gdGhpcyBEYXRlVGltZSdzIHllYXIKCSAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDA0KS53ZWVrc0luV2Vla1llYXIgLy89PiA1MwoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUyCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJ3ZWVrc0luV2Vla1llYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHdlZWtzSW5XZWVrWWVhcih0aGlzLndlZWtZZWFyKSA6IE5hTjsKCSAgICB9CgkgIH1dLCBbewoJICAgIGtleTogIkRBVEVfU0hPUlQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVfU0hPUlQ7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MycKCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVfTUVEIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFX01FRDsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCBPY3QgMTQsIDE5ODMnCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFX01FRF9XSVRIX1dFRUtEQVkiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVfTUVEX1dJVEhfV0VFS0RBWTsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MycKCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVfRlVMTCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURV9GVUxMOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdUdWVzZGF5LCBPY3RvYmVyIDE0LCAxOTgzJwoJICAgICAqIEB0eXBlIHtPYmplY3R9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiREFURV9IVUdFIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFX0hVR0U7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FX1NJTVBMRSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV9TSU1QTEU7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FX1dJVEhfU0VDT05EUyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV9XSVRIX1NFQ09ORFM7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgoJICAgICAqIEB0eXBlIHtPYmplY3R9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiVElNRV9XSVRIX1NIT1JUX09GRlNFVCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV9XSVRIX1NIT1JUX09GRlNFVDsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FX1dJVEhfTE9OR19PRkZTRVQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIFRJTUVfV0lUSF9MT05HX09GRlNFVDsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAnLCBhbHdheXMgMjQtaG91ci4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIlRJTUVfMjRfU0lNUExFIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBUSU1FXzI0X1NJTVBMRTsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMnLCBhbHdheXMgMjQtaG91ci4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIlRJTUVfMjRfV0lUSF9TRUNPTkRTIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfU0VDT05EUzsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgRURUJywgYWx3YXlzIDI0LWhvdXIuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLCBhbHdheXMgMjQtaG91ci4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9TSE9SVCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfU0hPUlQ7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX01FRCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfTUVEOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgMTQgT2N0IDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVk7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9GVUxMIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFVElNRV9GVUxMOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgoJICAgICAqIEB0eXBlIHtPYmplY3R9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9IVUdFIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFVElNRV9IVUdFOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFM7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gRGF0ZVRpbWU7Cgl9KCk7CglmdW5jdGlvbiBmcmllbmRseURhdGVUaW1lKGRhdGVUaW1laXNoKSB7CgkgIGlmIChEYXRlVGltZS5pc0RhdGVUaW1lKGRhdGVUaW1laXNoKSkgewoJICAgIHJldHVybiBkYXRlVGltZWlzaDsKCSAgfSBlbHNlIGlmIChkYXRlVGltZWlzaCAmJiBkYXRlVGltZWlzaC52YWx1ZU9mICYmIGlzTnVtYmVyKGRhdGVUaW1laXNoLnZhbHVlT2YoKSkpIHsKCSAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUpTRGF0ZShkYXRlVGltZWlzaCk7CgkgIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgdHlwZW9mIGRhdGVUaW1laXNoID09PSAib2JqZWN0IikgewoJICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KGRhdGVUaW1laXNoKTsKCSAgfSBlbHNlIHsKCSAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIlVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICIgKyBkYXRlVGltZWlzaCArICIsIG9mIHR5cGUgIiArIHR5cGVvZiBkYXRlVGltZWlzaCk7CgkgIH0KCX0KCgl2YXIgVkVSU0lPTiA9ICIyLjQuMCI7CgoJdmFyIERhdGVUaW1lXzEgPSBsdXhvbi5EYXRlVGltZSA9IERhdGVUaW1lOwoJdmFyIER1cmF0aW9uXzEgPSBsdXhvbi5EdXJhdGlvbiA9IER1cmF0aW9uOwoJbHV4b24uRml4ZWRPZmZzZXRab25lID0gRml4ZWRPZmZzZXRab25lOwoJbHV4b24uSUFOQVpvbmUgPSBJQU5BWm9uZTsKCWx1eG9uLkluZm8gPSBJbmZvOwoJbHV4b24uSW50ZXJ2YWwgPSBJbnRlcnZhbDsKCWx1eG9uLkludmFsaWRab25lID0gSW52YWxpZFpvbmU7CglsdXhvbi5TZXR0aW5ncyA9IFNldHRpbmdzOwoJbHV4b24uU3lzdGVtWm9uZSA9IFN5c3RlbVpvbmU7CglsdXhvbi5WRVJTSU9OID0gVkVSU0lPTjsKCWx1eG9uLlpvbmUgPSBab25lOwoKCS8vLy8vLy8vLy8vLy8vLy8vLy8vDQoJLy8gUXVlcnkgU2V0dGluZ3MgLy8NCgkvLy8vLy8vLy8vLy8vLy8vLy8vLw0KCWNvbnN0IERFRkFVTFRfUVVFUllfU0VUVElOR1MgPSB7DQoJICAgIHJlbmRlck51bGxBczogIlxcLSIsDQoJICAgIHRhc2tDb21wbGV0aW9uVHJhY2tpbmc6IGZhbHNlLA0KCSAgICB0YXNrQ29tcGxldGlvblRleHQ6ICJjb21wbGV0aW9uIiwNCgkgICAgd2Fybk9uRW1wdHlSZXN1bHQ6IHRydWUsDQoJICAgIHJlZnJlc2hFbmFibGVkOiB0cnVlLA0KCSAgICByZWZyZXNoSW50ZXJ2YWw6IDI1MDAsDQoJICAgIGRlZmF1bHREYXRlRm9ybWF0OiAiTU1NTSBkZCwgeXl5eSIsDQoJICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogImg6bW0gYSAtIE1NTU0gZGQsIHl5eXkiLA0KCSAgICBtYXhSZWN1cnNpdmVSZW5kZXJEZXB0aDogNCwNCgkgICAgdGFibGVJZENvbHVtbk5hbWU6ICJGaWxlIiwNCgkgICAgdGFibGVHcm91cENvbHVtbk5hbWU6ICJHcm91cCIsDQoJfTsNCgljb25zdCBERUZBVUxUX0VYUE9SVF9TRVRUSU5HUyA9IHsNCgkgICAgYWxsb3dIdG1sOiB0cnVlLA0KCX07DQoJLyoqIERlZmF1bHQgc2V0dGluZ3MgZm9yIGRhdGF2aWV3IG9uIGluc3RhbGwuICovDQoJKHsNCgkgICAgLi4uREVGQVVMVF9RVUVSWV9TRVRUSU5HUywNCgkgICAgLi4uREVGQVVMVF9FWFBPUlRfU0VUVElOR1MsDQoJICAgIC4uLnsNCgkgICAgICAgIGlubGluZVF1ZXJ5UHJlZml4OiAiPSIsDQoJICAgICAgICBpbmxpbmVKc1F1ZXJ5UHJlZml4OiAiJD0iLA0KCSAgICAgICAgaW5saW5lUXVlcmllc0luQ29kZWJsb2NrczogdHJ1ZSwNCgkgICAgICAgIGVuYWJsZURhdGF2aWV3SnM6IGZhbHNlLA0KCSAgICAgICAgZW5hYmxlSW5saW5lRGF0YXZpZXdKczogZmFsc2UsDQoJICAgICAgICBwcmV0dHlSZW5kZXJJbmxpbmVGaWVsZHM6IHRydWUsDQoJICAgIH0sDQoJfSk7CgoJLyoqIEZ1bmN0aW9uYWwgcmV0dXJuIHR5cGUgZm9yIGVycm9yIGhhbmRsaW5nLiAqLw0KCWNsYXNzIFN1Y2Nlc3Mgew0KCSAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkgew0KCSAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOw0KCSAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gdHJ1ZTsNCgkgICAgfQ0KCSAgICBtYXAoZikgew0KCSAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKGYodGhpcy52YWx1ZSkpOw0KCSAgICB9DQoJICAgIGZsYXRNYXAoZikgew0KCSAgICAgICAgcmV0dXJuIGYodGhpcy52YWx1ZSk7DQoJICAgIH0NCgkgICAgbWFwRXJyKGYpIHsNCgkgICAgICAgIHJldHVybiB0aGlzOw0KCSAgICB9DQoJICAgIGJpbWFwKHN1Y2MsIF9mYWlsKSB7DQoJICAgICAgICByZXR1cm4gdGhpcy5tYXAoc3VjYyk7DQoJICAgIH0NCgkgICAgb3JFbHNlKF92YWx1ZSkgew0KCSAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7DQoJICAgIH0NCgkgICAgY2FzdCgpIHsNCgkgICAgICAgIHJldHVybiB0aGlzOw0KCSAgICB9DQoJICAgIG9yRWxzZVRocm93KF9tZXNzYWdlKSB7DQoJICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsNCgkgICAgfQ0KCX0NCgkvKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuICovDQoJY2xhc3MgRmFpbHVyZSB7DQoJICAgIGNvbnN0cnVjdG9yKGVycm9yKSB7DQoJICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7DQoJICAgICAgICB0aGlzLnN1Y2Nlc3NmdWwgPSBmYWxzZTsNCgkgICAgfQ0KCSAgICBtYXAoX2YpIHsNCgkgICAgICAgIHJldHVybiB0aGlzOw0KCSAgICB9DQoJICAgIGZsYXRNYXAoX2YpIHsNCgkgICAgICAgIHJldHVybiB0aGlzOw0KCSAgICB9DQoJICAgIG1hcEVycihmKSB7DQoJICAgICAgICByZXR1cm4gbmV3IEZhaWx1cmUoZih0aGlzLmVycm9yKSk7DQoJICAgIH0NCgkgICAgYmltYXAoX3N1Y2MsIGZhaWwpIHsNCgkgICAgICAgIHJldHVybiB0aGlzLm1hcEVycihmYWlsKTsNCgkgICAgfQ0KCSAgICBvckVsc2UodmFsdWUpIHsNCgkgICAgICAgIHJldHVybiB2YWx1ZTsNCgkgICAgfQ0KCSAgICBjYXN0KCkgew0KCSAgICAgICAgcmV0dXJuIHRoaXM7DQoJICAgIH0NCgkgICAgb3JFbHNlVGhyb3cobWVzc2FnZSkgew0KCSAgICAgICAgaWYgKG1lc3NhZ2UpDQoJICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UodGhpcy5lcnJvcikpOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiIiArIHRoaXMuZXJyb3IpOw0KCSAgICB9DQoJfQ0KCS8qKiBNb25hZGljICdSZXN1bHQnIHR5cGUgd2hpY2ggZW5jYXBzdWxhdGVzIHdoZXRoZXIgYSBwcm9jZWR1cmUgc3VjY2VlZGVkIG9yIGZhaWxlZCwgYXMgd2VsbCBhcyBpdCdzIHJldHVybiB2YWx1ZS4gKi8NCgl2YXIgUmVzdWx0Ow0KCShmdW5jdGlvbiAoUmVzdWx0KSB7DQoJICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgc3VjY2VzcyByZXN1bHQgd3JhcHBpbmcgdGhlIGdpdmVuIHZhbHVlLiAqLw0KCSAgICBmdW5jdGlvbiBzdWNjZXNzKHZhbHVlKSB7DQoJICAgICAgICByZXR1cm4gbmV3IFN1Y2Nlc3ModmFsdWUpOw0KCSAgICB9DQoJICAgIFJlc3VsdC5zdWNjZXNzID0gc3VjY2VzczsNCgkgICAgLyoqIENvbnN0cnVjdCBhIG5ldyBmYWlsdXJlIHZhbHVlIHdyYXBwaW5nIHRoZSBnaXZlbiBlcnJvci4gKi8NCgkgICAgZnVuY3Rpb24gZmFpbHVyZShlcnJvcikgew0KCSAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGVycm9yKTsNCgkgICAgfQ0KCSAgICBSZXN1bHQuZmFpbHVyZSA9IGZhaWx1cmU7DQoJICAgIC8qKiBKb2luIHR3byByZXN1bHRzIHdpdGggYSBiaS1mdW5jdGlvbiBhbmQgcmV0dXJuIGEgbmV3IHJlc3VsdC4gKi8NCgkgICAgZnVuY3Rpb24gZmxhdE1hcDIoZmlyc3QsIHNlY29uZCwgZikgew0KCSAgICAgICAgaWYgKGZpcnN0LnN1Y2Nlc3NmdWwpIHsNCgkgICAgICAgICAgICBpZiAoc2Vjb25kLnN1Y2Nlc3NmdWwpDQoJICAgICAgICAgICAgICAgIHJldHVybiBmKGZpcnN0LnZhbHVlLCBzZWNvbmQudmFsdWUpOw0KCSAgICAgICAgICAgIGVsc2UNCgkgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoc2Vjb25kLmVycm9yKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKGZpcnN0LmVycm9yKTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBSZXN1bHQuZmxhdE1hcDIgPSBmbGF0TWFwMjsNCgkgICAgLyoqIEpvaW4gdHdvIHJlc3VsdHMgd2l0aCBhIGJpLWZ1bmN0aW9uIGFuZCByZXR1cm4gYSBuZXcgcmVzdWx0LiAqLw0KCSAgICBmdW5jdGlvbiBtYXAyKGZpcnN0LCBzZWNvbmQsIGYpIHsNCgkgICAgICAgIHJldHVybiBmbGF0TWFwMihmaXJzdCwgc2Vjb25kLCAoYSwgYikgPT4gc3VjY2VzcyhmKGEsIGIpKSk7DQoJICAgIH0NCgkgICAgUmVzdWx0Lm1hcDIgPSBtYXAyOw0KCX0pKFJlc3VsdCB8fCAoUmVzdWx0ID0ge30pKTsKCgl2YXIgcGFyc2ltbW9uX3VtZF9taW4gPSB7ZXhwb3J0czoge319OwoKCShmdW5jdGlvbiAobW9kdWxlLCBleHBvcnRzKSB7CgkhZnVuY3Rpb24obix0KXttb2R1bGUuZXhwb3J0cz10KCk7fSgidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjpjb21tb25qc0dsb2JhbCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgdD17fTtmdW5jdGlvbiByKGUpe2lmKHRbZV0pcmV0dXJuIHRbZV0uZXhwb3J0czt2YXIgdT10W2VdPXtpOmUsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gbltlXS5jYWxsKHUuZXhwb3J0cyx1LHUuZXhwb3J0cyxyKSx1Lmw9ITAsdS5leHBvcnRzfXJldHVybiByLm09bixyLmM9dCxyLmQ9ZnVuY3Rpb24obix0LGUpe3IubyhuLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkobix0LHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCxnZXQ6ZX0pO30sci5yPWZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt9LHIubj1mdW5jdGlvbihuKXt2YXIgdD1uJiZuLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBufTtyZXR1cm4gci5kKHQsImEiLHQpLHR9LHIubz1mdW5jdGlvbihuLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KX0sci5wPSIiLHIoci5zPTApfShbZnVuY3Rpb24obix0LHIpe2Z1bmN0aW9uIGUobil7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKG4pO3RoaXMuXz1uO312YXIgdT1lLnByb3RvdHlwZTtmdW5jdGlvbiBvKG4sdCl7Zm9yKHZhciByPTA7cjxuO3IrKyl0KHIpO31mdW5jdGlvbiBpKG4sdCxyKXtyZXR1cm4gZnVuY3Rpb24obix0KXtvKHQubGVuZ3RoLGZ1bmN0aW9uKHIpe24odFtyXSxyLHQpO30pO30oZnVuY3Rpb24ocixlLHUpe3Q9bih0LHIsZSx1KTt9LHIpLHR9ZnVuY3Rpb24gYShuLHQpe3JldHVybiBpKGZ1bmN0aW9uKHQscixlLHUpe3JldHVybiB0LmNvbmNhdChbbihyLGUsdSldKX0sW10sdCl9ZnVuY3Rpb24gZihuLHQpe3ZhciByPXt2OjAsYnVmOnR9O3JldHVybiBvKG4sZnVuY3Rpb24oKXt2YXIgbjtyPXt2OnIudjw8MXwobj1yLmJ1ZixuWzBdPj43KSxidWY6ZnVuY3Rpb24obil7dmFyIHQ9aShmdW5jdGlvbihuLHQscixlKXtyZXR1cm4gbi5jb25jYXQocj09PWUubGVuZ3RoLTE/QnVmZmVyLmZyb20oW3QsMF0pLnJlYWRVSW50MTZCRSgwKTplLnJlYWRVSW50MTZCRShyKSl9LFtdLG4pO3JldHVybiBCdWZmZXIuZnJvbShhKGZ1bmN0aW9uKG4pe3JldHVybiAobjw8MSY2NTUzNSk+Pjh9LHQpKX0oci5idWYpfTt9KSxyfWZ1bmN0aW9uIGMoKXtyZXR1cm4gInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXJ9ZnVuY3Rpb24gcygpe2lmKCFjKCkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIgZ2xvYmFsIGRvZXMgbm90IGV4aXN0OyBwbGVhc2UgdXNlIHdlYnBhY2sgaWYgeW91IG5lZWQgdG8gcGFyc2UgQnVmZmVycyBpbiB0aGUgYnJvd3Nlci4iKX1mdW5jdGlvbiBsKG4pe3MoKTt2YXIgdD1pKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4rdH0sMCxuKTtpZih0JTghPTApdGhyb3cgbmV3IEVycm9yKCJUaGUgYml0cyBbIituLmpvaW4oIiwgIikrIl0gYWRkIHVwIHRvICIrdCsiIHdoaWNoIGlzIG5vdCBhbiBldmVuIG51bWJlciBvZiBieXRlczsgdGhlIHRvdGFsIHNob3VsZCBiZSBkaXZpc2libGUgYnkgOCIpO3ZhciByLHU9dC84LG89KHI9ZnVuY3Rpb24obil7cmV0dXJuIG4+NDh9LGkoZnVuY3Rpb24obix0KXtyZXR1cm4gbnx8KHIodCk/dDpuKX0sbnVsbCxuKSk7aWYobyl0aHJvdyBuZXcgRXJyb3IobysiIGJpdCByYW5nZSByZXF1ZXN0ZWQgZXhjZWVkcyA0OCBiaXQgKDYgYnl0ZSkgTnVtYmVyIG1heC4iKTtyZXR1cm4gbmV3IGUoZnVuY3Rpb24odCxyKXt2YXIgZT11K3I7cmV0dXJuIGU+dC5sZW5ndGg/eChyLHUudG9TdHJpbmcoKSsiIGJ5dGVzIik6YihlLGkoZnVuY3Rpb24obix0KXt2YXIgcj1mKHQsbi5idWYpO3JldHVybiB7Y29sbDpuLmNvbGwuY29uY2F0KHIudiksYnVmOnIuYnVmfX0se2NvbGw6W10sYnVmOnQuc2xpY2UocixlKX0sbikuY29sbCl9KX1mdW5jdGlvbiBoKG4sdCl7cmV0dXJuIG5ldyBlKGZ1bmN0aW9uKHIsZSl7cmV0dXJuIHMoKSxlK3Q+ci5sZW5ndGg/eChlLHQrIiBieXRlcyBmb3IgIituKTpiKGUrdCxyLnNsaWNlKGUsZSt0KSl9KX1mdW5jdGlvbiBwKG4sdCl7aWYoIm51bWJlciIhPXR5cGVvZihyPXQpfHxNYXRoLmZsb29yKHIpIT09cnx8dDwwfHx0PjYpdGhyb3cgbmV3IEVycm9yKG4rIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uIik7dmFyIHI7fWZ1bmN0aW9uIGQobil7cmV0dXJuIHAoInVpbnRCRSIsbiksaCgidWludEJFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50QkUoMCxuKX0pfWZ1bmN0aW9uIHYobil7cmV0dXJuIHAoInVpbnRMRSIsbiksaCgidWludExFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50TEUoMCxuKX0pfWZ1bmN0aW9uIGcobil7cmV0dXJuIHAoImludEJFIixuKSxoKCJpbnRCRSgiK24rIikiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50QkUoMCxuKX0pfWZ1bmN0aW9uIG0obil7cmV0dXJuIHAoImludExFIixuKSxoKCJpbnRMRSgiK24rIikiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50TEUoMCxuKX0pfWZ1bmN0aW9uIHkobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBlfWZ1bmN0aW9uIEUobil7cmV0dXJuICJbb2JqZWN0IEFycmF5XSI9PT17fS50b1N0cmluZy5jYWxsKG4pfWZ1bmN0aW9uIHcobil7cmV0dXJuIGMoKSYmQnVmZmVyLmlzQnVmZmVyKG4pfWZ1bmN0aW9uIGIobix0KXtyZXR1cm4ge3N0YXR1czohMCxpbmRleDpuLHZhbHVlOnQsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHgobix0KXtyZXR1cm4gRSh0KXx8KHQ9W3RdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6bixleHBlY3RlZDp0fX1mdW5jdGlvbiBCKG4sdCl7aWYoIXQpcmV0dXJuIG47aWYobi5mdXJ0aGVzdD50LmZ1cnRoZXN0KXJldHVybiBuO3ZhciByPW4uZnVydGhlc3Q9PT10LmZ1cnRoZXN0P2Z1bmN0aW9uKG4sdCl7aWYoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1lLl9zdXBwb3J0c1NldClyZXR1cm4gZS5fc3VwcG9ydHNTZXQ7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQ7cmV0dXJuIGUuX3N1cHBvcnRzU2V0PW4sbn0oKSYmQXJyYXkuZnJvbSl7Zm9yKHZhciByPW5ldyBTZXQobiksdT0wO3U8dC5sZW5ndGg7dSsrKXIuYWRkKHRbdV0pO3ZhciBvPUFycmF5LmZyb20ocik7cmV0dXJuIG8uc29ydCgpLG99Zm9yKHZhciBpPXt9LGE9MDthPG4ubGVuZ3RoO2ErKylpW25bYV1dPSEwO2Zvcih2YXIgZj0wO2Y8dC5sZW5ndGg7ZisrKWlbdFtmXV09ITA7dmFyIGM9W107Zm9yKHZhciBzIGluIGkpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscykmJmMucHVzaChzKTtyZXR1cm4gYy5zb3J0KCksY30obi5leHBlY3RlZCx0LmV4cGVjdGVkKTp0LmV4cGVjdGVkO3JldHVybiB7c3RhdHVzOm4uc3RhdHVzLGluZGV4Om4uaW5kZXgsdmFsdWU6bi52YWx1ZSxmdXJ0aGVzdDp0LmZ1cnRoZXN0LGV4cGVjdGVkOnJ9fXZhciBqPXt9O2Z1bmN0aW9uIFMobix0KXtpZih3KG4pKXJldHVybiB7b2Zmc2V0OnQsbGluZTotMSxjb2x1bW46LTF9O24gaW4ganx8KGpbbl09e30pO2Zvcih2YXIgcj1qW25dLGU9MCx1PTAsbz0wLGk9dDtpPj0wOyl7aWYoaSBpbiByKXtlPXJbaV0ubGluZSwwPT09byYmKG89cltpXS5saW5lU3RhcnQpO2JyZWFrfSgiXG4iPT09bi5jaGFyQXQoaSl8fCJcciI9PT1uLmNoYXJBdChpKSYmIlxuIiE9PW4uY2hhckF0KGkrMSkpJiYodSsrLDA9PT1vJiYobz1pKzEpKSxpLS07fXZhciBhPWUrdSxmPXQtbztyZXR1cm4gclt0XT17bGluZTphLGxpbmVTdGFydDpvfSx7b2Zmc2V0OnQsbGluZTphKzEsY29sdW1uOmYrMX19ZnVuY3Rpb24gXyhuKXtpZigheShuKSl0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHBhcnNlcjogIituKX1mdW5jdGlvbiBMKG4sdCl7cmV0dXJuICJzdHJpbmciPT10eXBlb2Ygbj9uLmNoYXJBdCh0KTpuW3RdfWZ1bmN0aW9uIE8obil7aWYoIm51bWJlciIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcigibm90IGEgbnVtYmVyOiAiK24pfWZ1bmN0aW9uIGsobil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKCJub3QgYSBmdW5jdGlvbjogIituKX1mdW5jdGlvbiBQKG4pe2lmKCJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHN0cmluZzogIituKX12YXIgcT0yLEE9MyxJPTgsRj01KkksTT00Kkksej0iICAiO2Z1bmN0aW9uIFIobix0KXtyZXR1cm4gbmV3IEFycmF5KHQrMSkuam9pbihuKX1mdW5jdGlvbiBVKG4sdCxyKXt2YXIgZT10LW4ubGVuZ3RoO3JldHVybiBlPD0wP246UihyLGUpK259ZnVuY3Rpb24gVyhuLHQscixlKXtyZXR1cm4ge2Zyb206bi10PjA/bi10OjAsdG86bityPmU/ZTpuK3J9fWZ1bmN0aW9uIEQobix0KXt2YXIgcixlLHUsbyxmLGM9dC5pbmRleCxzPWMub2Zmc2V0LGw9MTtpZihzPT09bi5sZW5ndGgpcmV0dXJuICJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXQiO2lmKHcobikpe3ZhciBoPXMtcyVJLHA9cy1oLGQ9VyhoLEYsTStJLG4ubGVuZ3RoKSx2PWEoZnVuY3Rpb24obil7cmV0dXJuIGEoZnVuY3Rpb24obil7cmV0dXJuIFUobi50b1N0cmluZygxNiksMiwiMCIpfSxuKX0sZnVuY3Rpb24obix0KXt2YXIgcj1uLmxlbmd0aCxlPVtdLHU9MDtpZihyPD10KXJldHVybiBbbi5zbGljZSgpXTtmb3IodmFyIG89MDtvPHI7bysrKWVbdV18fGUucHVzaChbXSksZVt1XS5wdXNoKG5bb10pLChvKzEpJXQ9PTAmJnUrKztyZXR1cm4gZX0obi5zbGljZShkLmZyb20sZC50bykudG9KU09OKCkuZGF0YSxJKSk7bz1mdW5jdGlvbihuKXtyZXR1cm4gMD09PW4uZnJvbSYmMT09PW4udG8/e2Zyb206bi5mcm9tLHRvOm4udG99Ontmcm9tOm4uZnJvbS9JLHRvOk1hdGguZmxvb3Iobi50by9JKX19KGQpLGU9aC9JLHI9MypwLHA+PTQmJihyKz0xKSxsPTIsdT1hKGZ1bmN0aW9uKG4pe3JldHVybiBuLmxlbmd0aDw9ND9uLmpvaW4oIiAiKTpuLnNsaWNlKDAsNCkuam9pbigiICIpKyIgICIrbi5zbGljZSg0KS5qb2luKCIgIil9LHYpLChmPSg4KihvLnRvPjA/by50by0xOm8udG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoZj0yKTt9ZWxzZSB7dmFyIGc9bi5zcGxpdCgvXHJcbnxbXG5cclx1MjAyOFx1MjAyOV0vKTtyPWMuY29sdW1uLTEsZT1jLmxpbmUtMSxvPVcoZSxxLEEsZy5sZW5ndGgpLHU9Zy5zbGljZShvLmZyb20sby50byksZj1vLnRvLnRvU3RyaW5nKCkubGVuZ3RoO312YXIgbT1lLW8uZnJvbTtyZXR1cm4gdyhuKSYmKGY9KDgqKG8udG8+MD9vLnRvLTE6by50bykpLnRvU3RyaW5nKDE2KS5sZW5ndGgpPDImJihmPTIpLGkoZnVuY3Rpb24odCxlLHUpe3ZhciBpLGE9dT09PW0sYz1hPyI+ICI6ejtyZXR1cm4gaT13KG4pP1UoKDgqKG8uZnJvbSt1KSkudG9TdHJpbmcoMTYpLGYsIjAiKTpVKChvLmZyb20rdSsxKS50b1N0cmluZygpLGYsIiAiKSxbXS5jb25jYXQodCxbYytpKyIgfCAiK2VdLGE/W3orUigiICIsZikrIiB8ICIrVSgiIixyLCIgIikrUigiXiIsbCldOltdKX0sW10sdSkuam9pbigiXG4iKX1mdW5jdGlvbiBOKG4sdCl7cmV0dXJuIFsiXG4iLCItLSBQQVJTSU5HIEZBSUxFRCAiK1IoIi0iLDUwKSwiXG5cbiIsRChuLHQpLCJcblxuIiwocj10LmV4cGVjdGVkLDE9PT1yLmxlbmd0aD8iRXhwZWN0ZWQ6XG5cbiIrclswXToiRXhwZWN0ZWQgb25lIG9mIHRoZSBmb2xsb3dpbmc6IFxuXG4iK3Iuam9pbigiLCAiKSksIlxuIl0uam9pbigiIik7dmFyIHI7fWZ1bmN0aW9uIEcobil7cmV0dXJuIHZvaWQgMCE9PW4uZmxhZ3M/bi5mbGFnczpbbi5nbG9iYWw/ImciOiIiLG4uaWdub3JlQ2FzZT8iaSI6IiIsbi5tdWx0aWxpbmU/Im0iOiIiLG4udW5pY29kZT8idSI6IiIsbi5zdGlja3k/InkiOiIiXS5qb2luKCIiKX1mdW5jdGlvbiBDKCl7Zm9yKHZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoLHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7Zm9yKHZhciB1LG89bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSs9MSl7aWYoISh1PUIobltpXS5fKHIsZSksdSkpLnN0YXR1cylyZXR1cm4gdTtvW2ldPXUudmFsdWUsZT11LmluZGV4O31yZXR1cm4gQihiKGUsbyksdSl9KX1mdW5jdGlvbiBKKCl7dmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKDA9PT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInNlcU1hcCBuZWVkcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKTt2YXIgdD1uLnBvcCgpO3JldHVybiBrKHQpLEMuYXBwbHkobnVsbCxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIHQuYXBwbHkobnVsbCxuKX0pfWZ1bmN0aW9uIFQoKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksdD1uLmxlbmd0aDtpZigwPT09dClyZXR1cm4gWSgiemVybyBhbHRlcm5hdGVzIik7Zm9yKHZhciByPTA7cjx0O3IrPTEpXyhuW3JdKTtyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZSx1PTA7dTxuLmxlbmd0aDt1Kz0xKWlmKChlPUIoblt1XS5fKHQsciksZSkpLnN0YXR1cylyZXR1cm4gZTtyZXR1cm4gZX0pfWZ1bmN0aW9uIFYobix0KXtyZXR1cm4gSChuLHQpLm9yKFgoW10pKX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIF8obiksXyh0KSxKKG4sdC50aGVuKG4pLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBbbl0uY29uY2F0KHQpfSl9ZnVuY3Rpb24gSyhuKXtQKG4pO3ZhciB0PSInIituKyInIjtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PWUrbi5sZW5ndGgsbz1yLnNsaWNlKGUsdSk7cmV0dXJuIG89PT1uP2IodSxvKTp4KGUsdCl9KX1mdW5jdGlvbiBRKG4sdCl7IWZ1bmN0aW9uKG4pe2lmKCEobiBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKCJub3QgYSByZWdleHA6ICIrbik7Zm9yKHZhciB0PUcobikscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgZT10LmNoYXJBdChyKTtpZigiaSIhPT1lJiYibSIhPT1lJiYidSIhPT1lJiYicyIhPT1lKXRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgcmVnZXhwIGZsYWcgIicrZSsnIjogJytuKX19KG4pLGFyZ3VtZW50cy5sZW5ndGg+PTI/Tyh0KTp0PTA7dmFyIHI9ZnVuY3Rpb24obil7cmV0dXJuIFJlZ0V4cCgiXig/OiIrbi5zb3VyY2UrIikiLEcobikpfShuKSx1PSIiK247cmV0dXJuIGUoZnVuY3Rpb24obixlKXt2YXIgbz1yLmV4ZWMobi5zbGljZShlKSk7aWYobyl7aWYoMDw9dCYmdDw9by5sZW5ndGgpe3ZhciBpPW9bMF0sYT1vW3RdO3JldHVybiBiKGUraS5sZW5ndGgsYSl9cmV0dXJuIHgoZSwidmFsaWQgbWF0Y2ggZ3JvdXAgKDAgdG8gIitvLmxlbmd0aCsiKSBpbiAiK3UpfXJldHVybiB4KGUsdSl9KX1mdW5jdGlvbiBYKG4pe3JldHVybiBlKGZ1bmN0aW9uKHQscil7cmV0dXJuIGIocixuKX0pfWZ1bmN0aW9uIFkobil7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtyZXR1cm4geChyLG4pfSl9ZnVuY3Rpb24gWihuKXtpZih5KG4pKXJldHVybiBlKGZ1bmN0aW9uKHQscil7dmFyIGU9bi5fKHQscik7cmV0dXJuIGUuaW5kZXg9cixlLnZhbHVlPSIiLGV9KTtpZigic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIFooSyhuKSk7aWYobiBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4gWihRKG4pKTt0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHN0cmluZywgcmVnZXhwLCBvciBwYXJzZXI6ICIrbil9ZnVuY3Rpb24gJChuKXtyZXR1cm4gXyhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9bi5fKHQsciksdT10LnNsaWNlKHIsZS5pbmRleCk7cmV0dXJuIGUuc3RhdHVzP3gociwnbm90ICInK3UrJyInKTpiKHIsbnVsbCl9KX1mdW5jdGlvbiBubihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9TCh0LHIpO3JldHVybiByPHQubGVuZ3RoJiZuKGUpP2IocisxLGUpOngociwiYSBjaGFyYWN0ZXIvYnl0ZSBtYXRjaGluZyAiK24pfSl9ZnVuY3Rpb24gdG4obix0KXthcmd1bWVudHMubGVuZ3RoPDImJih0PW4sbj12b2lkIDApO3ZhciByPWUoZnVuY3Rpb24obixlKXtyZXR1cm4gci5fPXQoKS5fLHIuXyhuLGUpfSk7cmV0dXJuIG4/ci5kZXNjKG4pOnJ9ZnVuY3Rpb24gcm4oKXtyZXR1cm4gWSgiZmFudGFzeS1sYW5kL2VtcHR5Iil9dS5wYXJzZT1mdW5jdGlvbihuKXtpZigic3RyaW5nIiE9dHlwZW9mIG4mJiF3KG4pKXRocm93IG5ldyBFcnJvcigiLnBhcnNlIG11c3QgYmUgY2FsbGVkIHdpdGggYSBzdHJpbmcgb3IgQnVmZmVyIGFzIGl0cyBhcmd1bWVudCIpO3ZhciB0LHI9dGhpcy5za2lwKGFuKS5fKG4sMCk7cmV0dXJuIHQ9ci5zdGF0dXM/e3N0YXR1czohMCx2YWx1ZTpyLnZhbHVlfTp7c3RhdHVzOiExLGluZGV4OlMobixyLmZ1cnRoZXN0KSxleHBlY3RlZDpyLmV4cGVjdGVkfSxkZWxldGUgaltuXSx0fSx1LnRyeVBhcnNlPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMucGFyc2Uobik7aWYodC5zdGF0dXMpcmV0dXJuIHQudmFsdWU7dmFyIHI9TihuLHQpLGU9bmV3IEVycm9yKHIpO3Rocm93IGUudHlwZT0iUGFyc2ltbW9uRXJyb3IiLGUucmVzdWx0PXQsZX0sdS5hc3NlcnQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gdGhpcy5jaGFpbihmdW5jdGlvbihyKXtyZXR1cm4gbihyKT9YKHIpOlkodCl9KX0sdS5vcj1mdW5jdGlvbihuKXtyZXR1cm4gVCh0aGlzLG4pfSx1LnRyaW09ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMud3JhcChuLG4pfSx1LndyYXA9ZnVuY3Rpb24obix0KXtyZXR1cm4gSihuLHRoaXMsdCxmdW5jdGlvbihuLHQpe3JldHVybiB0fSl9LHUudGhydT1mdW5jdGlvbihuKXtyZXR1cm4gbih0aGlzKX0sdS50aGVuPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pLEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMV19KX0sdS5tYW55PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT1bXSx1PXZvaWQgMDs7KXtpZighKHU9QihuLl8odCxyKSx1KSkuc3RhdHVzKXJldHVybiBCKGIocixlKSx1KTtpZihyPT09dS5pbmRleCl0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIGxvb3AgZGV0ZWN0ZWQgaW4gLm1hbnkoKSBwYXJzZXIgLS0tIGNhbGxpbmcgLm1hbnkoKSBvbiBhIHBhcnNlciB3aGljaCBjYW4gYWNjZXB0IHplcm8gY2hhcmFjdGVycyBpcyB1c3VhbGx5IHRoZSBjYXVzZSIpO3I9dS5pbmRleCxlLnB1c2godS52YWx1ZSk7fX0pfSx1LnRpZVdpdGg9ZnVuY3Rpb24obil7cmV0dXJuIFAobiksdGhpcy5tYXAoZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24obil7aWYoIUUobikpdGhyb3cgbmV3IEVycm9yKCJub3QgYW4gYXJyYXk6ICIrbil9KHQpLHQubGVuZ3RoKXtQKHRbMF0pO2Zvcih2YXIgcj10WzBdLGU9MTtlPHQubGVuZ3RoO2UrKylQKHRbZV0pLHIrPW4rdFtlXTtyZXR1cm4gcn1yZXR1cm4gIiJ9KX0sdS50aWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aWVXaXRoKCIiKX0sdS50aW1lcz1mdW5jdGlvbihuLHQpe3ZhciByPXRoaXM7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9biksTyhuKSxPKHQpLGUoZnVuY3Rpb24oZSx1KXtmb3IodmFyIG89W10saT12b2lkIDAsYT12b2lkIDAsZj0wO2Y8bjtmKz0xKXtpZihhPUIoaT1yLl8oZSx1KSxhKSwhaS5zdGF0dXMpcmV0dXJuIGE7dT1pLmluZGV4LG8ucHVzaChpLnZhbHVlKTt9Zm9yKDtmPHQmJihhPUIoaT1yLl8oZSx1KSxhKSxpLnN0YXR1cyk7Zis9MSl1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO3JldHVybiBCKGIodSxvKSxhKX0pfSx1LnJlc3VsdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSx1LmF0TW9zdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50aW1lcygwLG4pfSx1LmF0TGVhc3Q9ZnVuY3Rpb24obil7cmV0dXJuIEoodGhpcy50aW1lcyhuKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBuLmNvbmNhdCh0KX0pfSx1Lm1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihiKHUuaW5kZXgsbih1LnZhbHVlKSksdSk6dX0pfSx1LmNvbnRyYW1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10LnBhcnNlKG4oci5zbGljZShlKSkpO3JldHVybiB1LnN0YXR1cz9iKGUrci5sZW5ndGgsdS52YWx1ZSk6dX0pfSx1LnByb21hcD1mdW5jdGlvbihuLHQpe3JldHVybiBrKG4pLGsodCksdGhpcy5jb250cmFtYXAobikubWFwKHQpfSx1LnNraXA9ZnVuY3Rpb24obil7cmV0dXJuIEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19KX0sdS5tYXJrPWZ1bmN0aW9uKCl7cmV0dXJuIEooZW4sdGhpcyxlbixmdW5jdGlvbihuLHQscil7cmV0dXJuIHtzdGFydDpuLHZhbHVlOnQsZW5kOnJ9fSl9LHUubm9kZT1mdW5jdGlvbihuKXtyZXR1cm4gSihlbix0aGlzLGVuLGZ1bmN0aW9uKHQscixlKXtyZXR1cm4ge25hbWU6bix2YWx1ZTpyLHN0YXJ0OnQsZW5kOmV9fSl9LHUuc2VwQnk9ZnVuY3Rpb24obil7cmV0dXJuIFYodGhpcyxuKX0sdS5zZXBCeTE9ZnVuY3Rpb24obil7cmV0dXJuIEgodGhpcyxuKX0sdS5sb29rYWhlYWQ9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuc2tpcChaKG4pKX0sdS5ub3RGb2xsb3dlZEJ5PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnNraXAoJChuKSl9LHUuZGVzYz1mdW5jdGlvbihuKXtFKG4pfHwobj1bbl0pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXN8fCh1LmV4cGVjdGVkPW4pLHV9KX0sdS5mYWxsYmFjaz1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5vcihYKG4pKX0sdS5hcD1mdW5jdGlvbihuKXtyZXR1cm4gSihuLHRoaXMsZnVuY3Rpb24obix0KXtyZXR1cm4gbih0KX0pfSx1LmNoYWluPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihuKHUudmFsdWUpLl8ocix1LmluZGV4KSx1KTp1fSl9LHUuY29uY2F0PXUub3IsdS5lbXB0eT1ybix1Lm9mPVgsdVsiZmFudGFzeS1sYW5kL2FwIl09dS5hcCx1WyJmYW50YXN5LWxhbmQvY2hhaW4iXT11LmNoYWluLHVbImZhbnRhc3ktbGFuZC9jb25jYXQiXT11LmNvbmNhdCx1WyJmYW50YXN5LWxhbmQvZW1wdHkiXT11LmVtcHR5LHVbImZhbnRhc3ktbGFuZC9vZiJdPXUub2YsdVsiZmFudGFzeS1sYW5kL21hcCJdPXUubWFwO3ZhciBlbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIodCxTKG4sdCkpfSksdW49ZShmdW5jdGlvbihuLHQpe3JldHVybiB0Pj1uLmxlbmd0aD94KHQsImFueSBjaGFyYWN0ZXIvYnl0ZSIpOmIodCsxLEwobix0KSl9KSxvbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIobi5sZW5ndGgsbi5zbGljZSh0KSl9KSxhbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ8bi5sZW5ndGg/eCh0LCJFT0YiKTpiKHQsbnVsbCl9KSxmbj1RKC9bMC05XS8pLmRlc2MoImEgZGlnaXQiKSxjbj1RKC9bMC05XSovKS5kZXNjKCJvcHRpb25hbCBkaWdpdHMiKSxzbj1RKC9bYS16XS9pKS5kZXNjKCJhIGxldHRlciIpLGxuPVEoL1thLXpdKi9pKS5kZXNjKCJvcHRpb25hbCBsZXR0ZXJzIiksaG49USgvXHMqLykuZGVzYygib3B0aW9uYWwgd2hpdGVzcGFjZSIpLHBuPVEoL1xzKy8pLmRlc2MoIndoaXRlc3BhY2UiKSxkbj1LKCJcciIpLHZuPUsoIlxuIiksZ249SygiXHJcbiIpLG1uPVQoZ24sdm4sZG4pLmRlc2MoIm5ld2xpbmUiKSx5bj1UKG1uLGFuKTtlLmFsbD1vbixlLmFsdD1ULGUuYW55PXVuLGUuY3I9ZG4sZS5jcmVhdGVMYW5ndWFnZT1mdW5jdGlvbihuKXt2YXIgdD17fTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmZnVuY3Rpb24ocil7dFtyXT10bihmdW5jdGlvbigpe3JldHVybiBuW3JdKHQpfSk7fShyKTtyZXR1cm4gdH0sZS5jcmxmPWduLGUuY3VzdG9tPWZ1bmN0aW9uKG4pe3JldHVybiBlKG4oYix4KSl9LGUuZGlnaXQ9Zm4sZS5kaWdpdHM9Y24sZS5lbXB0eT1ybixlLmVuZD15bixlLmVvZj1hbixlLmZhaWw9WSxlLmZvcm1hdEVycm9yPU4sZS5pbmRleD1lbixlLmlzUGFyc2VyPXksZS5sYXp5PXRuLGUubGV0dGVyPXNuLGUubGV0dGVycz1sbixlLmxmPXZuLGUubG9va2FoZWFkPVosZS5tYWtlRmFpbHVyZT14LGUubWFrZVN1Y2Nlc3M9YixlLm5ld2xpbmU9bW4sZS5ub25lT2Y9ZnVuY3Rpb24obil7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk8MH0pLmRlc2MoIm5vbmUgb2YgJyIrbisiJyIpfSxlLm5vdEZvbGxvd2VkQnk9JCxlLm9mPVgsZS5vbmVPZj1mdW5jdGlvbihuKXtmb3IodmFyIHQ9bi5zcGxpdCgiIikscj0wO3I8dC5sZW5ndGg7cisrKXRbcl09IiciK3Rbcl0rIiciO3JldHVybiBubihmdW5jdGlvbih0KXtyZXR1cm4gbi5pbmRleE9mKHQpPj0wfSkuZGVzYyh0KX0sZS5vcHRXaGl0ZXNwYWNlPWhuLGUuUGFyc2VyPWUsZS5yYW5nZT1mdW5jdGlvbihuLHQpe3JldHVybiBubihmdW5jdGlvbihyKXtyZXR1cm4gbjw9ciYmcjw9dH0pLmRlc2MobisiLSIrdCl9LGUucmVnZXg9USxlLnJlZ2V4cD1RLGUuc2VwQnk9VixlLnNlcEJ5MT1ILGUuc2VxPUMsZS5zZXFNYXA9SixlLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXt9LHI9MCx1PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksbz11Lmxlbmd0aCxpPTA7aTxvO2krPTEpe3ZhciBhPXVbaV07aWYoIXkoYSkpe2lmKEUoYSkmJjI9PT1hLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBhWzBdJiZ5KGFbMV0pKXt2YXIgZj1hWzBdO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGYpKXRocm93IG5ldyBFcnJvcigic2VxT2JqOiBkdXBsaWNhdGUga2V5ICIrZik7dFtmXT0hMCxyKys7Y29udGludWV9dGhyb3cgbmV3IEVycm9yKCJzZXFPYmogYXJndW1lbnRzIG11c3QgYmUgcGFyc2VycyBvciBbc3RyaW5nLCBwYXJzZXJdIGFycmF5IHBhaXJzLiIpfX1pZigwPT09cil0aHJvdyBuZXcgRXJyb3IoInNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYXJzZXIsIGZvdW5kIHplcm8iKTtyZXR1cm4gZShmdW5jdGlvbihuLHQpe2Zvcih2YXIgcixlPXt9LGk9MDtpPG87aSs9MSl7dmFyIGEsZjtpZihFKHVbaV0pPyhhPXVbaV1bMF0sZj11W2ldWzFdKTooYT1udWxsLGY9dVtpXSksIShyPUIoZi5fKG4sdCkscikpLnN0YXR1cylyZXR1cm4gcjthJiYoZVthXT1yLnZhbHVlKSx0PXIuaW5kZXg7fXJldHVybiBCKGIodCxlKSxyKX0pfSxlLnN0cmluZz1LLGUuc3VjY2VlZD1YLGUudGFrZVdoaWxlPWZ1bmN0aW9uKG4pe3JldHVybiBrKG4pLGUoZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9cjtlPHQubGVuZ3RoJiZuKEwodCxlKSk7KWUrKztyZXR1cm4gYihlLHQuc2xpY2UocixlKSl9KX0sZS50ZXN0PW5uLGUud2hpdGVzcGFjZT1wbixlWyJmYW50YXN5LWxhbmQvZW1wdHkiXT1ybixlWyJmYW50YXN5LWxhbmQvb2YiXT1YLGUuQmluYXJ5PXtiaXRTZXE6bCxiaXRTZXFPYmo6ZnVuY3Rpb24obil7cygpO3ZhciB0PXt9LHI9MCxlPWEoZnVuY3Rpb24obil7aWYoRShuKSl7dmFyIGU9bjtpZigyIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJbIitlLmpvaW4oIiwgIikrIl0gc2hvdWxkIGJlIGxlbmd0aCAyLCBnb3QgbGVuZ3RoICIrZS5sZW5ndGgpO2lmKFAoZVswXSksTyhlWzFdKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlWzBdKSl0aHJvdyBuZXcgRXJyb3IoImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiAiK2VbMF0pO3JldHVybiB0W2VbMF1dPSEwLHIrKyxlfXJldHVybiBPKG4pLFtudWxsLG5dfSxuKTtpZihyPDEpdGhyb3cgbmV3IEVycm9yKCJiaXRTZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFpciwgZ290IFsiK24uam9pbigiLCAiKSsiXSIpO3ZhciB1PWEoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19LGUpO3JldHVybiBsKGEoZnVuY3Rpb24obil7cmV0dXJuIG5bMV19LGUpKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIGkoZnVuY3Rpb24obix0KXtyZXR1cm4gbnVsbCE9PXRbMF0mJihuW3RbMF1dPXRbMV0pLG59LHt9LGEoZnVuY3Rpb24odCxyKXtyZXR1cm4gW3QsbltyXV19LHUpKX0pfSxieXRlOmZ1bmN0aW9uKG4pe2lmKHMoKSxPKG4pLG4+MjU1KXRocm93IG5ldyBFcnJvcigiVmFsdWUgc3BlY2lmaWVkIHRvIGJ5dGUgY29uc3RydWN0b3IgKCIrbisiPTB4IituLnRvU3RyaW5nKDE2KSsiKSBpcyBsYXJnZXIgaW4gdmFsdWUgdGhhbiBhIHNpbmdsZSBieXRlLiIpO3ZhciB0PShuPjE1PyIweCI6IjB4MCIpK24udG9TdHJpbmcoMTYpO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9TChyLGUpO3JldHVybiB1PT09bj9iKGUrMSx1KTp4KGUsdCl9KX0sYnVmZmVyOmZ1bmN0aW9uKG4pe3JldHVybiBoKCJidWZmZXIiLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gQnVmZmVyLmZyb20obil9KX0sZW5jb2RlZFN0cmluZzpmdW5jdGlvbihuLHQpe3JldHVybiBoKCJzdHJpbmciLHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZyhuKX0pfSx1aW50QkU6ZCx1aW50OEJFOmQoMSksdWludDE2QkU6ZCgyKSx1aW50MzJCRTpkKDQpLHVpbnRMRTp2LHVpbnQ4TEU6digxKSx1aW50MTZMRTp2KDIpLHVpbnQzMkxFOnYoNCksaW50QkU6ZyxpbnQ4QkU6ZygxKSxpbnQxNkJFOmcoMiksaW50MzJCRTpnKDQpLGludExFOm0saW50OExFOm0oMSksaW50MTZMRTptKDIpLGludDMyTEU6bSg0KSxmbG9hdEJFOmgoImZsb2F0QkUiLDQpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRmxvYXRCRSgwKX0pLGZsb2F0TEU6aCgiZmxvYXRMRSIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdExFKDApfSksZG91YmxlQkU6aCgiZG91YmxlQkUiLDgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRG91YmxlQkUoMCl9KSxkb3VibGVMRTpoKCJkb3VibGVMRSIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVMRSgwKX0pfSxuLmV4cG9ydHM9ZTt9XSl9KTsKCX0ocGFyc2ltbW9uX3VtZF9taW4pKTsKCgl2YXIgZW1vamlSZWdleCA9ICgpID0+IHsKCQkvLyBodHRwczovL210aHMuYmUvZW1vamkKCQlyZXR1cm4gLyg/OlsjKjAtOV1cdUZFMEY/XHUyMEUzfFtceEE5XHhBRVx1MjAzQ1x1MjA0OVx1MjEyMlx1MjEzOVx1MjE5NC1cdTIxOTlcdTIxQTlcdTIxQUFcdTIzMUFcdTIzMUJcdTIzMjhcdTIzQ0ZcdTIzRUQtXHUyM0VGXHUyM0YxXHUyM0YyXHUyM0Y4LVx1MjNGQVx1MjRDMlx1MjVBQVx1MjVBQlx1MjVCNlx1MjVDMFx1MjVGQlx1MjVGQ1x1MjVGRVx1MjYwMC1cdTI2MDRcdTI2MEVcdTI2MTFcdTI2MTRcdTI2MTVcdTI2MThcdTI2MjBcdTI2MjJcdTI2MjNcdTI2MjZcdTI2MkFcdTI2MkVcdTI2MkZcdTI2MzgtXHUyNjNBXHUyNjQwXHUyNjQyXHUyNjQ4LVx1MjY1M1x1MjY1Rlx1MjY2MFx1MjY2M1x1MjY2NVx1MjY2Nlx1MjY2OFx1MjY3Qlx1MjY3RVx1MjY3Rlx1MjY5Mlx1MjY5NC1cdTI2OTdcdTI2OTlcdTI2OUJcdTI2OUNcdTI2QTBcdTI2QTdcdTI2QUFcdTI2QjBcdTI2QjFcdTI2QkRcdTI2QkVcdTI2QzRcdTI2QzhcdTI2Q0ZcdTI2RDFcdTI2RDNcdTI2RTlcdTI2RjAtXHUyNkY1XHUyNkY3XHUyNkY4XHUyNkZBXHUyNzAyXHUyNzA4XHUyNzA5XHUyNzBGXHUyNzEyXHUyNzE0XHUyNzE2XHUyNzFEXHUyNzIxXHUyNzMzXHUyNzM0XHUyNzQ0XHUyNzQ3XHUyNzU3XHUyNzYzXHUyN0ExXHUyOTM0XHUyOTM1XHUyQjA1LVx1MkIwN1x1MkIxQlx1MkIxQ1x1MkI1NVx1MzAzMFx1MzAzRFx1MzI5N1x1MzI5OV1cdUZFMEY/fFtcdTI2MURcdTI3MENcdTI3MERdKD86XHVGRTBGfFx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdTI3MEFcdTI3MEJdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1MjNFOS1cdTIzRUNcdTIzRjBcdTIzRjNcdTI1RkRcdTI2OTNcdTI2QTFcdTI2QUJcdTI2QzVcdTI2Q0VcdTI2RDRcdTI2RUFcdTI2RkRcdTI3MDVcdTI3MjhcdTI3NENcdTI3NEVcdTI3NTMtXHUyNzU1XHUyNzk1LVx1Mjc5N1x1MjdCMFx1MjdCRlx1MkI1MF18XHUyNkY5KD86XHVGRTBGfFx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98XHUyNzY0XHVGRTBGPyg/Olx1MjAwRCg/Olx1RDgzRFx1REQyNXxcdUQ4M0VcdURFNzkpKT98XHVEODNDKD86W1x1REMwNFx1REQ3MFx1REQ3MVx1REQ3RVx1REQ3Rlx1REUwMlx1REUzN1x1REYyMVx1REYyNC1cdURGMkNcdURGMzZcdURGN0RcdURGOTZcdURGOTdcdURGOTktXHVERjlCXHVERjlFXHVERjlGXHVERkNEXHVERkNFXHVERkQ0LVx1REZERlx1REZGNVx1REZGN11cdUZFMEY/fFtcdURGODVcdURGQzJcdURGQzddKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REZDM1x1REZDNFx1REZDQV0oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFtcdURGQ0JcdURGQ0NdKD86XHVGRTBGfFx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1RENDRlx1REQ4RVx1REQ5MS1cdUREOUFcdURFMDFcdURFMUFcdURFMkZcdURFMzItXHVERTM2XHVERTM4LVx1REUzQVx1REU1MFx1REU1MVx1REYwMC1cdURGMjBcdURGMkQtXHVERjM1XHVERjM3LVx1REY3Q1x1REY3RS1cdURGODRcdURGODYtXHVERjkzXHVERkEwLVx1REZDMVx1REZDNVx1REZDNlx1REZDOFx1REZDOVx1REZDRi1cdURGRDNcdURGRTAtXHVERkYwXHVERkY4LVx1REZGRl18XHVEREU2XHVEODNDW1x1RERFOC1cdURERUNcdURERUVcdURERjFcdURERjJcdURERjRcdURERjYtXHVEREZBXHVEREZDXHVEREZEXHVEREZGXXxcdURERTdcdUQ4M0NbXHVEREU2XHVEREU3XHVEREU5LVx1RERFRlx1RERGMS1cdURERjRcdURERjYtXHVEREY5XHVEREZCXHVEREZDXHVEREZFXHVEREZGXXxcdURERThcdUQ4M0NbXHVEREU2XHVEREU4XHVEREU5XHVEREVCLVx1RERFRVx1RERGMC1cdURERjVcdURERjdcdURERkEtXHVEREZGXXxcdURERTlcdUQ4M0NbXHVEREVBXHVEREVDXHVEREVGXHVEREYwXHVEREYyXHVEREY0XHVEREZGXXxcdURERUFcdUQ4M0NbXHVEREU2XHVEREU4XHVEREVBXHVEREVDXHVEREVEXHVEREY3LVx1RERGQV18XHVEREVCXHVEODNDW1x1RERFRS1cdURERjBcdURERjJcdURERjRcdURERjddfFx1RERFQ1x1RDgzQ1tcdURERTZcdURERTdcdURERTktXHVEREVFXHVEREYxLVx1RERGM1x1RERGNS1cdURERkFcdURERkNcdURERkVdfFx1RERFRFx1RDgzQ1tcdURERjBcdURERjJcdURERjNcdURERjdcdURERjlcdURERkFdfFx1RERFRVx1RDgzQ1tcdURERTgtXHVEREVBXHVEREYxLVx1RERGNFx1RERGNi1cdURERjldfFx1RERFRlx1RDgzQ1tcdURERUFcdURERjJcdURERjRcdURERjVdfFx1RERGMFx1RDgzQ1tcdURERUFcdURERUMtXHVEREVFXHVEREYyXHVEREYzXHVEREY1XHVEREY3XHVEREZDXHVEREZFXHVEREZGXXxcdURERjFcdUQ4M0NbXHVEREU2LVx1RERFOFx1RERFRVx1RERGMFx1RERGNy1cdURERkJcdURERkVdfFx1RERGMlx1RDgzQ1tcdURERTZcdURERTgtXHVEREVEXHVEREYwLVx1RERGRl18XHVEREYzXHVEODNDW1x1RERFNlx1RERFOFx1RERFQS1cdURERUNcdURERUVcdURERjFcdURERjRcdURERjVcdURERjdcdURERkFcdURERkZdfFx1RERGNFx1RDgzQ1x1RERGMnxcdURERjVcdUQ4M0NbXHVEREU2XHVEREVBLVx1RERFRFx1RERGMC1cdURERjNcdURERjctXHVEREY5XHVEREZDXHVEREZFXXxcdURERjZcdUQ4M0NcdURERTZ8XHVEREY3XHVEODNDW1x1RERFQVx1RERGNFx1RERGOFx1RERGQVx1RERGQ118XHVEREY4XHVEODNDW1x1RERFNi1cdURERUFcdURERUMtXHVEREY0XHVEREY3LVx1RERGOVx1RERGQlx1RERGRC1cdURERkZdfFx1RERGOVx1RDgzQ1tcdURERTZcdURERThcdURERTlcdURERUItXHVEREVEXHVEREVGLVx1RERGNFx1RERGN1x1RERGOVx1RERGQlx1RERGQ1x1RERGRl18XHVEREZBXHVEODNDW1x1RERFNlx1RERFQ1x1RERGMlx1RERGM1x1RERGOFx1RERGRVx1RERGRl18XHVEREZCXHVEODNDW1x1RERFNlx1RERFOFx1RERFQVx1RERFQ1x1RERFRVx1RERGM1x1RERGQV18XHVEREZDXHVEODNDW1x1RERFQlx1RERGOF18XHVEREZEXHVEODNDXHVEREYwfFx1RERGRVx1RDgzQ1tcdURERUFcdURERjldfFx1RERGRlx1RDgzQ1tcdURERTZcdURERjJcdURERkNdfFx1REZGM1x1RkUwRj8oPzpcdTIwMEQoPzpcdTI2QTdcdUZFMEY/fFx1RDgzQ1x1REYwOCkpP3xcdURGRjQoPzpcdTIwMERcdTI2MjBcdUZFMEY/fFx1REI0MFx1REM2N1x1REI0MFx1REM2Mlx1REI0MCg/Olx1REM2NVx1REI0MFx1REM2RVx1REI0MFx1REM2N3xcdURDNzNcdURCNDBcdURDNjNcdURCNDBcdURDNzR8XHVEQzc3XHVEQjQwXHVEQzZDXHVEQjQwXHVEQzczKVx1REI0MFx1REM3Rik/KXxcdUQ4M0QoPzpbXHVEQzNGXHVEQ0ZEXHVERDQ5XHVERDRBXHVERDZGXHVERDcwXHVERDczXHVERDc2LVx1REQ3OVx1REQ4N1x1REQ4QS1cdUREOERcdUREQTVcdUREQThcdUREQjFcdUREQjJcdUREQkNcdUREQzItXHVEREM0XHVEREQxLVx1REREM1x1REREQy1cdUREREVcdURERTFcdURERTNcdURERThcdURERUZcdURERjNcdURERkFcdURFQ0JcdURFQ0QtXHVERUNGXHVERUUwLVx1REVFNVx1REVFOVx1REVGMFx1REVGM11cdUZFMEY/fFtcdURDNDJcdURDNDNcdURDNDYtXHVEQzUwXHVEQzY2XHVEQzY3XHVEQzZCLVx1REM2RFx1REM3Mlx1REM3NC1cdURDNzZcdURDNzhcdURDN0NcdURDODNcdURDODVcdURDOEZcdURDOTFcdURDQUFcdUREN0FcdUREOTVcdUREOTZcdURFNENcdURFNEZcdURFQzBcdURFQ0NdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REM2RVx1REM3MFx1REM3MVx1REM3M1x1REM3N1x1REM4MVx1REM4Mlx1REM4Nlx1REM4N1x1REU0NS1cdURFNDdcdURFNEJcdURFNERcdURFNEVcdURFQTNcdURFQjQtXHVERUI2XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REQ3NFx1REQ5MF0oPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REMwMC1cdURDMDdcdURDMDktXHVEQzE0XHVEQzE2LVx1REMzQVx1REMzQy1cdURDM0VcdURDNDBcdURDNDRcdURDNDVcdURDNTEtXHVEQzY1XHVEQzZBXHVEQzc5LVx1REM3Qlx1REM3RC1cdURDODBcdURDODRcdURDODgtXHVEQzhFXHVEQzkwXHVEQzkyLVx1RENBOVx1RENBQi1cdURDRkNcdURDRkYtXHVERDNEXHVERDRCLVx1REQ0RVx1REQ1MC1cdURENjdcdUREQTRcdURERkItXHVERTJEXHVERTJGLVx1REUzNFx1REUzNy1cdURFNDRcdURFNDgtXHVERTRBXHVERTgwLVx1REVBMlx1REVBNC1cdURFQjNcdURFQjctXHVERUJGXHVERUMxLVx1REVDNVx1REVEMC1cdURFRDJcdURFRDUtXHVERUQ3XHVERURELVx1REVERlx1REVFQlx1REVFQ1x1REVGNC1cdURFRkNcdURGRTAtXHVERkVCXHVERkYwXXxcdURDMDgoPzpcdTIwMERcdTJCMUIpP3xcdURDMTUoPzpcdTIwMERcdUQ4M0VcdUREQkEpP3xcdURDM0IoPzpcdTIwMERcdTI3NDRcdUZFMEY/KT98XHVEQzQxXHVGRTBGPyg/Olx1MjAwRFx1RDgzRFx1RERFOFx1RkUwRj8pP3xcdURDNjgoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4fFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDNjhcdURDNjldXHUyMDBEXHVEODNEKD86XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pPyl8W1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pPyl8XHVEODNFW1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdKXxcdUQ4M0MoPzpcdURGRkIoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZDLVx1REZGRl0pKSk/fFx1REZGQyg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSkpKT98XHVERkZEKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQlx1REZGQ1x1REZGRVx1REZGRl0pKSk/fFx1REZGRSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXSkpKT98XHVERkZGKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkVdKSkpPykpP3xcdURDNjkoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/W1x1REM2OFx1REM2OV18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEKD86W1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pP3xcdURDNjlcdTIwMERcdUQ4M0QoPzpcdURDNjYoPzpcdTIwMERcdUQ4M0RcdURDNjYpP3xcdURDNjcoPzpcdTIwMERcdUQ4M0RbXHVEQzY2XHVEQzY3XSk/KSl8XHVEODNFW1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdKXxcdUQ4M0MoPzpcdURGRkIoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZDLVx1REZGRl0pKSk/fFx1REZGQyg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSkpKT98XHVERkZEKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQlx1REZGQ1x1REZGRVx1REZGRl0pKSk/fFx1REZGRSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXSkpKT98XHVERkZGKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQi1cdURGRkVdKSkpPykpP3xcdURDNkYoPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xcdURENzUoPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xcdURFMkUoPzpcdTIwMERcdUQ4M0RcdURDQTgpP3xcdURFMzUoPzpcdTIwMERcdUQ4M0RcdURDQUIpP3xcdURFMzYoPzpcdTIwMERcdUQ4M0NcdURGMkJcdUZFMEY/KT8pfFx1RDgzRSg/OltcdUREMENcdUREMEZcdUREMTgtXHVERDFGXHVERDMwLVx1REQzNFx1REQzNlx1REQ3N1x1RERCNVx1RERCNlx1RERCQlx1REREMlx1REREM1x1RERENVx1REVDMy1cdURFQzVcdURFRjBcdURFRjItXHVERUY2XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdUREMjZcdUREMzVcdUREMzctXHVERDM5XHVERDNEXHVERDNFXHVEREI4XHVEREI5XHVERENELVx1RERDRlx1RERENFx1RERENi1cdURERERdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERERFXHVERERGXSg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFtcdUREMERcdUREMEVcdUREMTAtXHVERDE3XHVERDIwLVx1REQyNVx1REQyNy1cdUREMkZcdUREM0FcdUREM0YtXHVERDQ1XHVERDQ3LVx1REQ3Nlx1REQ3OC1cdUREQjRcdUREQjdcdUREQkFcdUREQkMtXHVERENDXHVEREQwXHVEREUwLVx1RERGRlx1REU3MC1cdURFNzRcdURFNzgtXHVERTdDXHVERTgwLVx1REU4Nlx1REU5MC1cdURFQUNcdURFQjAtXHVERUJBXHVERUMwLVx1REVDMlx1REVEMC1cdURFRDlcdURFRTAtXHVERUU3XXxcdUREM0MoPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj98XHVEODNDW1x1REZGQi1cdURGRkZdKT98XHVEREQxKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDEpKXxcdUQ4M0MoPzpcdURGRkIoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQy1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl0pKSk/fFx1REZGQyg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEKD86XHVEODNEXHVEQzhCXHUyMDBEKT9cdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZEKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl0pKSk/fFx1REZGRSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEKD86XHVEODNEXHVEQzhCXHUyMDBEKT9cdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZGKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZFXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpPykpP3xcdURFRjEoPzpcdUQ4M0MoPzpcdURGRkIoPzpcdTIwMERcdUQ4M0VcdURFRjJcdUQ4M0NbXHVERkZDLVx1REZGRl0pP3xcdURGRkMoPzpcdTIwMERcdUQ4M0VcdURFRjJcdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pP3xcdURGRkQoPzpcdTIwMERcdUQ4M0VcdURFRjJcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXSk/fFx1REZGRSg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXSk/fFx1REZGRig/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkItXHVERkZFXSk/KSk/KSkvZzsKCX07CgoJLyoqIE5vcm1hbGl6ZSBhIGR1cmF0aW9uIHRvIGFsbCBvZiB0aGUgcHJvcGVyIHVuaXRzLiAqLw0KCWZ1bmN0aW9uIG5vcm1hbGl6ZUR1cmF0aW9uKGR1cikgew0KCSAgICBpZiAoZHVyID09PSB1bmRlZmluZWQgfHwgZHVyID09PSBudWxsKQ0KCSAgICAgICAgcmV0dXJuIGR1cjsNCgkgICAgcmV0dXJuIGR1ci5zaGlmdFRvKCJ5ZWFycyIsICJtb250aHMiLCAid2Vla3MiLCAiZGF5cyIsICJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiLCAibWlsbGlzZWNvbmRzIikubm9ybWFsaXplKCk7DQoJfQ0KCS8qKiBTdHJpcCB0aGUgdGltZSBjb21wb25lbnRzIG9mIGEgZGF0ZSB0aW1lIG9iamVjdC4gKi8NCglmdW5jdGlvbiBzdHJpcFRpbWUoZHQpIHsNCgkgICAgaWYgKGR0ID09PSBudWxsIHx8IGR0ID09PSB1bmRlZmluZWQpDQoJICAgICAgICByZXR1cm4gZHQ7DQoJICAgIHJldHVybiBEYXRlVGltZV8xLmZyb21PYmplY3Qoew0KCSAgICAgICAgeWVhcjogZHQueWVhciwNCgkgICAgICAgIG1vbnRoOiBkdC5tb250aCwNCgkgICAgICAgIGRheTogZHQuZGF5LA0KCSAgICB9KTsNCgl9DQoJLyoqIFRyeSB0byBleHRyYWN0IGEgWVlZWU1NREQgZGF0ZSBmcm9tIGEgc3RyaW5nLiAqLw0KCWZ1bmN0aW9uIGV4dHJhY3REYXRlKHN0cikgew0KCSAgICBsZXQgZGF0ZU1hdGNoID0gLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pLy5leGVjKHN0cik7DQoJICAgIGlmICghZGF0ZU1hdGNoKQ0KCSAgICAgICAgZGF0ZU1hdGNoID0gLyhcZHs0fSkoXGR7Mn0pKFxkezJ9KS8uZXhlYyhzdHIpOw0KCSAgICBpZiAoZGF0ZU1hdGNoKSB7DQoJICAgICAgICBsZXQgeWVhciA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbMV0pOw0KCSAgICAgICAgbGV0IG1vbnRoID0gTnVtYmVyLnBhcnNlSW50KGRhdGVNYXRjaFsyXSk7DQoJICAgICAgICBsZXQgZGF5ID0gTnVtYmVyLnBhcnNlSW50KGRhdGVNYXRjaFszXSk7DQoJICAgICAgICByZXR1cm4gRGF0ZVRpbWVfMS5mcm9tT2JqZWN0KHsgeWVhciwgbW9udGgsIGRheSB9KTsNCgkgICAgfQ0KCSAgICByZXR1cm4gdW5kZWZpbmVkOw0KCX0NCgkvKiogR2V0IHRoZSBmb2xkZXIgY29udGFpbmluZyB0aGUgZ2l2ZW4gcGF0aCAoaS5lLiwgbGlrZSBjb21wdXRpbmcgJ3BhdGgvLi4nKS4gKi8NCglmdW5jdGlvbiBnZXRQYXJlbnRGb2xkZXIocGF0aCkgew0KCSAgICByZXR1cm4gcGF0aC5zcGxpdCgiLyIpLnNsaWNlKDAsIC0xKS5qb2luKCIvIik7DQoJfQ0KCS8qKiBHZXQgdGhlICJ0aXRsZSIgZm9yIGEgZmlsZSwgYnkgc3RyaXBwaW5nIG90aGVyIHBhcnRzIG9mIHRoZSBwYXRoIGFzIHdlbGwgYXMgdGhlIGV4dGVuc2lvbi4gKi8NCglmdW5jdGlvbiBnZXRGaWxlVGl0bGUocGF0aCkgew0KCSAgICBpZiAocGF0aC5pbmNsdWRlcygiLyIpKQ0KCSAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHBhdGgubGFzdEluZGV4T2YoIi8iKSArIDEpOw0KCSAgICBpZiAocGF0aC5lbmRzV2l0aCgiLm1kIikpDQoJICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgcGF0aC5sZW5ndGggLSAzKTsNCgkgICAgcmV0dXJuIHBhdGg7DQoJfQ0KCS8qKiBHZXQgdGhlIGV4dGVuc2lvbiBvZiBhIGZpbGUgZnJvbSB0aGUgZmlsZSBwYXRoLiAqLw0KCWZ1bmN0aW9uIGdldEV4dGVuc2lvbihwYXRoKSB7DQoJICAgIGlmICghcGF0aC5pbmNsdWRlcygiLiIpKQ0KCSAgICAgICAgcmV0dXJuICIiOw0KCSAgICByZXR1cm4gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZigiLiIpICsgMSk7DQoJfQ0KCS8qKiBQYXJzZSBhbGwgc3VidGFncyBvdXQgb2YgdGhlIGdpdmVuIHRhZy4gSS5lLiwgI2hlbGxvL2kvYW0gd291bGQgeWllbGQgWyNoZWxsby9pL2FtLCAjaGVsbG8vaSwgI2hlbGxvXS4gKi8NCglmdW5jdGlvbiBleHRyYWN0U3VidGFncyh0YWcpIHsNCgkgICAgbGV0IHJlc3VsdCA9IFt0YWddOw0KCSAgICB3aGlsZSAodGFnLmluY2x1ZGVzKCIvIikpIHsNCgkgICAgICAgIHRhZyA9IHRhZy5zdWJzdHJpbmcoMCwgdGFnLmxhc3RJbmRleE9mKCIvIikpOw0KCSAgICAgICAgcmVzdWx0LnB1c2godGFnKTsNCgkgICAgfQ0KCSAgICByZXR1cm4gcmVzdWx0Ow0KCX0NCgkvKiogQSBwYXJzaW1tb24gcGFyc2VyIHdoaWNoIGNhbm9uaWNhbGl6ZXMgdmFyaWFibGUgbmFtZXMgd2hpbGUgcHJvcGVybHkgcmVzcGVjdGluZyBlbW9qaS4gKi8NCgljb25zdCBWQVJfTkFNRV9DQU5PTklDQUxJWkVSID0gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgIiIpKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleCgvWzAtOVxwe0xldHRlcn1fLV0rL3UpLm1hcChzdHIgPT4gc3RyLnRvTG9jYWxlTG93ZXJDYXNlKCkpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLndoaXRlc3BhY2UubWFwKF8gPT4gIi0iKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbnkubWFwKF8gPT4gIiIpKQ0KCSAgICAubWFueSgpDQoJICAgIC5tYXAocmVzdWx0ID0+IHJlc3VsdC5qb2luKCIiKSk7DQoJLyoqIENvbnZlcnQgYW4gYXJiaXRyYXJ5IHZhcmlhYmxlIG5hbWUgaW50byBzb21ldGhpbmcgSlMvcXVlcnkgZnJpZW5kbHkuICovDQoJZnVuY3Rpb24gY2Fub25pY2FsaXplVmFyTmFtZShuYW1lKSB7DQoJICAgIHJldHVybiBWQVJfTkFNRV9DQU5PTklDQUxJWkVSLnRyeVBhcnNlKG5hbWUpOw0KCX0NCgljb25zdCBIRUFERVJfQ0FOT05JQ0FMSVpFUiA9IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXgobmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksICIiKSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXgoL1swLTlccHtMZXR0ZXJ9Xy1dKy91KSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy53aGl0ZXNwYWNlLm1hcChfID0+ICIgIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYW55Lm1hcChfID0+ICIgIikpDQoJICAgIC5tYW55KCkNCgkgICAgLm1hcChyZXN1bHQgPT4gew0KCSAgICByZXR1cm4gcmVzdWx0LmpvaW4oIiIpLnNwbGl0KC9ccysvKS5qb2luKCIgIikudHJpbSgpOw0KCX0pOw0KCS8qKg0KCSAqIE5vcm1hbGl6ZXMgdGhlIHRleHQgaW4gYSBoZWFkZXIgdG8gYmUgc29tZXRoaW5nIHRoYXQgaXMgYWN0dWFsbHkgbGlua2FibGUgdG8uIFRoaXMgbWltaWNzDQoJICogaG93IE9ic2lkaWFuIGRvZXMgaXQncyBub3JtYWxpemF0aW9uLCBjb2xsYXBzaW5nIHJlcGVhdGVkIHNwYWNlcyBhbmQgc3RyaXBwaW5nIG91dCBjb250cm9sIGNoYXJhY3RlcnMuDQoJICovDQoJZnVuY3Rpb24gbm9ybWFsaXplSGVhZGVyRm9yTGluayhoZWFkZXIpIHsNCgkgICAgcmV0dXJuIEhFQURFUl9DQU5PTklDQUxJWkVSLnRyeVBhcnNlKGhlYWRlcik7DQoJfQ0KCS8qKiBSZW5kZXIgYSBkdXJhdGlvbiBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovDQoJZnVuY3Rpb24gcmVuZGVyTWluaW1hbER1cmF0aW9uKGR1cikgew0KCSAgICBkdXIgPSBub3JtYWxpemVEdXJhdGlvbihkdXIpOw0KCSAgICAvLyBUT0RPOiBMdXhvbiBkb2VzIG5vdCBoYXZlIG11bHRpLWxpbmd1YWwvbG9jYWxlLWF3YXJlIGR1cmF0aW9uIHJlbmRlcmluZy4NCgkgICAgbGV0IHJlc3VsdCA9ICIiOw0KCSAgICBpZiAoZHVyLnllYXJzKQ0KCSAgICAgICAgcmVzdWx0ICs9IGAke2R1ci55ZWFyc30geWVhcnMsIGA7DQoJICAgIGlmIChkdXIubW9udGhzKQ0KCSAgICAgICAgcmVzdWx0ICs9IGAke2R1ci5tb250aHN9IG1vbnRocywgYDsNCgkgICAgaWYgKGR1ci53ZWVrcykNCgkgICAgICAgIHJlc3VsdCArPSBgJHtkdXIud2Vla3N9IHdlZWtzLCBgOw0KCSAgICBpZiAoZHVyLmRheXMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7ZHVyLmRheXN9IGRheXMsIGA7DQoJICAgIGlmIChkdXIuaG91cnMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7ZHVyLmhvdXJzfSBob3VycywgYDsNCgkgICAgaWYgKGR1ci5taW51dGVzKQ0KCSAgICAgICAgcmVzdWx0ICs9IGAke2R1ci5taW51dGVzfSBtaW51dGVzLCBgOw0KCSAgICBpZiAoZHVyLnNlY29uZHMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7TWF0aC5yb3VuZChkdXIuc2Vjb25kcyl9IHNlY29uZHMsIGA7DQoJICAgIGlmIChkdXIubWlsbGlzZWNvbmRzKQ0KCSAgICAgICAgcmVzdWx0ICs9IGAke01hdGgucm91bmQoZHVyLm1pbGxpc2Vjb25kcyl9IG1zLCBgOw0KCSAgICBpZiAocmVzdWx0LmVuZHNXaXRoKCIsICIpKQ0KCSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZygwLCByZXN1bHQubGVuZ3RoIC0gMik7DQoJICAgIHJldHVybiByZXN1bHQ7DQoJfQoKCXZhciBWYWx1ZXM7DQoJKGZ1bmN0aW9uIChWYWx1ZXMpIHsNCgkgICAgLyoqIENvbnZlcnQgYW4gYXJiaXRhcnkgdmFsdWUgaW50byBhIHJlYXNvbmFibGUsIE1hcmtkb3duLWZyaWVuZGx5IHN0cmluZyBpZiBwb3NzaWJsZS4gKi8NCgkgICAgZnVuY3Rpb24gdG9TdHJpbmcoZmllbGQsIHNldHRpbmcgPSBERUZBVUxUX1FVRVJZX1NFVFRJTkdTLCByZWN1cnNpdmUgPSBmYWxzZSkgew0KCSAgICAgICAgbGV0IHdyYXBwZWQgPSB3cmFwVmFsdWUoZmllbGQpOw0KCSAgICAgICAgaWYgKCF3cmFwcGVkKQ0KCSAgICAgICAgICAgIHJldHVybiBzZXR0aW5nLnJlbmRlck51bGxBczsNCgkgICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7DQoJICAgICAgICAgICAgY2FzZSAibnVsbCI6DQoJICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5nLnJlbmRlck51bGxBczsNCgkgICAgICAgICAgICBjYXNlICJzdHJpbmciOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTsNCgkgICAgICAgICAgICBjYXNlICJudW1iZXIiOg0KCSAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gIiIgKyB3cmFwcGVkLnZhbHVlOw0KCSAgICAgICAgICAgIGNhc2UgImh0bWwiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5vdXRlckhUTUw7DQoJICAgICAgICAgICAgY2FzZSAid2lkZ2V0IjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTsNCgkgICAgICAgICAgICBjYXNlICJsaW5rIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTsNCgkgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiAiPGZ1bmN0aW9uPiI7DQoJICAgICAgICAgICAgY2FzZSAiYXJyYXkiOg0KCSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gIiI7DQoJICAgICAgICAgICAgICAgIGlmIChyZWN1cnNpdmUpDQoJICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIlsiOw0KCSAgICAgICAgICAgICAgICByZXN1bHQgKz0gd3JhcHBlZC52YWx1ZS5tYXAoZiA9PiB0b1N0cmluZyhmLCBzZXR0aW5nLCB0cnVlKSkuam9pbigiLCAiKTsNCgkgICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkNCgkgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXSI7DQoJICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuICgieyAiICsNCgkgICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHdyYXBwZWQudmFsdWUpDQoJICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChlID0+IGVbMF0gKyAiOiAiICsgdG9TdHJpbmcoZVsxXSwgc2V0dGluZywgdHJ1ZSkpDQoJICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oIiwgIikgKw0KCSAgICAgICAgICAgICAgICAgICAgIiB9Iik7DQoJICAgICAgICAgICAgY2FzZSAiZGF0ZSI6DQoJICAgICAgICAgICAgICAgIGlmICh3cmFwcGVkLnZhbHVlLnNlY29uZCA9PSAwICYmIHdyYXBwZWQudmFsdWUuaG91ciA9PSAwICYmIHdyYXBwZWQudmFsdWUubWludXRlID09IDApIHsNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvRm9ybWF0KHNldHRpbmcuZGVmYXVsdERhdGVGb3JtYXQpOw0KCSAgICAgICAgICAgICAgICB9DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvRm9ybWF0KHNldHRpbmcuZGVmYXVsdERhdGVUaW1lRm9ybWF0KTsNCgkgICAgICAgICAgICBjYXNlICJkdXJhdGlvbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJNaW5pbWFsRHVyYXRpb24od3JhcHBlZC52YWx1ZSk7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgVmFsdWVzLnRvU3RyaW5nID0gdG9TdHJpbmc7DQoJICAgIC8qKiBXcmFwIGEgbGl0ZXJhbCB2YWx1ZSBzbyB5b3UgY2FuIHN3aXRjaCBvbiBpdCBlYXNpbHkuICovDQoJICAgIGZ1bmN0aW9uIHdyYXBWYWx1ZSh2YWwpIHsNCgkgICAgICAgIGlmIChpc051bGwodmFsKSkNCgkgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAibnVsbCIsIHZhbHVlOiB2YWwgfTsNCgkgICAgICAgIGVsc2UgaWYgKGlzTnVtYmVyKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogIm51bWJlciIsIHZhbHVlOiB2YWwgfTsNCgkgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogInN0cmluZyIsIHZhbHVlOiB2YWwgfTsNCgkgICAgICAgIGVsc2UgaWYgKGlzQm9vbGVhbih2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNEdXJhdGlvbih2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJkdXJhdGlvbiIsIHZhbHVlOiB2YWwgfTsNCgkgICAgICAgIGVsc2UgaWYgKGlzRGF0ZSh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJkYXRlIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNXaWRnZXQodmFsKSkNCgkgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAid2lkZ2V0IiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJhcnJheSIsIHZhbHVlOiB2YWwgfTsNCgkgICAgICAgIGVsc2UgaWYgKGlzTGluayh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaW5rIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNGdW5jdGlvbih2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJmdW5jdGlvbiIsIHZhbHVlOiB2YWwgfTsNCgkgICAgICAgIGVsc2UgaWYgKGlzSHRtbCh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJodG1sIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNPYmplY3QodmFsKSkNCgkgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAib2JqZWN0IiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIH0NCgkgICAgVmFsdWVzLndyYXBWYWx1ZSA9IHdyYXBWYWx1ZTsNCgkgICAgLyoqIFJlY3Vyc2l2ZWx5IG1hcCBjb21wbGV4IG9iamVjdHMgYXQgdGhlIGxlYXZlcy4gKi8NCgkgICAgZnVuY3Rpb24gbWFwTGVhdmVzKHZhbCwgZnVuYykgew0KCSAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkpIHsNCgkgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307DQoJICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpDQoJICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbWFwTGVhdmVzKHZhbHVlLCBmdW5jKTsNCgkgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7DQoJICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOw0KCSAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbCkNCgkgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobWFwTGVhdmVzKHZhbHVlLCBmdW5jKSk7DQoJICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJldHVybiBmdW5jKHZhbCk7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgVmFsdWVzLm1hcExlYXZlcyA9IG1hcExlYXZlczsNCgkgICAgLyoqIENvbXBhcmUgdHdvIGFyYml0cmFyeSBKYXZhU2NyaXB0IHZhbHVlcy4gUHJvZHVjZXMgYSB0b3RhbCBvcmRlcmluZyBvdmVyIEFOWSBwb3NzaWJsZSBkYXRhdmlldyB2YWx1ZS4gKi8NCgkgICAgZnVuY3Rpb24gY29tcGFyZVZhbHVlKHZhbDEsIHZhbDIsIGxpbmtOb3JtYWxpemVyKSB7DQoJICAgICAgICB2YXIgX2EsIF9iOw0KCSAgICAgICAgLy8gSGFuZGxlIHVuZGVmaW5lZC9udWxscyBmaXJzdC4NCgkgICAgICAgIGlmICh2YWwxID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgdmFsMSA9IG51bGw7DQoJICAgICAgICBpZiAodmFsMiA9PT0gdW5kZWZpbmVkKQ0KCSAgICAgICAgICAgIHZhbDIgPSBudWxsOw0KCSAgICAgICAgaWYgKHZhbDEgPT09IG51bGwgJiYgdmFsMiA9PT0gbnVsbCkNCgkgICAgICAgICAgICByZXR1cm4gMDsNCgkgICAgICAgIGVsc2UgaWYgKHZhbDEgPT09IG51bGwpDQoJICAgICAgICAgICAgcmV0dXJuIC0xOw0KCSAgICAgICAgZWxzZSBpZiAodmFsMiA9PT0gbnVsbCkNCgkgICAgICAgICAgICByZXR1cm4gMTsNCgkgICAgICAgIC8vIEEgbm9uLW51bGwgdmFsdWUgbm93IHdoaWNoIHdlIGNhbiB3cmFwICYgY29tcGFyZSBvbi4NCgkgICAgICAgIGxldCB3cmFwMSA9IHdyYXBWYWx1ZSh2YWwxKTsNCgkgICAgICAgIGxldCB3cmFwMiA9IHdyYXBWYWx1ZSh2YWwyKTsNCgkgICAgICAgIGlmICh3cmFwMSA9PT0gdW5kZWZpbmVkICYmIHdyYXAyID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICBlbHNlIGlmICh3cmFwMSA9PT0gdW5kZWZpbmVkKQ0KCSAgICAgICAgICAgIHJldHVybiAtMTsNCgkgICAgICAgIGVsc2UgaWYgKHdyYXAyID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgcmV0dXJuIDE7DQoJICAgICAgICAvLyBTaG9ydC1jaXJjdWl0IG9uIGRpZmZlcmVudCB0eXBlcyBvciBvbiByZWZlcmVuY2UgZXF1YWxpdHkuDQoJICAgICAgICBpZiAod3JhcDEudHlwZSAhPSB3cmFwMi50eXBlKQ0KCSAgICAgICAgICAgIHJldHVybiB3cmFwMS50eXBlLmxvY2FsZUNvbXBhcmUod3JhcDIudHlwZSk7DQoJICAgICAgICBpZiAod3JhcDEudmFsdWUgPT09IHdyYXAyLnZhbHVlKQ0KCSAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgc3dpdGNoICh3cmFwMS50eXBlKSB7DQoJICAgICAgICAgICAgY2FzZSAic3RyaW5nIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXAxLnZhbHVlLmxvY2FsZUNvbXBhcmUod3JhcDIudmFsdWUpOw0KCSAgICAgICAgICAgIGNhc2UgIm51bWJlciI6DQoJICAgICAgICAgICAgICAgIGlmICh3cmFwMS52YWx1ZSA8IHdyYXAyLnZhbHVlKQ0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KCSAgICAgICAgICAgICAgICBlbHNlIGlmICh3cmFwMS52YWx1ZSA9PSB3cmFwMi52YWx1ZSkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgICAgICAgICByZXR1cm4gMTsNCgkgICAgICAgICAgICBjYXNlICJudWxsIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6DQoJICAgICAgICAgICAgICAgIGlmICh3cmFwMS52YWx1ZSA9PSB3cmFwMi52YWx1ZSkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgICAgICAgICBlbHNlDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPyAxIDogLTE7DQoJICAgICAgICAgICAgY2FzZSAibGluayI6DQoJICAgICAgICAgICAgICAgIGxldCBsaW5rMSA9IHdyYXAxLnZhbHVlOw0KCSAgICAgICAgICAgICAgICBsZXQgbGluazIgPSB3cmFwMi52YWx1ZTsNCgkgICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZSA9IGxpbmtOb3JtYWxpemVyICE9PSBudWxsICYmIGxpbmtOb3JtYWxpemVyICE9PSB2b2lkIDAgPyBsaW5rTm9ybWFsaXplciA6ICgoeCkgPT4geCk7DQoJICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGNvbXBhcmUgYnkgZmlsZSBuYW1lIG9yIGRpc3BsYXksIHNpbmNlIHRoYXQgd291bGQgYnJlYWsgbGluayBlcXVhbGl0eS4gQ29tcGFyZSBieSBwYXRoLg0KCSAgICAgICAgICAgICAgICBsZXQgcGF0aENvbXBhcmUgPSBub3JtYWxpemUobGluazEucGF0aCkubG9jYWxlQ29tcGFyZShub3JtYWxpemUobGluazIucGF0aCkpOw0KCSAgICAgICAgICAgICAgICBpZiAocGF0aENvbXBhcmUgIT0gMCkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoQ29tcGFyZTsNCgkgICAgICAgICAgICAgICAgLy8gVGhlbiBjb21wYXJlIGJ5IHR5cGUuDQoJICAgICAgICAgICAgICAgIGxldCB0eXBlQ29tcGFyZSA9IGxpbmsxLnR5cGUubG9jYWxlQ29tcGFyZShsaW5rMi50eXBlKTsNCgkgICAgICAgICAgICAgICAgaWYgKHR5cGVDb21wYXJlICE9IDApDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUNvbXBhcmU7DQoJICAgICAgICAgICAgICAgIC8vIFRoZW4gY29tcGFyZSBieSBzdWJwYXRoIGV4aXN0ZW5jZS4NCgkgICAgICAgICAgICAgICAgaWYgKGxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCgkgICAgICAgICAgICAgICAgaWYgKCFsaW5rMS5zdWJwYXRoICYmIGxpbmsyLnN1YnBhdGgpDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQoJICAgICAgICAgICAgICAgIGlmICghbGluazEuc3VicGF0aCAmJiAhbGluazIuc3VicGF0aCkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgICAgICAgICAvLyBTaW5jZSBib3RoIGhhdmUgYSBzdWJwYXRoLCBjb21wYXJlIGJ5IHN1YnBhdGguDQoJICAgICAgICAgICAgICAgIHJldHVybiAoKF9hID0gbGluazEuc3VicGF0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogIiIpLmxvY2FsZUNvbXBhcmUoKF9iID0gbGluazIuc3VicGF0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogIiIpOw0KCSAgICAgICAgICAgIGNhc2UgImRhdGUiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCB3cmFwMi52YWx1ZQ0KCSAgICAgICAgICAgICAgICAgICAgPyAtMQ0KCSAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUpDQoJICAgICAgICAgICAgICAgICAgICAgICAgPyAwDQoJICAgICAgICAgICAgICAgICAgICAgICAgOiAxOw0KCSAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXAxLnZhbHVlIDwgd3JhcDIudmFsdWUNCgkgICAgICAgICAgICAgICAgICAgID8gLTENCgkgICAgICAgICAgICAgICAgICAgIDogd3JhcDEudmFsdWUuZXF1YWxzKHdyYXAyLnZhbHVlKQ0KCSAgICAgICAgICAgICAgICAgICAgICAgID8gMA0KCSAgICAgICAgICAgICAgICAgICAgICAgIDogMTsNCgkgICAgICAgICAgICBjYXNlICJhcnJheSI6DQoJICAgICAgICAgICAgICAgIGxldCBmMSA9IHdyYXAxLnZhbHVlOw0KCSAgICAgICAgICAgICAgICBsZXQgZjIgPSB3cmFwMi52YWx1ZTsNCgkgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE1hdGgubWluKGYxLmxlbmd0aCwgZjIubGVuZ3RoKTsgaW5kZXgrKykgew0KCSAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXAgPSBjb21wYXJlVmFsdWUoZjFbaW5kZXhdLCBmMltpbmRleF0pOw0KCSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXAgIT0gMCkNCgkgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcDsNCgkgICAgICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgICAgICByZXR1cm4gZjEubGVuZ3RoIC0gZjIubGVuZ3RoOw0KCSAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6DQoJICAgICAgICAgICAgICAgIGxldCBvMSA9IHdyYXAxLnZhbHVlOw0KCSAgICAgICAgICAgICAgICBsZXQgbzIgPSB3cmFwMi52YWx1ZTsNCgkgICAgICAgICAgICAgICAgbGV0IGsxID0gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvMSkpOw0KCSAgICAgICAgICAgICAgICBsZXQgazIgPSBBcnJheS5mcm9tKE9iamVjdC5rZXlzKG8yKSk7DQoJICAgICAgICAgICAgICAgIGsxLnNvcnQoKTsNCgkgICAgICAgICAgICAgICAgazIuc29ydCgpOw0KCSAgICAgICAgICAgICAgICBsZXQga2V5Q29tcGFyZSA9IGNvbXBhcmVWYWx1ZShrMSwgazIpOw0KCSAgICAgICAgICAgICAgICBpZiAoa2V5Q29tcGFyZSAhPSAwKQ0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleUNvbXBhcmU7DQoJICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBvZiBrMSkgew0KCSAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXAgPSBjb21wYXJlVmFsdWUobzFba2V5XSwgbzJba2V5XSk7DQoJICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKQ0KCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wOw0KCSAgICAgICAgICAgICAgICB9DQoJICAgICAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgICAgIGNhc2UgIndpZGdldCI6DQoJICAgICAgICAgICAgY2FzZSAiaHRtbCI6DQoJICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gMDsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBWYWx1ZXMuY29tcGFyZVZhbHVlID0gY29tcGFyZVZhbHVlOw0KCSAgICAvKiogRmluZCB0aGUgY29ycmVzcG9uZGluZyBEYXRhdmVpdyB0eXBlIGZvciBhbiBhcmJpdHJhcnkgdmFsdWUuICovDQoJICAgIGZ1bmN0aW9uIHR5cGVPZih2YWwpIHsNCgkgICAgICAgIHZhciBfYTsNCgkgICAgICAgIHJldHVybiAoX2EgPSB3cmFwVmFsdWUodmFsKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnR5cGU7DQoJICAgIH0NCgkgICAgVmFsdWVzLnR5cGVPZiA9IHR5cGVPZjsNCgkgICAgLyoqIERldGVybWluZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgInRydXRoeSIgKGkuZS4sIGlzIG5vbi1udWxsIGFuZCBoYXMgZGF0YSBpbiBpdCkuICovDQoJICAgIGZ1bmN0aW9uIGlzVHJ1dGh5KGZpZWxkKSB7DQoJICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7DQoJICAgICAgICBpZiAoIXdyYXBwZWQpDQoJICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KCSAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHsNCgkgICAgICAgICAgICBjYXNlICJudW1iZXIiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZSAhPSAwOw0KCSAgICAgICAgICAgIGNhc2UgInN0cmluZyI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmxlbmd0aCA+IDA7DQoJICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlOw0KCSAgICAgICAgICAgIGNhc2UgImxpbmsiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gISF3cmFwcGVkLnZhbHVlLnBhdGg7DQoJICAgICAgICAgICAgY2FzZSAiZGF0ZSI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvTWlsbGlzKCkgIT0gMDsNCgkgICAgICAgICAgICBjYXNlICJkdXJhdGlvbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmFzKCJzZWNvbmRzIikgIT0gMDsNCgkgICAgICAgICAgICBjYXNlICJvYmplY3QiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMod3JhcHBlZC52YWx1ZSkubGVuZ3RoID4gMDsNCgkgICAgICAgICAgICBjYXNlICJhcnJheSI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmxlbmd0aCA+IDA7DQoJICAgICAgICAgICAgY2FzZSAibnVsbCI6DQoJICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCgkgICAgICAgICAgICBjYXNlICJodG1sIjoNCgkgICAgICAgICAgICBjYXNlICJ3aWRnZXQiOg0KCSAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzVHJ1dGh5ID0gaXNUcnV0aHk7DQoJICAgIC8qKiBEZWVwIGNvcHkgYSBmaWVsZC4gKi8NCgkgICAgZnVuY3Rpb24gZGVlcENvcHkoZmllbGQpIHsNCgkgICAgICAgIGlmIChmaWVsZCA9PT0gbnVsbCB8fCBmaWVsZCA9PT0gdW5kZWZpbmVkKQ0KCSAgICAgICAgICAgIHJldHVybiBmaWVsZDsNCgkgICAgICAgIGlmIChWYWx1ZXMuaXNBcnJheShmaWVsZCkpIHsNCgkgICAgICAgICAgICByZXR1cm4gW10uY29uY2F0KGZpZWxkLm1hcCh2ID0+IGRlZXBDb3B5KHYpKSk7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmIChWYWx1ZXMuaXNPYmplY3QoZmllbGQpKSB7DQoJICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt9Ow0KCSAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmaWVsZCkpDQoJICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gZGVlcENvcHkodmFsdWUpOw0KCSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIHsNCgkgICAgICAgICAgICByZXR1cm4gZmllbGQ7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgVmFsdWVzLmRlZXBDb3B5ID0gZGVlcENvcHk7DQoJICAgIGZ1bmN0aW9uIGlzU3RyaW5nKHZhbCkgew0KCSAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gInN0cmluZyI7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzU3RyaW5nID0gaXNTdHJpbmc7DQoJICAgIGZ1bmN0aW9uIGlzTnVtYmVyKHZhbCkgew0KCSAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gIm51bWJlciI7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzTnVtYmVyID0gaXNOdW1iZXI7DQoJICAgIGZ1bmN0aW9uIGlzRGF0ZSh2YWwpIHsNCgkgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEYXRlVGltZV8xOw0KCSAgICB9DQoJICAgIFZhbHVlcy5pc0RhdGUgPSBpc0RhdGU7DQoJICAgIGZ1bmN0aW9uIGlzRHVyYXRpb24odmFsKSB7DQoJICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRHVyYXRpb25fMTsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNEdXJhdGlvbiA9IGlzRHVyYXRpb247DQoJICAgIGZ1bmN0aW9uIGlzTnVsbCh2YWwpIHsNCgkgICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzTnVsbCA9IGlzTnVsbDsNCgkgICAgZnVuY3Rpb24gaXNBcnJheSh2YWwpIHsNCgkgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbCk7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzQXJyYXkgPSBpc0FycmF5Ow0KCSAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsKSB7DQoJICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gImJvb2xlYW4iOw0KCSAgICB9DQoJICAgIFZhbHVlcy5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47DQoJICAgIGZ1bmN0aW9uIGlzTGluayh2YWwpIHsNCgkgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBMaW5rOw0KCSAgICB9DQoJICAgIFZhbHVlcy5pc0xpbmsgPSBpc0xpbms7DQoJICAgIGZ1bmN0aW9uIGlzV2lkZ2V0KHZhbCkgew0KCSAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIFdpZGdldDsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNXaWRnZXQgPSBpc1dpZGdldDsNCgkgICAgZnVuY3Rpb24gaXNIdG1sKHZhbCkgew0KCSAgICAgICAgaWYgKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gInVuZGVmaW5lZCIpIHsNCgkgICAgICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIHsNCgkgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzSHRtbCA9IGlzSHRtbDsNCgkgICAgLyoqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gb2JqZWN0IChhbmQgbm90IGFueSBvdGhlciBkYXRhdmlldy1yZWNvZ25pemVkIG9iamVjdC1saWtlIHR5cGUpLiAqLw0KCSAgICBmdW5jdGlvbiBpc09iamVjdCh2YWwpIHsNCgkgICAgICAgIHJldHVybiAodHlwZW9mIHZhbCA9PSAib2JqZWN0IiAmJg0KCSAgICAgICAgICAgICFpc0h0bWwodmFsKSAmJg0KCSAgICAgICAgICAgICFpc1dpZGdldCh2YWwpICYmDQoJICAgICAgICAgICAgIWlzQXJyYXkodmFsKSAmJg0KCSAgICAgICAgICAgICFpc0R1cmF0aW9uKHZhbCkgJiYNCgkgICAgICAgICAgICAhaXNEYXRlKHZhbCkgJiYNCgkgICAgICAgICAgICAhaXNMaW5rKHZhbCkgJiYNCgkgICAgICAgICAgICB2YWwgIT09IHVuZGVmaW5lZCAmJg0KCSAgICAgICAgICAgICFpc051bGwodmFsKSk7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzT2JqZWN0ID0gaXNPYmplY3Q7DQoJICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsKSB7DQoJICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSAiZnVuY3Rpb24iOw0KCSAgICB9DQoJICAgIFZhbHVlcy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjsNCgl9KShWYWx1ZXMgfHwgKFZhbHVlcyA9IHt9KSk7DQoJLy8vLy8vLy8vLy8vLy8vDQoJLy8gR3JvdXBpbmdzIC8vDQoJLy8vLy8vLy8vLy8vLy8vDQoJdmFyIEdyb3VwaW5nczsNCgkoZnVuY3Rpb24gKEdyb3VwaW5ncykgew0KCSAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gZ3JvdXAgZW50cnkgaXMgYSBzdGFuZGFsb25lIHZhbHVlLCBvciBhIGdyb3VwaW5nIG9mIHN1Yi1lbnRyaWVzLiAqLw0KCSAgICBmdW5jdGlvbiBpc0VsZW1lbnRHcm91cChlbnRyeSkgew0KCSAgICAgICAgcmV0dXJuIFZhbHVlcy5pc09iamVjdChlbnRyeSkgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PSAyICYmICJrZXkiIGluIGVudHJ5ICYmICJyb3dzIiBpbiBlbnRyeTsNCgkgICAgfQ0KCSAgICBHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAgPSBpc0VsZW1lbnRHcm91cDsNCgkgICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgZ3JvdXBpbmcgYXJyYXkuICovDQoJICAgIGZ1bmN0aW9uIGlzR3JvdXBpbmcoZW50cnkpIHsNCgkgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpDQoJICAgICAgICAgICAgaWYgKCFpc0VsZW1lbnRHcm91cChlbGVtZW50KSkNCgkgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KCSAgICAgICAgcmV0dXJuIHRydWU7DQoJICAgIH0NCgkgICAgR3JvdXBpbmdzLmlzR3JvdXBpbmcgPSBpc0dyb3VwaW5nOw0KCSAgICAvKiogQ291bnQgdGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHJlY3Vyc2l2ZSBncm91cGluZy4gKi8NCgkgICAgZnVuY3Rpb24gY291bnQoZWxlbWVudHMpIHsNCgkgICAgICAgIGlmIChpc0dyb3VwaW5nKGVsZW1lbnRzKSkgew0KCSAgICAgICAgICAgIGxldCByZXN1bHQgPSAwOw0KCSAgICAgICAgICAgIGZvciAobGV0IHN1Ymdyb3VwIG9mIGVsZW1lbnRzKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQgKz0gY291bnQoc3ViZ3JvdXAucm93cyk7DQoJICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5sZW5ndGg7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgR3JvdXBpbmdzLmNvdW50ID0gY291bnQ7DQoJfSkoR3JvdXBpbmdzIHx8IChHcm91cGluZ3MgPSB7fSkpOw0KCS8vLy8vLy8vLy8NCgkvLyBMSU5LIC8vDQoJLy8vLy8vLy8vLw0KCS8qKiBUaGUgT2JzaWRpYW4gJ2xpbmsnLCB1c2VkIGZvciB1bmlxdWVseSBkZXNjcmliaW5nIGEgZmlsZSwgaGVhZGVyLCBvciBibG9jay4gKi8NCgljbGFzcyBMaW5rIHsNCgkgICAgY29uc3RydWN0b3IoZmllbGRzKSB7DQoJICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7DQoJICAgIH0NCgkgICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBzcGVjaWZpYyBmaWxlLiAqLw0KCSAgICBzdGF0aWMgZmlsZShwYXRoLCBlbWJlZCA9IGZhbHNlLCBkaXNwbGF5KSB7DQoJICAgICAgICByZXR1cm4gbmV3IExpbmsoew0KCSAgICAgICAgICAgIHBhdGgsDQoJICAgICAgICAgICAgZW1iZWQsDQoJICAgICAgICAgICAgZGlzcGxheSwNCgkgICAgICAgICAgICBzdWJwYXRoOiB1bmRlZmluZWQsDQoJICAgICAgICAgICAgdHlwZTogImZpbGUiLA0KCSAgICAgICAgfSk7DQoJICAgIH0NCgkgICAgc3RhdGljIGluZmVyKGxpbmtwYXRoLCBlbWJlZCA9IGZhbHNlLCBkaXNwbGF5KSB7DQoJICAgICAgICBpZiAobGlua3BhdGguaW5jbHVkZXMoIiNeIikpIHsNCgkgICAgICAgICAgICBsZXQgc3BsaXQgPSBsaW5rcGF0aC5zcGxpdCgiI14iKTsNCgkgICAgICAgICAgICByZXR1cm4gTGluay5ibG9jayhzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKGxpbmtwYXRoLmluY2x1ZGVzKCIjIikpIHsNCgkgICAgICAgICAgICBsZXQgc3BsaXQgPSBsaW5rcGF0aC5zcGxpdCgiIyIpOw0KCSAgICAgICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICByZXR1cm4gTGluay5maWxlKGxpbmtwYXRoLCBlbWJlZCwgZGlzcGxheSk7DQoJICAgIH0NCgkgICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBzcGVjaWZpYyBmaWxlIGFuZCBoZWFkZXIgaW4gdGhhdCBmaWxlLiAqLw0KCSAgICBzdGF0aWMgaGVhZGVyKHBhdGgsIGhlYWRlciwgZW1iZWQsIGRpc3BsYXkpIHsNCgkgICAgICAgIC8vIEhlYWRlcnMgbmVlZCB0byBiZSBub3JtYWxpemVkIHRvIGFscGhhLW51bWVyaWMgJiB3aXRoIGV4dHJhIHNwYWNpbmcgcmVtb3ZlZC4NCgkgICAgICAgIHJldHVybiBuZXcgTGluayh7DQoJICAgICAgICAgICAgcGF0aCwNCgkgICAgICAgICAgICBlbWJlZCwNCgkgICAgICAgICAgICBkaXNwbGF5LA0KCSAgICAgICAgICAgIHN1YnBhdGg6IG5vcm1hbGl6ZUhlYWRlckZvckxpbmsoaGVhZGVyKSwNCgkgICAgICAgICAgICB0eXBlOiAiaGVhZGVyIiwNCgkgICAgICAgIH0pOw0KCSAgICB9DQoJICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgc3BlY2lmaWMgZmlsZSBhbmQgYmxvY2sgaW4gdGhhdCBmaWxlLiAqLw0KCSAgICBzdGF0aWMgYmxvY2socGF0aCwgYmxvY2tJZCwgZW1iZWQsIGRpc3BsYXkpIHsNCgkgICAgICAgIHJldHVybiBuZXcgTGluayh7DQoJICAgICAgICAgICAgcGF0aCwNCgkgICAgICAgICAgICBlbWJlZCwNCgkgICAgICAgICAgICBkaXNwbGF5LA0KCSAgICAgICAgICAgIHN1YnBhdGg6IGJsb2NrSWQsDQoJICAgICAgICAgICAgdHlwZTogImJsb2NrIiwNCgkgICAgICAgIH0pOw0KCSAgICB9DQoJICAgIHN0YXRpYyBmcm9tT2JqZWN0KG9iamVjdCkgew0KCSAgICAgICAgcmV0dXJuIG5ldyBMaW5rKG9iamVjdCk7DQoJICAgIH0NCgkgICAgLyoqIENoZWNrcyBmb3IgbGluayBlcXVhbGl0eSAoaS5lLiwgdGhhdCB0aGUgbGlua3MgYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGV4YWN0IGxvY2F0aW9uKS4gKi8NCgkgICAgZXF1YWxzKG90aGVyKSB7DQoJICAgICAgICBpZiAob3RoZXIgPT0gdW5kZWZpbmVkIHx8IG90aGVyID09IG51bGwpDQoJICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KCSAgICAgICAgcmV0dXJuIHRoaXMucGF0aCA9PSBvdGhlci5wYXRoICYmIHRoaXMudHlwZSA9PSBvdGhlci50eXBlICYmIHRoaXMuc3VicGF0aCA9PSBvdGhlci5zdWJwYXRoOw0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayB0byBpdCdzIG1hcmtkb3duIHJlcHJlc2VudGF0aW9uLiAqLw0KCSAgICB0b1N0cmluZygpIHsNCgkgICAgICAgIHJldHVybiB0aGlzLm1hcmtkb3duKCk7DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIGEgcmF3IG9iamVjdCB3aGljaCBpcyBzZXJpYWxpemF0aW9uLWZyaWVuZGx5LiAqLw0KCSAgICB0b09iamVjdCgpIHsNCgkgICAgICAgIHJldHVybiB7IHBhdGg6IHRoaXMucGF0aCwgdHlwZTogdGhpcy50eXBlLCBzdWJwYXRoOiB0aGlzLnN1YnBhdGgsIGRpc3BsYXk6IHRoaXMuZGlzcGxheSwgZW1iZWQ6IHRoaXMuZW1iZWQgfTsNCgkgICAgfQ0KCSAgICAvKiogVXBkYXRlIHRoaXMgbGluayB3aXRoIGEgbmV3IHBhdGguICovDQoJICAgIHdpdGhQYXRoKHBhdGgpIHsNCgkgICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IHBhdGggfSkpOw0KCSAgICB9DQoJICAgIC8qKiBSZXR1cm4gYSBuZXcgbGluayB3aGljaCBwb2ludHMgdG8gdGhlIHNhbWUgbG9jYXRpb24gYnV0IHdpdGggYSBuZXcgZGlzcGxheSB2YWx1ZS4gKi8NCgkgICAgd2l0aERpc3BsYXkoZGlzcGxheSkgew0KCSAgICAgICAgcmV0dXJuIG5ldyBMaW5rKE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIHsgZGlzcGxheSB9KSk7DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgYSBmaWxlIGxpbmsgaW50byBhIGxpbmsgdG8gYSBzcGVjaWZpYyBoZWFkZXIuICovDQoJICAgIHdpdGhIZWFkZXIoaGVhZGVyKSB7DQoJICAgICAgICByZXR1cm4gTGluay5oZWFkZXIodGhpcy5wYXRoLCBoZWFkZXIsIHRoaXMuZW1iZWQsIHRoaXMuZGlzcGxheSk7DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgYW55IGxpbmsgaW50byBhIGxpbmsgdG8gaXRzIGZpbGUuICovDQoJICAgIHRvRmlsZSgpIHsNCgkgICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy5wYXRoLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpOw0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayBpbnRvIGFuIGVtYmVkZGVkIGxpbmsuICovDQoJICAgIHRvRW1iZWQoKSB7DQoJICAgICAgICBpZiAodGhpcy5lbWJlZCkgew0KCSAgICAgICAgICAgIHJldHVybiB0aGlzOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgbGV0IGxpbmsgPSBuZXcgTGluayh0aGlzKTsNCgkgICAgICAgICAgICBsaW5rLmVtYmVkID0gdHJ1ZTsNCgkgICAgICAgICAgICByZXR1cm4gbGluazsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhIG5vbi1lbWJlZGRlZCBsaW5rLiAqLw0KCSAgICBmcm9tRW1iZWQoKSB7DQoJICAgICAgICBpZiAoIXRoaXMuZW1iZWQpIHsNCgkgICAgICAgICAgICByZXR1cm4gdGhpczsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIGxldCBsaW5rID0gbmV3IExpbmsodGhpcyk7DQoJICAgICAgICAgICAgbGluay5lbWJlZCA9IGZhbHNlOw0KCSAgICAgICAgICAgIHJldHVybiBsaW5rOw0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayB0byBtYXJrZG93biBzbyBpdCBjYW4gYmUgcmVuZGVyZWQuICovDQoJICAgIG1hcmtkb3duKCkgew0KCSAgICAgICAgbGV0IHJlc3VsdCA9ICh0aGlzLmVtYmVkID8gIiEiIDogIiIpICsgIltbIiArIHRoaXMub2JzaWRpYW5MaW5rKCk7DQoJICAgICAgICBpZiAodGhpcy5kaXNwbGF5KSB7DQoJICAgICAgICAgICAgcmVzdWx0ICs9ICJ8IiArIHRoaXMuZGlzcGxheTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJlc3VsdCArPSAifCIgKyBnZXRGaWxlVGl0bGUodGhpcy5wYXRoKTsNCgkgICAgICAgICAgICBpZiAodGhpcy50eXBlID09ICJoZWFkZXIiIHx8IHRoaXMudHlwZSA9PSAiYmxvY2siKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiA+ICIgKyB0aGlzLnN1YnBhdGg7DQoJICAgICAgICB9DQoJICAgICAgICByZXN1bHQgKz0gIl1dIjsNCgkgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgdGhlIGlubmVyIHBhcnQgb2YgdGhlIGxpbmsgdG8gc29tZXRoaW5nIHRoYXQgT2JzaWRpYW4gY2FuIG9wZW4gLyB1bmRlcnN0YW5kLiAqLw0KCSAgICBvYnNpZGlhbkxpbmsoKSB7DQoJICAgICAgICB2YXIgX2EsIF9iOw0KCSAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlKCJ8IiwgIlxcfCIpOw0KCSAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAiaGVhZGVyIikNCgkgICAgICAgICAgICByZXR1cm4gZXNjYXBlZCArICIjIiArICgoX2EgPSB0aGlzLnN1YnBhdGgpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXBsYWNlKCJ8IiwgIlxcfCIpKTsNCgkgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gImJsb2NrIikNCgkgICAgICAgICAgICByZXR1cm4gZXNjYXBlZCArICIjXiIgKyAoKF9iID0gdGhpcy5zdWJwYXRoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVwbGFjZSgifCIsICJcXHwiKSk7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgcmV0dXJuIGVzY2FwZWQ7DQoJICAgIH0NCgkgICAgLyoqIFRoZSBzdHJpcHBlZCBuYW1lIG9mIHRoZSBmaWxlIHRoaXMgbGluayBwb2ludHMgdG8uICovDQoJICAgIGZpbGVOYW1lKCkgew0KCSAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpLnJlcGxhY2UoIi5tZCIsICIiKTsNCgkgICAgfQ0KCX0NCgkvLy8vLy8vLy8vLy8vLy8vLw0KCS8vIFdJREdFVCBCQVNFIC8vDQoJLy8vLy8vLy8vLy8vLy8vLy8NCgkvKioNCgkgKiBBIHRyaXZpYWwgYmFzZSBjbGFzcyB3aGljaCBqdXN0IGRlZmluZXMgdGhlICckd2lkZ2V0JyBpZGVudGlmaWVyIHR5cGUuIFN1YnR5cGVzIG9mDQoJICogd2lkZ2V0IGFyZSByZXNwb25zaWJsZSBmb3IgYWRkaW5nIHdoYXRldmVyIG1ldGFkYXRhIGlzIHJlbGV2YW50LiBJZiB5b3Ugd2FudCB5b3VyIHdpZGdldA0KCSAqIHRvIGhhdmUgcmVuZGVyaW5nIGZ1bmN0aW9uYWxpdHkgKHdoaWNoIHlvdSBwcm9iYWJseSBkbyksIHlvdSBzaG91bGQgZXh0ZW5kIGBSZW5kZXJXaWRnZXRgLg0KCSAqLw0KCWNsYXNzIFdpZGdldCB7DQoJICAgIGNvbnN0cnVjdG9yKCR3aWRnZXQpIHsNCgkgICAgICAgIHRoaXMuJHdpZGdldCA9ICR3aWRnZXQ7DQoJICAgIH0NCgl9DQoJLyoqIEEgdHJpdmlhbCB3aWRnZXQgd2hpY2ggcmVuZGVycyBhIChrZXksIHZhbHVlKSBwYWlyLCBhbmQgYWxsb3dzIGFjY2Vzc2luZyB0aGUga2V5IGFuZCB2YWx1ZS4gKi8NCgljbGFzcyBMaXN0UGFpcldpZGdldCBleHRlbmRzIFdpZGdldCB7DQoJICAgIGNvbnN0cnVjdG9yKGtleSwgdmFsdWUpIHsNCgkgICAgICAgIHN1cGVyKCJkYXRhdmlldzpsaXN0LXBhaXIiKTsNCgkgICAgICAgIHRoaXMua2V5ID0ga2V5Ow0KCSAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOw0KCSAgICB9DQoJICAgIG1hcmtkb3duKCkgew0KCSAgICAgICAgcmV0dXJuIGAke1ZhbHVlcy50b1N0cmluZyh0aGlzLmtleSl9OiAke1ZhbHVlcy50b1N0cmluZyh0aGlzLnZhbHVlKX1gOw0KCSAgICB9DQoJfQ0KCS8qKiBBIHNpbXBsZSB3aWRnZXQgd2hpY2ggcmVuZGVycyBhbiBleHRlcm5hbCBsaW5rLiAqLw0KCWNsYXNzIEV4dGVybmFsTGlua1dpZGdldCBleHRlbmRzIFdpZGdldCB7DQoJICAgIGNvbnN0cnVjdG9yKHVybCwgZGlzcGxheSkgew0KCSAgICAgICAgc3VwZXIoImRhdGF2aWV3OmV4dGVybmFsLWxpbmsiKTsNCgkgICAgICAgIHRoaXMudXJsID0gdXJsOw0KCSAgICAgICAgdGhpcy5kaXNwbGF5ID0gZGlzcGxheTsNCgkgICAgfQ0KCSAgICBtYXJrZG93bigpIHsNCgkgICAgICAgIHZhciBfYTsNCgkgICAgICAgIHJldHVybiBgWyR7KF9hID0gdGhpcy5kaXNwbGF5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnVybH1dKCR7dGhpcy51cmx9KWA7DQoJICAgIH0NCgl9DQoJdmFyIFdpZGdldHM7DQoJKGZ1bmN0aW9uIChXaWRnZXRzKSB7DQoJICAgIC8qKiBDcmVhdGUgYSBsaXN0IHBhaXIgd2lkZ2V0IG1hdGNoaW5nIHRoZSBnaXZlbiBrZXkgYW5kIHZhbHVlLiAqLw0KCSAgICBmdW5jdGlvbiBsaXN0UGFpcihrZXksIHZhbHVlKSB7DQoJICAgICAgICByZXR1cm4gbmV3IExpc3RQYWlyV2lkZ2V0KGtleSwgdmFsdWUpOw0KCSAgICB9DQoJICAgIFdpZGdldHMubGlzdFBhaXIgPSBsaXN0UGFpcjsNCgkgICAgLyoqIENyZWF0ZSBhbiBleHRlcm5hbCBsaW5rIHdpZGdldCB3aGljaCByZW5kZXJzIGFuIGV4dGVybmFsIE9ic2lkaWFuIGxpbmsuICovDQoJICAgIGZ1bmN0aW9uIGV4dGVybmFsTGluayh1cmwsIGRpc3BsYXkpIHsNCgkgICAgICAgIHJldHVybiBuZXcgRXh0ZXJuYWxMaW5rV2lkZ2V0KHVybCwgZGlzcGxheSk7DQoJICAgIH0NCgkgICAgV2lkZ2V0cy5leHRlcm5hbExpbmsgPSBleHRlcm5hbExpbms7DQoJICAgIC8qKiBDaGVja3MgaWYgdGhlIGdpdmVuIHdpZGdldCBpcyBhIGxpc3QgcGFpciB3aWRnZXQuICovDQoJICAgIGZ1bmN0aW9uIGlzTGlzdFBhaXIod2lkZ2V0KSB7DQoJICAgICAgICByZXR1cm4gd2lkZ2V0LiR3aWRnZXQgPT09ICJkYXRhdmlldzpsaXN0LXBhaXIiOw0KCSAgICB9DQoJICAgIFdpZGdldHMuaXNMaXN0UGFpciA9IGlzTGlzdFBhaXI7DQoJICAgIGZ1bmN0aW9uIGlzRXh0ZXJuYWxMaW5rKHdpZGdldCkgew0KCSAgICAgICAgcmV0dXJuIHdpZGdldC4kd2lkZ2V0ID09PSAiZGF0YXZpZXc6ZXh0ZXJuYWwtbGluayI7DQoJICAgIH0NCgkgICAgV2lkZ2V0cy5pc0V4dGVybmFsTGluayA9IGlzRXh0ZXJuYWxMaW5rOw0KCSAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gd2lkZ2V0IGlzIGFueSBraW5kIG9mIGJ1aWx0LWluIHdpZGdldCB3aXRoIHNwZWNpYWwgcmVuZGVyaW5nIGhhbmRsaW5nLiAqLw0KCSAgICBmdW5jdGlvbiBpc0J1aWx0aW4od2lkZ2V0KSB7DQoJICAgICAgICByZXR1cm4gaXNMaXN0UGFpcih3aWRnZXQpIHx8IGlzRXh0ZXJuYWxMaW5rKHdpZGdldCk7DQoJICAgIH0NCgkgICAgV2lkZ2V0cy5pc0J1aWx0aW4gPSBpc0J1aWx0aW47DQoJfSkoV2lkZ2V0cyB8fCAoV2lkZ2V0cyA9IHt9KSk7CgoJLyoqIFV0aWxpdHkgbWV0aG9kcyBmb3IgY3JlYXRpbmcgJiBjb21wYXJpbmcgZmllbGRzLiAqLw0KCXZhciBGaWVsZHM7DQoJKGZ1bmN0aW9uIChGaWVsZHMpIHsNCgkgICAgZnVuY3Rpb24gdmFyaWFibGUobmFtZSkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogInZhcmlhYmxlIiwgbmFtZSB9Ow0KCSAgICB9DQoJICAgIEZpZWxkcy52YXJpYWJsZSA9IHZhcmlhYmxlOw0KCSAgICBmdW5jdGlvbiBsaXRlcmFsKHZhbHVlKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAibGl0ZXJhbCIsIHZhbHVlIH07DQoJICAgIH0NCgkgICAgRmllbGRzLmxpdGVyYWwgPSBsaXRlcmFsOw0KCSAgICBmdW5jdGlvbiBiaW5hcnlPcChsZWZ0LCBvcCwgcmlnaHQpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJiaW5hcnlvcCIsIGxlZnQsIG9wLCByaWdodCB9Ow0KCSAgICB9DQoJICAgIEZpZWxkcy5iaW5hcnlPcCA9IGJpbmFyeU9wOw0KCSAgICBmdW5jdGlvbiBpbmRleChvYmosIGluZGV4KSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiaW5kZXgiLCBvYmplY3Q6IG9iaiwgaW5kZXggfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMuaW5kZXggPSBpbmRleDsNCgkgICAgLyoqIENvbnZlcnRzIGEgc3RyaW5nIGluIGRvdC1ub3RhdGlvbi1mb3JtYXQgaW50byBhIHZhcmlhYmxlIHdoaWNoIGluZGV4ZXMuICovDQoJICAgIGZ1bmN0aW9uIGluZGV4VmFyaWFibGUobmFtZSkgew0KCSAgICAgICAgbGV0IHBhcnRzID0gbmFtZS5zcGxpdCgiLiIpOw0KCSAgICAgICAgbGV0IHJlc3VsdCA9IEZpZWxkcy52YXJpYWJsZShwYXJ0c1swXSk7DQoJICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgcGFydHMubGVuZ3RoOyBpbmRleCsrKSB7DQoJICAgICAgICAgICAgcmVzdWx0ID0gRmllbGRzLmluZGV4KHJlc3VsdCwgRmllbGRzLmxpdGVyYWwocGFydHNbaW5kZXhdKSk7DQoJICAgICAgICB9DQoJICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICB9DQoJICAgIEZpZWxkcy5pbmRleFZhcmlhYmxlID0gaW5kZXhWYXJpYWJsZTsNCgkgICAgZnVuY3Rpb24gbGFtYmRhKGFyZ3MsIHZhbHVlKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAibGFtYmRhIiwgYXJndW1lbnRzOiBhcmdzLCB2YWx1ZSB9Ow0KCSAgICB9DQoJICAgIEZpZWxkcy5sYW1iZGEgPSBsYW1iZGE7DQoJICAgIGZ1bmN0aW9uIGZ1bmMoZnVuYywgYXJncykgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImZ1bmN0aW9uIiwgZnVuYywgYXJndW1lbnRzOiBhcmdzIH07DQoJICAgIH0NCgkgICAgRmllbGRzLmZ1bmMgPSBmdW5jOw0KCSAgICBmdW5jdGlvbiBsaXN0KHZhbHVlcykgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImxpc3QiLCB2YWx1ZXMgfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMubGlzdCA9IGxpc3Q7DQoJICAgIGZ1bmN0aW9uIG9iamVjdCh2YWx1ZXMpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJvYmplY3QiLCB2YWx1ZXMgfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMub2JqZWN0ID0gb2JqZWN0Ow0KCSAgICBmdW5jdGlvbiBuZWdhdGUoY2hpbGQpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJuZWdhdGVkIiwgY2hpbGQgfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMubmVnYXRlID0gbmVnYXRlOw0KCSAgICBmdW5jdGlvbiBpc0NvbXBhcmVPcChvcCkgew0KCSAgICAgICAgcmV0dXJuIG9wID09ICI8PSIgfHwgb3AgPT0gIjwiIHx8IG9wID09ICI+IiB8fCBvcCA9PSAiPj0iIHx8IG9wID09ICIhPSIgfHwgb3AgPT0gIj0iOw0KCSAgICB9DQoJICAgIEZpZWxkcy5pc0NvbXBhcmVPcCA9IGlzQ29tcGFyZU9wOw0KCSAgICBGaWVsZHMuTlVMTCA9IEZpZWxkcy5saXRlcmFsKG51bGwpOw0KCX0pKEZpZWxkcyB8fCAoRmllbGRzID0ge30pKTsKCgkvKiogQVNUIGltcGxlbWVudGF0aW9uIGZvciBxdWVyaWVzIG92ZXIgZGF0YSBzb3VyY2VzLiAqLw0KCS8qKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBzb3VyY2VzLiAqLw0KCXZhciBTb3VyY2VzOw0KCShmdW5jdGlvbiAoU291cmNlcykgew0KCSAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHNlYXJjaGVzIGZyb20gYSB0YWcuICovDQoJICAgIGZ1bmN0aW9uIHRhZyh0YWcpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJ0YWciLCB0YWcgfTsNCgkgICAgfQ0KCSAgICBTb3VyY2VzLnRhZyA9IHRhZzsNCgkgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBmZXRjaGVzIGZyb20gYSBDU1YgZmlsZS4gKi8NCgkgICAgZnVuY3Rpb24gY3N2KHBhdGgpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJjc3YiLCBwYXRoIH07DQoJICAgIH0NCgkgICAgU291cmNlcy5jc3YgPSBjc3Y7DQoJICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggc2VhcmNoZXMgZm9yIGZpbGVzIHVuZGVyIGEgZm9sZGVyIHByZWZpeC4gKi8NCgkgICAgZnVuY3Rpb24gZm9sZGVyKHByZWZpeCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImZvbGRlciIsIGZvbGRlcjogcHJlZml4IH07DQoJICAgIH0NCgkgICAgU291cmNlcy5mb2xkZXIgPSBmb2xkZXI7DQoJICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggc2VhcmNoZXMgZm9yIGZpbGVzIHdoaWNoIGxpbmsgdG8vZnJvbSBhIGdpdmVuIGZpbGUuICovDQoJICAgIGZ1bmN0aW9uIGxpbmsoZmlsZSwgaW5jb21pbmcpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaW5rIiwgZmlsZSwgZGlyZWN0aW9uOiBpbmNvbWluZyA/ICJpbmNvbWluZyIgOiAib3V0Z29pbmciIH07DQoJICAgIH0NCgkgICAgU291cmNlcy5saW5rID0gbGluazsNCgkgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBqb2lucyB0d28gc291cmNlcyBieSBhIGxvZ2ljYWwgb3BlcmF0b3IgKGFuZC9vcikuICovDQoJICAgIGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQsIG9wLCByaWdodCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3AsIHJpZ2h0IH07DQoJICAgIH0NCgkgICAgU291cmNlcy5iaW5hcnlPcCA9IGJpbmFyeU9wOw0KCSAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHRha2VzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdHdvIHNvdXJjZXMuICovDQoJICAgIGZ1bmN0aW9uIGFuZChsZWZ0LCByaWdodCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3A6ICImIiwgcmlnaHQgfTsNCgkgICAgfQ0KCSAgICBTb3VyY2VzLmFuZCA9IGFuZDsNCgkgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCB0YWtlcyB0aGUgdW5pb24gb2YgdHdvIHNvdXJjZXMuICovDQoJICAgIGZ1bmN0aW9uIG9yKGxlZnQsIHJpZ2h0KSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiYmluYXJ5b3AiLCBsZWZ0LCBvcDogInwiLCByaWdodCB9Ow0KCSAgICB9DQoJICAgIFNvdXJjZXMub3IgPSBvcjsNCgkgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBuZWdhdGVzIHRoZSB1bmRlcmx5aW5nIHNvdXJjZS4gKi8NCgkgICAgZnVuY3Rpb24gbmVnYXRlKGNoaWxkKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAibmVnYXRlIiwgY2hpbGQgfTsNCgkgICAgfQ0KCSAgICBTb3VyY2VzLm5lZ2F0ZSA9IG5lZ2F0ZTsNCgkgICAgZnVuY3Rpb24gZW1wdHkoKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiZW1wdHkiIH07DQoJICAgIH0NCgkgICAgU291cmNlcy5lbXB0eSA9IGVtcHR5Ow0KCX0pKFNvdXJjZXMgfHwgKFNvdXJjZXMgPSB7fSkpOwoKCS8qKiBFbW9qaSByZWdleCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIGZsYWdzLiAqLw0KCWNvbnN0IEVNT0pJX1JFR0VYID0gbmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksICIiKTsNCgkvKiogUHJvdmlkZXMgYSBsb29rdXAgdGFibGUgZm9yIHVuaXQgZHVyYXRpb25zIG9mIHRoZSBnaXZlbiB0eXBlLiAqLw0KCWNvbnN0IERVUkFUSU9OX1RZUEVTID0gew0KCSAgICB5ZWFyOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSwNCgkgICAgeWVhcnM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLA0KCSAgICB5cjogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksDQoJICAgIHlyczogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksDQoJICAgIG1vbnRoOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksDQoJICAgIG1vbnRoczogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLA0KCSAgICBtbzogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLA0KCSAgICBtb3M6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwNCgkgICAgd2VlazogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksDQoJICAgIHdlZWtzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSwNCgkgICAgd2s6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLA0KCSAgICB3a3M6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLA0KCSAgICB3OiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSwNCgkgICAgZGF5OiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLA0KCSAgICBkYXlzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLA0KCSAgICBkOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLA0KCSAgICBob3VyOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwNCgkgICAgaG91cnM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLA0KCSAgICBocjogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksDQoJICAgIGhyczogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksDQoJICAgIGg6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLA0KCSAgICBtaW51dGU6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksDQoJICAgIG1pbnV0ZXM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksDQoJICAgIG1pbjogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwNCgkgICAgbWluczogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwNCgkgICAgbTogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSwNCgkgICAgc2Vjb25kOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLA0KCSAgICBzZWNvbmRzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLA0KCSAgICBzZWM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksDQoJICAgIHNlY3M6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksDQoJICAgIHM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksDQoJfTsNCgkvKiogU2hvcnRoYW5kIGZvciBjb21tb24gZGF0ZXMgKHJlbGF0aXZlIHRvIHJpZ2h0IG5vdykuICovDQoJY29uc3QgREFURV9TSE9SVEhBTkRTID0gew0KCSAgICBub3c6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKSwNCgkgICAgdG9kYXk6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5zdGFydE9mKCJkYXkiKSwNCgkgICAgeWVzdGVyZGF5OiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkNCgkgICAgICAgIC5zdGFydE9mKCJkYXkiKQ0KCSAgICAgICAgLm1pbnVzKER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IGRheXM6IDEgfSkpLA0KCSAgICB0b21vcnJvdzogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpDQoJICAgICAgICAuc3RhcnRPZigiZGF5IikNCgkgICAgICAgIC5wbHVzKER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IGRheXM6IDEgfSkpLA0KCSAgICBzb3c6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5zdGFydE9mKCJ3ZWVrIiksDQoJICAgICJzdGFydC1vZi13ZWVrIjogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLnN0YXJ0T2YoIndlZWsiKSwNCgkgICAgZW93OiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuZW5kT2YoIndlZWsiKSwNCgkgICAgImVuZC1vZi13ZWVrIjogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLmVuZE9mKCJ3ZWVrIiksDQoJICAgIHNveTogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLnN0YXJ0T2YoInllYXIiKSwNCgkgICAgInN0YXJ0LW9mLXllYXIiOiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuc3RhcnRPZigieWVhciIpLA0KCSAgICBlb3k6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5lbmRPZigieWVhciIpLA0KCSAgICAiZW5kLW9mLXllYXIiOiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuZW5kT2YoInllYXIiKSwNCgkgICAgc29tOiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuc3RhcnRPZigibW9udGgiKSwNCgkgICAgInN0YXJ0LW9mLW1vbnRoIjogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLnN0YXJ0T2YoIm1vbnRoIiksDQoJICAgIGVvbTogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLmVuZE9mKCJtb250aCIpLA0KCSAgICAiZW5kLW9mLW1vbnRoIjogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLmVuZE9mKCJtb250aCIpLA0KCX07DQoJLyoqDQoJICogS2V5d29yZHMgd2hpY2ggY2Fubm90IGJlIHVzZWQgYXMgdmFyaWFibGVzIGRpcmVjdGx5LiBVc2UgYHJvdy48dGhpbmc+YCBpZiBpdCBpcyBhIHZhcmlhYmxlIHlvdSBoYXZlIGRlZmluZWQgYW5kIHdhbnQNCgkgKiB0byBhY2Nlc3MuDQoJICovDQoJY29uc3QgS0VZV09SRFMgPSBbIkZST00iLCAiV0hFUkUiLCAiTElNSVQiLCAiR1JPVVAiLCAiRkxBVFRFTiJdOw0KCS8vLy8vLy8vLy8vLy8vLw0KCS8vIFV0aWxpdGllcyAvLw0KCS8vLy8vLy8vLy8vLy8vLw0KCS8qKiBTcGxpdCBvbiB1bmVzY2FwZWQgcGlwZXMgaW4gYW4gaW5uZXIgbGluay4gKi8NCglmdW5jdGlvbiBzcGxpdE9uVW5lc2NhcGVkUGlwZShsaW5rKSB7DQoJICAgIGxldCBwaXBlID0gLTE7DQoJICAgIHdoaWxlICgocGlwZSA9IGxpbmsuaW5kZXhPZigifCIsIHBpcGUgKyAxKSkgPj0gMCkgew0KCSAgICAgICAgaWYgKHBpcGUgPiAwICYmIGxpbmtbcGlwZSAtIDFdID09ICJcXCIpDQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICByZXR1cm4gW2xpbmsuc3Vic3RyaW5nKDAsIHBpcGUpLnJlcGxhY2UoL1xcXHwvZywgInwiKSwgbGluay5zdWJzdHJpbmcocGlwZSArIDEpXTsNCgkgICAgfQ0KCSAgICByZXR1cm4gW2xpbmsucmVwbGFjZSgvXFxcfC9nLCAifCIpLCB1bmRlZmluZWRdOw0KCX0NCgkvKiogQXR0ZW1wdCB0byBwYXJzZSB0aGUgaW5zaWRlIG9mIGEgbGluayB0byBwdWxsIG91dCBkaXNwbGF5IG5hbWUsIHN1YnBhdGgsIGV0Yy4gKi8NCglmdW5jdGlvbiBwYXJzZUlubmVyTGluayhyYXdsaW5rKSB7DQoJICAgIGxldCBbbGluaywgZGlzcGxheV0gPSBzcGxpdE9uVW5lc2NhcGVkUGlwZShyYXdsaW5rKTsNCgkgICAgcmV0dXJuIExpbmsuaW5mZXIobGluaywgZmFsc2UsIGRpc3BsYXkpOw0KCX0NCgkvKiogQ3JlYXRlIGEgbGVmdC1hc3NvY2lhdGl2ZSBiaW5hcnkgcGFyc2VyIHdoaWNoIHBhcnNlcyB0aGUgZ2l2ZW4gc3ViLWVsZW1lbnQgYW5kIHNlcGFyYXRvci4gSGFuZGxlcyB3aGl0ZXNwYWNlLiAqLw0KCWZ1bmN0aW9uIGNyZWF0ZUJpbmFyeVBhcnNlcihjaGlsZCwgc2VwLCBjb21iaW5lKSB7DQoJICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChjaGlsZCwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXEocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBzZXAsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgY2hpbGQpLm1hbnkoKSwgKGZpcnN0LCByZXN0KSA9PiB7DQoJICAgICAgICBpZiAocmVzdC5sZW5ndGggPT0gMCkNCgkgICAgICAgICAgICByZXR1cm4gZmlyc3Q7DQoJICAgICAgICBsZXQgbm9kZSA9IGNvbWJpbmUoZmlyc3QsIHJlc3RbMF1bMV0sIHJlc3RbMF1bM10pOw0KCSAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHJlc3QubGVuZ3RoOyBpbmRleCsrKSB7DQoJICAgICAgICAgICAgbm9kZSA9IGNvbWJpbmUobm9kZSwgcmVzdFtpbmRleF1bMV0sIHJlc3RbaW5kZXhdWzNdKTsNCgkgICAgICAgIH0NCgkgICAgICAgIHJldHVybiBub2RlOw0KCSAgICB9KTsNCgl9DQoJZnVuY3Rpb24gY2hhaW5PcHQoYmFzZSwgLi4uZnVuY3MpIHsNCgkgICAgcmV0dXJuIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuY3VzdG9tKChzdWNjZXNzLCBmYWlsdXJlKSA9PiB7DQoJICAgICAgICByZXR1cm4gKGlucHV0LCBpKSA9PiB7DQoJICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGJhc2UuXyhpbnB1dCwgaSk7DQoJICAgICAgICAgICAgaWYgKCFyZXN1bHQuc3RhdHVzKQ0KCSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsNCgkgICAgICAgICAgICAgICAgbGV0IG5leHQgPSBmdW5jKHJlc3VsdC52YWx1ZSkuXyhpbnB1dCwgcmVzdWx0LmluZGV4KTsNCgkgICAgICAgICAgICAgICAgaWYgKCFuZXh0LnN0YXR1cykNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQ7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICB9Ow0KCSAgICB9KTsNCgl9DQoJY29uc3QgRVhQUkVTU0lPTiA9IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuY3JlYXRlTGFuZ3VhZ2Uoew0KCSAgICAvLyBBIGZsb2F0aW5nIHBvaW50IG51bWJlcjsgdGhlIGRlY2ltYWwgcG9pbnQgaXMgb3B0aW9uYWwuDQoJICAgIG51bWJlcjogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvLT9bMC05XSsoXC5bMC05XSspPy8pDQoJICAgICAgICAubWFwKHN0ciA9PiBOdW1iZXIucGFyc2VGbG9hdChzdHIpKQ0KCSAgICAgICAgLmRlc2MoIm51bWJlciIpLA0KCSAgICAvLyBBIHF1b3RlLXN1cnJvdW5kZWQgc3RyaW5nIHdoaWNoIHN1cHBvcnRzIGVzY2FwZSBjaGFyYWN0ZXJzICgnXCcpLg0KCSAgICBzdHJpbmc6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoJyInKQ0KCSAgICAgICAgLnRoZW4ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocS5lc2NhcGVDaGFyYWN0ZXIsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMubm9uZU9mKCciXFwnKSkNCgkgICAgICAgIC5hdExlYXN0KDApDQoJICAgICAgICAubWFwKGNoYXJzID0+IGNoYXJzLmpvaW4oIiIpKSkNCgkgICAgICAgIC5za2lwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCciJykpDQoJICAgICAgICAuZGVzYygic3RyaW5nIiksDQoJICAgIGVzY2FwZUNoYXJhY3RlcjogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiXFwiKQ0KCSAgICAgICAgLnRoZW4ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbnkpDQoJICAgICAgICAubWFwKGVzY2FwZWQgPT4gew0KCSAgICAgICAgLy8gSWYgd2UgYXJlIGVzY2FwaW5nIGEgYmFja3NsYXNoIG9yIGEgcXVvdGUsIHBhc3MgaW4gb24gaW4gZXNjYXBlZCBmb3JtDQoJICAgICAgICBpZiAoZXNjYXBlZCA9PT0gJyInKQ0KCSAgICAgICAgICAgIHJldHVybiAnIic7DQoJICAgICAgICBpZiAoZXNjYXBlZCA9PT0gIlxcIikNCgkgICAgICAgICAgICByZXR1cm4gIlxcIjsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICByZXR1cm4gIlxcIiArIGVzY2FwZWQ7DQoJICAgIH0pLA0KCSAgICAvLyBBIGJvb2xlYW4gdHJ1ZS9mYWxzZSB2YWx1ZS4NCgkgICAgYm9vbDogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvdHJ1ZXxmYWxzZXxUcnVlfEZhbHNlLykNCgkgICAgICAgIC5tYXAoc3RyID0+IHN0ci50b0xvd2VyQ2FzZSgpID09ICJ0cnVlIikNCgkgICAgICAgIC5kZXNjKCJib29sZWFuICgndHJ1ZScgb3IgJ2ZhbHNlJykiKSwNCgkgICAgLy8gQSB0YWcgb2YgdGhlIGZvcm0gJyNzdHVmZi9oZWxsby10aGVyZScuDQoJICAgIHRhZzogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiIyIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvW1xwe0xldHRlcn0wLTlfLy1dL3UpLmRlc2MoInRleHQiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSkubWFueSgpLCAoc3RhcnQsIHJlc3QpID0+IHN0YXJ0ICsgcmVzdC5qb2luKCIiKSkuZGVzYygidGFnICgnI2hlbGxvL3N0dWZmJykiKSwNCgkgICAgLy8gQSB2YXJpYWJsZSBpZGVudGlmaWVyLCB3aGljaCBpcyBhbHBoYW51bWVyaWMgYW5kIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBvci4uLiBlbW9qaS4NCgkgICAgaWRlbnRpZmllcjogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXHB7TGV0dGVyfS91KSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9bMC05XHB7TGV0dGVyfV8tXS91KSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoInRleHQiKSkubWFueSgpLCAoZmlyc3QsIHJlc3QpID0+IGZpcnN0ICsgcmVzdC5qb2luKCIiKSkuZGVzYygidmFyaWFibGUgaWRlbnRpZmllciIpLA0KCSAgICAvLyBBbiBPYnNpZGlhbiBsaW5rIG9mIHRoZSBmb3JtIFtbPGxpbms+XV0uDQoJICAgIGxpbms6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1xbXFsoW15cW1xdXSo/KVxdXF0vdSwgMSkNCgkgICAgICAgIC5tYXAobGlua0lubmVyID0+IHBhcnNlSW5uZXJMaW5rKGxpbmtJbm5lcikpDQoJICAgICAgICAuZGVzYygiZmlsZSBsaW5rIiksDQoJICAgIC8vIEFuIGVtYmVkZGFibGUgbGluayB3aGljaCBjYW4gc3RhcnQgd2l0aCAnIScuIFRoaXMgb3ZlcmxhcHMgd2l0aCB0aGUgbm9ybWFsIG5lZ2F0aW9uIG9wZXJhdG9yLCBzbyBpdCBpcyBvbmx5DQoJICAgIC8vIHByb3ZpZGVkIGZvciBtZXRhZGF0YSBwYXJzaW5nLg0KCSAgICBlbWJlZExpbms6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiEiKS5hdE1vc3QoMSksIHEubGluaywgKHAsIGwpID0+IHsNCgkgICAgICAgIGlmIChwLmxlbmd0aCA+IDApDQoJICAgICAgICAgICAgbC5lbWJlZCA9IHRydWU7DQoJICAgICAgICByZXR1cm4gbDsNCgkgICAgfSkuZGVzYygiZmlsZSBsaW5rIiksDQoJICAgIC8vIEJpbmFyeSBwbHVzIG9yIG1pbnVzIG9wZXJhdG9yLg0KCSAgICBiaW5hcnlQbHVzTWludXM6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1wrfC0vKQ0KCSAgICAgICAgLm1hcChzdHIgPT4gc3RyKQ0KCSAgICAgICAgLmRlc2MoIicrJyBvciAnLSciKSwNCgkgICAgLy8gQmluYXJ5IHRpbWVzIG9yIGRpdmlkZSBvcGVyYXRvci4NCgkgICAgYmluYXJ5TXVsRGl2OiBfID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cKnxcL3wlLykNCgkgICAgICAgIC5tYXAoc3RyID0+IHN0cikNCgkgICAgICAgIC5kZXNjKCInKicgb3IgJy8nIG9yICclJyIpLA0KCSAgICAvLyBCaW5hcnkgY29tcGFyaXNvbiBvcGVyYXRvci4NCgkgICAgYmluYXJ5Q29tcGFyZU9wOiBfID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC8+PXw8PXwhPXw+fDx8PS8pDQoJICAgICAgICAubWFwKHN0ciA9PiBzdHIpDQoJICAgICAgICAuZGVzYygiJz49JyBvciAnPD0nIG9yICchPScgb3IgJz0nIG9yICc+JyBvciAnPCciKSwNCgkgICAgLy8gQmluYXJ5IGJvb2xlYW4gY29tYmluYXRpb24gb3BlcmF0b3IuDQoJICAgIGJpbmFyeUJvb2xlYW5PcDogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvYW5kfG9yfCZ8XHwvaSkNCgkgICAgICAgIC5tYXAoc3RyID0+IHsNCgkgICAgICAgIGlmIChzdHIudG9Mb3dlckNhc2UoKSA9PSAiYW5kIikNCgkgICAgICAgICAgICByZXR1cm4gIiYiOw0KCSAgICAgICAgZWxzZSBpZiAoc3RyLnRvTG93ZXJDYXNlKCkgPT0gIm9yIikNCgkgICAgICAgICAgICByZXR1cm4gInwiOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHJldHVybiBzdHI7DQoJICAgIH0pDQoJICAgICAgICAuZGVzYygiJ2FuZCcgb3IgJ29yJyIpLA0KCSAgICAvLyBBIGRhdGUgd2hpY2ggY2FuIGJlIFlZWVktTU1bLUREVEhIOm1tOnNzXS4NCgkgICAgcm9vdERhdGU6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1xkezR9LyksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCItIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoeWVhciwgXywgbW9udGgpID0+IHsNCgkgICAgICAgIHJldHVybiBEYXRlVGltZV8xLmZyb21PYmplY3QoeyB5ZWFyOiBOdW1iZXIucGFyc2VJbnQoeWVhciksIG1vbnRoOiBOdW1iZXIucGFyc2VJbnQobW9udGgpIH0pOw0KCSAgICB9KS5kZXNjKCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10iKSwNCgkgICAgZGF0ZVNob3J0aGFuZDogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdCguLi5PYmplY3Qua2V5cyhEQVRFX1NIT1JUSEFORFMpDQoJICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aCkNCgkgICAgICAgIC5tYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcpKSwNCgkgICAgZGF0ZTogcSA9PiBjaGFpbk9wdChxLnJvb3REYXRlLCAoeW0pID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCItIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgZGF5KSA9PiB5bS5zZXQoeyBkYXk6IE51bWJlci5wYXJzZUludChkYXkpIH0pKSwgKHltZCkgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIlQiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1xkezJ9LyksIChfLCBob3VyKSA9PiB5bWQuc2V0KHsgaG91cjogTnVtYmVyLnBhcnNlSW50KGhvdXIpIH0pKSwgKHltZGgpID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCI6IiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgbWludXRlKSA9PiB5bWRoLnNldCh7IG1pbnV0ZTogTnVtYmVyLnBhcnNlSW50KG1pbnV0ZSkgfSkpLCAoeW1kaG0pID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCI6IiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgc2Vjb25kKSA9PiB5bWRobS5zZXQoeyBzZWNvbmQ6IE51bWJlci5wYXJzZUludChzZWNvbmQpIH0pKSwgKHltZGhtcykgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIi4iKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1xkezN9LyksIChfLCBtaWxsaXNlY29uZCkgPT4geW1kaG1zLnNldCh7IG1pbGxpc2Vjb25kOiBOdW1iZXIucGFyc2VJbnQobWlsbGlzZWNvbmQpIH0pKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdWNjZWVkKHltZGhtcykgLy8gcGFzcw0KCSAgICApLCAoZHQpID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIrIikub3IocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIi0iKSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHsxLDJ9KDpcZHsyfSk/LyksIChwbSwgaHIpID0+IGR0LnNldFpvbmUoIlVUQyIgKyBwbSArIGhyLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiWiIpLCAoKSA9PiBkdC5zZXRab25lKCJ1dGMiLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiWyIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvWzAtOUEtWmEteistXC9dKy91KSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIl0iKSwgKF9hLCB6b25lLCBfYikgPT4gZHQuc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpKSkNCgkgICAgICAgIC5hc3NlcnQoKGR0KSA9PiBkdC5pc1ZhbGlkLCAidmFsaWQgZGF0ZSIpDQoJICAgICAgICAuZGVzYygiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdIiksDQoJICAgIC8vIEEgZGF0ZSwgcGx1cyB2YXJpb3VzIHNob3J0aGFuZCB0aW1lcyBvZiBkYXkgaXQgY291bGQgYmUuDQoJICAgIGRhdGVQbHVzOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHEuZGF0ZVNob3J0aGFuZC5tYXAoZCA9PiBEQVRFX1NIT1JUSEFORFNbZF0oKSksIHEuZGF0ZSkuZGVzYygiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdIG9yIGluIHNob3J0aGFuZCIpLA0KCSAgICAvLyBBIGR1cmF0aW9uIG9mIHRpbWUuDQoJICAgIGR1cmF0aW9uVHlwZTogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdCguLi5PYmplY3Qua2V5cyhEVVJBVElPTl9UWVBFUykNCgkgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKQ0KCSAgICAgICAgLm1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZykpLA0KCSAgICBkdXJhdGlvbjogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChxLm51bWJlciwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uVHlwZSwgKGNvdW50LCBfLCB0KSA9PiBEVVJBVElPTl9UWVBFU1t0XS5tYXBVbml0cyh4ID0+IHggKiBjb3VudCkpDQoJICAgICAgICAuc2VwQnkxKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLm9yKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkpDQoJICAgICAgICAubWFwKGR1cmF0aW9ucyA9PiBkdXJhdGlvbnMucmVkdWNlKChwLCBjKSA9PiBwLnBsdXMoYykpKQ0KCSAgICAgICAgLmRlc2MoImR1cmF0aW9uIGxpa2UgNGhyMm1pbiIpLA0KCSAgICAvLyBBIHJhdyBudWxsIHZhbHVlLg0KCSAgICByYXdOdWxsOiBfID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJudWxsIiksDQoJICAgIC8vIFNvdXJjZSBwYXJzaW5nLg0KCSAgICB0YWdTb3VyY2U6IHEgPT4gcS50YWcubWFwKHRhZyA9PiBTb3VyY2VzLnRhZyh0YWcpKSwNCgkgICAgY3N2U291cmNlOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJjc3YoIikuc2tpcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBxLnN0cmluZywgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBwYXRoLCBfMikgPT4gU291cmNlcy5jc3YocGF0aCkpLA0KCSAgICBsaW5rSW5jb21pbmdTb3VyY2U6IHEgPT4gcS5saW5rLm1hcChsaW5rID0+IFNvdXJjZXMubGluayhsaW5rLnBhdGgsIHRydWUpKSwNCgkgICAgbGlua091dGdvaW5nU291cmNlOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJvdXRnb2luZygiKS5za2lwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEubGluaywgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBsaW5rLCBfMikgPT4gU291cmNlcy5saW5rKGxpbmsucGF0aCwgZmFsc2UpKSwNCgkgICAgZm9sZGVyU291cmNlOiBxID0+IHEuc3RyaW5nLm1hcChzdHIgPT4gU291cmNlcy5mb2xkZXIoc3RyKSksDQoJICAgIHBhcmVuc1NvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHEuc291cmNlLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChfMSwgXzIsIGZpZWxkLCBfMywgXzQpID0+IGZpZWxkKSwNCgkgICAgbmVnYXRlU291cmNlOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCItIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIhIikpLCBxLmF0b21Tb3VyY2UsIChfLCBzb3VyY2UpID0+IFNvdXJjZXMubmVnYXRlKHNvdXJjZSkpLA0KCSAgICBhdG9tU291cmNlOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHEucGFyZW5zU291cmNlLCBxLm5lZ2F0ZVNvdXJjZSwgcS5saW5rT3V0Z29pbmdTb3VyY2UsIHEubGlua0luY29taW5nU291cmNlLCBxLmZvbGRlclNvdXJjZSwgcS50YWdTb3VyY2UsIHEuY3N2U291cmNlKSwNCgkgICAgYmluYXJ5T3BTb3VyY2U6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYXRvbVNvdXJjZSwgcS5iaW5hcnlCb29sZWFuT3AubWFwKHMgPT4gcyksIFNvdXJjZXMuYmluYXJ5T3ApLA0KCSAgICBzb3VyY2U6IHEgPT4gcS5iaW5hcnlPcFNvdXJjZSwNCgkgICAgLy8gRmllbGQgcGFyc2luZy4NCgkgICAgdmFyaWFibGVGaWVsZDogcSA9PiBxLmlkZW50aWZpZXINCgkgICAgICAgIC5jaGFpbihyID0+IHsNCgkgICAgICAgIGlmIChLRVlXT1JEUy5pbmNsdWRlcyhyLnRvVXBwZXJDYXNlKCkpKSB7DQoJICAgICAgICAgICAgcmV0dXJuIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuZmFpbCgiVmFyaWFibGUgZmllbGRzIGNhbm5vdCBiZSBhIGtleXdvcmQgKCIgKyBLRVlXT1JEUy5qb2luKCIgb3IgIikgKyAiKSIpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgcmV0dXJuIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3VjY2VlZChGaWVsZHMudmFyaWFibGUocikpOw0KCSAgICAgICAgfQ0KCSAgICB9KQ0KCSAgICAgICAgLmRlc2MoInZhcmlhYmxlIiksDQoJICAgIG51bWJlckZpZWxkOiBxID0+IHEubnVtYmVyLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygibnVtYmVyIiksDQoJICAgIHN0cmluZ0ZpZWxkOiBxID0+IHEuc3RyaW5nLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygic3RyaW5nIiksDQoJICAgIGJvb2xGaWVsZDogcSA9PiBxLmJvb2wubWFwKHZhbCA9PiBGaWVsZHMubGl0ZXJhbCh2YWwpKS5kZXNjKCJib29sZWFuIiksDQoJICAgIGRhdGVGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiZGF0ZSgiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmRhdGVQbHVzLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChwcmVmaXgsIF8xLCBkYXRlLCBfMiwgcG9zdGZpeCkgPT4gRmllbGRzLmxpdGVyYWwoZGF0ZSkpLmRlc2MoImRhdGUiKSwNCgkgICAgZHVyYXRpb25GaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiZHVyKCIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHEuZHVyYXRpb24sIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIikiKSwgKHByZWZpeCwgXzEsIGR1ciwgXzIsIHBvc3RmaXgpID0+IEZpZWxkcy5saXRlcmFsKGR1cikpLmRlc2MoImR1cmF0aW9uIiksDQoJICAgIG51bGxGaWVsZDogcSA9PiBxLnJhd051bGwubWFwKF8gPT4gRmllbGRzLk5VTEwpLA0KCSAgICBsaW5rRmllbGQ6IHEgPT4gcS5saW5rLm1hcChmID0+IEZpZWxkcy5saXRlcmFsKGYpKSwNCgkgICAgbGlzdEZpZWxkOiBxID0+IHEuZmllbGQNCgkgICAgICAgIC5zZXBCeShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLCIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkNCgkgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJbIikuc2tpcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UudGhlbihwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiXSIpKSkNCgkgICAgICAgIC5tYXAobCA9PiBGaWVsZHMubGlzdChsKSkNCgkgICAgICAgIC5kZXNjKCJsaXN0ICgnWzEsIDIsIDNdJykiKSwNCgkgICAgb2JqZWN0RmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocS5pZGVudGlmaWVyLm9yKHEuc3RyaW5nKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIjoiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuZmllbGQsIChuYW1lLCBfc2VwLCB2YWx1ZSkgPT4gew0KCSAgICAgICAgcmV0dXJuIHsgbmFtZSwgdmFsdWUgfTsNCgkgICAgfSkNCgkgICAgICAgIC5zZXBCeShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLCIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkNCgkgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJ7Iikuc2tpcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UudGhlbihwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygifSIpKSkNCgkgICAgICAgIC5tYXAodmFscyA9PiB7DQoJICAgICAgICBsZXQgcmVzID0ge307DQoJICAgICAgICBmb3IgKGxldCBlbnRyeSBvZiB2YWxzKQ0KCSAgICAgICAgICAgIHJlc1tlbnRyeS5uYW1lXSA9IGVudHJ5LnZhbHVlOw0KCSAgICAgICAgcmV0dXJuIEZpZWxkcy5vYmplY3QocmVzKTsNCgkgICAgfSkNCgkgICAgICAgIC5kZXNjKCJvYmplY3QgKCd7IGE6IDEsIGI6IDIgfScpIiksDQoJICAgIGF0b21JbmxpbmVGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChxLmRhdGUsIHEuZHVyYXRpb24ubWFwKGQgPT4gbm9ybWFsaXplRHVyYXRpb24oZCkpLCBxLnN0cmluZywgcS50YWcsIHEuZW1iZWRMaW5rLCBxLmJvb2wsIHEubnVtYmVyLCBxLnJhd051bGwpLA0KCSAgICBpbmxpbmVGaWVsZExpc3Q6IHEgPT4gcS5hdG9tSW5saW5lRmllbGQuc2VwQnkocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkubG9va2FoZWFkKHEuYXRvbUlubGluZUZpZWxkKSksDQoJICAgIGlubGluZUZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHEuYXRvbUlubGluZUZpZWxkLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLCIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5pbmxpbmVGaWVsZExpc3QsIChmLCBfcywgbCkgPT4gW2ZdLmNvbmNhdChsKSksIHEuYXRvbUlubGluZUZpZWxkKSwNCgkgICAgYXRvbUZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KA0KCSAgICAvLyBQbGFjZSBlbWJlZCBsaW5rcyBhYm92ZSBuZWdhdGVkIGZpZWxkcyBhcyB0aGV5IGFyZSB0aGUgc3BlY2lhbCBwYXJzZXIgY2FzZSAnIVtbdGhpbmddXScgYW5kIGFyZSBnZW5lcmFsbHkgdW5hbWJpZ2lvdXMuDQoJICAgIHEuZW1iZWRMaW5rLm1hcChsID0+IEZpZWxkcy5saXRlcmFsKGwpKSwgcS5uZWdhdGVkRmllbGQsIHEubGlua0ZpZWxkLCBxLmxpc3RGaWVsZCwgcS5vYmplY3RGaWVsZCwgcS5sYW1iZGFGaWVsZCwgcS5wYXJlbnNGaWVsZCwgcS5ib29sRmllbGQsIHEubnVtYmVyRmllbGQsIHEuc3RyaW5nRmllbGQsIHEuZGF0ZUZpZWxkLCBxLmR1cmF0aW9uRmllbGQsIHEubnVsbEZpZWxkLCBxLnZhcmlhYmxlRmllbGQpLA0KCSAgICBpbmRleEZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHEuYXRvbUZpZWxkLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChxLmRvdFBvc3RmaXgsIHEuaW5kZXhQb3N0Zml4LCBxLmZ1bmN0aW9uUG9zdGZpeCkubWFueSgpLCAob2JqLCBwb3N0Zml4ZXMpID0+IHsNCgkgICAgICAgIGxldCByZXN1bHQgPSBvYmo7DQoJICAgICAgICBmb3IgKGxldCBwb3N0IG9mIHBvc3RmaXhlcykgew0KCSAgICAgICAgICAgIHN3aXRjaCAocG9zdC50eXBlKSB7DQoJICAgICAgICAgICAgICAgIGNhc2UgImRvdCI6DQoJICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBGaWVsZHMuaW5kZXgocmVzdWx0LCBGaWVsZHMubGl0ZXJhbChwb3N0LmZpZWxkKSk7DQoJICAgICAgICAgICAgICAgICAgICBicmVhazsNCgkgICAgICAgICAgICAgICAgY2FzZSAiaW5kZXgiOg0KCSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRmllbGRzLmluZGV4KHJlc3VsdCwgcG9zdC5maWVsZCk7DQoJICAgICAgICAgICAgICAgICAgICBicmVhazsNCgkgICAgICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOg0KCSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRmllbGRzLmZ1bmMocmVzdWx0LCBwb3N0LmZpZWxkcyk7DQoJICAgICAgICAgICAgICAgICAgICBicmVhazsNCgkgICAgICAgICAgICB9DQoJICAgICAgICB9DQoJICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICB9KSwNCgkgICAgbmVnYXRlZEZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIhIiksIHEuaW5kZXhGaWVsZCwgKF8sIGZpZWxkKSA9PiBGaWVsZHMubmVnYXRlKGZpZWxkKSkuZGVzYygibmVnYXRlZCBmaWVsZCIpLA0KCSAgICBwYXJlbnNGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHEuZmllbGQsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIikiKSwgKF8xLCBfMiwgZmllbGQsIF8zLCBfNCkgPT4gZmllbGQpLA0KCSAgICBsYW1iZGFGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChxLmlkZW50aWZpZXINCgkgICAgICAgIC5zZXBCeShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLCIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSkNCgkgICAgICAgIC53cmFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIoIikudHJpbShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKSIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCI9PiIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5maWVsZCwgKGlkZW50LCBfaWdub3JlLCB2YWx1ZSkgPT4gew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImxhbWJkYSIsIGFyZ3VtZW50czogaWRlbnQsIHZhbHVlIH07DQoJICAgIH0pLA0KCSAgICBkb3RQb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIuIiksIHEuaWRlbnRpZmllciwgKF8sIGZpZWxkKSA9PiB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiZG90IiwgZmllbGQ6IGZpZWxkIH07DQoJICAgIH0pLA0KCSAgICBpbmRleFBvc3RmaXg6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIlsiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmZpZWxkLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJdIiksIChfLCBfMiwgZmllbGQsIF8zLCBfNCkgPT4gew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImluZGV4IiwgZmllbGQgfTsNCgkgICAgfSksDQoJICAgIGZ1bmN0aW9uUG9zdGZpeDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKCIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHEuZmllbGQuc2VwQnkocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChfLCBfMSwgZmllbGRzLCBfMiwgXzMpID0+IHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJmdW5jdGlvbiIsIGZpZWxkcyB9Ow0KCSAgICB9KSwNCgkgICAgLy8gVGhlIHByZWNlZGVuY2UgaGllcmFyY2h5IG9mIG9wZXJhdG9ycyAtIG11bHRpcGx5L2RpdmlkZSwgYWRkL3N1YnRyYWN0LCBjb21wYXJlLCBhbmQgdGhlbiBib29sZWFuIG9wZXJhdGlvbnMuDQoJICAgIGJpbmFyeU11bERpdkZpZWxkOiBxID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmluZGV4RmllbGQsIHEuYmluYXJ5TXVsRGl2LCBGaWVsZHMuYmluYXJ5T3ApLA0KCSAgICBiaW5hcnlQbHVzTWludXNGaWVsZDogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlNdWxEaXZGaWVsZCwgcS5iaW5hcnlQbHVzTWludXMsIEZpZWxkcy5iaW5hcnlPcCksDQoJICAgIGJpbmFyeUNvbXBhcmVGaWVsZDogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlQbHVzTWludXNGaWVsZCwgcS5iaW5hcnlDb21wYXJlT3AsIEZpZWxkcy5iaW5hcnlPcCksDQoJICAgIGJpbmFyeUJvb2xlYW5GaWVsZDogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlDb21wYXJlRmllbGQsIHEuYmluYXJ5Qm9vbGVhbk9wLCBGaWVsZHMuYmluYXJ5T3ApLA0KCSAgICBiaW5hcnlPcEZpZWxkOiBxID0+IHEuYmluYXJ5Qm9vbGVhbkZpZWxkLA0KCSAgICBmaWVsZDogcSA9PiBxLmJpbmFyeU9wRmllbGQsDQoJfSk7CgoJLyoqIFBhcnNlIGlubGluZSBmaWVsZHMgYW5kIG90aGVyIGVtYmVkZGVkIG1ldGFkYXRhIGluIGEgbGluZS4gKi8NCgkvKiogVGhlIHdyYXBwZXIgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhbiBpbmxpbmUgZmllbGQuICovDQoJY29uc3QgSU5MSU5FX0ZJRUxEX1dSQVBQRVJTID0gT2JqZWN0LmZyZWV6ZSh7DQoJICAgICJbIjogIl0iLA0KCSAgICAiKCI6ICIpIiwNCgl9KTsNCgkvKioNCgkgKiBGaW5kIGEgbWF0Y2hpbmcgY2xvc2luZyBicmFja2V0IHRoYXQgb2NjdXJzIGF0IG9yIGFmdGVyIGBzdGFydGAsIHJlc3BlY3RpbmcgbmVzdGluZyBhbmQgZXNjYXBlcy4gSWYgZm91bmQsDQoJICogcmV0dXJucyB0aGUgdmFsdWUgY29udGFpbmVkIHdpdGhpbiBhbmQgdGhlIHN0cmluZyBpbmRleCBhZnRlciB0aGUgZW5kIG9mIHRoZSB2YWx1ZS4NCgkgKi8NCglmdW5jdGlvbiBmaW5kQ2xvc2luZyhsaW5lLCBzdGFydCwgb3BlbiwgY2xvc2UpIHsNCgkgICAgbGV0IG5lc3RpbmcgPSAwOw0KCSAgICBsZXQgZXNjYXBlZCA9IGZhbHNlOw0KCSAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0OyBpbmRleCA8IGxpbmUubGVuZ3RoOyBpbmRleCsrKSB7DQoJICAgICAgICBsZXQgY2hhciA9IGxpbmUuY2hhckF0KGluZGV4KTsNCgkgICAgICAgIC8vIEFsbG93cyBmb3IgZG91YmxlIGVzY2FwZXMgbGlrZSAnXFwnIHRvIGJlIHJlbmRlcmVkIG5vcm1hbGx5Lg0KCSAgICAgICAgaWYgKGNoYXIgPT0gIlxcIikgew0KCSAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDsNCgkgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgIH0NCgkgICAgICAgIC8vIElmIGVzY2FwZWQsIGlnbm9yZSB0aGUgbmV4dCBjaGFyYWN0ZXIgZm9yIGNvbXB1dGluZyBuZXN0aW5nLCByZWdhcmRsZXNzIG9mIHdoYXQgaXQgaXMuDQoJICAgICAgICBpZiAoZXNjYXBlZCkgew0KCSAgICAgICAgICAgIGVzY2FwZWQgPSBmYWxzZTsNCgkgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgIH0NCgkgICAgICAgIGlmIChjaGFyID09IG9wZW4pDQoJICAgICAgICAgICAgbmVzdGluZysrOw0KCSAgICAgICAgZWxzZSBpZiAoY2hhciA9PSBjbG9zZSkNCgkgICAgICAgICAgICBuZXN0aW5nLS07DQoJICAgICAgICAvLyBPbmx5IG9jY3VycyBpZiB3ZSBhcmUgb24gYSBjbG9zZSBjaGFyYWN0ZXIgYW5kIHRyaGVyZSBpcyBubyBtb3JlIG5lc3RpbmcuDQoJICAgICAgICBpZiAobmVzdGluZyA8IDApDQoJICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBpbmRleCkudHJpbSgpLCBlbmRJbmRleDogaW5kZXggKyAxIH07DQoJICAgICAgICBlc2NhcGVkID0gZmFsc2U7DQoJICAgIH0NCgkgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgl9DQoJLyoqIEZpbmQgdGhlICc6Oicgc2VwYXJhdG9yIGluIGFuIGlubGluZSBmaWVsZC4gKi8NCglmdW5jdGlvbiBmaW5kU2VwYXJhdG9yKGxpbmUsIHN0YXJ0KSB7DQoJICAgIGxldCBzZXAgPSBsaW5lLmluZGV4T2YoIjo6Iiwgc3RhcnQpOw0KCSAgICBpZiAoc2VwIDwgMCkNCgkgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIHJldHVybiB7IGtleTogbGluZS5zdWJzdHJpbmcoc3RhcnQsIHNlcCkudHJpbSgpLCB2YWx1ZUluZGV4OiBzZXAgKyAyIH07DQoJfQ0KCS8qKiBUcnkgdG8gY29tcGxldGVseSBwYXJzZSBhbiBpbmxpbmUgZmllbGQgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiBBc3N1ZW1zIGBzdGFydGAgaXMgb24gYSB3cmFwcGluZyBjaGFyYWN0ZXIuICovDQoJZnVuY3Rpb24gZmluZFNwZWNpZmljSW5saW5lRmllbGQobGluZSwgc3RhcnQpIHsNCgkgICAgbGV0IG9wZW4gPSBsaW5lLmNoYXJBdChzdGFydCk7DQoJICAgIGxldCBrZXkgPSBmaW5kU2VwYXJhdG9yKGxpbmUsIHN0YXJ0ICsgMSk7DQoJICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkNCgkgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIC8vIEZhaWwgdGhlIG1hdGNoIGlmIHdlIGZpbmQgYW55IHNlcGFyYXRvciBjaGFyYWN0ZXJzIChub3QgYWxsb3dlZCBpbiBrZXlzKS4NCgkgICAgZm9yIChsZXQgc2VwIG9mIE9iamVjdC5rZXlzKElOTElORV9GSUVMRF9XUkFQUEVSUykuY29uY2F0KE9iamVjdC52YWx1ZXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKSkpIHsNCgkgICAgICAgIGlmIChrZXkua2V5LmluY2x1ZGVzKHNlcCkpDQoJICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgkgICAgfQ0KCSAgICBsZXQgdmFsdWUgPSBmaW5kQ2xvc2luZyhsaW5lLCBrZXkudmFsdWVJbmRleCwgb3BlbiwgSU5MSU5FX0ZJRUxEX1dSQVBQRVJTW29wZW5dKTsNCgkgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICByZXR1cm4gew0KCSAgICAgICAga2V5OiBrZXkua2V5LA0KCSAgICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLA0KCSAgICAgICAgc3RhcnQ6IHN0YXJ0LA0KCSAgICAgICAgc3RhcnRWYWx1ZToga2V5LnZhbHVlSW5kZXgsDQoJICAgICAgICBlbmQ6IHZhbHVlLmVuZEluZGV4LA0KCSAgICAgICAgd3JhcHBpbmc6IG9wZW4sDQoJICAgIH07DQoJfQ0KCS8qKiBQYXJzZSBhIHRleHR1YWwgaW5saW5lIGZpZWxkIHZhbHVlIGludG8gc29tZXRoaW5nIHdlIGNhbiB3b3JrIHdpdGguICovDQoJZnVuY3Rpb24gcGFyc2VJbmxpbmVWYWx1ZSh2YWx1ZSkgew0KCSAgICAvLyBFbXB0eSBpbmxpbmUgdmFsdWVzIChpLmUuLCBubyB0ZXh0KSBzaG91bGQgbWFwIHRvIG51bGwgdG8gbWF0Y2ggbG9uZy10ZXJtIERhdGF2aWV3IHNlbWFudGljcy4NCgkgICAgLy8gTnVsbCBpcyBhbHNvIGEgbW9yZSB1bml2ZXJzYWwgdHlwZSB0byBkZWFsIHdpdGggdGhhbiBzdHJpbmdzLCBzaW5jZSBhbGwgZnVuY3Rpb25zIGFjY2VwdCBudWxscy4NCgkgICAgaWYgKHZhbHVlLnRyaW0oKSA9PSAiIikNCgkgICAgICAgIHJldHVybiBudWxsOw0KCSAgICAvLyBUaGUgc3RyaXBwZWQgbGl0ZXJhbCBmaWVsZCBwYXJzZXIgdW5kZXJzdGFuZHMgYWxsIG9mIHRoZSBub24tYXJyYXkvbm9uLW9iamVjdCBmaWVsZHMgYW5kIGNhbiBwYXJzZSB0aGVtIGZvciB1cy4NCgkgICAgLy8gSW5saW5lIGZpZWxkIG9iamVjdHMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkOyBpbmxpbmUgYXJyYXkgb2JqZWN0cyBoYXZlIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHBhcnNlcg0KCSAgICAvLyBzZXBhcmF0ZWx5Lg0KCSAgICBsZXQgaW5saW5lID0gRVhQUkVTU0lPTi5pbmxpbmVGaWVsZC5wYXJzZSh2YWx1ZSk7DQoJICAgIGlmIChpbmxpbmUuc3RhdHVzKQ0KCSAgICAgICAgcmV0dXJuIGlubGluZS52YWx1ZTsNCgkgICAgZWxzZQ0KCSAgICAgICAgcmV0dXJuIHZhbHVlOw0KCX0NCgkvKiogRXh0cmFjdHMgaW5saW5lIGZpZWxkcyBvZiB0aGUgZm9ybSAnW2tleTo6IHZhbHVlXScgZnJvbSBhIGxpbmUgb2YgdGV4dC4gVGhpcyBpcyBkb25lIGluIGEgcmVsYXRpdmVseQ0KCSAqICJyb2J1c3QiIHdheSB0byBhdm9pZCBmYWlsaW5nIGR1ZSB0byBiYWQgbmVzdGluZyBvciBvdGhlciBpbnRlcmZlcmluZyBNYXJrZG93biBzeW1ib2xzOg0KCSAqDQoJICogLSBMb29rIGZvciBhbnkgd3JhcHBlcnMgKCdbJyBhbmQgJygnKSBpbiB0aGUgbGluZSwgdHJ5aW5nIHRvIHBhcnNlIHdoYXRldmVyIGNvbWVzIGFmdGVyIGl0IGFzIGFuIGlubGluZSBrZXk6Oi4NCgkgKiAtIElmIHN1Y2Nlc3NmdWwsIHNjYW4gdW50aWwgeW91IGZpbmQgYSBtYXRjaGluZyBlbmQgYnJhY2tldCwgYW5kIHBhcnNlIHdoYXRldmVyIHJlbWFpbnMgYXMgYW4gaW5saW5lIHZhbHVlLg0KCSAqLw0KCWZ1bmN0aW9uIGV4dHJhY3RJbmxpbmVGaWVsZHMobGluZSwgaW5jbHVkZVRhc2tGaWVsZHMgPSBmYWxzZSkgew0KCSAgICBsZXQgZmllbGRzID0gW107DQoJICAgIGZvciAobGV0IHdyYXBwZXIgb2YgT2JqZWN0LmtleXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKSkgew0KCSAgICAgICAgbGV0IGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlcik7DQoJICAgICAgICB3aGlsZSAoZm91bmRJbmRleCA+PSAwKSB7DQoJICAgICAgICAgICAgbGV0IHBhcnNlZEZpZWxkID0gZmluZFNwZWNpZmljSW5saW5lRmllbGQobGluZSwgZm91bmRJbmRleCk7DQoJICAgICAgICAgICAgaWYgKCFwYXJzZWRGaWVsZCkgew0KCSAgICAgICAgICAgICAgICBmb3VuZEluZGV4ID0gbGluZS5pbmRleE9mKHdyYXBwZXIsIGZvdW5kSW5kZXggKyAxKTsNCgkgICAgICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIGZpZWxkcy5wdXNoKHBhcnNlZEZpZWxkKTsNCgkgICAgICAgICAgICBmb3VuZEluZGV4ID0gbGluZS5pbmRleE9mKHdyYXBwZXIsIHBhcnNlZEZpZWxkLmVuZCk7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgaWYgKGluY2x1ZGVUYXNrRmllbGRzKQ0KCSAgICAgICAgZmllbGRzID0gZmllbGRzLmNvbmNhdChleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMobGluZSkpOw0KCSAgICBmaWVsZHMuc29ydCgoYSwgYikgPT4gYS5zdGFydCAtIGIuc3RhcnQpOw0KCSAgICByZXR1cm4gZmllbGRzOw0KCX0NCgkvKiogVmFsaWRhdGVzIHRoYXQgYSByYXcgZmllbGQgbmFtZSBoYXMgYSB2YWxpZCBmb3JtLiAqLw0KCWNvbnN0IEZVTExfTElORV9LRVlfUEFSVCA9IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAidSIpKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1swLTlccHtMZXR0ZXJ9XHdcc18vLV0rL3UpKQ0KCSAgICAubWFueSgpDQoJICAgIC5tYXAocGFydHMgPT4gcGFydHMuam9pbigiIikpOw0KCWNvbnN0IEZVTExfTElORV9LRVlfUEFSU0VSID0gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1teMC05XHdccHtMZXR0ZXJ9XSovdSkNCgkgICAgLnRoZW4oRlVMTF9MSU5FX0tFWV9QQVJUKQ0KCSAgICAuc2tpcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvW19cKn5gXSovdSkpOw0KCS8qKiBBdHRlbXB0IHRvIGV4dHJhY3QgYSBmdWxsLWxpbmUgZmllbGQgKEtleTo6IFZhbHVlIGNvbnN1bWluZyB0aGUgZW50aXJlIGNvbnRlbnQgbGluZSkuICovDQoJZnVuY3Rpb24gZXh0cmFjdEZ1bGxMaW5lRmllbGQodGV4dCkgew0KCSAgICBsZXQgc2VwID0gZmluZFNlcGFyYXRvcih0ZXh0LCAwKTsNCgkgICAgaWYgKCFzZXApDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICAvLyBXZSBuZWVkIHRvIHBvc3QtcHJvY2VzcyB0aGUga2V5IHRvIGRyb3AgdW5uZWNlc3Nhcnkgb3BlbmluZyBhbm5vdGF0aW9ucyBhcyB3ZWxsIGFzDQoJICAgIC8vIGRyb3Agc3Vycm91bmRpbmcgTWFya2Rvd24uDQoJICAgIGxldCByZWFsS2V5ID0gRlVMTF9MSU5FX0tFWV9QQVJTRVIucGFyc2Uoc2VwLmtleSk7DQoJICAgIGlmICghcmVhbEtleS5zdGF0dXMpDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICByZXR1cm4gew0KCSAgICAgICAga2V5OiByZWFsS2V5LnZhbHVlLA0KCSAgICAgICAgdmFsdWU6IHRleHQuc3Vic3RyaW5nKHNlcC52YWx1ZUluZGV4KS50cmltKCksDQoJICAgICAgICBzdGFydDogMCwNCgkgICAgICAgIHN0YXJ0VmFsdWU6IHNlcC52YWx1ZUluZGV4LA0KCSAgICAgICAgZW5kOiB0ZXh0Lmxlbmd0aCwNCgkgICAgfTsNCgl9DQoJY29uc3QgQ1JFQVRFRF9EQVRFX1JFR0VYID0gL1x1ezI3OTV9XHMqKFxkezR9LVxkezJ9LVxkezJ9KS91Ow0KCWNvbnN0IERVRV9EQVRFX1JFR0VYID0gL1tcdXsxRjRDNX1cdXsxRjRDNn1cdXsxRjVEM31cdXtGRTBGfV17MSx9XHMqKFxkezR9LVxkezJ9LVxkezJ9KS91Ow0KCWNvbnN0IERPTkVfREFURV9SRUdFWCA9IC9cdXsyNzA1fVxzKihcZHs0fS1cZHsyfS1cZHsyfSkvdTsNCgkvKiogUGFyc2Ugc3BlY2lhbCBjb21wbGV0ZWQvZHVlL2RvbmUgdGFzayBmaWVsZHMgd2hpY2ggYXJlIG1hcmtlZCB2aWEgZW1vamkuICovDQoJZnVuY3Rpb24gZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmUpIHsNCgkgICAgbGV0IHJlc3VsdHMgPSBbXTsNCgkgICAgbGV0IGNyZWF0ZWRNYXRjaCA9IENSRUFURURfREFURV9SRUdFWC5leGVjKGxpbmUpOw0KCSAgICBpZiAoY3JlYXRlZE1hdGNoKQ0KCSAgICAgICAgcmVzdWx0cy5wdXNoKHsNCgkgICAgICAgICAgICBrZXk6ICJjcmVhdGVkIiwNCgkgICAgICAgICAgICB2YWx1ZTogY3JlYXRlZE1hdGNoWzFdLA0KCSAgICAgICAgICAgIHN0YXJ0OiBjcmVhdGVkTWF0Y2guaW5kZXgsDQoJICAgICAgICAgICAgc3RhcnRWYWx1ZTogY3JlYXRlZE1hdGNoLmluZGV4ICsgMSwNCgkgICAgICAgICAgICBlbmQ6IGNyZWF0ZWRNYXRjaC5pbmRleCArIGNyZWF0ZWRNYXRjaFswXS5sZW5ndGgsDQoJICAgICAgICAgICAgd3JhcHBpbmc6ICJlbW9qaS1zaG9ydGhhbmQiLA0KCSAgICAgICAgfSk7DQoJICAgIGxldCBkdWVNYXRjaCA9IERVRV9EQVRFX1JFR0VYLmV4ZWMobGluZSk7DQoJICAgIGlmIChkdWVNYXRjaCkNCgkgICAgICAgIHJlc3VsdHMucHVzaCh7DQoJICAgICAgICAgICAga2V5OiAiZHVlIiwNCgkgICAgICAgICAgICB2YWx1ZTogZHVlTWF0Y2hbMV0sDQoJICAgICAgICAgICAgc3RhcnQ6IGR1ZU1hdGNoLmluZGV4LA0KCSAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGR1ZU1hdGNoLmluZGV4ICsgMSwNCgkgICAgICAgICAgICBlbmQ6IGR1ZU1hdGNoLmluZGV4ICsgZHVlTWF0Y2hbMF0ubGVuZ3RoLA0KCSAgICAgICAgICAgIHdyYXBwaW5nOiAiZW1vamktc2hvcnRoYW5kIiwNCgkgICAgICAgIH0pOw0KCSAgICBsZXQgY29tcGxldGVkTWF0Y2ggPSBET05FX0RBVEVfUkVHRVguZXhlYyhsaW5lKTsNCgkgICAgaWYgKGNvbXBsZXRlZE1hdGNoKQ0KCSAgICAgICAgcmVzdWx0cy5wdXNoKHsNCgkgICAgICAgICAgICBrZXk6ICJjb21wbGV0aW9uIiwNCgkgICAgICAgICAgICB2YWx1ZTogY29tcGxldGVkTWF0Y2hbMV0sDQoJICAgICAgICAgICAgc3RhcnQ6IGNvbXBsZXRlZE1hdGNoLmluZGV4LA0KCSAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGNvbXBsZXRlZE1hdGNoLmluZGV4ICsgMSwNCgkgICAgICAgICAgICBlbmQ6IGNvbXBsZXRlZE1hdGNoLmluZGV4ICsgY29tcGxldGVkTWF0Y2hbMF0ubGVuZ3RoLA0KCSAgICAgICAgICAgIHdyYXBwaW5nOiAiZW1vamktc2hvcnRoYW5kIiwNCgkgICAgICAgIH0pOw0KCSAgICByZXR1cm4gcmVzdWx0czsNCgl9CgoJLyoqIEFsbCBleHRyYWN0ZWQgbWFya2Rvd24gZmlsZSBtZXRhZGF0YSBvYnRhaW5lZCBmcm9tIGEgZmlsZS4gKi8NCgljbGFzcyBQYWdlTWV0YWRhdGEgew0KCSAgICBjb25zdHJ1Y3RvcihwYXRoLCBpbml0KSB7DQoJICAgICAgICB0aGlzLnBhdGggPSBwYXRoOw0KCSAgICAgICAgdGhpcy5maWVsZHMgPSBuZXcgTWFwKCk7DQoJICAgICAgICB0aGlzLmZyb250bWF0dGVyID0ge307DQoJICAgICAgICB0aGlzLnRhZ3MgPSBuZXcgU2V0KCk7DQoJICAgICAgICB0aGlzLmFsaWFzZXMgPSBuZXcgU2V0KCk7DQoJICAgICAgICB0aGlzLmxpbmtzID0gW107DQoJICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpOw0KCSAgICAgICAgdGhpcy5saXN0cyA9ICh0aGlzLmxpc3RzIHx8IFtdKS5tYXAobCA9PiBuZXcgTGlzdEl0ZW0obCkpOw0KCSAgICB9DQoJICAgIC8qKiBDYW5vbmljYWxpemUgcmF3IGxpbmtzIGFuZCBvdGhlciBkYXRhIGluIHBhcnRpYWwgZGF0YSB3aXRoIG5vcm1hbGl6ZXJzLCByZXR1cm5pbmcgYSBjb21wbGV0ZWQgb2JqZWN0LiAqLw0KCSAgICBzdGF0aWMgY2Fub25pY2FsaXplKGRhdGEsIGxpbmtOb3JtYWxpemVyKSB7DQoJICAgICAgICAvLyBNdXRhdGUgdGhlIGRhdGEgZm9yIG5vdywgd2hpY2ggaXMgcHJvYmFibHkgYSBiYWQgaWRlYSBidXQuLi4gYWxsIHdlbGwuDQoJICAgICAgICBpZiAoZGF0YS5mcm9udG1hdHRlcikgew0KCSAgICAgICAgICAgIGRhdGEuZnJvbnRtYXR0ZXIgPSBWYWx1ZXMubWFwTGVhdmVzKGRhdGEuZnJvbnRtYXR0ZXIsIHQgPT4gVmFsdWVzLmlzTGluayh0KSA/IGxpbmtOb3JtYWxpemVyKHQpIDogdCk7DQoJICAgICAgICB9DQoJICAgICAgICBpZiAoZGF0YS5maWVsZHMpIHsNCgkgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgZGF0YS5maWVsZHMuZW50cmllcygpKSB7DQoJICAgICAgICAgICAgICAgIGRhdGEuZmllbGRzLnNldChrZXksIFZhbHVlcy5tYXBMZWF2ZXModmFsdWUsIHQgPT4gKFZhbHVlcy5pc0xpbmsodCkgPyBsaW5rTm9ybWFsaXplcih0KSA6IHQpKSk7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgfQ0KCSAgICAgICAgaWYgKGRhdGEubGlzdHMpIHsNCgkgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGRhdGEubGlzdHMpIHsNCgkgICAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIGl0ZW0uZmllbGRzLmVudHJpZXMoKSkgew0KCSAgICAgICAgICAgICAgICAgICAgaXRlbS5maWVsZHMuc2V0KGtleSwgdmFsdWUubWFwKHggPT4gVmFsdWVzLm1hcExlYXZlcyh4LCB0ID0+IChWYWx1ZXMuaXNMaW5rKHQpID8gbGlua05vcm1hbGl6ZXIodCkgOiB0KSkpKTsNCgkgICAgICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIH0NCgkgICAgICAgIH0NCgkgICAgICAgIGlmIChkYXRhLmxpbmtzKSB7DQoJICAgICAgICAgICAgZGF0YS5saW5rcyA9IGRhdGEubGlua3MubWFwKGwgPT4gbGlua05vcm1hbGl6ZXIobCkpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgdWdseSwgYnV0IGl0J3Mgbm90IHBvc3NpYmxlIHRvIG5vcm1hbGl6ZSBvbiB0aGUgd29ya2VyIHRocmVhZCB0aGF0IGRvZXMgcGFyc2luZy4NCgkgICAgICAgIC8vIFRoZSBiZXN0IHdheSB0byBpbXByb3ZlIHRoaXMgaXMgdG8gaW5zdGVhZCBqdXN0IGNhbm9uaWNhbGl6ZSB0aGUgZW50aXJlIGRhdGEgb2JqZWN0OyBJIGNhbiB0cnkgdG8NCgkgICAgICAgIC8vIG9wdGltaXplIGBWYWx1ZXMubWFwTGVhdmVzYCB0byBvbmx5IG11dGF0ZSBpZiBpdCBhY3R1YWxseSBjaGFuZ2VzIHRoaW5ncy4NCgkgICAgICAgIHJldHVybiBuZXcgUGFnZU1ldGFkYXRhKGRhdGEucGF0aCwgZGF0YSk7DQoJICAgIH0NCgkgICAgLyoqIFRoZSBuYW1lIChiYXNlZCBvbiBwYXRoKSBvZiB0aGlzIGZpbGUuICovDQoJICAgIG5hbWUoKSB7DQoJICAgICAgICByZXR1cm4gZ2V0RmlsZVRpdGxlKHRoaXMucGF0aCk7DQoJICAgIH0NCgkgICAgLyoqIFRoZSBjb250YWluaW5nIGZvbGRlciAoYmFzZWQgb24gcGF0aCkgb2YgdGhpcyBmaWxlLiAqLw0KCSAgICBmb2xkZXIoKSB7DQoJICAgICAgICByZXR1cm4gZ2V0UGFyZW50Rm9sZGVyKHRoaXMucGF0aCk7DQoJICAgIH0NCgkgICAgLyoqIFRoZSBleHRlbnNpb24gb2YgdGhpcyBmaWxlIChsaWtlbHkgJ21kJykuICovDQoJICAgIGV4dGVuc2lvbigpIHsNCgkgICAgICAgIHJldHVybiBnZXRFeHRlbnNpb24odGhpcy5wYXRoKTsNCgkgICAgfQ0KCSAgICAvKiogUmV0dXJuIGEgc2V0IG9mIHRhZ3MgQU5EIGFsbCBvZiB0aGVpciBwYXJlbnQgdGFncyAoc28gI2hlbGxvL3llcyB3b3VsZCBiZWNvbWUgI2hlbGxvLCAjaGVsbG8veWVzKS4gKi8NCgkgICAgZnVsbFRhZ3MoKSB7DQoJICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFNldCgpOw0KCSAgICAgICAgZm9yIChsZXQgdGFnIG9mIHRoaXMudGFncykgew0KCSAgICAgICAgICAgIGZvciAobGV0IHN1YnRhZyBvZiBleHRyYWN0U3VidGFncyh0YWcpKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHN1YnRhZyk7DQoJICAgICAgICB9DQoJICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IGFsbCBsaW5rcyBpbiB0aGlzIGZpbGUgdG8gZmlsZSBsaW5rcy4gKi8NCgkgICAgZmlsZUxpbmtzKCkgew0KCSAgICAgICAgbGV0IGRpc3RpbmN0UGF0aHMgPSBuZXcgU2V0KHRoaXMubGlua3MubWFwKGwgPT4gbC5wYXRoKSk7DQoJICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShkaXN0aW5jdFBhdGhzKS5tYXAobCA9PiBMaW5rLmZpbGUobCkpOw0KCSAgICB9DQoJICAgIC8qKiBNYXAgdGhpcyBtZXRhZGF0YSB0byBhIGZ1bGwgb2JqZWN0OyB1c2VzIHRoZSBpbmRleCBmb3IgYWRkaXRpb25hbCBkYXRhIGxvb2t1cHMuICAqLw0KCSAgICBzZXJpYWxpemUoaW5kZXgsIGNhY2hlKSB7DQoJICAgICAgICAvLyBDb252ZXJ0IGxpc3QgaXRlbXMgdmlhIHRoZSBjYW5vbmljYWxpemF0aW9uIGNhY2hlLg0KCSAgICAgICAgbGV0IHJlYWxDYWNoZSA9IGNhY2hlICE9PSBudWxsICYmIGNhY2hlICE9PSB2b2lkIDAgPyBjYWNoZSA6IG5ldyBMaXN0U2VyaWFsaXphdGlvbkNhY2hlKHRoaXMubGlzdHMpOw0KCSAgICAgICAgbGV0IHJlc3VsdCA9IHsNCgkgICAgICAgICAgICBmaWxlOiB7DQoJICAgICAgICAgICAgICAgIHBhdGg6IHRoaXMucGF0aCwNCgkgICAgICAgICAgICAgICAgZm9sZGVyOiB0aGlzLmZvbGRlcigpLA0KCSAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUoKSwNCgkgICAgICAgICAgICAgICAgbGluazogTGluay5maWxlKHRoaXMucGF0aCksDQoJICAgICAgICAgICAgICAgIG91dGxpbmtzOiB0aGlzLmZpbGVMaW5rcygpLA0KCSAgICAgICAgICAgICAgICBpbmxpbmtzOiBBcnJheS5mcm9tKGluZGV4LmxpbmtzLmdldEludmVyc2UodGhpcy5wYXRoKSkubWFwKGwgPT4gTGluay5maWxlKGwpKSwNCgkgICAgICAgICAgICAgICAgZXRhZ3M6IEFycmF5LmZyb20odGhpcy50YWdzKSwNCgkgICAgICAgICAgICAgICAgdGFnczogQXJyYXkuZnJvbSh0aGlzLmZ1bGxUYWdzKCkpLA0KCSAgICAgICAgICAgICAgICBhbGlhc2VzOiBBcnJheS5mcm9tKHRoaXMuYWxpYXNlcyksDQoJICAgICAgICAgICAgICAgIGxpc3RzOiB0aGlzLmxpc3RzLm1hcChsID0+IHJlYWxDYWNoZS5nZXQobC5saW5lKSksDQoJICAgICAgICAgICAgICAgIHRhc2tzOiB0aGlzLmxpc3RzLmZpbHRlcihsID0+ICEhbC50YXNrKS5tYXAobCA9PiByZWFsQ2FjaGUuZ2V0KGwubGluZSkpLA0KCSAgICAgICAgICAgICAgICBjdGltZTogdGhpcy5jdGltZSwNCgkgICAgICAgICAgICAgICAgY2RheTogc3RyaXBUaW1lKHRoaXMuY3RpbWUpLA0KCSAgICAgICAgICAgICAgICBtdGltZTogdGhpcy5tdGltZSwNCgkgICAgICAgICAgICAgICAgbWRheTogc3RyaXBUaW1lKHRoaXMubXRpbWUpLA0KCSAgICAgICAgICAgICAgICBzaXplOiB0aGlzLnNpemUsDQoJICAgICAgICAgICAgICAgIHN0YXJyZWQ6IGluZGV4LnN0YXJyZWQuc3RhcnJlZCh0aGlzLnBhdGgpLA0KCSAgICAgICAgICAgICAgICBmcm9udG1hdHRlcjogVmFsdWVzLmRlZXBDb3B5KHRoaXMuZnJvbnRtYXR0ZXIpLA0KCSAgICAgICAgICAgICAgICBleHQ6IHRoaXMuZXh0ZW5zaW9uKCksDQoJICAgICAgICAgICAgfSwNCgkgICAgICAgIH07DQoJICAgICAgICAvLyBBZGQgdGhlIGN1cnJlbnQgZGF5IGlmIHByZXNlbnQuDQoJICAgICAgICBpZiAodGhpcy5kYXkpDQoJICAgICAgICAgICAgcmVzdWx0LmZpbGUuZGF5ID0gdGhpcy5kYXk7DQoJICAgICAgICAvLyBUaGVuIGFwcGVuZCB0aGUgY29tcHV0ZWQgZmllbGRzLg0KCSAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIHRoaXMuZmllbGRzLmVudHJpZXMoKSkgew0KCSAgICAgICAgICAgIGlmIChrZXkgaW4gcmVzdWx0KQ0KCSAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRG9uJ3QgYWxsb3cgZmllbGRzIHRvIG92ZXJyaWRlIGV4aXN0aW5nIGtleXMuDQoJICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTsNCgkgICAgICAgIH0NCgkgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgIH0NCgl9DQoJLyoqIEEgbGlzdCBpdGVtIGluc2lkZSBvZiBhIGxpc3QuICovDQoJY2xhc3MgTGlzdEl0ZW0gew0KCSAgICBjb25zdHJ1Y3Rvcihpbml0KSB7DQoJICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpOw0KCSAgICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcyB8fCBuZXcgTWFwKCk7DQoJICAgICAgICB0aGlzLnRhZ3MgPSB0aGlzLnRhZ3MgfHwgbmV3IFNldCgpOw0KCSAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4gfHwgW107DQoJICAgICAgICB0aGlzLmxpbmtzID0gdGhpcy5saW5rcyB8fCBbXTsNCgkgICAgfQ0KCSAgICBpZCgpIHsNCgkgICAgICAgIHJldHVybiBgJHt0aGlzLmZpbGUoKS5wYXRofS0ke3RoaXMubGluZX1gOw0KCSAgICB9DQoJICAgIGZpbGUoKSB7DQoJICAgICAgICByZXR1cm4gdGhpcy5saW5rLnRvRmlsZSgpOw0KCSAgICB9DQoJICAgIG1hcmtkb3duKCkgew0KCSAgICAgICAgaWYgKHRoaXMudGFzaykNCgkgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zeW1ib2x9IFske3RoaXMudGFzay5jb21wbGV0ZWQgPyAieCIgOiAiICJ9XSAke3RoaXMudGV4dH1gOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnN5bWJvbH0gJHt0aGlzLnRleHR9YDsNCgkgICAgfQ0KCSAgICBjcmVhdGVkKCkgew0KCSAgICAgICAgdmFyIF9hLCBfYiwgX2M7DQoJICAgICAgICByZXR1cm4gKF9jID0gKChfYiA9IChfYSA9IHRoaXMuZmllbGRzLmdldCgiY3JlYXRlZCIpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmZpZWxkcy5nZXQoImN0aW1lIikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuZmllbGRzLmdldCgiY2RheSIpKSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jWzBdOw0KCSAgICB9DQoJICAgIGR1ZSgpIHsNCgkgICAgICAgIHZhciBfYSwgX2IsIF9jOw0KCSAgICAgICAgcmV0dXJuIChfYyA9ICgoX2IgPSAoX2EgPSB0aGlzLmZpZWxkcy5nZXQoImR1ZSIpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmZpZWxkcy5nZXQoImR1ZXRpbWUiKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdGhpcy5maWVsZHMuZ2V0KCJkdWVkYXkiKSkpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY1swXTsNCgkgICAgfQ0KCSAgICBjb21wbGV0ZWQoKSB7DQoJICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7DQoJICAgICAgICByZXR1cm4gKF9kID0gKChfYyA9IChfYiA9IChfYSA9IHRoaXMuZmllbGRzLmdldCgiY29tcGxldGVkIikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuZmllbGRzLmdldCgiY29tcGxldGlvbiIpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0aGlzLmZpZWxkcy5nZXQoImNvbXB0aW1lIikpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IHRoaXMuZmllbGRzLmdldCgiY29tcGRheSIpKSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kWzBdOw0KCSAgICB9DQoJICAgIC8qKiBDcmVhdGUgYW4gQVBJLWZyaWVuZGx5IGNvcHkgb2YgdGhpcyBsaXN0IGl0ZW0uIERlLWR1cGxpY2F0aW9uIGlzIGRvbmUgdmlhIHRoZSBwcm92aWRlZCBjYWNoZS4gKi8NCgkgICAgc2VyaWFsaXplKGNhY2hlKSB7DQoJICAgICAgICAvLyBNYXAgY2hpbGRyZW4gdG8gdGhlaXIgc2VyaWFsaXplZC9kZS1kdXBsaWNhdGVkIGVxdWl2YWxlbnRzIHJpZ2h0IGF3YXkuDQoJICAgICAgICBsZXQgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuLm1hcChsID0+IGNhY2hlLmdldChsKSkuZmlsdGVyKChsKSA9PiBsICE9PSB1bmRlZmluZWQpOw0KCSAgICAgICAgbGV0IHJlc3VsdCA9IHsNCgkgICAgICAgICAgICBzeW1ib2w6IHRoaXMuc3ltYm9sLA0KCSAgICAgICAgICAgIGxpbms6IHRoaXMubGluaywNCgkgICAgICAgICAgICBzZWN0aW9uOiB0aGlzLnNlY3Rpb24sDQoJICAgICAgICAgICAgdGV4dDogdGhpcy50ZXh0LA0KCSAgICAgICAgICAgIHRhZ3M6IEFycmF5LmZyb20odGhpcy50YWdzKSwNCgkgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsDQoJICAgICAgICAgICAgbGluZUNvdW50OiB0aGlzLmxpbmVDb3VudCwNCgkgICAgICAgICAgICBsaXN0OiB0aGlzLmxpc3QsDQoJICAgICAgICAgICAgb3V0bGlua3M6IEFycmF5LmZyb20odGhpcy5saW5rcyksDQoJICAgICAgICAgICAgcGF0aDogdGhpcy5saW5rLnBhdGgsDQoJICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLA0KCSAgICAgICAgICAgIHRhc2s6ICEhdGhpcy50YXNrLA0KCSAgICAgICAgICAgIGFubm90YXRlZDogdGhpcy5maWVsZHMuc2l6ZSA+IDAsDQoJICAgICAgICAgICAgcG9zaXRpb246IFZhbHVlcy5kZWVwQ29weSh0aGlzLnBvc2l0aW9uKSwNCgkgICAgICAgICAgICBzdWJ0YXNrczogY2hpbGRyZW4sDQoJICAgICAgICAgICAgcmVhbDogISF0aGlzLnRhc2ssDQoJICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnNlY3Rpb24sIC8vIEBkZXByZWNhdGVkLCB1c2UgJ2l0ZW0uc2VjdGlvbicgaW5zdGVhZC4NCgkgICAgICAgIH07DQoJICAgICAgICBpZiAodGhpcy5wYXJlbnQpDQoJICAgICAgICAgICAgcmVzdWx0LnBhcmVudCA9IHRoaXMucGFyZW50Ow0KCSAgICAgICAgaWYgKHRoaXMuYmxvY2tJZCkNCgkgICAgICAgICAgICByZXN1bHQuYmxvY2tJZCA9IHRoaXMuYmxvY2tJZDsNCgkgICAgICAgIGFkZEZpZWxkcyh0aGlzLmZpZWxkcywgcmVzdWx0KTsNCgkgICAgICAgIGlmICh0aGlzLnRhc2spIHsNCgkgICAgICAgICAgICByZXN1bHQuc3RhdHVzID0gdGhpcy50YXNrLnN0YXR1czsNCgkgICAgICAgICAgICByZXN1bHQuY2hlY2tlZCA9IHRoaXMudGFzay5jaGVja2VkOw0KCSAgICAgICAgICAgIHJlc3VsdC5jb21wbGV0ZWQgPSB0aGlzLnRhc2suY29tcGxldGVkOw0KCSAgICAgICAgICAgIHJlc3VsdC5mdWxseUNvbXBsZXRlZCA9IHRoaXMudGFzay5mdWxseUNvbXBsZXRlZDsNCgkgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IHRoaXMuY3JlYXRlZCgpLCBkdWUgPSB0aGlzLmR1ZSgpLCBjb21wbGV0ZWQgPSB0aGlzLmNvbXBsZXRlZCgpOw0KCSAgICAgICAgICAgIGlmIChjcmVhdGVkKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQuY3JlYXRlZCA9IFZhbHVlcy5kZWVwQ29weShjcmVhdGVkKTsNCgkgICAgICAgICAgICBpZiAoZHVlKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQuZHVlID0gVmFsdWVzLmRlZXBDb3B5KGR1ZSk7DQoJICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCkNCgkgICAgICAgICAgICAgICAgcmVzdWx0LmNvbXBsZXRpb24gPSBWYWx1ZXMuZGVlcENvcHkoY29tcGxldGVkKTsNCgkgICAgICAgIH0NCgkgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgIH0NCgl9DQoJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoJLy8gQ29udmVyc2lvbiAvIFNlcmlhbGl6YXRpb24gVXRpbGl0aWVzIC8vDQoJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoJLyoqIERlLWR1cGxpY2F0ZXMgbGlzdCBpdGVtcyBhY3Jvc3Mgc2VjdGlvbiBtZXRhZGF0YSBhbmQgcGFnZSBtZXRhZGF0YS4gKi8NCgljbGFzcyBMaXN0U2VyaWFsaXphdGlvbkNhY2hlIHsNCgkgICAgY29uc3RydWN0b3IobGlzdEl0ZW1zKSB7DQoJICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IHt9Ow0KCSAgICAgICAgdGhpcy5jYWNoZSA9IHt9Ow0KCSAgICAgICAgdGhpcy5zZWVuID0gbmV3IFNldCgpOw0KCSAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBsaXN0SXRlbXMpDQoJICAgICAgICAgICAgdGhpcy5saXN0SXRlbXNbaXRlbS5saW5lXSA9IGl0ZW07DQoJICAgIH0NCgkgICAgZ2V0KGxpbmVubykgew0KCSAgICAgICAgaWYgKGxpbmVubyBpbiB0aGlzLmNhY2hlKQ0KCSAgICAgICAgICAgIHJldHVybiB0aGlzLmNhY2hlW2xpbmVub107DQoJICAgICAgICBlbHNlIGlmICh0aGlzLnNlZW4uaGFzKGxpbmVubykpIHsNCgkgICAgICAgICAgICBjb25zb2xlLmxvZyhgRGF0YXZpZXc6IEVuY291bnRlcmVkIGEgY2lyY3VsYXIgbGlzdCAobGluZSBudW1iZXIgJHtsaW5lbm99OyBjaGlsZHJlbiAke3RoaXMubGlzdEl0ZW1zW2xpbmVub10uY2hpbGRyZW4uam9pbigiLCAiKX0pYCk7DQoJICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgkgICAgICAgIH0NCgkgICAgICAgIHRoaXMuc2Vlbi5hZGQobGluZW5vKTsNCgkgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmxpc3RJdGVtc1tsaW5lbm9dLnNlcmlhbGl6ZSh0aGlzKTsNCgkgICAgICAgIHRoaXMuY2FjaGVbbGluZW5vXSA9IHJlc3VsdDsNCgkgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgIH0NCgl9DQoJZnVuY3Rpb24gYWRkRmllbGRzKGZpZWxkcywgdGFyZ2V0KSB7DQoJICAgIGZvciAobGV0IFtrZXksIHZhbHVlc10gb2YgZmllbGRzLmVudHJpZXMoKSkgew0KCSAgICAgICAgaWYgKGtleSBpbiB0YXJnZXQpDQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlcy5sZW5ndGggPT0gMSA/IHZhbHVlc1swXSA6IHZhbHVlczsNCgkgICAgfQ0KCSAgICByZXR1cm4gdGFyZ2V0Ow0KCX0KCgkvKiogQ29tbW9uIHV0aWxpdGllcyBmb3IgZXh0cmFjdGluZyB0YWdzLCBsaW5rcywgYW5kIG90aGVyIGJ1c2luZXNzIGZyb20gbWV0YWRhdGEuICovDQoJY29uc3QgUE9URU5USUFMX1RBR19NQVRDSEVSID0gLyNbXlxzLDtcLjohXD8nImAoKVxbXF1ce1x9XSsvZ2l1Ow0KCS8qKiBFeHRyYWN0IGFsbCB0YWdzIGZyb20gdGhlIGdpdmVuIHNvdXJjZSBzdHJpbmcuICovDQoJZnVuY3Rpb24gZXh0cmFjdFRhZ3MkMShzb3VyY2UpIHsNCgkgICAgbGV0IHJlc3VsdCA9IG5ldyBTZXQoKTsNCgkgICAgbGV0IG1hdGNoZXMgPSBzb3VyY2UubWF0Y2hBbGwoUE9URU5USUFMX1RBR19NQVRDSEVSKTsNCgkgICAgZm9yIChsZXQgbWF0Y2ggb2YgbWF0Y2hlcykgew0KCSAgICAgICAgbGV0IHBhcnNlZCA9IEVYUFJFU1NJT04udGFnLnBhcnNlKG1hdGNoWzBdKTsNCgkgICAgICAgIGlmIChwYXJzZWQuc3RhdHVzKQ0KCSAgICAgICAgICAgIHJlc3VsdC5hZGQocGFyc2VkLnZhbHVlKTsNCgkgICAgfQ0KCSAgICByZXR1cm4gcmVzdWx0Ow0KCX0KCgkvKiogSW1wb3J0ZXIgZm9yIG1hcmtkb3duIGRvY3VtZW50cy4gKi8NCgkvKiogRXh0cmFjdCBtYXJrZG93biBtZXRhZGF0YSBmcm9tIHRoZSBnaXZlbiBPYnNpZGlhbiBtYXJrZG93biBmaWxlLiAqLw0KCWZ1bmN0aW9uIHBhcnNlUGFnZShwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpIHsNCgkgICAgbGV0IHRhZ3MgPSBuZXcgU2V0KCk7DQoJICAgIGxldCBhbGlhc2VzID0gbmV3IFNldCgpOw0KCSAgICBsZXQgZmllbGRzID0gbmV3IE1hcCgpOw0KCSAgICBsZXQgbGlua3MgPSBbXTsNCgkgICAgLy8gRmlsZSB0YWdzLCBpbmNsdWRpbmcgZnJvbnQtbWF0dGVyIGFuZCBpbi1maWxlIHRhZ3MuDQoJICAgIChtZXRhZGF0YS50YWdzIHx8IFtdKS5mb3JFYWNoKHQgPT4gdGFncy5hZGQodC50YWcuc3RhcnRzV2l0aCgiIyIpID8gdC50YWcgOiAiIyIgKyB0LnRhZykpOw0KCSAgICAvLyBGcm9udC1tYXR0ZXIgZmlsZSB0YWdzLCBhbGlhc2VzLCBBTkQgZnJvbnRtYXR0ZXIgcHJvcGVydGllcy4NCgkgICAgaWYgKG1ldGFkYXRhLmZyb250bWF0dGVyKSB7DQoJICAgICAgICBmb3IgKGxldCB0YWcgb2YgZXh0cmFjdFRhZ3MobWV0YWRhdGEuZnJvbnRtYXR0ZXIpKSB7DQoJICAgICAgICAgICAgaWYgKCF0YWcuc3RhcnRzV2l0aCgiIyIpKQ0KCSAgICAgICAgICAgICAgICB0YWcgPSAiIyIgKyB0YWc7DQoJICAgICAgICAgICAgdGFncy5hZGQodGFnKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGZvciAobGV0IGFsaWFzIG9mIGV4dHJhY3RBbGlhc2VzKG1ldGFkYXRhLmZyb250bWF0dGVyKSB8fCBbXSkNCgkgICAgICAgICAgICBhbGlhc2VzLmFkZChhbGlhcyk7DQoJICAgICAgICBsZXQgZnJvbnRGaWVsZHMgPSBwYXJzZUZyb250bWF0dGVyKG1ldGFkYXRhLmZyb250bWF0dGVyKTsNCgkgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmcm9udEZpZWxkcykpIHsNCgkgICAgICAgICAgICBpZiAoa2V5ID09ICJwb3NpdGlvbiIpDQoJICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgICAgIGFkZElubGluZUZpZWxkKGtleSwgdmFsdWUsIGZpZWxkcyk7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgLy8gTGlua3MgaW4gbWV0YWRhdGEuDQoJICAgIGNvbnN0IGxpbmtzQnlMaW5lID0ge307DQoJICAgIGZvciAobGV0IHJhd0xpbmsgb2YgbWV0YWRhdGEubGlua3MgfHwgW10pIHsNCgkgICAgICAgIGNvbnN0IGxpbmsgPSBMaW5rLmluZmVyKHJhd0xpbmsubGluaywgZmFsc2UsIHJhd0xpbmsuZGlzcGxheVRleHQpOw0KCSAgICAgICAgY29uc3QgbGluZSA9IHJhd0xpbmsucG9zaXRpb24uc3RhcnQubGluZTsNCgkgICAgICAgIGxpbmtzLnB1c2gobGluayk7DQoJICAgICAgICBpZiAoIShsaW5lIGluIGxpbmtzQnlMaW5lKSkNCgkgICAgICAgICAgICBsaW5rc0J5TGluZVtsaW5lXSA9IFtsaW5rXTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICBsaW5rc0J5TGluZVtsaW5lXS5wdXNoKGxpbmspOw0KCSAgICB9DQoJICAgIC8vIEVtYmVkIExpbmtzIGluIG1ldGFkYXRhLg0KCSAgICBmb3IgKGxldCByYXdFbWJlZCBvZiBtZXRhZGF0YS5lbWJlZHMgfHwgW10pIHsNCgkgICAgICAgIGNvbnN0IGxpbmsgPSBMaW5rLmluZmVyKHJhd0VtYmVkLmxpbmssIHRydWUsIHJhd0VtYmVkLmRpc3BsYXlUZXh0KTsNCgkgICAgICAgIGNvbnN0IGxpbmUgPSByYXdFbWJlZC5wb3NpdGlvbi5zdGFydC5saW5lOw0KCSAgICAgICAgbGlua3MucHVzaChsaW5rKTsNCgkgICAgICAgIGlmICghKGxpbmUgaW4gbGlua3NCeUxpbmUpKQ0KCSAgICAgICAgICAgIGxpbmtzQnlMaW5lW2xpbmVdID0gW2xpbmtdOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIGxpbmtzQnlMaW5lW2xpbmVdLnB1c2gobGluayk7DQoJICAgIH0NCgkgICAgLy8gTWVyZ2UgZnJvbnRtYXR0ZXIgZmllbGRzIHdpdGggcGFyc2VkIGZpZWxkcy4NCgkgICAgbGV0IG1hcmtkb3duRGF0YSA9IHBhcnNlTWFya2Rvd24ocGF0aCwgY29udGVudHMuc3BsaXQoIlxuIiksIG1ldGFkYXRhLCBsaW5rc0J5TGluZSk7DQoJICAgIG1lcmdlRmllbGRHcm91cHMoZmllbGRzLCBtYXJrZG93bkRhdGEuZmllbGRzKTsNCgkgICAgLy8gU3RyaXAgInBvc2l0aW9uIiBmcm9tIGZyb250bWF0dGVyIHNpbmNlIGl0IGlzIE9ic2lkaWFuIGRldGVybWluZWQuDQoJICAgIGNvbnN0IGZyb250bWF0dGVyID0gbWV0YWRhdGEuZnJvbnRtYXR0ZXIgfHwge307DQoJICAgIGlmIChmcm9udG1hdHRlciAmJiAicG9zaXRpb24iIGluIGZyb250bWF0dGVyKQ0KCSAgICAgICAgZGVsZXRlIGZyb250bWF0dGVyWyJwb3NpdGlvbiJdOw0KCSAgICByZXR1cm4gbmV3IFBhZ2VNZXRhZGF0YShwYXRoLCB7DQoJICAgICAgICB0YWdzLA0KCSAgICAgICAgYWxpYXNlcywNCgkgICAgICAgIGxpbmtzLA0KCSAgICAgICAgbGlzdHM6IG1hcmtkb3duRGF0YS5saXN0cywNCgkgICAgICAgIGZpZWxkczogZmluYWxpemVJbmxpbmVGaWVsZHMoZmllbGRzKSwNCgkgICAgICAgIGZyb250bWF0dGVyOiBmcm9udG1hdHRlciwNCgkgICAgICAgIGN0aW1lOiBEYXRlVGltZV8xLmZyb21NaWxsaXMoc3RhdC5jdGltZSksDQoJICAgICAgICBtdGltZTogRGF0ZVRpbWVfMS5mcm9tTWlsbGlzKHN0YXQubXRpbWUpLA0KCSAgICAgICAgc2l6ZTogc3RhdC5zaXplLA0KCSAgICAgICAgZGF5OiBmaW5kRGF0ZShwYXRoLCBmaWVsZHMpLA0KCSAgICB9KTsNCgl9DQoJLyoqIEV4dHJhY3QgdGFncyBpbnRlbGxpZ2VudGx5IGZyb20gZnJvbnRtYXR0ZXIuIEhhbmRsZXMgYXJyYXlzLCBudW1iZXJzLCBhbmQgc3RyaW5ncy4gKi8NCglmdW5jdGlvbiBleHRyYWN0VGFncyhtZXRhZGF0YSkgew0KCSAgICBsZXQgdGFnS2V5cyA9IE9iamVjdC5rZXlzKG1ldGFkYXRhKS5maWx0ZXIodCA9PiB0LnRvTG93ZXJDYXNlKCkgPT0gInRhZ3MiIHx8IHQudG9Mb3dlckNhc2UoKSA9PSAidGFnIik7DQoJICAgIHJldHVybiB0YWdLZXlzDQoJICAgICAgICAubWFwKGsgPT4gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMobWV0YWRhdGFba10sIC9bLFxzXSsvKSkNCgkgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IHAuY29uY2F0KGMpLCBbXSkNCgkgICAgICAgIC5tYXAoc3RyID0+IChzdHIuc3RhcnRzV2l0aCgiIyIpID8gc3RyIDogIiMiICsgc3RyKSk7DQoJfQ0KCS8qKiBFeHRyYWN0IGFsaWFzZXMgaW50ZWxsaWdlbnRseSBmcm9tIGZyb250bWF0dGVyLiBIYW5kbGVzIGFycmF5cywgbnVtYmVycywgYW5kIHN0cmluZ3MuICAqLw0KCWZ1bmN0aW9uIGV4dHJhY3RBbGlhc2VzKG1ldGFkYXRhKSB7DQoJICAgIGxldCBhbGlhc0tleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSkuZmlsdGVyKHQgPT4gdC50b0xvd2VyQ2FzZSgpID09ICJhbGlhcyIgfHwgdC50b0xvd2VyQ2FzZSgpID09ICJhbGlhc2VzIik7DQoJICAgIGNvbnN0IHJlc3VsdCA9IFtdOw0KCSAgICBmb3IgKGxldCBrZXkgb2YgYWxpYXNLZXlzKSB7DQoJICAgICAgICBjb25zdCB2YWx1ZSA9IG1ldGFkYXRhW2tleV07DQoJICAgICAgICBpZiAoIXZhbHVlKQ0KCSAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKQ0KCSAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnZhbHVlLm1hcCh2ID0+ICgiIiArIHYpLnRyaW0oKSkpOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKHZhbHVlLCAvLC8pKTsNCgkgICAgfQ0KCSAgICByZXR1cm4gcmVzdWx0Ow0KCX0NCgkvKiogU3BsaXQgYSBmcm9udG1hdHRlciBsaXN0IGludG8gc2VwYXJhdGUgZWxlbWVudHM7IGhhbmRsZXMgYWN0dWFsIGxpc3RzLCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMsIGFuZCBzaW5nbGUgZWxlbWVudHMuICovDQoJZnVuY3Rpb24gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMoZGF0YSwgb24pIHsNCgkgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCBkYXRhID09IHVuZGVmaW5lZCkNCgkgICAgICAgIHJldHVybiBbXTsNCgkgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHsNCgkgICAgICAgIHJldHVybiBkYXRhDQoJICAgICAgICAgICAgLmZpbHRlcihzID0+ICEhcykNCgkgICAgICAgICAgICAubWFwKHMgPT4gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMocywgb24pKQ0KCSAgICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IHAuY29uY2F0KGMpLCBbXSk7DQoJICAgIH0NCgkgICAgLy8gRm9yY2UgdG8gYSBzdHJpbmcgdG8gaGFuZGxlIG51bWJlcnMgYW5kIHNvIG9uLg0KCSAgICByZXR1cm4gKCIiICsgZGF0YSkNCgkgICAgICAgIC5zcGxpdChvbikNCgkgICAgICAgIC5maWx0ZXIodCA9PiAhIXQpDQoJICAgICAgICAubWFwKHQgPT4gdC50cmltKCkpDQoJICAgICAgICAuZmlsdGVyKHQgPT4gdC5sZW5ndGggPiAwKTsNCgl9DQoJLyoqIFBhcnNlIHJhdyAobmV3bGluZS1kZWxpbWl0ZWQpIG1hcmtkb3duLCByZXR1cm5pbmcgaW5saW5lIGZpZWxkcywgbGlzdCBpdGVtcywgYW5kIG90aGVyIG1ldGFkYXRhLiAqLw0KCWZ1bmN0aW9uIHBhcnNlTWFya2Rvd24ocGF0aCwgY29udGVudHMsIG1ldGFkYXRhLCBsaW5rc0J5TGluZSkgew0KCSAgICBsZXQgZmllbGRzID0gbmV3IE1hcCgpOw0KCSAgICAvLyBFeHRyYWN0IHRhc2sgZGF0YSBhbmQgYXBwZW5kIHRoZSBnbG9iYWwgZGF0YSBleHRyYWN0ZWQgZnJvbSB0aGVtIHRvIG91ciBmaWVsZHMuDQoJICAgIGxldCBbbGlzdHMsIGV4dHJhRGF0YV0gPSBwYXJzZUxpc3RzKHBhdGgsIGNvbnRlbnRzLCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpOw0KCSAgICBmb3IgKGxldCBba2V5LCB2YWx1ZXNdIG9mIGV4dHJhRGF0YS5lbnRyaWVzKCkpIHsNCgkgICAgICAgIGlmICghZmllbGRzLmhhcyhrZXkpKQ0KCSAgICAgICAgICAgIGZpZWxkcy5zZXQoa2V5LCB2YWx1ZXMpOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIGZpZWxkcy5zZXQoa2V5LCBmaWVsZHMuZ2V0KGtleSkuY29uY2F0KHZhbHVlcykpOw0KCSAgICB9DQoJICAgIC8vIFRoZSBPYnNpZGlhbiBtZXRhZGF0YSBjYWNoZSB3aWxsIHRyYWNrIGxpc3QgZWxlbWVudHMgaW5zaWRlIG9mIG90aGVyIGVsZW1lbnQgZ3JvdXBzIChsaWtlIGFubm90YXRpb25zIGFuZA0KCSAgICAvLyBjYWxsb3V0cykuLi4gdGhpcyBtZWFucyB3ZSBtaWdodCBzZWUgbWV0YWRhdGEgdHdpY2UsIHNvIHNraXAgdGhlbSBub3cuIFZlcnkgYW5ub3lpbmcuDQoJICAgIGNvbnN0IGxpc3RMaW5lc1RvU2tpcCA9IG5ldyBTZXQoKTsNCgkgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpc3RzKSB7DQoJICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmUubGluZUNvdW50OyBpKyspDQoJICAgICAgICAgICAgbGlzdExpbmVzVG9Ta2lwLmFkZChsaW5lLmxpbmUgKyBpKTsNCgkgICAgfQ0KCSAgICAvLyBPbmx5IHBhcnNlIGhlYWRpbmcgYW5kIHBhcmFncmFwaCBlbGVtZW50cyBmb3IgaW5saW5lIGZpZWxkczsgd2Ugd2lsbCBwYXJzZSBsaXN0IG1ldGFkYXRhIHNlcGFyYXRlbHkuDQoJICAgIGZvciAobGV0IHNlY3Rpb24gb2YgbWV0YWRhdGEuc2VjdGlvbnMgfHwgW10pIHsNCgkgICAgICAgIGlmIChzZWN0aW9uLnR5cGUgPT0gImxpc3QiIHx8IHNlY3Rpb24udHlwZSA9PSAicnVsaW5nIikNCgkgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgIGZvciAobGV0IGxpbmVubyA9IHNlY3Rpb24ucG9zaXRpb24uc3RhcnQubGluZTsgbGluZW5vIDw9IHNlY3Rpb24ucG9zaXRpb24uZW5kLmxpbmU7IGxpbmVubysrKSB7DQoJICAgICAgICAgICAgbGV0IGxpbmUgPSBjb250ZW50c1tsaW5lbm9dOw0KCSAgICAgICAgICAgIGlmIChsaW5lID09IHVuZGVmaW5lZCB8fCBsaW5lID09IG51bGwpDQoJICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgICAgIGlmIChsaXN0TGluZXNUb1NraXAuaGFzKGxpbmVubykpDQoJICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgICAgIC8vIEZhc3QgYmFpbC1vdXQgZm9yIGxpbmVzIHRoYXQgYXJlIHRvbyBsb25nIG9yIGRvIG5vdCBjb250YWluICc6OicuDQoJICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID4gMzI3NjggfHwgIWxpbmUuaW5jbHVkZXMoIjo6IikpDQoJICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsNCgkgICAgICAgICAgICBsZXQgaW5saW5lRmllbGRzID0gZXh0cmFjdElubGluZUZpZWxkcyhsaW5lKTsNCgkgICAgICAgICAgICBpZiAoaW5saW5lRmllbGRzLmxlbmd0aCA+IDApIHsNCgkgICAgICAgICAgICAgICAgZm9yIChsZXQgaWZpZWxkIG9mIGlubGluZUZpZWxkcykNCgkgICAgICAgICAgICAgICAgICAgIGFkZFJhd0lubGluZUZpZWxkKGlmaWVsZCwgZmllbGRzKTsNCgkgICAgICAgICAgICB9DQoJICAgICAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgICAgIGxldCBmdWxsTGluZSA9IGV4dHJhY3RGdWxsTGluZUZpZWxkKGxpbmUpOw0KCSAgICAgICAgICAgICAgICBpZiAoZnVsbExpbmUpDQoJICAgICAgICAgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChmdWxsTGluZSwgZmllbGRzKTsNCgkgICAgICAgICAgICB9DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgcmV0dXJuIHsgZmllbGRzLCBsaXN0cyB9Ow0KCX0NCgkvLyBUT0RPOiBDb25zaWRlciB1c2luZyBhbiBhY3R1YWwgcGFyc2VyIGluIGxlaXUgb2YgYSBtb3JlIGV4cGVuc2l2ZSByZWdleC4NCgljb25zdCBMSVNUX0lURU1fUkVHRVggPSAvXltccz5dKihcZCtcLnxcZCtcKXxcKnwtfFwrKVxzKihcWy57MCwxfVxdKT9ccyooLiopJC9tdTsNCgkvKioNCgkgKiBQYXJzZSBsaXN0IGl0ZW1zIGZyb20gdGhlIHBhZ2UgKyBtZXRhZGF0YS4gVGhpcyByZXF1aXJlcyBzb21lIGFkZGl0aW9uYWwgcGFyc2luZyBhYm92ZSB3aGF0ZXZlciBPYnNpZGlhbiBwcm92aWRlcywNCgkgKiBzaW5jZSBPYnNpZGlhbiBvbmx5IGdpdmVzIGxpbmUgbnVtYmVycy4NCgkgKi8NCglmdW5jdGlvbiBwYXJzZUxpc3RzKHBhdGgsIGNvbnRlbnQsIG1ldGFkYXRhLCBsaW5rc0J5TGluZSkgew0KCSAgICB2YXIgX2E7DQoJICAgIGxldCBjYWNoZSA9IHt9Ow0KCSAgICAvLyBQbGFjZSBhbGwgb2YgdGhlIHZhbHVlcyBpbiB0aGUgY2FjaGUgYmVmb3JlIHJlc29sdmluZyBjaGlsZHJlbiAmIG1ldGFkYXRhIHJlbGF0aW9uc2hpcHMuDQoJICAgIGZvciAobGV0IHJhd0VsZW1lbnQgb2YgbWV0YWRhdGEubGlzdEl0ZW1zIHx8IFtdKSB7DQoJICAgICAgICAvLyBNYXRjaCBvbiB0aGUgZmlyc3QgbGluZSB0byBnZXQgdGhlIHN5bWJvbCBhbmQgZmlyc3QgbGluZSBvZiB0ZXh0Lg0KCSAgICAgICAgbGV0IHJhd01hdGNoID0gTElTVF9JVEVNX1JFR0VYLmV4ZWMoY29udGVudFtyYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmVdKTsNCgkgICAgICAgIGlmICghcmF3TWF0Y2gpDQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICAvLyBBbmQgdGhlbiBzdHJpcCB1bm5lY2Vzc2FyeSBzcGFjaW5nIGZyb20gdGhlIHJlbWFpbmluZyBsaW5lcy4NCgkgICAgICAgIGxldCB0ZXh0UGFydHMgPSBbcmF3TWF0Y2hbM11dDQoJICAgICAgICAgICAgLmNvbmNhdChjb250ZW50LnNsaWNlKHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSArIDEsIHJhd0VsZW1lbnQucG9zaXRpb24uZW5kLmxpbmUgKyAxKSkNCgkgICAgICAgICAgICAubWFwKHQgPT4gdC50cmltKCkpOw0KCSAgICAgICAgbGV0IHRleHRXaXRoTmV3bGluZSA9IHRleHRQYXJ0cy5qb2luKCJcbiIpOw0KCSAgICAgICAgbGV0IHRleHROb05ld2xpbmUgPSB0ZXh0UGFydHMuam9pbigiICIpOw0KCSAgICAgICAgLy8gRmluZCB0aGUgbGlzdCB0aGF0IHdlIGFyZSBhIHBhcnQgb2YgYnkgbGluZS4NCgkgICAgICAgIGxldCBjb250YWluaW5nTGlzdElkID0gKG1ldGFkYXRhLnNlY3Rpb25zIHx8IFtdKS5maW5kSW5kZXgocyA9PiBzLnR5cGUgPT0gImxpc3QiICYmDQoJICAgICAgICAgICAgcy5wb3NpdGlvbi5zdGFydC5saW5lIDw9IHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSAmJg0KCSAgICAgICAgICAgIHMucG9zaXRpb24uZW5kLmxpbmUgPj0gcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lKTsNCgkgICAgICAgIC8vIEZpbmQgdGhlIHNlY3Rpb24gd2UgYmVsb25nIHRvIGFzIHdlbGwuDQoJICAgICAgICBsZXQgc2VjdGlvbk5hbWUgPSBmaW5kUHJldmlvdXNIZWFkZXIocmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lLCBtZXRhZGF0YS5oZWFkaW5ncyB8fCBbXSk7DQoJICAgICAgICBsZXQgc2VjdGlvbkxpbmsgPSBzZWN0aW9uTmFtZSA9PT0gdW5kZWZpbmVkID8gTGluay5maWxlKHBhdGgpIDogTGluay5oZWFkZXIocGF0aCwgc2VjdGlvbk5hbWUpOw0KCSAgICAgICAgbGV0IGNsb3Nlc3RMaW5rID0gcmF3RWxlbWVudC5pZCA9PT0gdW5kZWZpbmVkID8gc2VjdGlvbkxpbmsgOiBMaW5rLmJsb2NrKHBhdGgsIHJhd0VsZW1lbnQuaWQpOw0KCSAgICAgICAgLy8gR2F0aGVyIGFueSBsaW5rcyB0aGF0IG9jY3VyIG9uIHRoZSBzYW1lIGxpbmVzIGFzIHRoZSB0YXNrLg0KCSAgICAgICAgY29uc3QgbGlua3MgPSBbXTsNCgkgICAgICAgIGZvciAobGV0IGxpbmUgPSByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmU7IGxpbmUgPD0gcmF3RWxlbWVudC5wb3NpdGlvbi5lbmQubGluZTsgbGluZSsrKSB7DQoJICAgICAgICAgICAgaWYgKGxpbmtzQnlMaW5lW2xpbmVdKQ0KCSAgICAgICAgICAgICAgICBsaW5rcy5wdXNoKC4uLmxpbmtzQnlMaW5lW2xpbmVdKTsNCgkgICAgICAgIH0NCgkgICAgICAgIC8vIENvbnN0cnVjdCB1bml2ZXJzYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBlbGVtZW50IChiZWZvcmUgdGFza3MpLg0KCSAgICAgICAgbGV0IGl0ZW0gPSBuZXcgTGlzdEl0ZW0oew0KCSAgICAgICAgICAgIHN5bWJvbDogcmF3TWF0Y2hbMV0sDQoJICAgICAgICAgICAgbGluazogY2xvc2VzdExpbmssDQoJICAgICAgICAgICAgbGlua3M6IGxpbmtzLA0KCSAgICAgICAgICAgIHNlY3Rpb246IHNlY3Rpb25MaW5rLA0KCSAgICAgICAgICAgIHRleHQ6IHRleHRXaXRoTmV3bGluZSwNCgkgICAgICAgICAgICB0YWdzOiBleHRyYWN0VGFncyQxKHRleHROb05ld2xpbmUpLA0KCSAgICAgICAgICAgIGxpbmU6IHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSwNCgkgICAgICAgICAgICBsaW5lQ291bnQ6IHJhd0VsZW1lbnQucG9zaXRpb24uZW5kLmxpbmUgLSByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUgKyAxLA0KCSAgICAgICAgICAgIGxpc3Q6IGNvbnRhaW5pbmdMaXN0SWQgPT0gLTEgPyAtMSA6IChtZXRhZGF0YS5zZWN0aW9ucyB8fCBbXSlbY29udGFpbmluZ0xpc3RJZF0ucG9zaXRpb24uc3RhcnQubGluZSwNCgkgICAgICAgICAgICBwb3NpdGlvbjogcmF3RWxlbWVudC5wb3NpdGlvbiwNCgkgICAgICAgICAgICBjaGlsZHJlbjogW10sDQoJICAgICAgICAgICAgYmxvY2tJZDogcmF3RWxlbWVudC5pZCwNCgkgICAgICAgIH0pOw0KCSAgICAgICAgaWYgKHJhd0VsZW1lbnQucGFyZW50ID49IDAgJiYgcmF3RWxlbWVudC5wYXJlbnQgIT0gaXRlbS5saW5lKQ0KCSAgICAgICAgICAgIGl0ZW0ucGFyZW50ID0gcmF3RWxlbWVudC5wYXJlbnQ7DQoJICAgICAgICAvLyBTZXQgdXAgdGhlIGJhc2ljIHRhc2sgaW5mb3JtYXRpb24gZm9yIG5vdywgdGhvdWdoIHdlIGhhdmUgdG8gcmVjb21wdXRlIGBmdWxseUNvbXB1dGVkYCBsYXRlci4NCgkgICAgICAgIGlmIChyYXdFbGVtZW50LnRhc2spIHsNCgkgICAgICAgICAgICBpdGVtLnRhc2sgPSB7DQoJICAgICAgICAgICAgICAgIHN0YXR1czogcmF3RWxlbWVudC50YXNrLA0KCSAgICAgICAgICAgICAgICBjaGVja2VkOiByYXdFbGVtZW50LnRhc2sgIT0gIiIgJiYgcmF3RWxlbWVudC50YXNrICE9ICIgIiwNCgkgICAgICAgICAgICAgICAgY29tcGxldGVkOiByYXdFbGVtZW50LnRhc2sgPT0gIlgiIHx8IHJhd0VsZW1lbnQudGFzayA9PSAieCIsDQoJICAgICAgICAgICAgICAgIGZ1bGx5Q29tcGxldGVkOiByYXdFbGVtZW50LnRhc2sgPT0gIlgiIHx8IHJhd0VsZW1lbnQudGFzayA9PSAieCIsDQoJICAgICAgICAgICAgfTsNCgkgICAgICAgIH0NCgkgICAgICAgIC8vIEV4dHJhY3QgaW5saW5lIGZpZWxkczsgZXh0cmFjdCBmdWxsLWxpbmUgZmllbGRzIG9ubHkgaWYgd2UgYXJlIE5PVCBhIHRhc2suDQoJICAgICAgICBpdGVtLmZpZWxkcyA9IG5ldyBNYXAoKTsNCgkgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZXh0cmFjdElubGluZUZpZWxkcyh0ZXh0Tm9OZXdsaW5lLCB0cnVlKSkNCgkgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChlbGVtZW50LCBpdGVtLmZpZWxkcyk7DQoJICAgICAgICBpZiAoIXJhd0VsZW1lbnQudGFzayAmJiBpdGVtLmZpZWxkcy5zaXplID09IDApIHsNCgkgICAgICAgICAgICBsZXQgZnVsbExpbmUgPSBleHRyYWN0RnVsbExpbmVGaWVsZCh0ZXh0Tm9OZXdsaW5lKTsNCgkgICAgICAgICAgICBpZiAoZnVsbExpbmUpDQoJICAgICAgICAgICAgICAgIGFkZFJhd0lubGluZUZpZWxkKGZ1bGxMaW5lLCBpdGVtLmZpZWxkcyk7DQoJICAgICAgICB9DQoJICAgICAgICBjYWNoZVtpdGVtLmxpbmVdID0gaXRlbTsNCgkgICAgfQ0KCSAgICAvLyBUcmVlIHVwZGF0aW5nIHBhc3Nlcy4gVXBkYXRlIGNoaWxkIGxpc3RzLiBQcm9wb2dhdGUgbWV0YWRhdGEgdXAgdG8gcGFyZW50IHRhc2tzLiBVcGRhdGUgdGFzayBgZnVsbHlDb21wbGV0ZWRgLg0KCSAgICBsZXQgbGl0ZXJhbHMgPSBuZXcgTWFwKCk7DQoJICAgIGZvciAobGV0IGxpc3RJdGVtIG9mIE9iamVjdC52YWx1ZXMoY2FjaGUpKSB7DQoJICAgICAgICAvLyBQYXNzIDE6IFVwZGF0ZSBjaGlsZCBsaXN0cy4NCgkgICAgICAgIGlmIChsaXN0SXRlbS5wYXJlbnQgIT09IHVuZGVmaW5lZCAmJiBsaXN0SXRlbS5wYXJlbnQgaW4gY2FjaGUpIHsNCgkgICAgICAgICAgICBsZXQgcGFyZW50ID0gY2FjaGVbbGlzdEl0ZW0ucGFyZW50XTsNCgkgICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChsaXN0SXRlbS5saW5lKTsNCgkgICAgICAgIH0NCgkgICAgICAgIC8vIFBhc3MgMjogUHJvcG9nYXRlIG1ldGFkYXRhIHVwIHRvIHRoZSBwYXJlbnQgdGFzayBvciByb290IGVsZW1lbnQuDQoJICAgICAgICBpZiAoIWxpc3RJdGVtLnRhc2spIHsNCgkgICAgICAgICAgICBtZXJnZUZpZWxkR3JvdXBzKGxpdGVyYWxzLCBsaXN0SXRlbS5maWVsZHMpOw0KCSAgICAgICAgICAgIC8vIFRPRE8gKGJsYWNrc21pdGhndSk6IFRoZSBiZWxvdyBjb2RlIHByb3Blcmx5IHByb3BvZ2F0ZXMgbWV0YWRhdGEgdXAgdG8gdGhlIG5lYXJlc3QgdGFzaywgd2hpY2ggaXMgdGhlDQoJICAgICAgICAgICAgLy8gbW9yZSBpbnR1aXRpdmUgYmVoYXZpb3IuIEZvciBub3csIHRob3VnaCwgd2Ugd2lsbCBrZWVwIHRoZSBleGlzdGluZyBsb2dpYy4NCgkgICAgICAgICAgICAvKg0KCSAgICAgICAgICAgIGxldCByb290OiBMaXN0SXRlbSB8IHVuZGVmaW5lZCA9IGxpc3RJdGVtOw0KCSAgICAgICAgICAgIHdoaWxlICghIXJvb3QgJiYgIXJvb3QudGFzaykgcm9vdCA9IGNhY2hlW3Jvb3QucGFyZW50ID8/IC0xXTsNCgoJICAgICAgICAgICAgLy8gSWYgdGhlIHJvb3QgaXMgbnVsbCwgYXBwZW5kIHRoaXMgbWV0YWRhdGEgdG8gdGhlIHJvb3Q7IG90aGVyd2lzZSwgYXBwZW5kIHRvIHRoZSB0YXNrLg0KCSAgICAgICAgICAgIG1lcmdlRmllbGRHcm91cHMocm9vdCA9PT0gdW5kZWZpbmVkIHx8IHJvb3QgPT0gbnVsbCA/IGxpdGVyYWxzIDogcm9vdC5maWVsZHMsIGxpc3RJdGVtLmZpZWxkcyk7DQoJICAgICAgICAgICAgKi8NCgkgICAgICAgIH0NCgkgICAgICAgIC8vIFBhc3MgMzogUHJvcG9nYXRlIGBmdWxseUNvbXBsZXRlZGAgdXAgdGhlIHRhc2sgdHJlZS4gVGhpcyBpcyBhIGxpdHRsZSBsZXNzIGVmZmljaWVudCB0aGFuIGp1c3QgZG9pbmcgYSBzaW1wbGUNCgkgICAgICAgIC8vIERGUyB1c2luZyB0aGUgY2hpbGRyZW4gSURzLCBidXQgaXQncyBwcm9iYWJseSBmaW5lLg0KCSAgICAgICAgaWYgKGxpc3RJdGVtLnRhc2spIHsNCgkgICAgICAgICAgICBsZXQgY3VyciA9IGxpc3RJdGVtOw0KCSAgICAgICAgICAgIHdoaWxlICghIWN1cnIpIHsNCgkgICAgICAgICAgICAgICAgaWYgKGN1cnIudGFzaykNCgkgICAgICAgICAgICAgICAgICAgIGN1cnIudGFzay5mdWxseUNvbXBsZXRlZCA9IGN1cnIudGFzay5mdWxseUNvbXBsZXRlZCAmJiBsaXN0SXRlbS50YXNrLmNvbXBsZXRlZDsNCgkgICAgICAgICAgICAgICAgY3VyciA9IGNhY2hlWyhfYSA9IGN1cnIucGFyZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAtMV07DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIHJldHVybiBbT2JqZWN0LnZhbHVlcyhjYWNoZSksIGxpdGVyYWxzXTsNCgl9DQoJLyoqIEF0dGVtcHQgdG8gZmluZCBhIGRhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBwYWdlIGZyb20gbWV0YWRhdGEgb3IgZmlsZW5hbWVzLiAqLw0KCWZ1bmN0aW9uIGZpbmREYXRlKGZpbGUsIGZpZWxkcykgew0KCSAgICB2YXIgX2EsIF9iLCBfYywgX2Q7DQoJICAgIGZvciAobGV0IGtleSBvZiBmaWVsZHMua2V5cygpKSB7DQoJICAgICAgICBpZiAoIShrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSAiZGF0ZSIgfHwga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gImRheSIpKQ0KCSAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgbGV0IHZhbHVlID0gZmllbGRzLmdldChrZXkpOw0KCSAgICAgICAgaWYgKFZhbHVlcy5pc0RhdGUodmFsdWUpKSB7DQoJICAgICAgICAgICAgcmV0dXJuIHZhbHVlOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAoVmFsdWVzLmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDAgJiYgVmFsdWVzLmlzRGF0ZSh2YWx1ZVswXSkpIHsNCgkgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmIChWYWx1ZXMuaXNMaW5rKHZhbHVlKSkgew0KCSAgICAgICAgICAgIGxldCBkYXRlID0gKF9jID0gKF9hID0gZXh0cmFjdERhdGUodmFsdWUucGF0aCkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGV4dHJhY3REYXRlKChfYiA9IHZhbHVlLnN1YnBhdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICIiKSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZXh0cmFjdERhdGUoKF9kID0gdmFsdWUuZGlzcGxheSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogIiIpOw0KCSAgICAgICAgICAgIGlmIChkYXRlKQ0KCSAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICByZXR1cm4gZXh0cmFjdERhdGUoZ2V0RmlsZVRpdGxlKGZpbGUpKTsNCgl9DQoJLyoqIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgZnJvbnRtYXR0ZXIgaW50byBmaWVsZHMuIFdlIGhhdmUgdG8gZGFuY2UgYXJvdW5kIFlBTUwgc3RydWN0dXJlLiAqLw0KCWZ1bmN0aW9uIHBhcnNlRnJvbnRtYXR0ZXIodmFsdWUpIHsNCgkgICAgaWYgKHZhbHVlID09IG51bGwpIHsNCgkgICAgICAgIHJldHVybiBudWxsOw0KCSAgICB9DQoJICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsNCgkgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgew0KCSAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTsNCgkgICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB2YWx1ZSkgew0KCSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChwYXJzZUZyb250bWF0dGVyKGNoaWxkKSk7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIHsNCgkgICAgICAgICAgICBsZXQgb2JqZWN0ID0gdmFsdWU7DQoJICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt9Ow0KCSAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBvYmplY3QpIHsNCgkgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwYXJzZUZyb250bWF0dGVyKG9iamVjdFtrZXldKTsNCgkgICAgICAgICAgICB9DQoJICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiKSB7DQoJICAgICAgICByZXR1cm4gdmFsdWU7DQoJICAgIH0NCgkgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAiYm9vbGVhbiIpIHsNCgkgICAgICAgIHJldHVybiB2YWx1ZTsNCgkgICAgfQ0KCSAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciKSB7DQoJICAgICAgICBsZXQgZGF0ZVBhcnNlID0gRVhQUkVTU0lPTi5kYXRlLnBhcnNlKHZhbHVlKTsNCgkgICAgICAgIGlmIChkYXRlUGFyc2Uuc3RhdHVzKQ0KCSAgICAgICAgICAgIHJldHVybiBkYXRlUGFyc2UudmFsdWU7DQoJICAgICAgICBsZXQgZHVyYXRpb25QYXJzZSA9IEVYUFJFU1NJT04uZHVyYXRpb24ucGFyc2UodmFsdWUpOw0KCSAgICAgICAgaWYgKGR1cmF0aW9uUGFyc2Uuc3RhdHVzKQ0KCSAgICAgICAgICAgIHJldHVybiBkdXJhdGlvblBhcnNlLnZhbHVlOw0KCSAgICAgICAgbGV0IGxpbmtQYXJzZSA9IEVYUFJFU1NJT04uZW1iZWRMaW5rLnBhcnNlKHZhbHVlKTsNCgkgICAgICAgIGlmIChsaW5rUGFyc2Uuc3RhdHVzKQ0KCSAgICAgICAgICAgIHJldHVybiBsaW5rUGFyc2UudmFsdWU7DQoJICAgICAgICByZXR1cm4gdmFsdWU7DQoJICAgIH0NCgkgICAgLy8gQmFja3VwIGlmIHdlIGRvbid0IHVuZGVyc3RhbmQgdGhlIHR5cGUuDQoJICAgIHJldHVybiBudWxsOw0KCX0NCgkvKiogQWRkIGEgcGFyc2VkIGlubGluZSBmaWVsZCB0byB0aGUgb3V0cHV0IG1hcC4gKi8NCglmdW5jdGlvbiBhZGRSYXdJbmxpbmVGaWVsZChmaWVsZCwgb3V0cHV0KSB7DQoJICAgIGFkZElubGluZUZpZWxkKGZpZWxkLmtleSwgcGFyc2VJbmxpbmVWYWx1ZShmaWVsZC52YWx1ZSksIG91dHB1dCk7DQoJfQ0KCS8qKiBBZGQgYSByYXcgaW5saW5lIGZpZWxkIHRvIGFuIG91dHB1dCBtYXAsIGNhbm9uaWNhbGl6aW5nIGFzIG5lZWRlZC4gKi8NCglmdW5jdGlvbiBhZGRJbmxpbmVGaWVsZChrZXksIHZhbHVlLCBvdXRwdXQpIHsNCgkgICAgdmFyIF9hOw0KCSAgICBpZiAoIW91dHB1dC5oYXMoa2V5KSkNCgkgICAgICAgIG91dHB1dC5zZXQoa2V5LCBbdmFsdWVdKTsNCgkgICAgZWxzZQ0KCSAgICAgICAgKF9hID0gb3V0cHV0LmdldChrZXkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucHVzaCh2YWx1ZSk7DQoJfQ0KCS8qKiBHaXZlbiBhIHJhdyBsaXN0IG9mIGlubGluZSBmaWVsZCB2YWx1ZXMsIGFkZCBub3JtYWxpemVkIGtleXMgYW5kIHNxdWFzaCB0aGVtLiAqLw0KCWZ1bmN0aW9uIGZpbmFsaXplSW5saW5lRmllbGRzKGZpZWxkcykgew0KCSAgICAvLyBDb21wdXRlIHVuaXF1ZSBub3JtYWxpemVkIGtleXMgKHRoYXQgZG8gbm90IG92ZXJsYXAgdy8gdGhlIGZpZWxkcykuDQoJICAgIGxldCBub3JtYWxpemVkID0gbmV3IE1hcCgpOw0KCSAgICBmb3IgKGxldCBba2V5LCB2YWx1ZXNdIG9mIGZpZWxkcy5lbnRyaWVzKCkpIHsNCgkgICAgICAgIGxldCBub3JtS2V5ID0gY2Fub25pY2FsaXplVmFyTmFtZShrZXkpOw0KCSAgICAgICAgaWYgKG5vcm1LZXkgPT0gIiIgfHwgZmllbGRzLmhhcyhub3JtS2V5KSkNCgkgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgIGlmICghbm9ybWFsaXplZC5oYXMobm9ybUtleSkpDQoJICAgICAgICAgICAgbm9ybWFsaXplZC5zZXQobm9ybUtleSwgdmFsdWVzKTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICBub3JtYWxpemVkLnNldChub3JtS2V5LCBub3JtYWxpemVkLmdldChub3JtS2V5KS5jb25jYXQodmFsdWVzKSk7DQoJICAgIH0NCgkgICAgLy8gQ29tYmluZSBub3JtYWxpemVkICsgbm9ybWFsIGtleXMuDQoJICAgIGxldCBpbnRlcmltID0gbmV3IE1hcCgpOw0KCSAgICBtZXJnZUZpZWxkR3JvdXBzKGludGVyaW0sIGZpZWxkcyk7DQoJICAgIG1lcmdlRmllbGRHcm91cHMoaW50ZXJpbSwgbm9ybWFsaXplZCk7DQoJICAgIC8vIEFuZCB0aGVuIGZsYXR0ZW4gdGhlbS4NCgkgICAgbGV0IHJlc3VsdCA9IG5ldyBNYXAoKTsNCgkgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIGludGVyaW0uZW50cmllcygpKSB7DQoJICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDEpDQoJICAgICAgICAgICAgcmVzdWx0LnNldChrZXksIHZhbHVlWzBdKTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICByZXN1bHQuc2V0KGtleSwgdmFsdWUpOw0KCSAgICB9DQoJICAgIHJldHVybiByZXN1bHQ7DQoJfQ0KCS8qKiBDb3B5IGFsbCBmaWVsZHMgb2YgJ3NvdXJjZScgaW50byAndGFyZ2V0Jy4gKi8NCglmdW5jdGlvbiBtZXJnZUZpZWxkR3JvdXBzKHRhcmdldCwgc291cmNlKSB7DQoJICAgIGZvciAobGV0IGtleSBvZiBzb3VyY2Uua2V5cygpKSB7DQoJICAgICAgICBpZiAoIXRhcmdldC5oYXMoa2V5KSkNCgkgICAgICAgICAgICB0YXJnZXQuc2V0KGtleSwgc291cmNlLmdldChrZXkpKTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICB0YXJnZXQuc2V0KGtleSwgdGFyZ2V0LmdldChrZXkpLmNvbmNhdChzb3VyY2UuZ2V0KGtleSkpKTsNCgkgICAgfQ0KCX0NCgkvKiogRmluZCB0aGUgaGVhZGVyIHRoYXQgaXMgbW9zdCBpbW1lZGlhdGVseSBhYm92ZSB0aGUgZ2l2ZW4gbGluZSBudW1iZXIuICovDQoJZnVuY3Rpb24gZmluZFByZXZpb3VzSGVhZGVyKGxpbmUsIGhlYWRlcnMpIHsNCgkgICAgaWYgKGhlYWRlcnMubGVuZ3RoID09IDApDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICBpZiAoaGVhZGVyc1swXS5wb3NpdGlvbi5zdGFydC5saW5lID4gbGluZSkNCgkgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIGxldCBpbmRleCA9IGhlYWRlcnMubGVuZ3RoIC0gMTsNCgkgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgaGVhZGVyc1tpbmRleF0ucG9zaXRpb24uc3RhcnQubGluZSA+IGxpbmUpDQoJICAgICAgICBpbmRleC0tOw0KCSAgICByZXR1cm4gaGVhZGVyc1tpbmRleF0uaGVhZGluZzsNCgl9CgoJLyoqIEFjdHVhbCBpbXBvcnQgaW1wbGVtZW50YXRpb24gYmFja2VuZC4gVGhpcyBtdXN0IHJlbWFpbiBzZXBhcmF0ZSBmcm9tIGBpbXBvcnQtZW50cnlgIHNpbmNlIGl0IGlzIHVzZWQgd2l0aG91dCB3ZWIgd29ya2Vycy4gKi8NCglmdW5jdGlvbiBydW5JbXBvcnQocGF0aCwgY29udGVudHMsIHN0YXRzLCBtZXRhZGF0YSkgew0KCSAgICByZXR1cm4gcGFyc2VQYWdlKHBhdGgsIGNvbnRlbnRzLCBzdGF0cywgbWV0YWRhdGEpOw0KCX0KCgkvKiogU2ltcGxpZmllcyBwYXNzaW5nIGRhdGF2aWV3IHZhbHVlcyBhY3Jvc3MgdGhlIEpTIHdlYiB3b3JrZXIgYmFycmllci4gKi8NCgl2YXIgVHJhbnNmZXJhYmxlOw0KCShmdW5jdGlvbiAoVHJhbnNmZXJhYmxlKSB7DQoJICAgIC8qKiBDb252ZXJ0IGEgbGl0ZXJhbCB2YWx1ZSB0byBhIHNlcmlhbGl6ZXItZnJpZW5kbHkgdHJhbnNmZXJhYmxlIHZhbHVlLiAqLw0KCSAgICBmdW5jdGlvbiB0cmFuc2ZlcmFibGUodmFsdWUpIHsNCgkgICAgICAgIC8vIEhhbmRsZSBzaW1wbGUgdW5pdmVyc2FsIHR5cGVzIGZpcnN0Lg0KCSAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7DQoJICAgICAgICAgICAgbGV0IGNvcGllZCA9IG5ldyBNYXAoKTsNCgkgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWxdIG9mIHZhbHVlLmVudHJpZXMoKSkNCgkgICAgICAgICAgICAgICAgY29waWVkLnNldCh0cmFuc2ZlcmFibGUoa2V5KSwgdHJhbnNmZXJhYmxlKHZhbCkpOw0KCSAgICAgICAgICAgIHJldHVybiBjb3BpZWQ7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldCkgew0KCSAgICAgICAgICAgIGxldCBjb3BpZWQgPSBuZXcgU2V0KCk7DQoJICAgICAgICAgICAgZm9yIChsZXQgdmFsIG9mIHZhbHVlKQ0KCSAgICAgICAgICAgICAgICBjb3BpZWQuYWRkKHRyYW5zZmVyYWJsZSh2YWwpKTsNCgkgICAgICAgICAgICByZXR1cm4gY29waWVkOw0KCSAgICAgICAgfQ0KCSAgICAgICAgbGV0IHdyYXBwZWQgPSBWYWx1ZXMud3JhcFZhbHVlKHZhbHVlKTsNCgkgICAgICAgIGlmICh3cmFwcGVkID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgdGhyb3cgRXJyb3IoIlVucmVjb2duaXplZCB0cmFuc2ZlcmFibGUgdmFsdWU6ICIgKyB2YWx1ZSk7DQoJICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkgew0KCSAgICAgICAgICAgIGNhc2UgIm51bGwiOg0KCSAgICAgICAgICAgIGNhc2UgIm51bWJlciI6DQoJICAgICAgICAgICAgY2FzZSAic3RyaW5nIjoNCgkgICAgICAgICAgICBjYXNlICJib29sZWFuIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7DQoJICAgICAgICAgICAgY2FzZSAiZGF0ZSI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB7DQoJICAgICAgICAgICAgICAgICAgICAiX19fdHJhbnNmZXItdHlwZSI6ICJkYXRlIiwNCgkgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cmFuc2ZlcmFibGUod3JhcHBlZC52YWx1ZS50b09iamVjdCgpKSwNCgkgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsgem9uZTogd3JhcHBlZC52YWx1ZS56b25lTmFtZSB9LA0KCSAgICAgICAgICAgICAgICB9Ow0KCSAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHsgIl9fX3RyYW5zZmVyLXR5cGUiOiAiZHVyYXRpb24iLCB2YWx1ZTogdHJhbnNmZXJhYmxlKHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSkgfTsNCgkgICAgICAgICAgICBjYXNlICJhcnJheSI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcCh2ID0+IHRyYW5zZmVyYWJsZSh2KSk7DQoJICAgICAgICAgICAgY2FzZSAibGluayI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB7ICJfX190cmFuc2Zlci10eXBlIjogImxpbmsiLCB2YWx1ZTogdHJhbnNmZXJhYmxlKHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSkgfTsNCgkgICAgICAgICAgICBjYXNlICJvYmplY3QiOg0KCSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307DQoJICAgICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh3cmFwcGVkLnZhbHVlKSkNCgkgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmZXJhYmxlKHZhbHVlKTsNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBUcmFuc2ZlcmFibGUudHJhbnNmZXJhYmxlID0gdHJhbnNmZXJhYmxlOw0KCSAgICAvKiogQ29udmVydCBhIHRyYW5zZmVyYWJsZSB2YWx1ZSBiYWNrIHRvIGEgbGl0ZXJhbCB2YWx1ZSB3ZSBjYW4gd29yayB3aXRoLiAqLw0KCSAgICBmdW5jdGlvbiB2YWx1ZSh0cmFuc2ZlcmFibGUpIHsNCgkgICAgICAgIGlmICh0cmFuc2ZlcmFibGUgPT09IG51bGwpIHsNCgkgICAgICAgICAgICByZXR1cm4gbnVsbDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKHRyYW5zZmVyYWJsZSA9PT0gdW5kZWZpbmVkKSB7DQoJICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKHRyYW5zZmVyYWJsZSBpbnN0YW5jZW9mIE1hcCkgew0KCSAgICAgICAgICAgIGxldCByZWFsID0gbmV3IE1hcCgpOw0KCSAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbF0gb2YgdHJhbnNmZXJhYmxlLmVudHJpZXMoKSkNCgkgICAgICAgICAgICAgICAgcmVhbC5zZXQodmFsdWUoa2V5KSwgdmFsdWUodmFsKSk7DQoJICAgICAgICAgICAgcmV0dXJuIHJlYWw7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmICh0cmFuc2ZlcmFibGUgaW5zdGFuY2VvZiBTZXQpIHsNCgkgICAgICAgICAgICBsZXQgcmVhbCA9IG5ldyBTZXQoKTsNCgkgICAgICAgICAgICBmb3IgKGxldCB2YWwgb2YgdHJhbnNmZXJhYmxlKQ0KCSAgICAgICAgICAgICAgICByZWFsLmFkZCh2YWx1ZSh2YWwpKTsNCgkgICAgICAgICAgICByZXR1cm4gcmVhbDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHJhbnNmZXJhYmxlKSkgew0KCSAgICAgICAgICAgIHJldHVybiB0cmFuc2ZlcmFibGUubWFwKHYgPT4gdmFsdWUodikpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRyYW5zZmVyYWJsZSA9PT0gIm9iamVjdCIpIHsNCgkgICAgICAgICAgICBpZiAoIl9fX3RyYW5zZmVyLXR5cGUiIGluIHRyYW5zZmVyYWJsZSkgew0KCSAgICAgICAgICAgICAgICBzd2l0Y2ggKHRyYW5zZmVyYWJsZVsiX19fdHJhbnNmZXItdHlwZSJdKSB7DQoJICAgICAgICAgICAgICAgICAgICBjYXNlICJkYXRlIjoNCgkgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmF3RGF0ZSA9IERhdGVUaW1lXzEuZnJvbU9iamVjdCh2YWx1ZSh0cmFuc2ZlcmFibGUudmFsdWUpKTsNCgkgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0ZU9wdHMgPSB2YWx1ZSh0cmFuc2ZlcmFibGUub3B0aW9ucyk7DQoJICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVPcHRzLnpvbmUpDQoJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd0RhdGUuc2V0Wm9uZShkYXRlT3B0cy56b25lKTsNCgkgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmF3RGF0ZTsNCgkgICAgICAgICAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoNCgkgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRHVyYXRpb25fMS5mcm9tT2JqZWN0KHZhbHVlKHRyYW5zZmVyYWJsZS52YWx1ZSkpOw0KCSAgICAgICAgICAgICAgICAgICAgY2FzZSAibGluayI6DQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExpbmsuZnJvbU9iamVjdCh2YWx1ZSh0cmFuc2ZlcmFibGUudmFsdWUpKTsNCgkgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQoJICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCB0cmFuc2ZlciB0eXBlICcke3RyYW5zZmVyYWJsZVsiX19fdHJhbnNmZXItdHlwZSJdfSdgKTsNCgkgICAgICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIH0NCgkgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307DQoJICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyh0cmFuc2ZlcmFibGUpKQ0KCSAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlKHZhbCk7DQoJICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgIH0NCgkgICAgICAgIHJldHVybiB0cmFuc2ZlcmFibGU7DQoJICAgIH0NCgkgICAgVHJhbnNmZXJhYmxlLnZhbHVlID0gdmFsdWU7DQoJfSkoVHJhbnNmZXJhYmxlIHx8IChUcmFuc2ZlcmFibGUgPSB7fSkpOwoKCS8qKiBFbnRyeS1wb2ludCBzY3JpcHQgdXNlZCBieSB0aGUgaW5kZXggYXMgYSB3ZWIgd29ya2VyLiAqLw0KCS8qKiBBbiBpbXBvcnQgd2hpY2ggY2FuIGZhaWwgYW5kIHJhaXNlIGFuIGV4Y2VwdGlvbiwgd2hpY2ggd2lsbCBiZSBjYXVnaHQgYnkgdGhlIGhhbmRsZXIuICovDQoJZnVuY3Rpb24gZmFpbGFibGVJbXBvcnQocGF0aCwgY29udGVudHMsIHN0YXQsIG1ldGFkYXRhKSB7DQoJICAgIGlmIChtZXRhZGF0YSA9PT0gdW5kZWZpbmVkIHx8IG1ldGFkYXRhID09PSBudWxsKSB7DQoJICAgICAgICB0aHJvdyBFcnJvcihgQ2Fubm90IGluZGV4IGZpbGUsIHNpbmNlIGl0IGhhcyBubyBPYnNpZGlhbiBmaWxlIG1ldGFkYXRhLmApOw0KCSAgICB9DQoJICAgIHJldHVybiBydW5JbXBvcnQocGF0aCwgY29udGVudHMsIHN0YXQsIG1ldGFkYXRhKTsNCgl9DQoJb25tZXNzYWdlID0gYXN5bmMgKGV2dCkgPT4gew0KCSAgICB0cnkgew0KCSAgICAgICAgbGV0IHsgcGF0aCwgY29udGVudHMsIHN0YXQsIG1ldGFkYXRhIH0gPSBldnQuZGF0YTsNCgkgICAgICAgIGxldCByZXN1bHQgPSBmYWlsYWJsZUltcG9ydChwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpOw0KCSAgICAgICAgcG9zdE1lc3NhZ2UoeyBwYXRoOiBldnQuZGF0YS5wYXRoLCByZXN1bHQ6IFRyYW5zZmVyYWJsZS50cmFuc2ZlcmFibGUocmVzdWx0KSB9KTsNCgkgICAgfQ0KCSAgICBjYXRjaCAoZXJyb3IpIHsNCgkgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTsNCgkgICAgICAgIHBvc3RNZXNzYWdlKHsNCgkgICAgICAgICAgICBwYXRoOiBldnQuZGF0YS5wYXRoLA0KCSAgICAgICAgICAgIHJlc3VsdDogew0KCSAgICAgICAgICAgICAgICAkZXJyb3I6IGBGYWlsZWQgdG8gaW5kZXggZmlsZTogJHtldnQuZGF0YS5wYXRofTogJHtlcnJvcn1gLA0KCSAgICAgICAgICAgIH0sDQoJICAgICAgICB9KTsNCgkgICAgfQ0KCX07Cgp9KSgpOwoK', null, false); +var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewoJJ3VzZSBzdHJpY3QnOwoKCXZhciBjb21tb25qc0dsb2JhbCA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbFRoaXMgOiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9OwoKCXZhciBsdXhvbiA9IHt9OwoKCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsdXhvbiwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pOwoKCWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsKCSAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgewoJICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07CgkgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOwoJICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsKCSAgICBpZiAoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsKCSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7CgkgIH0KCX0KCglmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7CgkgIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOwoJICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7CgkgIHJldHVybiBDb25zdHJ1Y3RvcjsKCX0KCglmdW5jdGlvbiBfZXh0ZW5kcygpIHsKCSAgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsKCSAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsKCgkgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7CgkgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7CgkgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsKCSAgICAgICAgfQoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIHRhcmdldDsKCSAgfTsKCgkgIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwoJfQoKCWZ1bmN0aW9uIF9pbmhlcml0c0xvb3NlKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7CgkgIHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcy5wcm90b3R5cGUpOwoJICBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzczsKCgkgIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7Cgl9CgoJZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsKCSAgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsKCSAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOwoJICB9OwoJICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOwoJfQoKCWZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7CgkgIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgewoJICAgIG8uX19wcm90b19fID0gcDsKCSAgICByZXR1cm4gbzsKCSAgfTsKCgkgIHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7Cgl9CgoJZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsKCSAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAidW5kZWZpbmVkIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsKCSAgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsKCSAgaWYgKHR5cGVvZiBQcm94eSA9PT0gImZ1bmN0aW9uIikgcmV0dXJuIHRydWU7CgoJICB0cnkgewoJICAgIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTsKCSAgICByZXR1cm4gdHJ1ZTsKCSAgfSBjYXRjaCAoZSkgewoJICAgIHJldHVybiBmYWxzZTsKCSAgfQoJfQoKCWZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykgewoJICBpZiAoX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpKSB7CgkgICAgX2NvbnN0cnVjdCA9IFJlZmxlY3QuY29uc3RydWN0OwoJICB9IGVsc2UgewoJICAgIF9jb25zdHJ1Y3QgPSBmdW5jdGlvbiBfY29uc3RydWN0KFBhcmVudCwgYXJncywgQ2xhc3MpIHsKCSAgICAgIHZhciBhID0gW251bGxdOwoJICAgICAgYS5wdXNoLmFwcGx5KGEsIGFyZ3MpOwoJICAgICAgdmFyIENvbnN0cnVjdG9yID0gRnVuY3Rpb24uYmluZC5hcHBseShQYXJlbnQsIGEpOwoJICAgICAgdmFyIGluc3RhbmNlID0gbmV3IENvbnN0cnVjdG9yKCk7CgkgICAgICBpZiAoQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTsKCSAgICAgIHJldHVybiBpbnN0YW5jZTsKCSAgICB9OwoJICB9CgoJICByZXR1cm4gX2NvbnN0cnVjdC5hcHBseShudWxsLCBhcmd1bWVudHMpOwoJfQoKCWZ1bmN0aW9uIF9pc05hdGl2ZUZ1bmN0aW9uKGZuKSB7CgkgIHJldHVybiBGdW5jdGlvbi50b1N0cmluZy5jYWxsKGZuKS5pbmRleE9mKCJbbmF0aXZlIGNvZGVdIikgIT09IC0xOwoJfQoKCWZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHsKCSAgdmFyIF9jYWNoZSA9IHR5cGVvZiBNYXAgPT09ICJmdW5jdGlvbiIgPyBuZXcgTWFwKCkgOiB1bmRlZmluZWQ7CgoJICBfd3JhcE5hdGl2ZVN1cGVyID0gZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykgewoJICAgIGlmIChDbGFzcyA9PT0gbnVsbCB8fCAhX2lzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7CgoJICAgIGlmICh0eXBlb2YgQ2xhc3MgIT09ICJmdW5jdGlvbiIpIHsKCSAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7CgkgICAgfQoKCSAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gInVuZGVmaW5lZCIpIHsKCSAgICAgIGlmIChfY2FjaGUuaGFzKENsYXNzKSkgcmV0dXJuIF9jYWNoZS5nZXQoQ2xhc3MpOwoKCSAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpOwoJICAgIH0KCgkgICAgZnVuY3Rpb24gV3JhcHBlcigpIHsKCSAgICAgIHJldHVybiBfY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3Rvcik7CgkgICAgfQoKCSAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7CgkgICAgICBjb25zdHJ1Y3RvcjogewoJICAgICAgICB2YWx1ZTogV3JhcHBlciwKCSAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCgkgICAgICAgIHdyaXRhYmxlOiB0cnVlLAoJICAgICAgICBjb25maWd1cmFibGU6IHRydWUKCSAgICAgIH0KCSAgICB9KTsKCSAgICByZXR1cm4gX3NldFByb3RvdHlwZU9mKFdyYXBwZXIsIENsYXNzKTsKCSAgfTsKCgkgIHJldHVybiBfd3JhcE5hdGl2ZVN1cGVyKENsYXNzKTsKCX0KCglmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7CgkgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OwoJICB2YXIgdGFyZ2V0ID0ge307CgkgIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsKCSAgdmFyIGtleSwgaTsKCgkgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7CgkgICAga2V5ID0gc291cmNlS2V5c1tpXTsKCSAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOwoJICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07CgkgIH0KCgkgIHJldHVybiB0YXJnZXQ7Cgl9CgoJZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgewoJICBpZiAoIW8pIHJldHVybjsKCSAgaWYgKHR5cGVvZiBvID09PSAic3RyaW5nIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7CgkgIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsKCSAgaWYgKG4gPT09ICJPYmplY3QiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7CgkgIGlmIChuID09PSAiTWFwIiB8fCBuID09PSAiU2V0IikgcmV0dXJuIEFycmF5LmZyb20obyk7CgkgIGlmIChuID09PSAiQXJndW1lbnRzIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7Cgl9CgoJZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHsKCSAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7CgoJICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07CgoJICByZXR1cm4gYXJyMjsKCX0KCglmdW5jdGlvbiBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKG8sIGFsbG93QXJyYXlMaWtlKSB7CgkgIHZhciBpdCA9IHR5cGVvZiBTeW1ib2wgIT09ICJ1bmRlZmluZWQiICYmIG9bU3ltYm9sLml0ZXJhdG9yXSB8fCBvWyJAQGl0ZXJhdG9yIl07CgkgIGlmIChpdCkgcmV0dXJuIChpdCA9IGl0LmNhbGwobykpLm5leHQuYmluZChpdCk7CgoJICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgewoJICAgIGlmIChpdCkgbyA9IGl0OwoJICAgIHZhciBpID0gMDsKCSAgICByZXR1cm4gZnVuY3Rpb24gKCkgewoJICAgICAgaWYgKGkgPj0gby5sZW5ndGgpIHJldHVybiB7CgkgICAgICAgIGRvbmU6IHRydWUKCSAgICAgIH07CgkgICAgICByZXR1cm4gewoJICAgICAgICBkb25lOiBmYWxzZSwKCSAgICAgICAgdmFsdWU6IG9baSsrXQoJICAgICAgfTsKCSAgICB9OwoJICB9CgoJICB0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIik7Cgl9CgoJLy8gdGhlc2UgYXJlbid0IHJlYWxseSBwcml2YXRlLCBidXQgbm9yIGFyZSB0aGV5IHJlYWxseSB1c2VmdWwgdG8gZG9jdW1lbnQKCgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCXZhciBMdXhvbkVycm9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfRXJyb3IpIHsKCSAgX2luaGVyaXRzTG9vc2UoTHV4b25FcnJvciwgX0Vycm9yKTsKCgkgIGZ1bmN0aW9uIEx1eG9uRXJyb3IoKSB7CgkgICAgcmV0dXJuIF9FcnJvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBMdXhvbkVycm9yOwoJfSggLyojX19QVVJFX18qL193cmFwTmF0aXZlU3VwZXIoRXJyb3IpKTsKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCgl2YXIgSW52YWxpZERhdGVUaW1lRXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9MdXhvbkVycm9yKSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWREYXRlVGltZUVycm9yLCBfTHV4b25FcnJvcik7CgoJICBmdW5jdGlvbiBJbnZhbGlkRGF0ZVRpbWVFcnJvcihyZWFzb24pIHsKCSAgICByZXR1cm4gX0x1eG9uRXJyb3IuY2FsbCh0aGlzLCAiSW52YWxpZCBEYXRlVGltZTogIiArIHJlYXNvbi50b01lc3NhZ2UoKSkgfHwgdGhpczsKCSAgfQoKCSAgcmV0dXJuIEludmFsaWREYXRlVGltZUVycm9yOwoJfShMdXhvbkVycm9yKTsKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCXZhciBJbnZhbGlkSW50ZXJ2YWxFcnJvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0x1eG9uRXJyb3IyKSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWRJbnRlcnZhbEVycm9yLCBfTHV4b25FcnJvcjIpOwoKCSAgZnVuY3Rpb24gSW52YWxpZEludGVydmFsRXJyb3IocmVhc29uKSB7CgkgICAgcmV0dXJuIF9MdXhvbkVycm9yMi5jYWxsKHRoaXMsICJJbnZhbGlkIEludGVydmFsOiAiICsgcmVhc29uLnRvTWVzc2FnZSgpKSB8fCB0aGlzOwoJICB9CgoJICByZXR1cm4gSW52YWxpZEludGVydmFsRXJyb3I7Cgl9KEx1eG9uRXJyb3IpOwoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoJdmFyIEludmFsaWREdXJhdGlvbkVycm9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfTHV4b25FcnJvcjMpIHsKCSAgX2luaGVyaXRzTG9vc2UoSW52YWxpZER1cmF0aW9uRXJyb3IsIF9MdXhvbkVycm9yMyk7CgoJICBmdW5jdGlvbiBJbnZhbGlkRHVyYXRpb25FcnJvcihyZWFzb24pIHsKCSAgICByZXR1cm4gX0x1eG9uRXJyb3IzLmNhbGwodGhpcywgIkludmFsaWQgRHVyYXRpb246ICIgKyByZWFzb24udG9NZXNzYWdlKCkpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBJbnZhbGlkRHVyYXRpb25FcnJvcjsKCX0oTHV4b25FcnJvcik7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgl2YXIgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9MdXhvbkVycm9yNCkgewoJICBfaW5oZXJpdHNMb29zZShDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciwgX0x1eG9uRXJyb3I0KTsKCgkgIGZ1bmN0aW9uIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKCkgewoJICAgIHJldHVybiBfTHV4b25FcnJvcjQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwoJICB9CgoJICByZXR1cm4gQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3I7Cgl9KEx1eG9uRXJyb3IpOwoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoJdmFyIEludmFsaWRVbml0RXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9MdXhvbkVycm9yNSkgewoJICBfaW5oZXJpdHNMb29zZShJbnZhbGlkVW5pdEVycm9yLCBfTHV4b25FcnJvcjUpOwoKCSAgZnVuY3Rpb24gSW52YWxpZFVuaXRFcnJvcih1bml0KSB7CgkgICAgcmV0dXJuIF9MdXhvbkVycm9yNS5jYWxsKHRoaXMsICJJbnZhbGlkIHVuaXQgIiArIHVuaXQpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBJbnZhbGlkVW5pdEVycm9yOwoJfShMdXhvbkVycm9yKTsKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCXZhciBJbnZhbGlkQXJndW1lbnRFcnJvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0x1eG9uRXJyb3I2KSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWRBcmd1bWVudEVycm9yLCBfTHV4b25FcnJvcjYpOwoKCSAgZnVuY3Rpb24gSW52YWxpZEFyZ3VtZW50RXJyb3IoKSB7CgkgICAgcmV0dXJuIF9MdXhvbkVycm9yNi5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBJbnZhbGlkQXJndW1lbnRFcnJvcjsKCX0oTHV4b25FcnJvcik7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgl2YXIgWm9uZUlzQWJzdHJhY3RFcnJvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0x1eG9uRXJyb3I3KSB7CgkgIF9pbmhlcml0c0xvb3NlKFpvbmVJc0Fic3RyYWN0RXJyb3IsIF9MdXhvbkVycm9yNyk7CgoJICBmdW5jdGlvbiBab25lSXNBYnN0cmFjdEVycm9yKCkgewoJICAgIHJldHVybiBfTHV4b25FcnJvcjcuY2FsbCh0aGlzLCAiWm9uZSBpcyBhbiBhYnN0cmFjdCBjbGFzcyIpIHx8IHRoaXM7CgkgIH0KCgkgIHJldHVybiBab25lSXNBYnN0cmFjdEVycm9yOwoJfShMdXhvbkVycm9yKTsKCgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCXZhciBuID0gIm51bWVyaWMiLAoJICAgIHMgPSAic2hvcnQiLAoJICAgIGwgPSAibG9uZyI7Cgl2YXIgREFURV9TSE9SVCA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IG4sCgkgIGRheTogbgoJfTsKCXZhciBEQVRFX01FRCA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IHMsCgkgIGRheTogbgoJfTsKCXZhciBEQVRFX01FRF9XSVRIX1dFRUtEQVkgPSB7CgkgIHllYXI6IG4sCgkgIG1vbnRoOiBzLAoJICBkYXk6IG4sCgkgIHdlZWtkYXk6IHMKCX07Cgl2YXIgREFURV9GVUxMID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogbCwKCSAgZGF5OiBuCgl9OwoJdmFyIERBVEVfSFVHRSA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IGwsCgkgIGRheTogbiwKCSAgd2Vla2RheTogbAoJfTsKCXZhciBUSU1FX1NJTVBMRSA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuCgl9OwoJdmFyIFRJTUVfV0lUSF9TRUNPTkRTID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbgoJfTsKCXZhciBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4sCgkgIHRpbWVab25lTmFtZTogbAoJfTsKCXZhciBUSU1FXzI0X1NJTVBMRSA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBob3VyQ3ljbGU6ICJoMjMiCgl9OwoJdmFyIFRJTUVfMjRfV0lUSF9TRUNPTkRTID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgaG91ckN5Y2xlOiAiaDIzIgoJfTsKCXZhciBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUID0gewoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgaG91ckN5Y2xlOiAiaDIzIiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCA9IHsKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4sCgkgIGhvdXJDeWNsZTogImgyMyIsCgkgIHRpbWVab25lTmFtZTogbAoJfTsKCXZhciBEQVRFVElNRV9TSE9SVCA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IG4sCgkgIGRheTogbiwKCSAgaG91cjogbiwKCSAgbWludXRlOiBuCgl9OwoJdmFyIERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IG4sCgkgIGRheTogbiwKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4KCX07Cgl2YXIgREFURVRJTUVfTUVEID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogcywKCSAgZGF5OiBuLAoJICBob3VyOiBuLAoJICBtaW51dGU6IG4KCX07Cgl2YXIgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IHMsCgkgIGRheTogbiwKCSAgaG91cjogbiwKCSAgbWludXRlOiBuLAoJICBzZWNvbmQ6IG4KCX07Cgl2YXIgREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSA9IHsKCSAgeWVhcjogbiwKCSAgbW9udGg6IHMsCgkgIGRheTogbiwKCSAgd2Vla2RheTogcywKCSAgaG91cjogbiwKCSAgbWludXRlOiBuCgl9OwoJdmFyIERBVEVUSU1FX0ZVTEwgPSB7CgkgIHllYXI6IG4sCgkgIG1vbnRoOiBsLAoJICBkYXk6IG4sCgkgIGhvdXI6IG4sCgkgIG1pbnV0ZTogbiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogbCwKCSAgZGF5OiBuLAoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgdGltZVpvbmVOYW1lOiBzCgl9OwoJdmFyIERBVEVUSU1FX0hVR0UgPSB7CgkgIHllYXI6IG4sCgkgIG1vbnRoOiBsLAoJICBkYXk6IG4sCgkgIHdlZWtkYXk6IGwsCgkgIGhvdXI6IG4sCgkgIG1pbnV0ZTogbiwKCSAgdGltZVpvbmVOYW1lOiBsCgl9OwoJdmFyIERBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTID0gewoJICB5ZWFyOiBuLAoJICBtb250aDogbCwKCSAgZGF5OiBuLAoJICB3ZWVrZGF5OiBsLAoJICBob3VyOiBuLAoJICBtaW51dGU6IG4sCgkgIHNlY29uZDogbiwKCSAgdGltZVpvbmVOYW1lOiBsCgl9OwoKCS8qKgoJICogQHByaXZhdGUKCSAqLwoJLy8gVFlQRVMKCglmdW5jdGlvbiBpc1VuZGVmaW5lZChvKSB7CgkgIHJldHVybiB0eXBlb2YgbyA9PT0gInVuZGVmaW5lZCI7Cgl9CglmdW5jdGlvbiBpc051bWJlcihvKSB7CgkgIHJldHVybiB0eXBlb2YgbyA9PT0gIm51bWJlciI7Cgl9CglmdW5jdGlvbiBpc0ludGVnZXIobykgewoJICByZXR1cm4gdHlwZW9mIG8gPT09ICJudW1iZXIiICYmIG8gJSAxID09PSAwOwoJfQoJZnVuY3Rpb24gaXNTdHJpbmcobykgewoJICByZXR1cm4gdHlwZW9mIG8gPT09ICJzdHJpbmciOwoJfQoJZnVuY3Rpb24gaXNEYXRlKG8pIHsKCSAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSA9PT0gIltvYmplY3QgRGF0ZV0iOwoJfSAvLyBDQVBBQklMSVRJRVMKCglmdW5jdGlvbiBoYXNSZWxhdGl2ZSgpIHsKCSAgdHJ5IHsKCSAgICByZXR1cm4gdHlwZW9mIEludGwgIT09ICJ1bmRlZmluZWQiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7CgkgIH0gY2F0Y2ggKGUpIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0KCX0gLy8gT0JKRUNUUyBBTkQgQVJSQVlTCgoJZnVuY3Rpb24gbWF5YmVBcnJheSh0aGluZykgewoJICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107Cgl9CglmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkgewoJICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkgewoJICAgIHJldHVybiB1bmRlZmluZWQ7CgkgIH0KCgkgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uIChiZXN0LCBuZXh0KSB7CgkgICAgdmFyIHBhaXIgPSBbYnkobmV4dCksIG5leHRdOwoKCSAgICBpZiAoIWJlc3QpIHsKCSAgICAgIHJldHVybiBwYWlyOwoJICAgIH0gZWxzZSBpZiAoY29tcGFyZShiZXN0WzBdLCBwYWlyWzBdKSA9PT0gYmVzdFswXSkgewoJICAgICAgcmV0dXJuIGJlc3Q7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBwYWlyOwoJICAgIH0KCSAgfSwgbnVsbClbMV07Cgl9CglmdW5jdGlvbiBwaWNrKG9iaiwga2V5cykgewoJICByZXR1cm4ga2V5cy5yZWR1Y2UoZnVuY3Rpb24gKGEsIGspIHsKCSAgICBhW2tdID0gb2JqW2tdOwoJICAgIHJldHVybiBhOwoJICB9LCB7fSk7Cgl9CglmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHsKCSAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOwoJfSAvLyBOVU1CRVJTIEFORCBTVFJJTkdTCgoJZnVuY3Rpb24gaW50ZWdlckJldHdlZW4odGhpbmcsIGJvdHRvbSwgdG9wKSB7CgkgIHJldHVybiBpc0ludGVnZXIodGhpbmcpICYmIHRoaW5nID49IGJvdHRvbSAmJiB0aGluZyA8PSB0b3A7Cgl9IC8vIHggJSBuIGJ1dCB0YWtlcyB0aGUgc2lnbiBvZiBuIGluc3RlYWQgb2YgeAoKCWZ1bmN0aW9uIGZsb29yTW9kKHgsIG4pIHsKCSAgcmV0dXJuIHggLSBuICogTWF0aC5mbG9vcih4IC8gbik7Cgl9CglmdW5jdGlvbiBwYWRTdGFydChpbnB1dCwgbikgewoJICBpZiAobiA9PT0gdm9pZCAwKSB7CgkgICAgbiA9IDI7CgkgIH0KCgkgIHZhciBpc05lZyA9IGlucHV0IDwgMDsKCSAgdmFyIHBhZGRlZDsKCgkgIGlmIChpc05lZykgewoJICAgIHBhZGRlZCA9ICItIiArICgiIiArIC1pbnB1dCkucGFkU3RhcnQobiwgIjAiKTsKCSAgfSBlbHNlIHsKCSAgICBwYWRkZWQgPSAoIiIgKyBpbnB1dCkucGFkU3RhcnQobiwgIjAiKTsKCSAgfQoKCSAgcmV0dXJuIHBhZGRlZDsKCX0KCWZ1bmN0aW9uIHBhcnNlSW50ZWdlcihzdHJpbmcpIHsKCSAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gIiIpIHsKCSAgICByZXR1cm4gdW5kZWZpbmVkOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBwYXJzZUludChzdHJpbmcsIDEwKTsKCSAgfQoJfQoJZnVuY3Rpb24gcGFyc2VGbG9hdGluZyhzdHJpbmcpIHsKCSAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gIiIpIHsKCSAgICByZXR1cm4gdW5kZWZpbmVkOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7CgkgIH0KCX0KCWZ1bmN0aW9uIHBhcnNlTWlsbGlzKGZyYWN0aW9uKSB7CgkgIC8vIFJldHVybiB1bmRlZmluZWQgKGluc3RlYWQgb2YgMCkgaW4gdGhlc2UgY2FzZXMsIHdoZXJlIGZyYWN0aW9uIGlzIG5vdCBzZXQKCSAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gIiIpIHsKCSAgICByZXR1cm4gdW5kZWZpbmVkOwoJICB9IGVsc2UgewoJICAgIHZhciBmID0gcGFyc2VGbG9hdCgiMC4iICsgZnJhY3Rpb24pICogMTAwMDsKCSAgICByZXR1cm4gTWF0aC5mbG9vcihmKTsKCSAgfQoJfQoJZnVuY3Rpb24gcm91bmRUbyhudW1iZXIsIGRpZ2l0cywgdG93YXJkWmVybykgewoJICBpZiAodG93YXJkWmVybyA9PT0gdm9pZCAwKSB7CgkgICAgdG93YXJkWmVybyA9IGZhbHNlOwoJICB9CgoJICB2YXIgZmFjdG9yID0gTWF0aC5wb3coMTAsIGRpZ2l0cyksCgkgICAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kOwoJICByZXR1cm4gcm91bmRlcihudW1iZXIgKiBmYWN0b3IpIC8gZmFjdG9yOwoJfSAvLyBEQVRFIEJBU0lDUwoKCWZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikgewoJICByZXR1cm4geWVhciAlIDQgPT09IDAgJiYgKHllYXIgJSAxMDAgIT09IDAgfHwgeWVhciAlIDQwMCA9PT0gMCk7Cgl9CglmdW5jdGlvbiBkYXlzSW5ZZWFyKHllYXIpIHsKCSAgcmV0dXJuIGlzTGVhcFllYXIoeWVhcikgPyAzNjYgOiAzNjU7Cgl9CglmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkgewoJICB2YXIgbW9kTW9udGggPSBmbG9vck1vZChtb250aCAtIDEsIDEyKSArIDEsCgkgICAgICBtb2RZZWFyID0geWVhciArIChtb250aCAtIG1vZE1vbnRoKSAvIDEyOwoKCSAgaWYgKG1vZE1vbnRoID09PSAyKSB7CgkgICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4OwoJICB9IGVsc2UgewoJICAgIHJldHVybiBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVttb2RNb250aCAtIDFdOwoJICB9Cgl9IC8vIGNvdmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGxvY2FsIHRpbWVzdGFtcCAoZXBvY2gsIGJ1dCB3aXRoIHRoZSBvZmZzZXQgYmFrZWQgaW4pCgoJZnVuY3Rpb24gb2JqVG9Mb2NhbFRTKG9iaikgewoJICB2YXIgZCA9IERhdGUuVVRDKG9iai55ZWFyLCBvYmoubW9udGggLSAxLCBvYmouZGF5LCBvYmouaG91ciwgb2JqLm1pbnV0ZSwgb2JqLnNlY29uZCwgb2JqLm1pbGxpc2Vjb25kKTsgLy8gZm9yIGxlZ2FjeSByZWFzb25zLCB5ZWFycyBiZXR3ZWVuIDAgYW5kIDk5IGFyZSBpbnRlcnByZXRlZCBhcyAxOVhYOyByZXZlcnQgdGhhdAoKCSAgaWYgKG9iai55ZWFyIDwgMTAwICYmIG9iai55ZWFyID49IDApIHsKCSAgICBkID0gbmV3IERhdGUoZCk7CgkgICAgZC5zZXRVVENGdWxsWWVhcihkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwKTsKCSAgfQoKCSAgcmV0dXJuICtkOwoJfQoJZnVuY3Rpb24gd2Vla3NJbldlZWtZZWFyKHdlZWtZZWFyKSB7CgkgIHZhciBwMSA9ICh3ZWVrWWVhciArIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0KSAtIE1hdGguZmxvb3Iod2Vla1llYXIgLyAxMDApICsgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICUgNywKCSAgICAgIGxhc3QgPSB3ZWVrWWVhciAtIDEsCgkgICAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3OwoJICByZXR1cm4gcDEgPT09IDQgfHwgcDIgPT09IDMgPyA1MyA6IDUyOwoJfQoJZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhcikgewoJICBpZiAoeWVhciA+IDk5KSB7CgkgICAgcmV0dXJuIHllYXI7CgkgIH0gZWxzZSByZXR1cm4geWVhciA+IDYwID8gMTkwMCArIHllYXIgOiAyMDAwICsgeWVhcjsKCX0gLy8gUEFSU0lORwoKCWZ1bmN0aW9uIHBhcnNlWm9uZUluZm8odHMsIG9mZnNldEZvcm1hdCwgbG9jYWxlLCB0aW1lWm9uZSkgewoJICBpZiAodGltZVpvbmUgPT09IHZvaWQgMCkgewoJICAgIHRpbWVab25lID0gbnVsbDsKCSAgfQoKCSAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0cyksCgkgICAgICBpbnRsT3B0cyA9IHsKCSAgICBob3VyQ3ljbGU6ICJoMjMiLAoJICAgIHllYXI6ICJudW1lcmljIiwKCSAgICBtb250aDogIjItZGlnaXQiLAoJICAgIGRheTogIjItZGlnaXQiLAoJICAgIGhvdXI6ICIyLWRpZ2l0IiwKCSAgICBtaW51dGU6ICIyLWRpZ2l0IgoJICB9OwoKCSAgaWYgKHRpbWVab25lKSB7CgkgICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTsKCSAgfQoKCSAgdmFyIG1vZGlmaWVkID0gX2V4dGVuZHMoewoJICAgIHRpbWVab25lTmFtZTogb2Zmc2V0Rm9ybWF0CgkgIH0sIGludGxPcHRzKTsKCgkgIHZhciBwYXJzZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG1vZGlmaWVkKS5mb3JtYXRUb1BhcnRzKGRhdGUpLmZpbmQoZnVuY3Rpb24gKG0pIHsKCSAgICByZXR1cm4gbS50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICJ0aW1lem9uZW5hbWUiOwoJICB9KTsKCSAgcmV0dXJuIHBhcnNlZCA/IHBhcnNlZC52YWx1ZSA6IG51bGw7Cgl9IC8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwCgoJZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikgewoJICB2YXIgb2ZmSG91ciA9IHBhcnNlSW50KG9mZkhvdXJTdHIsIDEwKTsgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTAKCgkgIGlmIChOdW1iZXIuaXNOYU4ob2ZmSG91cikpIHsKCSAgICBvZmZIb3VyID0gMDsKCSAgfQoKCSAgdmFyIG9mZk1pbiA9IHBhcnNlSW50KG9mZk1pbnV0ZVN0ciwgMTApIHx8IDAsCgkgICAgICBvZmZNaW5TaWduZWQgPSBvZmZIb3VyIDwgMCB8fCBPYmplY3QuaXMob2ZmSG91ciwgLTApID8gLW9mZk1pbiA6IG9mZk1pbjsKCSAgcmV0dXJuIG9mZkhvdXIgKiA2MCArIG9mZk1pblNpZ25lZDsKCX0gLy8gQ09FUkNJT04KCglmdW5jdGlvbiBhc051bWJlcih2YWx1ZSkgewoJICB2YXIgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHZhbHVlKTsKCSAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gImJvb2xlYW4iIHx8IHZhbHVlID09PSAiIiB8fCBOdW1iZXIuaXNOYU4obnVtZXJpY1ZhbHVlKSkgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJJbnZhbGlkIHVuaXQgdmFsdWUgIiArIHZhbHVlKTsKCSAgcmV0dXJuIG51bWVyaWNWYWx1ZTsKCX0KCWZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHsKCSAgdmFyIG5vcm1hbGl6ZWQgPSB7fTsKCgkgIGZvciAodmFyIHUgaW4gb2JqKSB7CgkgICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHsKCSAgICAgIHZhciB2ID0gb2JqW3VdOwoJICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsKSBjb250aW51ZTsKCSAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplcih1KV0gPSBhc051bWJlcih2KTsKCSAgICB9CgkgIH0KCgkgIHJldHVybiBub3JtYWxpemVkOwoJfQoJZnVuY3Rpb24gZm9ybWF0T2Zmc2V0KG9mZnNldCwgZm9ybWF0KSB7CgkgIHZhciBob3VycyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0IC8gNjApKSwKCSAgICAgIG1pbnV0ZXMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAlIDYwKSksCgkgICAgICBzaWduID0gb2Zmc2V0ID49IDAgPyAiKyIgOiAiLSI7CgoJICBzd2l0Y2ggKGZvcm1hdCkgewoJICAgIGNhc2UgInNob3J0IjoKCSAgICAgIHJldHVybiAiIiArIHNpZ24gKyBwYWRTdGFydChob3VycywgMikgKyAiOiIgKyBwYWRTdGFydChtaW51dGVzLCAyKTsKCgkgICAgY2FzZSAibmFycm93IjoKCSAgICAgIHJldHVybiAiIiArIHNpZ24gKyBob3VycyArIChtaW51dGVzID4gMCA/ICI6IiArIG1pbnV0ZXMgOiAiIik7CgoJICAgIGNhc2UgInRlY2hpZSI6CgkgICAgICByZXR1cm4gIiIgKyBzaWduICsgcGFkU3RhcnQoaG91cnMsIDIpICsgcGFkU3RhcnQobWludXRlcywgMik7CgoJICAgIGRlZmF1bHQ6CgkgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVmFsdWUgZm9ybWF0ICIgKyBmb3JtYXQgKyAiIGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0Iik7CgkgIH0KCX0KCWZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7CgkgIHJldHVybiBwaWNrKG9iaiwgWyJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAibWlsbGlzZWNvbmQiXSk7Cgl9Cgl2YXIgaWFuYVJlZ2V4ID0gL1tBLVphLXpfKy1dezEsMjU2fSg/Ojo/XC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcL1tBLVphLXowLTlfKy1dezEsMjU2fSk/KT8vOwoKCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCgl2YXIgbW9udGhzTG9uZyA9IFsiSmFudWFyeSIsICJGZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLCAiSnVuZSIsICJKdWx5IiwgIkF1Z3VzdCIsICJTZXB0ZW1iZXIiLCAiT2N0b2JlciIsICJOb3ZlbWJlciIsICJEZWNlbWJlciJdOwoJdmFyIG1vbnRoc1Nob3J0ID0gWyJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIiLCAiTWF5IiwgIkp1biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyJdOwoJdmFyIG1vbnRoc05hcnJvdyA9IFsiSiIsICJGIiwgIk0iLCAiQSIsICJNIiwgIkoiLCAiSiIsICJBIiwgIlMiLCAiTyIsICJOIiwgIkQiXTsKCWZ1bmN0aW9uIG1vbnRocyhsZW5ndGgpIHsKCSAgc3dpdGNoIChsZW5ndGgpIHsKCSAgICBjYXNlICJuYXJyb3ciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdChtb250aHNOYXJyb3cpOwoKCSAgICBjYXNlICJzaG9ydCI6CgkgICAgICByZXR1cm4gW10uY29uY2F0KG1vbnRoc1Nob3J0KTsKCgkgICAgY2FzZSAibG9uZyI6CgkgICAgICByZXR1cm4gW10uY29uY2F0KG1vbnRoc0xvbmcpOwoKCSAgICBjYXNlICJudW1lcmljIjoKCSAgICAgIHJldHVybiBbIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5IiwgIjEwIiwgIjExIiwgIjEyIl07CgoJICAgIGNhc2UgIjItZGlnaXQiOgoJICAgICAgcmV0dXJuIFsiMDEiLCAiMDIiLCAiMDMiLCAiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMDkiLCAiMTAiLCAiMTEiLCAiMTIiXTsKCgkgICAgZGVmYXVsdDoKCSAgICAgIHJldHVybiBudWxsOwoJICB9Cgl9Cgl2YXIgd2Vla2RheXNMb25nID0gWyJNb25kYXkiLCAiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5IiwgIlN1bmRheSJdOwoJdmFyIHdlZWtkYXlzU2hvcnQgPSBbIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiwgIlN1biJdOwoJdmFyIHdlZWtkYXlzTmFycm93ID0gWyJNIiwgIlQiLCAiVyIsICJUIiwgIkYiLCAiUyIsICJTIl07CglmdW5jdGlvbiB3ZWVrZGF5cyhsZW5ndGgpIHsKCSAgc3dpdGNoIChsZW5ndGgpIHsKCSAgICBjYXNlICJuYXJyb3ciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdCh3ZWVrZGF5c05hcnJvdyk7CgoJICAgIGNhc2UgInNob3J0IjoKCSAgICAgIHJldHVybiBbXS5jb25jYXQod2Vla2RheXNTaG9ydCk7CgoJICAgIGNhc2UgImxvbmciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdCh3ZWVrZGF5c0xvbmcpOwoKCSAgICBjYXNlICJudW1lcmljIjoKCSAgICAgIHJldHVybiBbIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciXTsKCgkgICAgZGVmYXVsdDoKCSAgICAgIHJldHVybiBudWxsOwoJICB9Cgl9Cgl2YXIgbWVyaWRpZW1zID0gWyJBTSIsICJQTSJdOwoJdmFyIGVyYXNMb25nID0gWyJCZWZvcmUgQ2hyaXN0IiwgIkFubm8gRG9taW5pIl07Cgl2YXIgZXJhc1Nob3J0ID0gWyJCQyIsICJBRCJdOwoJdmFyIGVyYXNOYXJyb3cgPSBbIkIiLCAiQSJdOwoJZnVuY3Rpb24gZXJhcyhsZW5ndGgpIHsKCSAgc3dpdGNoIChsZW5ndGgpIHsKCSAgICBjYXNlICJuYXJyb3ciOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdChlcmFzTmFycm93KTsKCgkgICAgY2FzZSAic2hvcnQiOgoJICAgICAgcmV0dXJuIFtdLmNvbmNhdChlcmFzU2hvcnQpOwoKCSAgICBjYXNlICJsb25nIjoKCSAgICAgIHJldHVybiBbXS5jb25jYXQoZXJhc0xvbmcpOwoKCSAgICBkZWZhdWx0OgoJICAgICAgcmV0dXJuIG51bGw7CgkgIH0KCX0KCWZ1bmN0aW9uIG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIHsKCSAgcmV0dXJuIG1lcmlkaWVtc1tkdC5ob3VyIDwgMTIgPyAwIDogMV07Cgl9CglmdW5jdGlvbiB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgewoJICByZXR1cm4gd2Vla2RheXMobGVuZ3RoKVtkdC53ZWVrZGF5IC0gMV07Cgl9CglmdW5jdGlvbiBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHsKCSAgcmV0dXJuIG1vbnRocyhsZW5ndGgpW2R0Lm1vbnRoIC0gMV07Cgl9CglmdW5jdGlvbiBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7CgkgIHJldHVybiBlcmFzKGxlbmd0aClbZHQueWVhciA8IDAgPyAwIDogMV07Cgl9CglmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIG51bWVyaWMsIG5hcnJvdykgewoJICBpZiAobnVtZXJpYyA9PT0gdm9pZCAwKSB7CgkgICAgbnVtZXJpYyA9ICJhbHdheXMiOwoJICB9CgoJICBpZiAobmFycm93ID09PSB2b2lkIDApIHsKCSAgICBuYXJyb3cgPSBmYWxzZTsKCSAgfQoKCSAgdmFyIHVuaXRzID0gewoJICAgIHllYXJzOiBbInllYXIiLCAieXIuIl0sCgkgICAgcXVhcnRlcnM6IFsicXVhcnRlciIsICJxdHIuIl0sCgkgICAgbW9udGhzOiBbIm1vbnRoIiwgIm1vLiJdLAoJICAgIHdlZWtzOiBbIndlZWsiLCAid2suIl0sCgkgICAgZGF5czogWyJkYXkiLCAiZGF5IiwgImRheXMiXSwKCSAgICBob3VyczogWyJob3VyIiwgImhyLiJdLAoJICAgIG1pbnV0ZXM6IFsibWludXRlIiwgIm1pbi4iXSwKCSAgICBzZWNvbmRzOiBbInNlY29uZCIsICJzZWMuIl0KCSAgfTsKCSAgdmFyIGxhc3RhYmxlID0gWyJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiXS5pbmRleE9mKHVuaXQpID09PSAtMTsKCgkgIGlmIChudW1lcmljID09PSAiYXV0byIgJiYgbGFzdGFibGUpIHsKCSAgICB2YXIgaXNEYXkgPSB1bml0ID09PSAiZGF5cyI7CgoJICAgIHN3aXRjaCAoY291bnQpIHsKCSAgICAgIGNhc2UgMToKCSAgICAgICAgcmV0dXJuIGlzRGF5ID8gInRvbW9ycm93IiA6ICJuZXh0ICIgKyB1bml0c1t1bml0XVswXTsKCgkgICAgICBjYXNlIC0xOgoJICAgICAgICByZXR1cm4gaXNEYXkgPyAieWVzdGVyZGF5IiA6ICJsYXN0ICIgKyB1bml0c1t1bml0XVswXTsKCgkgICAgICBjYXNlIDA6CgkgICAgICAgIHJldHVybiBpc0RheSA/ICJ0b2RheSIgOiAidGhpcyAiICsgdW5pdHNbdW5pdF1bMF07CgoJICAgIH0KCSAgfQoKCSAgdmFyIGlzSW5QYXN0ID0gT2JqZWN0LmlzKGNvdW50LCAtMCkgfHwgY291bnQgPCAwLAoJICAgICAgZm10VmFsdWUgPSBNYXRoLmFicyhjb3VudCksCgkgICAgICBzaW5ndWxhciA9IGZtdFZhbHVlID09PSAxLAoJICAgICAgbGlsVW5pdHMgPSB1bml0c1t1bml0XSwKCSAgICAgIGZtdFVuaXQgPSBuYXJyb3cgPyBzaW5ndWxhciA/IGxpbFVuaXRzWzFdIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV0gOiBzaW5ndWxhciA/IHVuaXRzW3VuaXRdWzBdIDogdW5pdDsKCSAgcmV0dXJuIGlzSW5QYXN0ID8gZm10VmFsdWUgKyAiICIgKyBmbXRVbml0ICsgIiBhZ28iIDogImluICIgKyBmbXRWYWx1ZSArICIgIiArIGZtdFVuaXQ7Cgl9CgoJZnVuY3Rpb24gc3RyaW5naWZ5VG9rZW5zKHNwbGl0cywgdG9rZW5Ub1N0cmluZykgewoJICB2YXIgcyA9ICIiOwoKCSAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShzcGxpdHMpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykgewoJICAgIHZhciB0b2tlbiA9IF9zdGVwLnZhbHVlOwoKCSAgICBpZiAodG9rZW4ubGl0ZXJhbCkgewoJICAgICAgcyArPSB0b2tlbi52YWw7CgkgICAgfSBlbHNlIHsKCSAgICAgIHMgKz0gdG9rZW5Ub1N0cmluZyh0b2tlbi52YWwpOwoJICAgIH0KCSAgfQoKCSAgcmV0dXJuIHM7Cgl9CgoJdmFyIF9tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0gewoJICBEOiBEQVRFX1NIT1JULAoJICBERDogREFURV9NRUQsCgkgIERERDogREFURV9GVUxMLAoJICBEREREOiBEQVRFX0hVR0UsCgkgIHQ6IFRJTUVfU0lNUExFLAoJICB0dDogVElNRV9XSVRIX1NFQ09ORFMsCgkgIHR0dDogVElNRV9XSVRIX1NIT1JUX09GRlNFVCwKCSAgdHR0dDogVElNRV9XSVRIX0xPTkdfT0ZGU0VULAoJICBUOiBUSU1FXzI0X1NJTVBMRSwKCSAgVFQ6IFRJTUVfMjRfV0lUSF9TRUNPTkRTLAoJICBUVFQ6IFRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQsCgkgIFRUVFQ6IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCwKCSAgZjogREFURVRJTUVfU0hPUlQsCgkgIGZmOiBEQVRFVElNRV9NRUQsCgkgIGZmZjogREFURVRJTUVfRlVMTCwKCSAgZmZmZjogREFURVRJTUVfSFVHRSwKCSAgRjogREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTLAoJICBGRjogREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUywKCSAgRkZGOiBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUywKCSAgRkZGRjogREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMKCX07CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgl2YXIgRm9ybWF0dGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKCSAgRm9ybWF0dGVyLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShsb2NhbGUsIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpOwoJICB9OwoKCSAgRm9ybWF0dGVyLnBhcnNlRm9ybWF0ID0gZnVuY3Rpb24gcGFyc2VGb3JtYXQoZm10KSB7CgkgICAgdmFyIGN1cnJlbnQgPSBudWxsLAoJICAgICAgICBjdXJyZW50RnVsbCA9ICIiLAoJICAgICAgICBicmFja2V0ZWQgPSBmYWxzZTsKCSAgICB2YXIgc3BsaXRzID0gW107CgoJICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm10Lmxlbmd0aDsgaSsrKSB7CgkgICAgICB2YXIgYyA9IGZtdC5jaGFyQXQoaSk7CgoJICAgICAgaWYgKGMgPT09ICInIikgewoJICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkgewoJICAgICAgICAgIHNwbGl0cy5wdXNoKHsKCSAgICAgICAgICAgIGxpdGVyYWw6IGJyYWNrZXRlZCwKCSAgICAgICAgICAgIHZhbDogY3VycmVudEZ1bGwKCSAgICAgICAgICB9KTsKCSAgICAgICAgfQoKCSAgICAgICAgY3VycmVudCA9IG51bGw7CgkgICAgICAgIGN1cnJlbnRGdWxsID0gIiI7CgkgICAgICAgIGJyYWNrZXRlZCA9ICFicmFja2V0ZWQ7CgkgICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkgewoJICAgICAgICBjdXJyZW50RnVsbCArPSBjOwoJICAgICAgfSBlbHNlIGlmIChjID09PSBjdXJyZW50KSB7CgkgICAgICAgIGN1cnJlbnRGdWxsICs9IGM7CgkgICAgICB9IGVsc2UgewoJICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkgewoJICAgICAgICAgIHNwbGl0cy5wdXNoKHsKCSAgICAgICAgICAgIGxpdGVyYWw6IGZhbHNlLAoJICAgICAgICAgICAgdmFsOiBjdXJyZW50RnVsbAoJICAgICAgICAgIH0pOwoJICAgICAgICB9CgoJICAgICAgICBjdXJyZW50RnVsbCA9IGM7CgkgICAgICAgIGN1cnJlbnQgPSBjOwoJICAgICAgfQoJICAgIH0KCgkgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHsKCSAgICAgIHNwbGl0cy5wdXNoKHsKCSAgICAgICAgbGl0ZXJhbDogYnJhY2tldGVkLAoJICAgICAgICB2YWw6IGN1cnJlbnRGdWxsCgkgICAgICB9KTsKCSAgICB9CgoJICAgIHJldHVybiBzcGxpdHM7CgkgIH07CgoJICBGb3JtYXR0ZXIubWFjcm9Ub2tlblRvRm9ybWF0T3B0cyA9IGZ1bmN0aW9uIG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pIHsKCSAgICByZXR1cm4gX21hY3JvVG9rZW5Ub0Zvcm1hdE9wdHNbdG9rZW5dOwoJICB9OwoKCSAgZnVuY3Rpb24gRm9ybWF0dGVyKGxvY2FsZSwgZm9ybWF0T3B0cykgewoJICAgIHRoaXMub3B0cyA9IGZvcm1hdE9wdHM7CgkgICAgdGhpcy5sb2MgPSBsb2NhbGU7CgkgICAgdGhpcy5zeXN0ZW1Mb2MgPSBudWxsOwoJICB9CgoJICB2YXIgX3Byb3RvID0gRm9ybWF0dGVyLnByb3RvdHlwZTsKCgkgIF9wcm90by5mb3JtYXRXaXRoU3lzdGVtRGVmYXVsdCA9IGZ1bmN0aW9uIGZvcm1hdFdpdGhTeXN0ZW1EZWZhdWx0KGR0LCBvcHRzKSB7CgkgICAgaWYgKHRoaXMuc3lzdGVtTG9jID09PSBudWxsKSB7CgkgICAgICB0aGlzLnN5c3RlbUxvYyA9IHRoaXMubG9jLnJlZGVmYXVsdFRvU3lzdGVtKCk7CgkgICAgfQoKCSAgICB2YXIgZGYgPSB0aGlzLnN5c3RlbUxvYy5kdEZvcm1hdHRlcihkdCwgX2V4dGVuZHMoe30sIHRoaXMub3B0cywgb3B0cykpOwoJICAgIHJldHVybiBkZi5mb3JtYXQoKTsKCSAgfTsKCgkgIF9wcm90by5mb3JtYXREYXRlVGltZSA9IGZ1bmN0aW9uIGZvcm1hdERhdGVUaW1lKGR0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIF9leHRlbmRzKHt9LCB0aGlzLm9wdHMsIG9wdHMpKTsKCSAgICByZXR1cm4gZGYuZm9ybWF0KCk7CgkgIH07CgoJICBfcHJvdG8uZm9ybWF0RGF0ZVRpbWVQYXJ0cyA9IGZ1bmN0aW9uIGZvcm1hdERhdGVUaW1lUGFydHMoZHQsIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICB2YXIgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgX2V4dGVuZHMoe30sIHRoaXMub3B0cywgb3B0cykpOwoJICAgIHJldHVybiBkZi5mb3JtYXRUb1BhcnRzKCk7CgkgIH07CgoJICBfcHJvdG8ucmVzb2x2ZWRPcHRpb25zID0gZnVuY3Rpb24gcmVzb2x2ZWRPcHRpb25zKGR0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIF9leHRlbmRzKHt9LCB0aGlzLm9wdHMsIG9wdHMpKTsKCSAgICByZXR1cm4gZGYucmVzb2x2ZWRPcHRpb25zKCk7CgkgIH07CgoJICBfcHJvdG8ubnVtID0gZnVuY3Rpb24gbnVtKG4sIHApIHsKCSAgICBpZiAocCA9PT0gdm9pZCAwKSB7CgkgICAgICBwID0gMDsKCSAgICB9CgoJICAgIC8vIHdlIGdldCBzb21lIHBlcmYgb3V0IG9mIGRvaW5nIHRoaXMgaGVyZSwgYW5ub3lpbmdseQoJICAgIGlmICh0aGlzLm9wdHMuZm9yY2VTaW1wbGUpIHsKCSAgICAgIHJldHVybiBwYWRTdGFydChuLCBwKTsKCSAgICB9CgoJICAgIHZhciBvcHRzID0gX2V4dGVuZHMoe30sIHRoaXMub3B0cyk7CgoJICAgIGlmIChwID4gMCkgewoJICAgICAgb3B0cy5wYWRUbyA9IHA7CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5sb2MubnVtYmVyRm9ybWF0dGVyKG9wdHMpLmZvcm1hdChuKTsKCSAgfTsKCgkgIF9wcm90by5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcgPSBmdW5jdGlvbiBmb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZtdCkgewoJICAgIHZhciBfdGhpcyA9IHRoaXM7CgoJICAgIHZhciBrbm93bkVuZ2xpc2ggPSB0aGlzLmxvYy5saXN0aW5nTW9kZSgpID09PSAiZW4iLAoJICAgICAgICB1c2VEYXRlVGltZUZvcm1hdHRlciA9IHRoaXMubG9jLm91dHB1dENhbGVuZGFyICYmIHRoaXMubG9jLm91dHB1dENhbGVuZGFyICE9PSAiZ3JlZ29yeSIsCgkgICAgICAgIHN0cmluZyA9IGZ1bmN0aW9uIHN0cmluZyhvcHRzLCBleHRyYWN0KSB7CgkgICAgICByZXR1cm4gX3RoaXMubG9jLmV4dHJhY3QoZHQsIG9wdHMsIGV4dHJhY3QpOwoJICAgIH0sCgkgICAgICAgIGZvcm1hdE9mZnNldCA9IGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvcHRzKSB7CgkgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHsKCSAgICAgICAgcmV0dXJuICJaIjsKCSAgICAgIH0KCgkgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiAiIjsKCSAgICB9LAoJICAgICAgICBtZXJpZGllbSA9IGZ1bmN0aW9uIG1lcmlkaWVtKCkgewoJICAgICAgcmV0dXJuIGtub3duRW5nbGlzaCA/IG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIDogc3RyaW5nKHsKCSAgICAgICAgaG91cjogIm51bWVyaWMiLAoJICAgICAgICBob3VyQ3ljbGU6ICJoMTIiCgkgICAgICB9LCAiZGF5cGVyaW9kIik7CgkgICAgfSwKCSAgICAgICAgbW9udGggPSBmdW5jdGlvbiBtb250aChsZW5ndGgsIHN0YW5kYWxvbmUpIHsKCSAgICAgIHJldHVybiBrbm93bkVuZ2xpc2ggPyBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7CgkgICAgICAgIG1vbnRoOiBsZW5ndGgKCSAgICAgIH0gOiB7CgkgICAgICAgIG1vbnRoOiBsZW5ndGgsCgkgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICB9LCAibW9udGgiKTsKCSAgICB9LAoJICAgICAgICB3ZWVrZGF5ID0gZnVuY3Rpb24gd2Vla2RheShsZW5ndGgsIHN0YW5kYWxvbmUpIHsKCSAgICAgIHJldHVybiBrbm93bkVuZ2xpc2ggPyB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgOiBzdHJpbmcoc3RhbmRhbG9uZSA/IHsKCSAgICAgICAgd2Vla2RheTogbGVuZ3RoCgkgICAgICB9IDogewoJICAgICAgICB3ZWVrZGF5OiBsZW5ndGgsCgkgICAgICAgIG1vbnRoOiAibG9uZyIsCgkgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICB9LCAid2Vla2RheSIpOwoJICAgIH0sCgkgICAgICAgIG1heWJlTWFjcm8gPSBmdW5jdGlvbiBtYXliZU1hY3JvKHRva2VuKSB7CgkgICAgICB2YXIgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKTsKCgkgICAgICBpZiAoZm9ybWF0T3B0cykgewoJICAgICAgICByZXR1cm4gX3RoaXMuZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIGZvcm1hdE9wdHMpOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIHRva2VuOwoJICAgICAgfQoJICAgIH0sCgkgICAgICAgIGVyYSA9IGZ1bmN0aW9uIGVyYShsZW5ndGgpIHsKCSAgICAgIHJldHVybiBrbm93bkVuZ2xpc2ggPyBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSA6IHN0cmluZyh7CgkgICAgICAgIGVyYTogbGVuZ3RoCgkgICAgICB9LCAiZXJhIik7CgkgICAgfSwKCSAgICAgICAgdG9rZW5Ub1N0cmluZyA9IGZ1bmN0aW9uIHRva2VuVG9TdHJpbmcodG9rZW4pIHsKCSAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwOi8vY2xkci51bmljb2RlLm9yZy90cmFuc2xhdGlvbi9kYXRlLXRpbWUtMS9kYXRlLXRpbWUjVE9DLVN0YW5kYWxvbmUtdnMuLUZvcm1hdC1TdHlsZXMKCSAgICAgIHN3aXRjaCAodG9rZW4pIHsKCSAgICAgICAgLy8gbXMKCSAgICAgICAgY2FzZSAiUyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5taWxsaXNlY29uZCk7CgoJICAgICAgICBjYXNlICJ1IjogLy8gZmFsbHMgdGhyb3VnaAoKCSAgICAgICAgY2FzZSAiU1NTIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTsKCSAgICAgICAgLy8gc2Vjb25kcwoKCSAgICAgICAgY2FzZSAicyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5zZWNvbmQpOwoKCSAgICAgICAgY2FzZSAic3MiOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQuc2Vjb25kLCAyKTsKCSAgICAgICAgLy8gZnJhY3Rpb25hbCBzZWNvbmRzCgoJICAgICAgICBjYXNlICJ1dSI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTApLCAyKTsKCgkgICAgICAgIGNhc2UgInV1dSI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTAwKSk7CgkgICAgICAgIC8vIG1pbnV0ZXMKCgkgICAgICAgIGNhc2UgIm0iOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQubWludXRlKTsKCgkgICAgICAgIGNhc2UgIm1tIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0Lm1pbnV0ZSwgMik7CgkgICAgICAgIC8vIGhvdXJzCgoJICAgICAgICBjYXNlICJoIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyKTsKCgkgICAgICAgIGNhc2UgImhoIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyLCAyKTsKCgkgICAgICAgIGNhc2UgIkgiOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQuaG91cik7CgoJICAgICAgICBjYXNlICJISCI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5ob3VyLCAyKTsKCSAgICAgICAgLy8gb2Zmc2V0CgoJICAgICAgICBjYXNlICJaIjoKCSAgICAgICAgICAvLyBsaWtlICs2CgkgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7CgkgICAgICAgICAgICBmb3JtYXQ6ICJuYXJyb3ciLAoJICAgICAgICAgICAgYWxsb3daOiBfdGhpcy5vcHRzLmFsbG93WgoJICAgICAgICAgIH0pOwoKCSAgICAgICAgY2FzZSAiWloiOgoJICAgICAgICAgIC8vIGxpa2UgKzA2OjAwCgkgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7CgkgICAgICAgICAgICBmb3JtYXQ6ICJzaG9ydCIsCgkgICAgICAgICAgICBhbGxvd1o6IF90aGlzLm9wdHMuYWxsb3daCgkgICAgICAgICAgfSk7CgoJICAgICAgICBjYXNlICJaWloiOgoJICAgICAgICAgIC8vIGxpa2UgKzA2MDAKCSAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsKCSAgICAgICAgICAgIGZvcm1hdDogInRlY2hpZSIsCgkgICAgICAgICAgICBhbGxvd1o6IF90aGlzLm9wdHMuYWxsb3daCgkgICAgICAgICAgfSk7CgoJICAgICAgICBjYXNlICJaWlpaIjoKCSAgICAgICAgICAvLyBsaWtlIEVTVAoJICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsKCSAgICAgICAgICAgIGZvcm1hdDogInNob3J0IiwKCSAgICAgICAgICAgIGxvY2FsZTogX3RoaXMubG9jLmxvY2FsZQoJICAgICAgICAgIH0pOwoKCSAgICAgICAgY2FzZSAiWlpaWloiOgoJICAgICAgICAgIC8vIGxpa2UgRWFzdGVybiBTdGFuZGFyZCBUaW1lCgkgICAgICAgICAgcmV0dXJuIGR0LnpvbmUub2Zmc2V0TmFtZShkdC50cywgewoJICAgICAgICAgICAgZm9ybWF0OiAibG9uZyIsCgkgICAgICAgICAgICBsb2NhbGU6IF90aGlzLmxvYy5sb2NhbGUKCSAgICAgICAgICB9KTsKCSAgICAgICAgLy8gem9uZQoKCSAgICAgICAgY2FzZSAieiI6CgkgICAgICAgICAgLy8gbGlrZSBBbWVyaWNhL05ld19Zb3JrCgkgICAgICAgICAgcmV0dXJuIGR0LnpvbmVOYW1lOwoJICAgICAgICAvLyBtZXJpZGllbXMKCgkgICAgICAgIGNhc2UgImEiOgoJICAgICAgICAgIHJldHVybiBtZXJpZGllbSgpOwoJICAgICAgICAvLyBkYXRlcwoKCSAgICAgICAgY2FzZSAiZCI6CgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICAgICAgfSwgImRheSIpIDogX3RoaXMubnVtKGR0LmRheSk7CgoJICAgICAgICBjYXNlICJkZCI6CgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIGRheTogIjItZGlnaXQiCgkgICAgICAgICAgfSwgImRheSIpIDogX3RoaXMubnVtKGR0LmRheSwgMik7CgkgICAgICAgIC8vIHdlZWtkYXlzIC0gc3RhbmRhbG9uZQoKCSAgICAgICAgY2FzZSAiYyI6CgkgICAgICAgICAgLy8gbGlrZSAxCgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC53ZWVrZGF5KTsKCgkgICAgICAgIGNhc2UgImNjYyI6CgkgICAgICAgICAgLy8gbGlrZSAnVHVlcycKCSAgICAgICAgICByZXR1cm4gd2Vla2RheSgic2hvcnQiLCB0cnVlKTsKCgkgICAgICAgIGNhc2UgImNjY2MiOgoJICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknCgkgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoImxvbmciLCB0cnVlKTsKCgkgICAgICAgIGNhc2UgImNjY2NjIjoKCSAgICAgICAgICAvLyBsaWtlICdUJwoJICAgICAgICAgIHJldHVybiB3ZWVrZGF5KCJuYXJyb3ciLCB0cnVlKTsKCSAgICAgICAgLy8gd2Vla2RheXMgLSBmb3JtYXQKCgkgICAgICAgIGNhc2UgIkUiOgoJICAgICAgICAgIC8vIGxpa2UgMQoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQud2Vla2RheSk7CgoJICAgICAgICBjYXNlICJFRUUiOgoJICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnCgkgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoInNob3J0IiwgZmFsc2UpOwoKCSAgICAgICAgY2FzZSAiRUVFRSI6CgkgICAgICAgICAgLy8gbGlrZSAnVHVlc2RheScKCSAgICAgICAgICByZXR1cm4gd2Vla2RheSgibG9uZyIsIGZhbHNlKTsKCgkgICAgICAgIGNhc2UgIkVFRUVFIjoKCSAgICAgICAgICAvLyBsaWtlICdUJwoJICAgICAgICAgIHJldHVybiB3ZWVrZGF5KCJuYXJyb3ciLCBmYWxzZSk7CgkgICAgICAgIC8vIG1vbnRocyAtIHN0YW5kYWxvbmUKCgkgICAgICAgIGNhc2UgIkwiOgoJICAgICAgICAgIC8vIGxpa2UgMQoJICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7CgkgICAgICAgICAgICBtb250aDogIm51bWVyaWMiLAoJICAgICAgICAgICAgZGF5OiAibnVtZXJpYyIKCSAgICAgICAgICB9LCAibW9udGgiKSA6IF90aGlzLm51bShkdC5tb250aCk7CgoJICAgICAgICBjYXNlICJMTCI6CgkgICAgICAgICAgLy8gbGlrZSAwMSwgZG9lc24ndCBzZWVtIHRvIHdvcmsKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgbW9udGg6ICIyLWRpZ2l0IiwKCSAgICAgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICAgICAgfSwgIm1vbnRoIikgOiBfdGhpcy5udW0oZHQubW9udGgsIDIpOwoKCSAgICAgICAgY2FzZSAiTExMIjoKCSAgICAgICAgICAvLyBsaWtlIEphbgoJICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCB0cnVlKTsKCgkgICAgICAgIGNhc2UgIkxMTEwiOgoJICAgICAgICAgIC8vIGxpa2UgSmFudWFyeQoJICAgICAgICAgIHJldHVybiBtb250aCgibG9uZyIsIHRydWUpOwoKCSAgICAgICAgY2FzZSAiTExMTEwiOgoJICAgICAgICAgIC8vIGxpa2UgSgoJICAgICAgICAgIHJldHVybiBtb250aCgibmFycm93IiwgdHJ1ZSk7CgkgICAgICAgIC8vIG1vbnRocyAtIGZvcm1hdAoKCSAgICAgICAgY2FzZSAiTSI6CgkgICAgICAgICAgLy8gbGlrZSAxCgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIG1vbnRoOiAibnVtZXJpYyIKCSAgICAgICAgICB9LCAibW9udGgiKSA6IF90aGlzLm51bShkdC5tb250aCk7CgoJICAgICAgICBjYXNlICJNTSI6CgkgICAgICAgICAgLy8gbGlrZSAwMQoJICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7CgkgICAgICAgICAgICBtb250aDogIjItZGlnaXQiCgkgICAgICAgICAgfSwgIm1vbnRoIikgOiBfdGhpcy5udW0oZHQubW9udGgsIDIpOwoKCSAgICAgICAgY2FzZSAiTU1NIjoKCSAgICAgICAgICAvLyBsaWtlIEphbgoJICAgICAgICAgIHJldHVybiBtb250aCgic2hvcnQiLCBmYWxzZSk7CgoJICAgICAgICBjYXNlICJNTU1NIjoKCSAgICAgICAgICAvLyBsaWtlIEphbnVhcnkKCSAgICAgICAgICByZXR1cm4gbW9udGgoImxvbmciLCBmYWxzZSk7CgoJICAgICAgICBjYXNlICJNTU1NTSI6CgkgICAgICAgICAgLy8gbGlrZSBKCgkgICAgICAgICAgcmV0dXJuIG1vbnRoKCJuYXJyb3ciLCBmYWxzZSk7CgkgICAgICAgIC8vIHllYXJzCgoJICAgICAgICBjYXNlICJ5IjoKCSAgICAgICAgICAvLyBsaWtlIDIwMTQKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgeWVhcjogIm51bWVyaWMiCgkgICAgICAgICAgfSwgInllYXIiKSA6IF90aGlzLm51bShkdC55ZWFyKTsKCgkgICAgICAgIGNhc2UgInl5IjoKCSAgICAgICAgICAvLyBsaWtlIDE0CgkgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsKCSAgICAgICAgICAgIHllYXI6ICIyLWRpZ2l0IgoJICAgICAgICAgIH0sICJ5ZWFyIikgOiBfdGhpcy5udW0oZHQueWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwgMik7CgoJICAgICAgICBjYXNlICJ5eXl5IjoKCSAgICAgICAgICAvLyBsaWtlIDAwMTIKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgeWVhcjogIm51bWVyaWMiCgkgICAgICAgICAgfSwgInllYXIiKSA6IF90aGlzLm51bShkdC55ZWFyLCA0KTsKCgkgICAgICAgIGNhc2UgInl5eXl5eSI6CgkgICAgICAgICAgLy8gbGlrZSAwMDAwMTIKCSAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoewoJICAgICAgICAgICAgeWVhcjogIm51bWVyaWMiCgkgICAgICAgICAgfSwgInllYXIiKSA6IF90aGlzLm51bShkdC55ZWFyLCA2KTsKCSAgICAgICAgLy8gZXJhcwoKCSAgICAgICAgY2FzZSAiRyI6CgkgICAgICAgICAgLy8gbGlrZSBBRAoJICAgICAgICAgIHJldHVybiBlcmEoInNob3J0Iik7CgoJICAgICAgICBjYXNlICJHRyI6CgkgICAgICAgICAgLy8gbGlrZSBBbm5vIERvbWluaQoJICAgICAgICAgIHJldHVybiBlcmEoImxvbmciKTsKCgkgICAgICAgIGNhc2UgIkdHR0dHIjoKCSAgICAgICAgICByZXR1cm4gZXJhKCJuYXJyb3ciKTsKCgkgICAgICAgIGNhc2UgImtrIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LndlZWtZZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTsKCgkgICAgICAgIGNhc2UgImtra2siOgoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQud2Vla1llYXIsIDQpOwoKCSAgICAgICAgY2FzZSAiVyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC53ZWVrTnVtYmVyKTsKCgkgICAgICAgIGNhc2UgIldXIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LndlZWtOdW1iZXIsIDIpOwoKCSAgICAgICAgY2FzZSAibyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5vcmRpbmFsKTsKCgkgICAgICAgIGNhc2UgIm9vbyI6CgkgICAgICAgICAgcmV0dXJuIF90aGlzLm51bShkdC5vcmRpbmFsLCAzKTsKCgkgICAgICAgIGNhc2UgInEiOgoJICAgICAgICAgIC8vIGxpa2UgMQoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQucXVhcnRlcik7CgoJICAgICAgICBjYXNlICJxcSI6CgkgICAgICAgICAgLy8gbGlrZSAwMQoJICAgICAgICAgIHJldHVybiBfdGhpcy5udW0oZHQucXVhcnRlciwgMik7CgoJICAgICAgICBjYXNlICJYIjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKE1hdGguZmxvb3IoZHQudHMgLyAxMDAwKSk7CgoJICAgICAgICBjYXNlICJ4IjoKCSAgICAgICAgICByZXR1cm4gX3RoaXMubnVtKGR0LnRzKTsKCgkgICAgICAgIGRlZmF1bHQ6CgkgICAgICAgICAgcmV0dXJuIG1heWJlTWFjcm8odG9rZW4pOwoJICAgICAgfQoJICAgIH07CgoJICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksIHRva2VuVG9TdHJpbmcpOwoJICB9OwoKCSAgX3Byb3RvLmZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyA9IGZ1bmN0aW9uIGZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhkdXIsIGZtdCkgewoJICAgIHZhciBfdGhpczIgPSB0aGlzOwoKCSAgICB2YXIgdG9rZW5Ub0ZpZWxkID0gZnVuY3Rpb24gdG9rZW5Ub0ZpZWxkKHRva2VuKSB7CgkgICAgICBzd2l0Y2ggKHRva2VuWzBdKSB7CgkgICAgICAgIGNhc2UgIlMiOgoJICAgICAgICAgIHJldHVybiAibWlsbGlzZWNvbmQiOwoKCSAgICAgICAgY2FzZSAicyI6CgkgICAgICAgICAgcmV0dXJuICJzZWNvbmQiOwoKCSAgICAgICAgY2FzZSAibSI6CgkgICAgICAgICAgcmV0dXJuICJtaW51dGUiOwoKCSAgICAgICAgY2FzZSAiaCI6CgkgICAgICAgICAgcmV0dXJuICJob3VyIjsKCgkgICAgICAgIGNhc2UgImQiOgoJICAgICAgICAgIHJldHVybiAiZGF5IjsKCgkgICAgICAgIGNhc2UgInciOgoJICAgICAgICAgIHJldHVybiAid2VlayI7CgoJICAgICAgICBjYXNlICJNIjoKCSAgICAgICAgICByZXR1cm4gIm1vbnRoIjsKCgkgICAgICAgIGNhc2UgInkiOgoJICAgICAgICAgIHJldHVybiAieWVhciI7CgoJICAgICAgICBkZWZhdWx0OgoJICAgICAgICAgIHJldHVybiBudWxsOwoJICAgICAgfQoJICAgIH0sCgkgICAgICAgIHRva2VuVG9TdHJpbmcgPSBmdW5jdGlvbiB0b2tlblRvU3RyaW5nKGxpbGR1cikgewoJICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0b2tlbikgewoJICAgICAgICB2YXIgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTsKCgkgICAgICAgIGlmIChtYXBwZWQpIHsKCSAgICAgICAgICByZXR1cm4gX3RoaXMyLm51bShsaWxkdXIuZ2V0KG1hcHBlZCksIHRva2VuLmxlbmd0aCk7CgkgICAgICAgIH0gZWxzZSB7CgkgICAgICAgICAgcmV0dXJuIHRva2VuOwoJICAgICAgICB9CgkgICAgICB9OwoJICAgIH0sCgkgICAgICAgIHRva2VucyA9IEZvcm1hdHRlci5wYXJzZUZvcm1hdChmbXQpLAoJICAgICAgICByZWFsVG9rZW5zID0gdG9rZW5zLnJlZHVjZShmdW5jdGlvbiAoZm91bmQsIF9yZWYpIHsKCSAgICAgIHZhciBsaXRlcmFsID0gX3JlZi5saXRlcmFsLAoJICAgICAgICAgIHZhbCA9IF9yZWYudmFsOwoJICAgICAgcmV0dXJuIGxpdGVyYWwgPyBmb3VuZCA6IGZvdW5kLmNvbmNhdCh2YWwpOwoJICAgIH0sIFtdKSwKCSAgICAgICAgY29sbGFwc2VkID0gZHVyLnNoaWZ0VG8uYXBwbHkoZHVyLCByZWFsVG9rZW5zLm1hcCh0b2tlblRvRmllbGQpLmZpbHRlcihmdW5jdGlvbiAodCkgewoJICAgICAgcmV0dXJuIHQ7CgkgICAgfSkpOwoKCSAgICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKHRva2VucywgdG9rZW5Ub1N0cmluZyhjb2xsYXBzZWQpKTsKCSAgfTsKCgkgIHJldHVybiBGb3JtYXR0ZXI7Cgl9KCk7CgoJdmFyIEludmFsaWQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pIHsKCSAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKCSAgICB0aGlzLmV4cGxhbmF0aW9uID0gZXhwbGFuYXRpb247CgkgIH0KCgkgIHZhciBfcHJvdG8gPSBJbnZhbGlkLnByb3RvdHlwZTsKCgkgIF9wcm90by50b01lc3NhZ2UgPSBmdW5jdGlvbiB0b01lc3NhZ2UoKSB7CgkgICAgaWYgKHRoaXMuZXhwbGFuYXRpb24pIHsKCSAgICAgIHJldHVybiB0aGlzLnJlYXNvbiArICI6ICIgKyB0aGlzLmV4cGxhbmF0aW9uOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gdGhpcy5yZWFzb247CgkgICAgfQoJICB9OwoKCSAgcmV0dXJuIEludmFsaWQ7Cgl9KCk7CgoJLyoqCgkgKiBAaW50ZXJmYWNlCgkgKi8KCgl2YXIgWm9uZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CgkgIGZ1bmN0aW9uIFpvbmUoKSB7fQoKCSAgdmFyIF9wcm90byA9IFpvbmUucHJvdG90eXBlOwoKCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIG9mZnNldCdzIGNvbW1vbiBuYW1lIChzdWNoIGFzIEVTVCkgYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAKCSAgICogQGFic3RyYWN0CgkgICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyB0byBhZmZlY3QgdGhlIGZvcm1hdAoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5mb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uIEFjY2VwdHMgJ2xvbmcnIG9yICdzaG9ydCcuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmxvY2FsZSAtIFdoYXQgbG9jYWxlIHRvIHJldHVybiB0aGUgb2Zmc2V0IG5hbWUgaW4uCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIF9wcm90by5vZmZzZXROYW1lID0gZnVuY3Rpb24gb2Zmc2V0TmFtZSh0cywgb3B0cykgewoJICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIG9mZnNldCdzIHZhbHVlIGFzIGEgc3RyaW5nCgkgICAqIEBhYnN0cmFjdAoJICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgb2Zmc2V0CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uCgkgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRzICduYXJyb3cnLCAnc2hvcnQnLCBvciAndGVjaGllJy4gUmV0dXJuaW5nICcrNicsICcrMDY6MDAnLCBvciAnKzA2MDAnIHJlc3BlY3RpdmVseQoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZm9ybWF0T2Zmc2V0ID0gZnVuY3Rpb24gZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHsKCSAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIG9mZnNldCBpbiBtaW51dGVzIGZvciB0aGlzIHpvbmUgYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAuCgkgICAqIEBhYnN0cmFjdAoJICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGNvbXB1dGUgdGhlIG9mZnNldAoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8ub2Zmc2V0ID0gZnVuY3Rpb24gb2Zmc2V0KHRzKSB7CgkgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZQoJICAgKiBAYWJzdHJhY3QKCSAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzKG90aGVyWm9uZSkgewoJICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgWm9uZSBpcyB2YWxpZC4KCSAgICogQGFic3RyYWN0CgkgICAqIEB0eXBlIHtib29sZWFufQoJICAgKi8KCSAgOwoKCSAgX2NyZWF0ZUNsYXNzKFpvbmUsIFt7CgkgICAga2V5OiAidHlwZSIsCgkgICAgZ2V0OgoJICAgIC8qKgoJICAgICAqIFRoZSB0eXBlIG9mIHpvbmUKCSAgICAgKiBAYWJzdHJhY3QKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoJICAgIGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFRoZSBuYW1lIG9mIHRoaXMgem9uZS4KCSAgICAgKiBAYWJzdHJhY3QKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIm5hbWUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpYW5hTmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5uYW1lOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIG9mZnNldCBpcyBrbm93biB0byBiZSBmaXhlZCBmb3IgdGhlIHdob2xlIHllYXIuCgkgICAgICogQGFic3RyYWN0CgkgICAgICogQHR5cGUge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNVbml2ZXJzYWwiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1ZhbGlkIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gWm9uZTsKCX0oKTsKCgl2YXIgc2luZ2xldG9uJDEgPSBudWxsOwoJLyoqCgkgKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuCgkgKiBAaW1wbGVtZW50cyB7Wm9uZX0KCSAqLwoKCXZhciBTeXN0ZW1ab25lID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfWm9uZSkgewoJICBfaW5oZXJpdHNMb29zZShTeXN0ZW1ab25lLCBfWm9uZSk7CgoJICBmdW5jdGlvbiBTeXN0ZW1ab25lKCkgewoJICAgIHJldHVybiBfWm9uZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CgkgIH0KCgkgIHZhciBfcHJvdG8gPSBTeXN0ZW1ab25lLnByb3RvdHlwZTsKCgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIF9wcm90by5vZmZzZXROYW1lID0gZnVuY3Rpb24gb2Zmc2V0TmFtZSh0cywgX3JlZikgewoJICAgIHZhciBmb3JtYXQgPSBfcmVmLmZvcm1hdCwKCSAgICAgICAgbG9jYWxlID0gX3JlZi5sb2NhbGU7CgkgICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlKTsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfcHJvdG8uZm9ybWF0T2Zmc2V0ID0gZnVuY3Rpb24gZm9ybWF0T2Zmc2V0JDEodHMsIGZvcm1hdCkgewoJICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5vZmZzZXQgPSBmdW5jdGlvbiBvZmZzZXQodHMpIHsKCSAgICByZXR1cm4gLW5ldyBEYXRlKHRzKS5nZXRUaW1lem9uZU9mZnNldCgpOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXJab25lKSB7CgkgICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSAic3lzdGVtIjsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfY3JlYXRlQ2xhc3MoU3lzdGVtWm9uZSwgW3sKCSAgICBrZXk6ICJ0eXBlIiwKCSAgICBnZXQ6CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCSAgICBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gInN5c3RlbSI7CgkgICAgfQoJICAgIC8qKiBAb3ZlcnJpZGUgKiovCgoJICB9LCB7CgkgICAga2V5OiAibmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpc1VuaXZlcnNhbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfQoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdHJ1ZTsKCSAgICB9CgkgIH1dLCBbewoJICAgIGtleTogImluc3RhbmNlIiwKCSAgICBnZXQ6CgkgICAgLyoqCgkgICAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lCgkgICAgICogQHJldHVybiB7U3lzdGVtWm9uZX0KCSAgICAgKi8KCSAgICBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICBpZiAoc2luZ2xldG9uJDEgPT09IG51bGwpIHsKCSAgICAgICAgc2luZ2xldG9uJDEgPSBuZXcgU3lzdGVtWm9uZSgpOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBzaW5nbGV0b24kMTsKCSAgICB9CgkgIH1dKTsKCgkgIHJldHVybiBTeXN0ZW1ab25lOwoJfShab25lKTsKCgl2YXIgZHRmQ2FjaGUgPSB7fTsKCglmdW5jdGlvbiBtYWtlRFRGKHpvbmUpIHsKCSAgaWYgKCFkdGZDYWNoZVt6b25lXSkgewoJICAgIGR0ZkNhY2hlW3pvbmVdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIiwgewoJICAgICAgaG91cjEyOiBmYWxzZSwKCSAgICAgIHRpbWVab25lOiB6b25lLAoJICAgICAgeWVhcjogIm51bWVyaWMiLAoJICAgICAgbW9udGg6ICIyLWRpZ2l0IiwKCSAgICAgIGRheTogIjItZGlnaXQiLAoJICAgICAgaG91cjogIjItZGlnaXQiLAoJICAgICAgbWludXRlOiAiMi1kaWdpdCIsCgkgICAgICBzZWNvbmQ6ICIyLWRpZ2l0IiwKCSAgICAgIGVyYTogInNob3J0IgoJICAgIH0pOwoJICB9CgoJICByZXR1cm4gZHRmQ2FjaGVbem9uZV07Cgl9CgoJdmFyIHR5cGVUb1BvcyA9IHsKCSAgeWVhcjogMCwKCSAgbW9udGg6IDEsCgkgIGRheTogMiwKCSAgZXJhOiAzLAoJICBob3VyOiA0LAoJICBtaW51dGU6IDUsCgkgIHNlY29uZDogNgoJfTsKCglmdW5jdGlvbiBoYWNreU9mZnNldChkdGYsIGRhdGUpIHsKCSAgdmFyIGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXQoZGF0ZSkucmVwbGFjZSgvXHUyMDBFL2csICIiKSwKCSAgICAgIHBhcnNlZCA9IC8oXGQrKVwvKFxkKylcLyhcZCspIChBRHxCQyksPyAoXGQrKTooXGQrKTooXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLAoJICAgICAgZk1vbnRoID0gcGFyc2VkWzFdLAoJICAgICAgZkRheSA9IHBhcnNlZFsyXSwKCSAgICAgIGZZZWFyID0gcGFyc2VkWzNdLAoJICAgICAgZmFkT3JCYyA9IHBhcnNlZFs0XSwKCSAgICAgIGZIb3VyID0gcGFyc2VkWzVdLAoJICAgICAgZk1pbnV0ZSA9IHBhcnNlZFs2XSwKCSAgICAgIGZTZWNvbmQgPSBwYXJzZWRbN107CgkgIHJldHVybiBbZlllYXIsIGZNb250aCwgZkRheSwgZmFkT3JCYywgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdOwoJfQoKCWZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkgewoJICB2YXIgZm9ybWF0dGVkID0gZHRmLmZvcm1hdFRvUGFydHMoZGF0ZSk7CgkgIHZhciBmaWxsZWQgPSBbXTsKCgkgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7CgkgICAgdmFyIF9mb3JtYXR0ZWQkaSA9IGZvcm1hdHRlZFtpXSwKCSAgICAgICAgdHlwZSA9IF9mb3JtYXR0ZWQkaS50eXBlLAoJICAgICAgICB2YWx1ZSA9IF9mb3JtYXR0ZWQkaS52YWx1ZTsKCSAgICB2YXIgcG9zID0gdHlwZVRvUG9zW3R5cGVdOwoKCSAgICBpZiAodHlwZSA9PT0gImVyYSIpIHsKCSAgICAgIGZpbGxlZFtwb3NdID0gdmFsdWU7CgkgICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQocG9zKSkgewoJICAgICAgZmlsbGVkW3Bvc10gPSBwYXJzZUludCh2YWx1ZSwgMTApOwoJICAgIH0KCSAgfQoKCSAgcmV0dXJuIGZpbGxlZDsKCX0KCgl2YXIgaWFuYVpvbmVDYWNoZSA9IHt9OwoJLyoqCgkgKiBBIHpvbmUgaWRlbnRpZmllZCBieSBhbiBJQU5BIGlkZW50aWZpZXIsIGxpa2UgQW1lcmljYS9OZXdfWW9yawoJICogQGltcGxlbWVudHMge1pvbmV9CgkgKi8KCgl2YXIgSUFOQVpvbmUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9ab25lKSB7CgkgIF9pbmhlcml0c0xvb3NlKElBTkFab25lLCBfWm9uZSk7CgoJICAvKioKCSAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWUKCSAgICogQHJldHVybiB7SUFOQVpvbmV9CgkgICAqLwoJICBJQU5BWm9uZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUobmFtZSkgewoJICAgIGlmICghaWFuYVpvbmVDYWNoZVtuYW1lXSkgewoJICAgICAgaWFuYVpvbmVDYWNoZVtuYW1lXSA9IG5ldyBJQU5BWm9uZShuYW1lKTsKCSAgICB9CgoJICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdOwoJICB9CgkgIC8qKgoJICAgKiBSZXNldCBsb2NhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy4KCSAgICogQHJldHVybiB7dm9pZH0KCSAgICovCgkgIDsKCgkgIElBTkFab25lLnJlc2V0Q2FjaGUgPSBmdW5jdGlvbiByZXNldENhY2hlKCkgewoJICAgIGlhbmFab25lQ2FjaGUgPSB7fTsKCSAgICBkdGZDYWNoZSA9IHt9OwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHN0cmluZyBpcyBhIHZhbGlkIHNwZWNpZmllci4gVGhpcyBvbmx5IGNoZWNrcyB0aGUgc3RyaW5nJ3MgZm9ybWF0LCBub3QgdGhhdCB0aGUgc3BlY2lmaWVyIGlkZW50aWZpZXMgYSBrbm93biB6b25lOyBzZWUgaXNWYWxpZFpvbmUgZm9yIHRoYXQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIHN0cmluZyB0byBjaGVjayB2YWxpZGl0eSBvbgoJICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkU3BlY2lmaWVyKCJBbWVyaWNhL05ld19Zb3JrIikgLy89PiB0cnVlCgkgICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoIlNwb3J0fn5ibG9ycCIpIC8vPT4gZmFsc2UKCSAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZSBmb3Igc29tZSB2YWxpZCBJQU5BIG5hbWVzLiBVc2UgaXNWYWxpZFpvbmUgaW5zdGVhZC4KCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIgPSBmdW5jdGlvbiBpc1ZhbGlkU3BlY2lmaWVyKHMpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkWm9uZShzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaWRlbnRpZmllcyBhIHJlYWwgem9uZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFRoZSBzdHJpbmcgdG8gY2hlY2sKCSAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKSAvLz0+IHRydWUKCSAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIkZhbnRhc2lhL0Nhc3RsZSIpIC8vPT4gZmFsc2UKCSAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoIlNwb3J0fn5ibG9ycCIpIC8vPT4gZmFsc2UKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIElBTkFab25lLmlzVmFsaWRab25lID0gZnVuY3Rpb24gaXNWYWxpZFpvbmUoem9uZSkgewoJICAgIGlmICghem9uZSkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCgkgICAgdHJ5IHsKCSAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIsIHsKCSAgICAgICAgdGltZVpvbmU6IHpvbmUKCSAgICAgIH0pLmZvcm1hdCgpOwoJICAgICAgcmV0dXJuIHRydWU7CgkgICAgfSBjYXRjaCAoZSkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCSAgfTsKCgkgIGZ1bmN0aW9uIElBTkFab25lKG5hbWUpIHsKCSAgICB2YXIgX3RoaXM7CgoJICAgIF90aGlzID0gX1pvbmUuY2FsbCh0aGlzKSB8fCB0aGlzOwoJICAgIC8qKiBAcHJpdmF0ZSAqKi8KCgkgICAgX3RoaXMuem9uZU5hbWUgPSBuYW1lOwoJICAgIC8qKiBAcHJpdmF0ZSAqKi8KCgkgICAgX3RoaXMudmFsaWQgPSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShuYW1lKTsKCSAgICByZXR1cm4gX3RoaXM7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCgoJICB2YXIgX3Byb3RvID0gSUFOQVpvbmUucHJvdG90eXBlOwoKCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgX3Byb3RvLm9mZnNldE5hbWUgPSBmdW5jdGlvbiBvZmZzZXROYW1lKHRzLCBfcmVmKSB7CgkgICAgdmFyIGZvcm1hdCA9IF9yZWYuZm9ybWF0LAoJICAgICAgICBsb2NhbGUgPSBfcmVmLmxvY2FsZTsKCSAgICByZXR1cm4gcGFyc2Vab25lSW5mbyh0cywgZm9ybWF0LCBsb2NhbGUsIHRoaXMubmFtZSk7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLmZvcm1hdE9mZnNldCA9IGZ1bmN0aW9uIGZvcm1hdE9mZnNldCQxKHRzLCBmb3JtYXQpIHsKCSAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfcHJvdG8ub2Zmc2V0ID0gZnVuY3Rpb24gb2Zmc2V0KHRzKSB7CgkgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0cyk7CgkgICAgaWYgKGlzTmFOKGRhdGUpKSByZXR1cm4gTmFOOwoJICAgIHZhciBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSk7CgoJICAgIHZhciBfcmVmMiA9IGR0Zi5mb3JtYXRUb1BhcnRzID8gcGFydHNPZmZzZXQoZHRmLCBkYXRlKSA6IGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSksCgkgICAgICAgIHllYXIgPSBfcmVmMlswXSwKCSAgICAgICAgbW9udGggPSBfcmVmMlsxXSwKCSAgICAgICAgZGF5ID0gX3JlZjJbMl0sCgkgICAgICAgIGFkT3JCYyA9IF9yZWYyWzNdLAoJICAgICAgICBob3VyID0gX3JlZjJbNF0sCgkgICAgICAgIG1pbnV0ZSA9IF9yZWYyWzVdLAoJICAgICAgICBzZWNvbmQgPSBfcmVmMls2XTsKCgkgICAgaWYgKGFkT3JCYyA9PT0gIkJDIikgewoJICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7CgkgICAgfSAvLyBiZWNhdXNlIHdlJ3JlIHVzaW5nIGhvdXIxMiBhbmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTAyNTU2NCZjYW49MiZxPSUyMjI0JTNBMDAlMjIlMjBkYXRldGltZWZvcm1hdAoKCgkgICAgdmFyIGFkanVzdGVkSG91ciA9IGhvdXIgPT09IDI0ID8gMCA6IGhvdXI7CgkgICAgdmFyIGFzVVRDID0gb2JqVG9Mb2NhbFRTKHsKCSAgICAgIHllYXI6IHllYXIsCgkgICAgICBtb250aDogbW9udGgsCgkgICAgICBkYXk6IGRheSwKCSAgICAgIGhvdXI6IGFkanVzdGVkSG91ciwKCSAgICAgIG1pbnV0ZTogbWludXRlLAoJICAgICAgc2Vjb25kOiBzZWNvbmQsCgkgICAgICBtaWxsaXNlY29uZDogMAoJICAgIH0pOwoJICAgIHZhciBhc1RTID0gK2RhdGU7CgkgICAgdmFyIG92ZXIgPSBhc1RTICUgMTAwMDsKCSAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjsKCSAgICByZXR1cm4gKGFzVVRDIC0gYXNUUykgLyAoNjAgKiAxMDAwKTsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoJICA7CgoJICBfcHJvdG8uZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzKG90aGVyWm9uZSkgewoJICAgIHJldHVybiBvdGhlclpvbmUudHlwZSA9PT0gImlhbmEiICYmIG90aGVyWm9uZS5uYW1lID09PSB0aGlzLm5hbWU7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX2NyZWF0ZUNsYXNzKElBTkFab25lLCBbewoJICAgIGtleTogInR5cGUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuICJpYW5hIjsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJuYW1lIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLnpvbmVOYW1lOwoJICAgIH0KCSAgICAvKiogQG92ZXJyaWRlICoqLwoKCSAgfSwgewoJICAgIGtleTogImlzVW5pdmVyc2FsIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBmYWxzZTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1ZhbGlkIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLnZhbGlkOwoJICAgIH0KCSAgfV0pOwoKCSAgcmV0dXJuIElBTkFab25lOwoJfShab25lKTsKCgl2YXIgc2luZ2xldG9uID0gbnVsbDsKCS8qKgoJICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKQoJICogQGltcGxlbWVudHMge1pvbmV9CgkgKi8KCgl2YXIgRml4ZWRPZmZzZXRab25lID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfWm9uZSkgewoJICBfaW5oZXJpdHNMb29zZShGaXhlZE9mZnNldFpvbmUsIF9ab25lKTsKCgkgIC8qKgoJICAgKiBHZXQgYW4gaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBvZmZzZXQKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldCAtIFRoZSBvZmZzZXQgaW4gbWludXRlcwoJICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9CgkgICAqLwoJICBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UgPSBmdW5jdGlvbiBpbnN0YW5jZShvZmZzZXQpIHsKCSAgICByZXR1cm4gb2Zmc2V0ID09PSAwID8gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlIDogbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpOwoJICB9CgkgIC8qKgoJICAgKiBHZXQgYW4gaW5zdGFuY2Ugb2YgRml4ZWRPZmZzZXRab25lIGZyb20gYSBVVEMgb2Zmc2V0IHN0cmluZywgbGlrZSAiVVRDKzYiCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIG9mZnNldCBzdHJpbmcgdG8gcGFyc2UKCSAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKCJVVEMrNiIpCgkgICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcigiVVRDKzA2IikKCSAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKCJVVEMtNjowMCIpCgkgICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX0KCSAgICovCgkgIDsKCgkgIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllciA9IGZ1bmN0aW9uIHBhcnNlU3BlY2lmaWVyKHMpIHsKCSAgICBpZiAocykgewoJICAgICAgdmFyIHIgPSBzLm1hdGNoKC9edXRjKD86KFsrLV1cZHsxLDJ9KSg/OjooXGR7Mn0pKT8pPyQvaSk7CgoJICAgICAgaWYgKHIpIHsKCSAgICAgICAgcmV0dXJuIG5ldyBGaXhlZE9mZnNldFpvbmUoc2lnbmVkT2Zmc2V0KHJbMV0sIHJbMl0pKTsKCSAgICAgIH0KCSAgICB9CgoJICAgIHJldHVybiBudWxsOwoJICB9OwoKCSAgZnVuY3Rpb24gRml4ZWRPZmZzZXRab25lKG9mZnNldCkgewoJICAgIHZhciBfdGhpczsKCgkgICAgX3RoaXMgPSBfWm9uZS5jYWxsKHRoaXMpIHx8IHRoaXM7CgkgICAgLyoqIEBwcml2YXRlICoqLwoKCSAgICBfdGhpcy5maXhlZCA9IG9mZnNldDsKCSAgICByZXR1cm4gX3RoaXM7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCgoJICB2YXIgX3Byb3RvID0gRml4ZWRPZmZzZXRab25lLnByb3RvdHlwZTsKCgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIF9wcm90by5vZmZzZXROYW1lID0gZnVuY3Rpb24gb2Zmc2V0TmFtZSgpIHsKCSAgICByZXR1cm4gdGhpcy5uYW1lOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5mb3JtYXRPZmZzZXQgPSBmdW5jdGlvbiBmb3JtYXRPZmZzZXQkMSh0cywgZm9ybWF0KSB7CgkgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh0aGlzLmZpeGVkLCBmb3JtYXQpOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIF9wcm90by5vZmZzZXQgPSBmdW5jdGlvbiBvZmZzZXQoKSB7CgkgICAgcmV0dXJuIHRoaXMuZml4ZWQ7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLmVxdWFscyA9IGZ1bmN0aW9uIGVxdWFscyhvdGhlclpvbmUpIHsKCSAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09ICJmaXhlZCIgJiYgb3RoZXJab25lLmZpeGVkID09PSB0aGlzLmZpeGVkOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9jcmVhdGVDbGFzcyhGaXhlZE9mZnNldFpvbmUsIFt7CgkgICAga2V5OiAidHlwZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gImZpeGVkIjsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJuYW1lIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmZpeGVkID09PSAwID8gIlVUQyIgOiAiVVRDIiArIGZvcm1hdE9mZnNldCh0aGlzLmZpeGVkLCAibmFycm93Iik7CgkgICAgfQoJICB9LCB7CgkgICAga2V5OiAiaWFuYU5hbWUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgaWYgKHRoaXMuZml4ZWQgPT09IDApIHsKCSAgICAgICAgcmV0dXJuICJFdGMvVVRDIjsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIHJldHVybiAiRXRjL0dNVCIgKyBmb3JtYXRPZmZzZXQoLXRoaXMuZml4ZWQsICJuYXJyb3ciKTsKCSAgICAgIH0KCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1VuaXZlcnNhbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdHJ1ZTsKCSAgICB9CgkgIH0sIHsKCSAgICBrZXk6ICJpc1ZhbGlkIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0cnVlOwoJICAgIH0KCSAgfV0sIFt7CgkgICAga2V5OiAidXRjSW5zdGFuY2UiLAoJICAgIGdldDoKCSAgICAvKioKCSAgICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgVVRDCgkgICAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfQoJICAgICAqLwoJICAgIGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHsKCSAgICAgICAgc2luZ2xldG9uID0gbmV3IEZpeGVkT2Zmc2V0Wm9uZSgwKTsKCSAgICAgIH0KCgkgICAgICByZXR1cm4gc2luZ2xldG9uOwoJICAgIH0KCSAgfV0pOwoKCSAgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZTsKCX0oWm9uZSk7CgoJLyoqCgkgKiBBIHpvbmUgdGhhdCBmYWlsZWQgdG8gcGFyc2UuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGlzLgoJICogQGltcGxlbWVudHMge1pvbmV9CgkgKi8KCgl2YXIgSW52YWxpZFpvbmUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9ab25lKSB7CgkgIF9pbmhlcml0c0xvb3NlKEludmFsaWRab25lLCBfWm9uZSk7CgoJICBmdW5jdGlvbiBJbnZhbGlkWm9uZSh6b25lTmFtZSkgewoJICAgIHZhciBfdGhpczsKCgkgICAgX3RoaXMgPSBfWm9uZS5jYWxsKHRoaXMpIHx8IHRoaXM7CgkgICAgLyoqICBAcHJpdmF0ZSAqLwoKCSAgICBfdGhpcy56b25lTmFtZSA9IHpvbmVOYW1lOwoJICAgIHJldHVybiBfdGhpczsKCSAgfQoJICAvKiogQG92ZXJyaWRlICoqLwoKCgkgIHZhciBfcHJvdG8gPSBJbnZhbGlkWm9uZS5wcm90b3R5cGU7CgoJICAvKiogQG92ZXJyaWRlICoqLwoJICBfcHJvdG8ub2Zmc2V0TmFtZSA9IGZ1bmN0aW9uIG9mZnNldE5hbWUoKSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLmZvcm1hdE9mZnNldCA9IGZ1bmN0aW9uIGZvcm1hdE9mZnNldCgpIHsKCSAgICByZXR1cm4gIiI7CgkgIH0KCSAgLyoqIEBvdmVycmlkZSAqKi8KCSAgOwoKCSAgX3Byb3RvLm9mZnNldCA9IGZ1bmN0aW9uIG9mZnNldCgpIHsKCSAgICByZXR1cm4gTmFOOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMoKSB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9CgkgIC8qKiBAb3ZlcnJpZGUgKiovCgkgIDsKCgkgIF9jcmVhdGVDbGFzcyhJbnZhbGlkWm9uZSwgW3sKCSAgICBrZXk6ICJ0eXBlIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiAiaW52YWxpZCI7CgkgICAgfQoJICAgIC8qKiBAb3ZlcnJpZGUgKiovCgoJICB9LCB7CgkgICAga2V5OiAibmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy56b25lTmFtZTsKCSAgICB9CgkgICAgLyoqIEBvdmVycmlkZSAqKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpc1VuaXZlcnNhbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfQoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gSW52YWxpZFpvbmU7Cgl9KFpvbmUpOwoKCS8qKgoJICogQHByaXZhdGUKCSAqLwoJZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHsKCgkgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkgfHwgaW5wdXQgPT09IG51bGwpIHsKCSAgICByZXR1cm4gZGVmYXVsdFpvbmU7CgkgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBab25lKSB7CgkgICAgcmV0dXJuIGlucHV0OwoJICB9IGVsc2UgaWYgKGlzU3RyaW5nKGlucHV0KSkgewoJICAgIHZhciBsb3dlcmVkID0gaW5wdXQudG9Mb3dlckNhc2UoKTsKCSAgICBpZiAobG93ZXJlZCA9PT0gImxvY2FsIiB8fCBsb3dlcmVkID09PSAic3lzdGVtIikgcmV0dXJuIGRlZmF1bHRab25lO2Vsc2UgaWYgKGxvd2VyZWQgPT09ICJ1dGMiIHx8IGxvd2VyZWQgPT09ICJnbXQiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO2Vsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpOwoJICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkgewoJICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpOwoJICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgJiYgaW5wdXQub2Zmc2V0ICYmIHR5cGVvZiBpbnB1dC5vZmZzZXQgPT09ICJudW1iZXIiKSB7CgkgICAgLy8gVGhpcyBpcyBkdW1iLCBidXQgdGhlIGluc3RhbmNlb2YgY2hlY2sgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHJlYWxseSB3b3JrCgkgICAgLy8gc28gd2UncmUgZHVjayBjaGVja2luZyBpdAoJICAgIHJldHVybiBpbnB1dDsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gbmV3IEludmFsaWRab25lKGlucHV0KTsKCSAgfQoJfQoKCXZhciBub3cgPSBmdW5jdGlvbiBub3coKSB7CgkgIHJldHVybiBEYXRlLm5vdygpOwoJfSwKCSAgICBkZWZhdWx0Wm9uZSA9ICJzeXN0ZW0iLAoJICAgIGRlZmF1bHRMb2NhbGUgPSBudWxsLAoJICAgIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLAoJICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG51bGwsCgkgICAgdGhyb3dPbkludmFsaWQ7CgkvKioKCSAqIFNldHRpbmdzIGNvbnRhaW5zIHN0YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHRoYXQgY29udHJvbCBMdXhvbidzIG92ZXJhbGwgYmVoYXZpb3IuIEx1eG9uIGlzIGEgc2ltcGxlIGxpYnJhcnkgd2l0aCBmZXcgb3B0aW9ucywgYnV0IHRoZSBvbmVzIGl0IGRvZXMgaGF2ZSBsaXZlIGhlcmUuCgkgKi8KCgoJdmFyIFNldHRpbmdzID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKCSAgZnVuY3Rpb24gU2V0dGluZ3MoKSB7fQoKCSAgLyoqCgkgICAqIFJlc2V0IEx1eG9uJ3MgZ2xvYmFsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLgoJICAgKiBAcmV0dXJuIHt2b2lkfQoJICAgKi8KCSAgU2V0dGluZ3MucmVzZXRDYWNoZXMgPSBmdW5jdGlvbiByZXNldENhY2hlcygpIHsKCSAgICBMb2NhbGUucmVzZXRDYWNoZSgpOwoJICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTsKCSAgfTsKCgkgIF9jcmVhdGVDbGFzcyhTZXR0aW5ncywgbnVsbCwgW3sKCSAgICBrZXk6ICJub3ciLAoJICAgIGdldDoKCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLgoJICAgICAqIEB0eXBlIHtmdW5jdGlvbn0KCSAgICAgKi8KCSAgICBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gbm93OwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBTZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLgoJICAgICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50CgkgICAgICogQHR5cGUge2Z1bmN0aW9ufQoJICAgICAqIEBleGFtcGxlIFNldHRpbmdzLm5vdyA9ICgpID0+IERhdGUubm93KCkgKyAzMDAwIC8vIHByZXRlbmQgaXQgaXMgMyBzZWNvbmRzIGluIHRoZSBmdXR1cmUKCSAgICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWUKCSAgICAgKi8KCSAgICAsCgkgICAgc2V0OiBmdW5jdGlvbiBzZXQobikgewoJICAgICAgbm93ID0gbjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogU2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSB0byBjcmVhdGUgRGF0ZVRpbWVzIGluLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIFVzZSB0aGUgdmFsdWUgInN5c3RlbSIgdG8gcmVzZXQgdGhpcyB2YWx1ZSB0byB0aGUgc3lzdGVtJ3MgdGltZSB6b25lLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZGVmYXVsdFpvbmUiLAoJICAgIGdldDoKCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUgKHRoZSBvbmUgc2V0IG9uIHRoZSBtYWNoaW5lIHRoYXQgcnVucyB0aGlzIGNvZGUpLgoJICAgICAqIEB0eXBlIHtab25lfQoJICAgICAqLwoJICAgIGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCSAgICAsCgkgICAgc2V0OiBmdW5jdGlvbiBzZXQoem9uZSkgewoJICAgICAgZGVmYXVsdFpvbmUgPSB6b25lOwoJICAgIH0KCSAgfSwgewoJICAgIGtleTogImRlZmF1bHRMb2NhbGUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIGRlZmF1bHRMb2NhbGU7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFNldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgkgICAgLAoJICAgIHNldDogZnVuY3Rpb24gc2V0KGxvY2FsZSkgewoJICAgICAgZGVmYXVsdExvY2FsZSA9IGxvY2FsZTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZGVmYXVsdE51bWJlcmluZ1N5c3RlbSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogU2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgkgICAgLAoJICAgIHNldDogZnVuY3Rpb24gc2V0KG51bWJlcmluZ1N5c3RlbSkgewoJICAgICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJkZWZhdWx0T3V0cHV0Q2FsZW5kYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIGRlZmF1bHRPdXRwdXRDYWxlbmRhcjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCSAgICAsCgkgICAgc2V0OiBmdW5jdGlvbiBzZXQob3V0cHV0Q2FsZW5kYXIpIHsKCSAgICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgd2hldGhlciBMdXhvbiB3aWxsIHRocm93IHdoZW4gaXQgZW5jb3VudGVycyBpbnZhbGlkIERhdGVUaW1lcywgRHVyYXRpb25zLCBvciBJbnRlcnZhbHMKCSAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJ0aHJvd09uSW52YWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhyb3dPbkludmFsaWQ7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFscwoJICAgICAqIEB0eXBlIHtib29sZWFufQoJICAgICAqLwoJICAgICwKCSAgICBzZXQ6IGZ1bmN0aW9uIHNldCh0KSB7CgkgICAgICB0aHJvd09uSW52YWxpZCA9IHQ7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gU2V0dGluZ3M7Cgl9KCk7CgoJdmFyIF9leGNsdWRlZCA9IFsiYmFzZSJdLAoJICAgIF9leGNsdWRlZDIgPSBbInBhZFRvIiwgImZsb29yIl07CgoJdmFyIGludGxMRkNhY2hlID0ge307CgoJZnVuY3Rpb24gZ2V0Q2FjaGVkTEYobG9jU3RyaW5nLCBvcHRzKSB7CgkgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICBvcHRzID0ge307CgkgIH0KCgkgIHZhciBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBvcHRzXSk7CgkgIHZhciBkdGYgPSBpbnRsTEZDYWNoZVtrZXldOwoKCSAgaWYgKCFkdGYpIHsKCSAgICBkdGYgPSBuZXcgSW50bC5MaXN0Rm9ybWF0KGxvY1N0cmluZywgb3B0cyk7CgkgICAgaW50bExGQ2FjaGVba2V5XSA9IGR0ZjsKCSAgfQoKCSAgcmV0dXJuIGR0ZjsKCX0KCgl2YXIgaW50bERUQ2FjaGUgPSB7fTsKCglmdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzKSB7CgkgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICBvcHRzID0ge307CgkgIH0KCgkgIHZhciBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBvcHRzXSk7CgkgIHZhciBkdGYgPSBpbnRsRFRDYWNoZVtrZXldOwoKCSAgaWYgKCFkdGYpIHsKCSAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpOwoJICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7CgkgIH0KCgkgIHJldHVybiBkdGY7Cgl9CgoJdmFyIGludGxOdW1DYWNoZSA9IHt9OwoKCWZ1bmN0aW9uIGdldENhY2hlZElORihsb2NTdHJpbmcsIG9wdHMpIHsKCSAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgIG9wdHMgPSB7fTsKCSAgfQoKCSAgdmFyIGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTsKCSAgdmFyIGluZiA9IGludGxOdW1DYWNoZVtrZXldOwoKCSAgaWYgKCFpbmYpIHsKCSAgICBpbmYgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jU3RyaW5nLCBvcHRzKTsKCSAgICBpbnRsTnVtQ2FjaGVba2V5XSA9IGluZjsKCSAgfQoKCSAgcmV0dXJuIGluZjsKCX0KCgl2YXIgaW50bFJlbENhY2hlID0ge307CgoJZnVuY3Rpb24gZ2V0Q2FjaGVkUlRGKGxvY1N0cmluZywgb3B0cykgewoJICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgb3B0cyA9IHt9OwoJICB9CgoJICB2YXIgX29wdHMgPSBvcHRzOwoJICAgICAgX29wdHMuYmFzZTsKCSAgICAgIHZhciBjYWNoZUtleU9wdHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfb3B0cywgX2V4Y2x1ZGVkKTsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9ucwoKCgkgIHZhciBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTsKCSAgdmFyIGluZiA9IGludGxSZWxDYWNoZVtrZXldOwoKCSAgaWYgKCFpbmYpIHsKCSAgICBpbmYgPSBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQobG9jU3RyaW5nLCBvcHRzKTsKCSAgICBpbnRsUmVsQ2FjaGVba2V5XSA9IGluZjsKCSAgfQoKCSAgcmV0dXJuIGluZjsKCX0KCgl2YXIgc3lzTG9jYWxlQ2FjaGUgPSBudWxsOwoKCWZ1bmN0aW9uIHN5c3RlbUxvY2FsZSgpIHsKCSAgaWYgKHN5c0xvY2FsZUNhY2hlKSB7CgkgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwoJICB9IGVsc2UgewoJICAgIHN5c0xvY2FsZUNhY2hlID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CgkgICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlOwoJICB9Cgl9CgoJZnVuY3Rpb24gcGFyc2VMb2NhbGVTdHJpbmcobG9jYWxlU3RyKSB7CgkgIC8vIEkgcmVhbGx5IHdhbnQgdG8gYXZvaWQgd3JpdGluZyBhIEJDUCA0NyBwYXJzZXIKCSAgLy8gc2VlLCBlLmcuIGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vYmNwLTQ3CgkgIC8vIEluc3RlYWQsIHdlJ2xsIGRvIHRoaXM6CgkgIC8vIGEpIGlmIHRoZSBzdHJpbmcgaGFzIG5vIC11IGV4dGVuc2lvbnMsIGp1c3QgbGVhdmUgaXQgYWxvbmUKCSAgLy8gYikgaWYgaXQgZG9lcywgdXNlIEludGwgdG8gcmVzb2x2ZSBldmVyeXRoaW5nCgkgIC8vIGMpIGlmIEludGwgZmFpbHMsIHRyeSBhZ2FpbiB3aXRob3V0IHRoZSAtdQoJICB2YXIgdUluZGV4ID0gbG9jYWxlU3RyLmluZGV4T2YoIi11LSIpOwoKCSAgaWYgKHVJbmRleCA9PT0gLTEpIHsKCSAgICByZXR1cm4gW2xvY2FsZVN0cl07CgkgIH0gZWxzZSB7CgkgICAgdmFyIG9wdGlvbnM7CgkgICAgdmFyIHNtYWxsZXIgPSBsb2NhbGVTdHIuc3Vic3RyaW5nKDAsIHVJbmRleCk7CgoJICAgIHRyeSB7CgkgICAgICBvcHRpb25zID0gZ2V0Q2FjaGVkRFRGKGxvY2FsZVN0cikucmVzb2x2ZWRPcHRpb25zKCk7CgkgICAgfSBjYXRjaCAoZSkgewoJICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihzbWFsbGVyKS5yZXNvbHZlZE9wdGlvbnMoKTsKCSAgICB9CgoJICAgIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9vcHRpb25zLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgY2FsZW5kYXIgPSBfb3B0aW9ucy5jYWxlbmRhcjsgLy8gcmV0dXJuIHRoZSBzbWFsbGVyIG9uZSBzbyB0aGF0IHdlIGNhbiBhcHBlbmQgdGhlIGNhbGVuZGFyIGFuZCBudW1iZXJpbmcgb3ZlcnJpZGVzIHRvIGl0CgoJICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07CgkgIH0KCX0KCglmdW5jdGlvbiBpbnRsQ29uZmlnU3RyaW5nKGxvY2FsZVN0ciwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikgewoJICBpZiAob3V0cHV0Q2FsZW5kYXIgfHwgbnVtYmVyaW5nU3lzdGVtKSB7CgkgICAgbG9jYWxlU3RyICs9ICItdSI7CgoJICAgIGlmIChvdXRwdXRDYWxlbmRhcikgewoJICAgICAgbG9jYWxlU3RyICs9ICItY2EtIiArIG91dHB1dENhbGVuZGFyOwoJICAgIH0KCgkgICAgaWYgKG51bWJlcmluZ1N5c3RlbSkgewoJICAgICAgbG9jYWxlU3RyICs9ICItbnUtIiArIG51bWJlcmluZ1N5c3RlbTsKCSAgICB9CgoJICAgIHJldHVybiBsb2NhbGVTdHI7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIGxvY2FsZVN0cjsKCSAgfQoJfQoKCWZ1bmN0aW9uIG1hcE1vbnRocyhmKSB7CgkgIHZhciBtcyA9IFtdOwoKCSAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTI7IGkrKykgewoJICAgIHZhciBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCBpLCAxKTsKCSAgICBtcy5wdXNoKGYoZHQpKTsKCSAgfQoKCSAgcmV0dXJuIG1zOwoJfQoKCWZ1bmN0aW9uIG1hcFdlZWtkYXlzKGYpIHsKCSAgdmFyIG1zID0gW107CgoJICBmb3IgKHZhciBpID0gMTsgaSA8PSA3OyBpKyspIHsKCSAgICB2YXIgZHQgPSBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzICsgaSk7CgkgICAgbXMucHVzaChmKGR0KSk7CgkgIH0KCgkgIHJldHVybiBtczsKCX0KCglmdW5jdGlvbiBsaXN0U3R1ZmYobG9jLCBsZW5ndGgsIGRlZmF1bHRPSywgZW5nbGlzaEZuLCBpbnRsRm4pIHsKCSAgdmFyIG1vZGUgPSBsb2MubGlzdGluZ01vZGUoZGVmYXVsdE9LKTsKCgkgIGlmIChtb2RlID09PSAiZXJyb3IiKSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0gZWxzZSBpZiAobW9kZSA9PT0gImVuIikgewoJICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7CgkgIH0KCX0KCglmdW5jdGlvbiBzdXBwb3J0c0Zhc3ROdW1iZXJzKGxvYykgewoJICBpZiAobG9jLm51bWJlcmluZ1N5c3RlbSAmJiBsb2MubnVtYmVyaW5nU3lzdGVtICE9PSAibGF0biIpIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09ICJsYXRuIiB8fCAhbG9jLmxvY2FsZSB8fCBsb2MubG9jYWxlLnN0YXJ0c1dpdGgoImVuIikgfHwgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jLmludGwpLnJlc29sdmVkT3B0aW9ucygpLm51bWJlcmluZ1N5c3RlbSA9PT0gImxhdG4iOwoJICB9Cgl9CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgoJdmFyIFBvbHlOdW1iZXJGb3JtYXR0ZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBQb2x5TnVtYmVyRm9ybWF0dGVyKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7CgkgICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDsKCSAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTsKCgkgICAgb3B0cy5wYWRUbzsKCSAgICAgICAgb3B0cy5mbG9vcjsKCSAgICAgICAgdmFyIG90aGVyT3B0cyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKG9wdHMsIF9leGNsdWRlZDIpOwoKCSAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkgewoJICAgICAgdmFyIGludGxPcHRzID0gX2V4dGVuZHMoewoJICAgICAgICB1c2VHcm91cGluZzogZmFsc2UKCSAgICAgIH0sIG9wdHMpOwoKCSAgICAgIGlmIChvcHRzLnBhZFRvID4gMCkgaW50bE9wdHMubWluaW11bUludGVnZXJEaWdpdHMgPSBvcHRzLnBhZFRvOwoJICAgICAgdGhpcy5pbmYgPSBnZXRDYWNoZWRJTkYoaW50bCwgaW50bE9wdHMpOwoJICAgIH0KCSAgfQoKCSAgdmFyIF9wcm90byA9IFBvbHlOdW1iZXJGb3JtYXR0ZXIucHJvdG90eXBlOwoKCSAgX3Byb3RvLmZvcm1hdCA9IGZ1bmN0aW9uIGZvcm1hdChpKSB7CgkgICAgaWYgKHRoaXMuaW5mKSB7CgkgICAgICB2YXIgZml4ZWQgPSB0aGlzLmZsb29yID8gTWF0aC5mbG9vcihpKSA6IGk7CgkgICAgICByZXR1cm4gdGhpcy5pbmYuZm9ybWF0KGZpeGVkKTsKCSAgICB9IGVsc2UgewoJICAgICAgLy8gdG8gbWF0Y2ggdGhlIGJyb3dzZXIncyBudW1iZXJmb3JtYXR0ZXIgZGVmYXVsdHMKCSAgICAgIHZhciBfZml4ZWQgPSB0aGlzLmZsb29yID8gTWF0aC5mbG9vcihpKSA6IHJvdW5kVG8oaSwgMyk7CgoJICAgICAgcmV0dXJuIHBhZFN0YXJ0KF9maXhlZCwgdGhpcy5wYWRUbyk7CgkgICAgfQoJICB9OwoKCSAgcmV0dXJuIFBvbHlOdW1iZXJGb3JtYXR0ZXI7Cgl9KCk7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgoJdmFyIFBvbHlEYXRlRm9ybWF0dGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKCSAgZnVuY3Rpb24gUG9seURhdGVGb3JtYXR0ZXIoZHQsIGludGwsIG9wdHMpIHsKCSAgICB0aGlzLm9wdHMgPSBvcHRzOwoJICAgIHZhciB6OwoKCSAgICBpZiAoZHQuem9uZS5pc1VuaXZlcnNhbCkgewoJICAgICAgLy8gVVRDLTggb3IgRXRjL1VUQy04IGFyZSBub3QgcGFydCBvZiB0emRhdGEsIG9ubHkgRXRjL0dNVCs4IGFuZCB0aGUgbGlrZS4KCSAgICAgIC8vIFRoYXQgaXMgd2h5IGZpeGVkLW9mZnNldCBUWiBpcyBzZXQgdG8gdGhhdCB1bmxlc3MgaXQgaXM6CgkgICAgICAvLyAxLiBSZXByZXNlbnRpbmcgb2Zmc2V0IDAgd2hlbiBVVEMgaXMgdXNlZCB0byBtYWludGFpbiBwcmV2aW91cyBiZWhhdmlvciBhbmQgZG9lcyBub3QgYmVjb21lIEdNVC4KCSAgICAgIC8vIDIuIFVuc3VwcG9ydGVkIGJ5IHRoZSBicm93c2VyOgoJICAgICAgLy8gICAgLSBzb21lIGRvIG5vdCBzdXBwb3J0IEV0Yy8KCSAgICAgIC8vICAgIC0gPCBFdGMvR01ULTE0LCA+IEV0Yy9HTVQrMTIsIGFuZCAzMC1taW51dGUgb3IgNDUtbWludXRlIG9mZnNldHMgYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YQoJICAgICAgdmFyIGdtdE9mZnNldCA9IC0xICogKGR0Lm9mZnNldCAvIDYwKTsKCSAgICAgIHZhciBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyAiRXRjL0dNVCsiICsgZ210T2Zmc2V0IDogIkV0Yy9HTVQiICsgZ210T2Zmc2V0OwoKCSAgICAgIGlmIChkdC5vZmZzZXQgIT09IDAgJiYgSUFOQVpvbmUuY3JlYXRlKG9mZnNldFopLnZhbGlkKSB7CgkgICAgICAgIHogPSBvZmZzZXRaOwoJICAgICAgICB0aGlzLmR0ID0gZHQ7CgkgICAgICB9IGVsc2UgewoJICAgICAgICAvLyBOb3QgYWxsIGZpeGVkLW9mZnNldCB6b25lcyBsaWtlIEV0Yy8rNDozMCBhcmUgcHJlc2VudCBpbiB0emRhdGEuCgkgICAgICAgIC8vIFNvIHdlIGhhdmUgdG8gbWFrZSBkby4gVHdvIGNhc2VzOgoJICAgICAgICAvLyAxLiBUaGUgZm9ybWF0IG9wdGlvbnMgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBXZSBjYW4ndCBkbyB0aGF0LCBzbyB0aGUgYmVzdAoJICAgICAgICAvLyB3ZSBjYW4gZG8gaXMgZm9ybWF0IHRoZSBkYXRlIGluIFVUQy4KCSAgICAgICAgLy8gMi4gVGhlIGZvcm1hdCBvcHRpb25zIGRvbid0IHRlbGwgdXMgdG8gc2hvdyB0aGUgem9uZS4gVGhlbiB3ZSBjYW4gYWRqdXN0IHRoZW0KCSAgICAgICAgLy8gdGhlIHRpbWUgYW5kIHRlbGwgdGhlIGZvcm1hdHRlciB0byBzaG93IGl0IHRvIHVzIGluIFVUQywgc28gdGhhdCB0aGUgdGltZSBpcyByaWdodAoJICAgICAgICAvLyBhbmQgdGhlIGJhZCB6b25lIGRvZXNuJ3Qgc2hvdyB1cC4KCSAgICAgICAgeiA9ICJVVEMiOwoKCSAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7CgkgICAgICAgICAgdGhpcy5kdCA9IGR0OwoJICAgICAgICB9IGVsc2UgewoJICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApOwoJICAgICAgICB9CgkgICAgICB9CgkgICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09ICJzeXN0ZW0iKSB7CgkgICAgICB0aGlzLmR0ID0gZHQ7CgkgICAgfSBlbHNlIHsKCSAgICAgIHRoaXMuZHQgPSBkdDsKCSAgICAgIHogPSBkdC56b25lLm5hbWU7CgkgICAgfQoKCSAgICB2YXIgaW50bE9wdHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5vcHRzKTsKCgkgICAgaWYgKHopIHsKCSAgICAgIGludGxPcHRzLnRpbWVab25lID0gejsKCSAgICB9CgoJICAgIHRoaXMuZHRmID0gZ2V0Q2FjaGVkRFRGKGludGwsIGludGxPcHRzKTsKCSAgfQoKCSAgdmFyIF9wcm90bzIgPSBQb2x5RGF0ZUZvcm1hdHRlci5wcm90b3R5cGU7CgoJICBfcHJvdG8yLmZvcm1hdCA9IGZ1bmN0aW9uIGZvcm1hdCgpIHsKCSAgICByZXR1cm4gdGhpcy5kdGYuZm9ybWF0KHRoaXMuZHQudG9KU0RhdGUoKSk7CgkgIH07CgoJICBfcHJvdG8yLmZvcm1hdFRvUGFydHMgPSBmdW5jdGlvbiBmb3JtYXRUb1BhcnRzKCkgewoJICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXRUb1BhcnRzKHRoaXMuZHQudG9KU0RhdGUoKSk7CgkgIH07CgoJICBfcHJvdG8yLnJlc29sdmVkT3B0aW9ucyA9IGZ1bmN0aW9uIHJlc29sdmVkT3B0aW9ucygpIHsKCSAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7CgkgIH07CgoJICByZXR1cm4gUG9seURhdGVGb3JtYXR0ZXI7Cgl9KCk7CgkvKioKCSAqIEBwcml2YXRlCgkgKi8KCgoJdmFyIFBvbHlSZWxGb3JtYXR0ZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBQb2x5UmVsRm9ybWF0dGVyKGludGwsIGlzRW5nbGlzaCwgb3B0cykgewoJICAgIHRoaXMub3B0cyA9IF9leHRlbmRzKHsKCSAgICAgIHN0eWxlOiAibG9uZyIKCSAgICB9LCBvcHRzKTsKCgkgICAgaWYgKCFpc0VuZ2xpc2ggJiYgaGFzUmVsYXRpdmUoKSkgewoJICAgICAgdGhpcy5ydGYgPSBnZXRDYWNoZWRSVEYoaW50bCwgb3B0cyk7CgkgICAgfQoJICB9CgoJICB2YXIgX3Byb3RvMyA9IFBvbHlSZWxGb3JtYXR0ZXIucHJvdG90eXBlOwoKCSAgX3Byb3RvMy5mb3JtYXQgPSBmdW5jdGlvbiBmb3JtYXQoY291bnQsIHVuaXQpIHsKCSAgICBpZiAodGhpcy5ydGYpIHsKCSAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCB0aGlzLm9wdHMubnVtZXJpYywgdGhpcy5vcHRzLnN0eWxlICE9PSAibG9uZyIpOwoJICAgIH0KCSAgfTsKCgkgIF9wcm90bzMuZm9ybWF0VG9QYXJ0cyA9IGZ1bmN0aW9uIGZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpIHsKCSAgICBpZiAodGhpcy5ydGYpIHsKCSAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KTsKCSAgICB9IGVsc2UgewoJICAgICAgcmV0dXJuIFtdOwoJICAgIH0KCSAgfTsKCgkgIHJldHVybiBQb2x5UmVsRm9ybWF0dGVyOwoJfSgpOwoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoKCXZhciBMb2NhbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBMb2NhbGUuZnJvbU9wdHMgPSBmdW5jdGlvbiBmcm9tT3B0cyhvcHRzKSB7CgkgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTsKCSAgfTsKCgkgIExvY2FsZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTikgewoJICAgIGlmIChkZWZhdWx0VG9FTiA9PT0gdm9pZCAwKSB7CgkgICAgICBkZWZhdWx0VG9FTiA9IGZhbHNlOwoJICAgIH0KCgkgICAgdmFyIHNwZWNpZmllZExvY2FsZSA9IGxvY2FsZSB8fCBTZXR0aW5ncy5kZWZhdWx0TG9jYWxlOyAvLyB0aGUgc3lzdGVtIGxvY2FsZSBpcyB1c2VmdWwgZm9yIGh1bWFuIHJlYWRhYmxlIHN0cmluZ3MgYnV0IGFubm95aW5nIGZvciBwYXJzaW5nL2Zvcm1hdHRpbmcga25vd24gZm9ybWF0cwoKCSAgICB2YXIgbG9jYWxlUiA9IHNwZWNpZmllZExvY2FsZSB8fCAoZGVmYXVsdFRvRU4gPyAiZW4tVVMiIDogc3lzdGVtTG9jYWxlKCkpOwoJICAgIHZhciBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07CgkgICAgdmFyIG91dHB1dENhbGVuZGFyUiA9IG91dHB1dENhbGVuZGFyIHx8IFNldHRpbmdzLmRlZmF1bHRPdXRwdXRDYWxlbmRhcjsKCSAgICByZXR1cm4gbmV3IExvY2FsZShsb2NhbGVSLCBudW1iZXJpbmdTeXN0ZW1SLCBvdXRwdXRDYWxlbmRhclIsIHNwZWNpZmllZExvY2FsZSk7CgkgIH07CgoJICBMb2NhbGUucmVzZXRDYWNoZSA9IGZ1bmN0aW9uIHJlc2V0Q2FjaGUoKSB7CgkgICAgc3lzTG9jYWxlQ2FjaGUgPSBudWxsOwoJICAgIGludGxEVENhY2hlID0ge307CgkgICAgaW50bE51bUNhY2hlID0ge307CgkgICAgaW50bFJlbENhY2hlID0ge307CgkgIH07CgoJICBMb2NhbGUuZnJvbU9iamVjdCA9IGZ1bmN0aW9uIGZyb21PYmplY3QoX3RlbXApIHsKCSAgICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLAoJICAgICAgICBsb2NhbGUgPSBfcmVmLmxvY2FsZSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX3JlZi5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG91dHB1dENhbGVuZGFyID0gX3JlZi5vdXRwdXRDYWxlbmRhcjsKCgkgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTsKCSAgfTsKCgkgIGZ1bmN0aW9uIExvY2FsZShsb2NhbGUsIG51bWJlcmluZywgb3V0cHV0Q2FsZW5kYXIsIHNwZWNpZmllZExvY2FsZSkgewoJICAgIHZhciBfcGFyc2VMb2NhbGVTdHJpbmcgPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpLAoJICAgICAgICBwYXJzZWRMb2NhbGUgPSBfcGFyc2VMb2NhbGVTdHJpbmdbMF0sCgkgICAgICAgIHBhcnNlZE51bWJlcmluZ1N5c3RlbSA9IF9wYXJzZUxvY2FsZVN0cmluZ1sxXSwKCSAgICAgICAgcGFyc2VkT3V0cHV0Q2FsZW5kYXIgPSBfcGFyc2VMb2NhbGVTdHJpbmdbMl07CgoJICAgIHRoaXMubG9jYWxlID0gcGFyc2VkTG9jYWxlOwoJICAgIHRoaXMubnVtYmVyaW5nU3lzdGVtID0gbnVtYmVyaW5nIHx8IHBhcnNlZE51bWJlcmluZ1N5c3RlbSB8fCBudWxsOwoJICAgIHRoaXMub3V0cHV0Q2FsZW5kYXIgPSBvdXRwdXRDYWxlbmRhciB8fCBwYXJzZWRPdXRwdXRDYWxlbmRhciB8fCBudWxsOwoJICAgIHRoaXMuaW50bCA9IGludGxDb25maWdTdHJpbmcodGhpcy5sb2NhbGUsIHRoaXMubnVtYmVyaW5nU3lzdGVtLCB0aGlzLm91dHB1dENhbGVuZGFyKTsKCSAgICB0aGlzLndlZWtkYXlzQ2FjaGUgPSB7CgkgICAgICBmb3JtYXQ6IHt9LAoJICAgICAgc3RhbmRhbG9uZToge30KCSAgICB9OwoJICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7CgkgICAgICBmb3JtYXQ6IHt9LAoJICAgICAgc3RhbmRhbG9uZToge30KCSAgICB9OwoJICAgIHRoaXMubWVyaWRpZW1DYWNoZSA9IG51bGw7CgkgICAgdGhpcy5lcmFDYWNoZSA9IHt9OwoJICAgIHRoaXMuc3BlY2lmaWVkTG9jYWxlID0gc3BlY2lmaWVkTG9jYWxlOwoJICAgIHRoaXMuZmFzdE51bWJlcnNDYWNoZWQgPSBudWxsOwoJICB9CgoJICB2YXIgX3Byb3RvNCA9IExvY2FsZS5wcm90b3R5cGU7CgoJICBfcHJvdG80Lmxpc3RpbmdNb2RlID0gZnVuY3Rpb24gbGlzdGluZ01vZGUoKSB7CgkgICAgdmFyIGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7CgkgICAgdmFyIGhhc05vV2VpcmRuZXNzID0gKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSAibGF0biIpICYmICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09ICJncmVnb3J5Iik7CgkgICAgcmV0dXJuIGlzQWN0dWFsbHlFbiAmJiBoYXNOb1dlaXJkbmVzcyA/ICJlbiIgOiAiaW50bCI7CgkgIH07CgoJICBfcHJvdG80LmNsb25lID0gZnVuY3Rpb24gY2xvbmUoYWx0cykgewoJICAgIGlmICghYWx0cyB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhbHRzKS5sZW5ndGggPT09IDApIHsKCSAgICAgIHJldHVybiB0aGlzOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSwgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhciwgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZSk7CgkgICAgfQoJICB9OwoKCSAgX3Byb3RvNC5yZWRlZmF1bHRUb0VOID0gZnVuY3Rpb24gcmVkZWZhdWx0VG9FTihhbHRzKSB7CgkgICAgaWYgKGFsdHMgPT09IHZvaWQgMCkgewoJICAgICAgYWx0cyA9IHt9OwoJICAgIH0KCgkgICAgcmV0dXJuIHRoaXMuY2xvbmUoX2V4dGVuZHMoe30sIGFsdHMsIHsKCSAgICAgIGRlZmF1bHRUb0VOOiB0cnVlCgkgICAgfSkpOwoJICB9OwoKCSAgX3Byb3RvNC5yZWRlZmF1bHRUb1N5c3RlbSA9IGZ1bmN0aW9uIHJlZGVmYXVsdFRvU3lzdGVtKGFsdHMpIHsKCSAgICBpZiAoYWx0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBhbHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5jbG9uZShfZXh0ZW5kcyh7fSwgYWx0cywgewoJICAgICAgZGVmYXVsdFRvRU46IGZhbHNlCgkgICAgfSkpOwoJICB9OwoKCSAgX3Byb3RvNC5tb250aHMgPSBmdW5jdGlvbiBtb250aHMkMShsZW5ndGgsIGZvcm1hdCwgZGVmYXVsdE9LKSB7CgkgICAgdmFyIF90aGlzID0gdGhpczsKCgkgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CgkgICAgICBmb3JtYXQgPSBmYWxzZTsKCSAgICB9CgoJICAgIGlmIChkZWZhdWx0T0sgPT09IHZvaWQgMCkgewoJICAgICAgZGVmYXVsdE9LID0gdHJ1ZTsKCSAgICB9CgoJICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIG1vbnRocywgZnVuY3Rpb24gKCkgewoJICAgICAgdmFyIGludGwgPSBmb3JtYXQgPyB7CgkgICAgICAgIG1vbnRoOiBsZW5ndGgsCgkgICAgICAgIGRheTogIm51bWVyaWMiCgkgICAgICB9IDogewoJICAgICAgICBtb250aDogbGVuZ3RoCgkgICAgICB9LAoJICAgICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/ICJmb3JtYXQiIDogInN0YW5kYWxvbmUiOwoKCSAgICAgIGlmICghX3RoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7CgkgICAgICAgIF90aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcE1vbnRocyhmdW5jdGlvbiAoZHQpIHsKCSAgICAgICAgICByZXR1cm4gX3RoaXMuZXh0cmFjdChkdCwgaW50bCwgIm1vbnRoIik7CgkgICAgICAgIH0pOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBfdGhpcy5tb250aHNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07CgkgICAgfSk7CgkgIH07CgoJICBfcHJvdG80LndlZWtkYXlzID0gZnVuY3Rpb24gd2Vla2RheXMkMShsZW5ndGgsIGZvcm1hdCwgZGVmYXVsdE9LKSB7CgkgICAgdmFyIF90aGlzMiA9IHRoaXM7CgoJICAgIGlmIChmb3JtYXQgPT09IHZvaWQgMCkgewoJICAgICAgZm9ybWF0ID0gZmFsc2U7CgkgICAgfQoKCSAgICBpZiAoZGVmYXVsdE9LID09PSB2b2lkIDApIHsKCSAgICAgIGRlZmF1bHRPSyA9IHRydWU7CgkgICAgfQoKCSAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCB3ZWVrZGF5cywgZnVuY3Rpb24gKCkgewoJICAgICAgdmFyIGludGwgPSBmb3JtYXQgPyB7CgkgICAgICAgIHdlZWtkYXk6IGxlbmd0aCwKCSAgICAgICAgeWVhcjogIm51bWVyaWMiLAoJICAgICAgICBtb250aDogImxvbmciLAoJICAgICAgICBkYXk6ICJudW1lcmljIgoJICAgICAgfSA6IHsKCSAgICAgICAgd2Vla2RheTogbGVuZ3RoCgkgICAgICB9LAoJICAgICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/ICJmb3JtYXQiIDogInN0YW5kYWxvbmUiOwoKCSAgICAgIGlmICghX3RoaXMyLndlZWtkYXlzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7CgkgICAgICAgIF90aGlzMi53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKGZ1bmN0aW9uIChkdCkgewoJICAgICAgICAgIHJldHVybiBfdGhpczIuZXh0cmFjdChkdCwgaW50bCwgIndlZWtkYXkiKTsKCSAgICAgICAgfSk7CgkgICAgICB9CgoJICAgICAgcmV0dXJuIF90aGlzMi53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTsKCSAgICB9KTsKCSAgfTsKCgkgIF9wcm90bzQubWVyaWRpZW1zID0gZnVuY3Rpb24gbWVyaWRpZW1zJDEoZGVmYXVsdE9LKSB7CgkgICAgdmFyIF90aGlzMyA9IHRoaXM7CgoJICAgIGlmIChkZWZhdWx0T0sgPT09IHZvaWQgMCkgewoJICAgICAgZGVmYXVsdE9LID0gdHJ1ZTsKCSAgICB9CgoJICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgdW5kZWZpbmVkLCBkZWZhdWx0T0ssIGZ1bmN0aW9uICgpIHsKCSAgICAgIHJldHVybiBtZXJpZGllbXM7CgkgICAgfSwgZnVuY3Rpb24gKCkgewoJICAgICAgLy8gSW4gdGhlb3J5IHRoZXJlIGNvdWxkIGJlIGFyaWJpdHJhcnkgZGF5IHBlcmlvZHMuIFdlJ3JlIGdvbm5hIGFzc3VtZSB0aGVyZSBhcmUgZXhhY3RseSB0d28KCSAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci4KCSAgICAgIGlmICghX3RoaXMzLm1lcmlkaWVtQ2FjaGUpIHsKCSAgICAgICAgdmFyIGludGwgPSB7CgkgICAgICAgICAgaG91cjogIm51bWVyaWMiLAoJICAgICAgICAgIGhvdXJDeWNsZTogImgxMiIKCSAgICAgICAgfTsKCSAgICAgICAgX3RoaXMzLm1lcmlkaWVtQ2FjaGUgPSBbRGF0ZVRpbWUudXRjKDIwMTYsIDExLCAxMywgOSksIERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDE5KV0ubWFwKGZ1bmN0aW9uIChkdCkgewoJICAgICAgICAgIHJldHVybiBfdGhpczMuZXh0cmFjdChkdCwgaW50bCwgImRheXBlcmlvZCIpOwoJICAgICAgICB9KTsKCSAgICAgIH0KCgkgICAgICByZXR1cm4gX3RoaXMzLm1lcmlkaWVtQ2FjaGU7CgkgICAgfSk7CgkgIH07CgoJICBfcHJvdG80LmVyYXMgPSBmdW5jdGlvbiBlcmFzJDEobGVuZ3RoLCBkZWZhdWx0T0spIHsKCSAgICB2YXIgX3RoaXM0ID0gdGhpczsKCgkgICAgaWYgKGRlZmF1bHRPSyA9PT0gdm9pZCAwKSB7CgkgICAgICBkZWZhdWx0T0sgPSB0cnVlOwoJICAgIH0KCgkgICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgZXJhcywgZnVuY3Rpb24gKCkgewoJICAgICAgdmFyIGludGwgPSB7CgkgICAgICAgIGVyYTogbGVuZ3RoCgkgICAgICB9OyAvLyBUaGlzIGlzIHByb2JsZW1hdGljLiBEaWZmZXJlbnQgY2FsZW5kYXJzIGFyZSBnb2luZyB0byBkZWZpbmUgZXJhcyB0b3RhbGx5IGRpZmZlcmVudGx5LiBXaGF0IEkgbmVlZCBpcyB0aGUgbWluaW11bSBzZXQgb2YgZGF0ZXMKCSAgICAgIC8vIHRvIGRlZmluaXRlbHkgZW51bWVyYXRlIHRoZW0uCgoJICAgICAgaWYgKCFfdGhpczQuZXJhQ2FjaGVbbGVuZ3RoXSkgewoJICAgICAgICBfdGhpczQuZXJhQ2FjaGVbbGVuZ3RoXSA9IFtEYXRlVGltZS51dGMoLTQwLCAxLCAxKSwgRGF0ZVRpbWUudXRjKDIwMTcsIDEsIDEpXS5tYXAoZnVuY3Rpb24gKGR0KSB7CgkgICAgICAgICAgcmV0dXJuIF90aGlzNC5leHRyYWN0KGR0LCBpbnRsLCAiZXJhIik7CgkgICAgICAgIH0pOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBfdGhpczQuZXJhQ2FjaGVbbGVuZ3RoXTsKCSAgICB9KTsKCSAgfTsKCgkgIF9wcm90bzQuZXh0cmFjdCA9IGZ1bmN0aW9uIGV4dHJhY3QoZHQsIGludGxPcHRzLCBmaWVsZCkgewoJICAgIHZhciBkZiA9IHRoaXMuZHRGb3JtYXR0ZXIoZHQsIGludGxPcHRzKSwKCSAgICAgICAgcmVzdWx0cyA9IGRmLmZvcm1hdFRvUGFydHMoKSwKCSAgICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoZnVuY3Rpb24gKG0pIHsKCSAgICAgIHJldHVybiBtLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQ7CgkgICAgfSk7CgkgICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsOwoJICB9OwoKCSAgX3Byb3RvNC5udW1iZXJGb3JtYXR0ZXIgPSBmdW5jdGlvbiBudW1iZXJGb3JtYXR0ZXIob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKQoJICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpCgkgICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTsKCSAgfTsKCgkgIF9wcm90bzQuZHRGb3JtYXR0ZXIgPSBmdW5jdGlvbiBkdEZvcm1hdHRlcihkdCwgaW50bE9wdHMpIHsKCSAgICBpZiAoaW50bE9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgaW50bE9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiBuZXcgUG9seURhdGVGb3JtYXR0ZXIoZHQsIHRoaXMuaW50bCwgaW50bE9wdHMpOwoJICB9OwoKCSAgX3Byb3RvNC5yZWxGb3JtYXR0ZXIgPSBmdW5jdGlvbiByZWxGb3JtYXR0ZXIob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiBuZXcgUG9seVJlbEZvcm1hdHRlcih0aGlzLmludGwsIHRoaXMuaXNFbmdsaXNoKCksIG9wdHMpOwoJICB9OwoKCSAgX3Byb3RvNC5saXN0Rm9ybWF0dGVyID0gZnVuY3Rpb24gbGlzdEZvcm1hdHRlcihvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgcmV0dXJuIGdldENhY2hlZExGKHRoaXMuaW50bCwgb3B0cyk7CgkgIH07CgoJICBfcHJvdG80LmlzRW5nbGlzaCA9IGZ1bmN0aW9uIGlzRW5nbGlzaCgpIHsKCSAgICByZXR1cm4gdGhpcy5sb2NhbGUgPT09ICJlbiIgfHwgdGhpcy5sb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gImVuLXVzIiB8fCBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmludGwpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZS5zdGFydHNXaXRoKCJlbi11cyIpOwoJICB9OwoKCSAgX3Byb3RvNC5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXIpIHsKCSAgICByZXR1cm4gdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJiB0aGlzLm51bWJlcmluZ1N5c3RlbSA9PT0gb3RoZXIubnVtYmVyaW5nU3lzdGVtICYmIHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG90aGVyLm91dHB1dENhbGVuZGFyOwoJICB9OwoKCSAgX2NyZWF0ZUNsYXNzKExvY2FsZSwgW3sKCSAgICBrZXk6ICJmYXN0TnVtYmVycyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7CgkgICAgICAgIHRoaXMuZmFzdE51bWJlcnNDYWNoZWQgPSBzdXBwb3J0c0Zhc3ROdW1iZXJzKHRoaXMpOwoJICAgICAgfQoKCSAgICAgIHJldHVybiB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkOwoJICAgIH0KCSAgfV0pOwoKCSAgcmV0dXJuIExvY2FsZTsKCX0oKTsKCgkvKgoJICogVGhpcyBmaWxlIGhhbmRsZXMgcGFyc2luZyBmb3Igd2VsbC1zcGVjaWZpZWQgZm9ybWF0cy4gSGVyZSdzIGhvdyBpdCB3b3JrczoKCSAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLgoJICogQW4gZXh0cmFjdG9yIGlzIGp1c3QgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVnZXggbWF0Y2ggYXJyYXkgYW5kIHJldHVybnMgYSB7IHllYXI6IC4uLiwgbW9udGg6IC4uLiB9IG9iamVjdAoJICogcGFyc2UoKSBkb2VzIHRoZSB3b3JrIG9mIGV4ZWN1dGluZyB0aGUgcmVnZXggYW5kIGFwcGx5aW5nIHRoZSBleHRyYWN0b3IuIEl0IHRha2VzIG11bHRpcGxlIHJlZ2V4L2V4dHJhY3RvciBwYWlycyB0byB0cnkgaW4gc2VxdWVuY2UuCgkgKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgImN1cnNvciIgcmVwcmVzZW50aW5nIHRoZSBvZmZzZXQgaW4gdGhlIG1hdGNoIHRvIGxvb2sgYXQuIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBjb21iaW5lIGV4dHJhY3RvcnMuCgkgKiBjb21iaW5lRXh0cmFjdG9ycygpIGRvZXMgdGhlIHdvcmsgb2YgY29tYmluaW5nIHRoZW0sIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGN1cnNvciB0aHJvdWdoIG11bHRpcGxlIGV4dHJhY3Rpb25zLgoJICogU29tZSBleHRyYWN0aW9ucyBhcmUgc3VwZXIgZHVtYiBhbmQgc2ltcGxlUGFyc2UgYW5kIGZyb21TdHJpbmdzIGhlbHAgRFJZIHRoZW0uCgkgKi8KCglmdW5jdGlvbiBjb21iaW5lUmVnZXhlcygpIHsKCSAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHJlZ2V4ZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CgkgICAgcmVnZXhlc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTsKCSAgfQoKCSAgdmFyIGZ1bGwgPSByZWdleGVzLnJlZHVjZShmdW5jdGlvbiAoZiwgcikgewoJICAgIHJldHVybiBmICsgci5zb3VyY2U7CgkgIH0sICIiKTsKCSAgcmV0dXJuIFJlZ0V4cCgiXiIgKyBmdWxsICsgIiQiKTsKCX0KCglmdW5jdGlvbiBjb21iaW5lRXh0cmFjdG9ycygpIHsKCSAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBleHRyYWN0b3JzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7CgkgICAgZXh0cmFjdG9yc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdOwoJICB9CgoJICByZXR1cm4gZnVuY3Rpb24gKG0pIHsKCSAgICByZXR1cm4gZXh0cmFjdG9ycy5yZWR1Y2UoZnVuY3Rpb24gKF9yZWYsIGV4KSB7CgkgICAgICB2YXIgbWVyZ2VkVmFscyA9IF9yZWZbMF0sCgkgICAgICAgICAgbWVyZ2VkWm9uZSA9IF9yZWZbMV0sCgkgICAgICAgICAgY3Vyc29yID0gX3JlZlsyXTsKCgkgICAgICB2YXIgX2V4ID0gZXgobSwgY3Vyc29yKSwKCSAgICAgICAgICB2YWwgPSBfZXhbMF0sCgkgICAgICAgICAgem9uZSA9IF9leFsxXSwKCSAgICAgICAgICBuZXh0ID0gX2V4WzJdOwoKCSAgICAgIHJldHVybiBbX2V4dGVuZHMoe30sIG1lcmdlZFZhbHMsIHZhbCksIHpvbmUgfHwgbWVyZ2VkWm9uZSwgbmV4dF07CgkgICAgfSwgW3t9LCBudWxsLCAxXSkuc2xpY2UoMCwgMik7CgkgIH07Cgl9CgoJZnVuY3Rpb24gcGFyc2UocykgewoJICBpZiAocyA9PSBudWxsKSB7CgkgICAgcmV0dXJuIFtudWxsLCBudWxsXTsKCSAgfQoKCSAgZm9yICh2YXIgX2xlbjMgPSBhcmd1bWVudHMubGVuZ3RoLCBwYXR0ZXJucyA9IG5ldyBBcnJheShfbGVuMyA+IDEgPyBfbGVuMyAtIDEgOiAwKSwgX2tleTMgPSAxOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7CgkgICAgcGF0dGVybnNbX2tleTMgLSAxXSA9IGFyZ3VtZW50c1tfa2V5M107CgkgIH0KCgkgIGZvciAodmFyIF9pID0gMCwgX3BhdHRlcm5zID0gcGF0dGVybnM7IF9pIDwgX3BhdHRlcm5zLmxlbmd0aDsgX2krKykgewoJICAgIHZhciBfcGF0dGVybnMkX2kgPSBfcGF0dGVybnNbX2ldLAoJICAgICAgICByZWdleCA9IF9wYXR0ZXJucyRfaVswXSwKCSAgICAgICAgZXh0cmFjdG9yID0gX3BhdHRlcm5zJF9pWzFdOwoJICAgIHZhciBtID0gcmVnZXguZXhlYyhzKTsKCgkgICAgaWYgKG0pIHsKCSAgICAgIHJldHVybiBleHRyYWN0b3IobSk7CgkgICAgfQoJICB9CgoJICByZXR1cm4gW251bGwsIG51bGxdOwoJfQoKCWZ1bmN0aW9uIHNpbXBsZVBhcnNlKCkgewoJICBmb3IgKHZhciBfbGVuNCA9IGFyZ3VtZW50cy5sZW5ndGgsIGtleXMgPSBuZXcgQXJyYXkoX2xlbjQpLCBfa2V5NCA9IDA7IF9rZXk0IDwgX2xlbjQ7IF9rZXk0KyspIHsKCSAgICBrZXlzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07CgkgIH0KCgkgIHJldHVybiBmdW5jdGlvbiAobWF0Y2gsIGN1cnNvcikgewoJICAgIHZhciByZXQgPSB7fTsKCSAgICB2YXIgaTsKCgkgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKCSAgICAgIHJldFtrZXlzW2ldXSA9IHBhcnNlSW50ZWdlcihtYXRjaFtjdXJzb3IgKyBpXSk7CgkgICAgfQoKCSAgICByZXR1cm4gW3JldCwgbnVsbCwgY3Vyc29yICsgaV07CgkgIH07Cgl9IC8vIElTTyBhbmQgU1FMIHBhcnNpbmcKCgoJdmFyIG9mZnNldFJlZ2V4ID0gLyg/OihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPykvOwoJdmFyIGlzb0V4dGVuZGVkWm9uZSA9ICIoPzoiICsgb2Zmc2V0UmVnZXguc291cmNlICsgIj8oPzpcXFsoIiArIGlhbmFSZWdleC5zb3VyY2UgKyAiKVxcXSk/KT8iOwoJdmFyIGlzb1RpbWVCYXNlUmVnZXggPSAvKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlsuLF0oXGR7MSwzMH0pKT8pPyk/LzsKCXZhciBpc29UaW1lUmVnZXggPSBSZWdFeHAoIiIgKyBpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZSArIGlzb0V4dGVuZGVkWm9uZSk7Cgl2YXIgaXNvVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKCIoPzpUIiArIGlzb1RpbWVSZWdleC5zb3VyY2UgKyAiKT8iKTsKCXZhciBpc29ZbWRSZWdleCA9IC8oWystXVxkezZ9fFxkezR9KSg/Oi0/KFxkXGQpKD86LT8oXGRcZCkpPyk/LzsKCXZhciBpc29XZWVrUmVnZXggPSAvKFxkezR9KS0/VyhcZFxkKSg/Oi0/KFxkKSk/LzsKCXZhciBpc29PcmRpbmFsUmVnZXggPSAvKFxkezR9KS0/KFxkezN9KS87Cgl2YXIgZXh0cmFjdElTT1dlZWtEYXRhID0gc2ltcGxlUGFyc2UoIndlZWtZZWFyIiwgIndlZWtOdW1iZXIiLCAid2Vla0RheSIpOwoJdmFyIGV4dHJhY3RJU09PcmRpbmFsRGF0YSA9IHNpbXBsZVBhcnNlKCJ5ZWFyIiwgIm9yZGluYWwiKTsKCXZhciBzcWxZbWRSZWdleCA9IC8oXGR7NH0pLShcZFxkKS0oXGRcZCkvOyAvLyBkdW1iZWQtZG93biB2ZXJzaW9uIG9mIHRoZSBJU08gb25lCgoJdmFyIHNxbFRpbWVSZWdleCA9IFJlZ0V4cChpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZSArICIgPyg/OiIgKyBvZmZzZXRSZWdleC5zb3VyY2UgKyAifCgiICsgaWFuYVJlZ2V4LnNvdXJjZSArICIpKT8iKTsKCXZhciBzcWxUaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoIig/OiAiICsgc3FsVGltZVJlZ2V4LnNvdXJjZSArICIpPyIpOwoKCWZ1bmN0aW9uIGludChtYXRjaCwgcG9zLCBmYWxsYmFjaykgewoJICB2YXIgbSA9IG1hdGNoW3Bvc107CgkgIHJldHVybiBpc1VuZGVmaW5lZChtKSA/IGZhbGxiYWNrIDogcGFyc2VJbnRlZ2VyKG0pOwoJfQoKCWZ1bmN0aW9uIGV4dHJhY3RJU09ZbWQobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgaXRlbSA9IHsKCSAgICB5ZWFyOiBpbnQobWF0Y2gsIGN1cnNvciksCgkgICAgbW9udGg6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMSksCgkgICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpCgkgIH07CgkgIHJldHVybiBbaXRlbSwgbnVsbCwgY3Vyc29yICsgM107Cgl9CgoJZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgaXRlbSA9IHsKCSAgICBob3VyczogaW50KG1hdGNoLCBjdXJzb3IsIDApLAoJICAgIG1pbnV0ZXM6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMCksCgkgICAgc2Vjb25kczogaW50KG1hdGNoLCBjdXJzb3IgKyAyLCAwKSwKCSAgICBtaWxsaXNlY29uZHM6IHBhcnNlTWlsbGlzKG1hdGNoW2N1cnNvciArIDNdKQoJICB9OwoJICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDRdOwoJfQoKCWZ1bmN0aW9uIGV4dHJhY3RJU09PZmZzZXQobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgbG9jYWwgPSAhbWF0Y2hbY3Vyc29yXSAmJiAhbWF0Y2hbY3Vyc29yICsgMV0sCgkgICAgICBmdWxsT2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG1hdGNoW2N1cnNvciArIDFdLCBtYXRjaFtjdXJzb3IgKyAyXSksCgkgICAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpOwoJICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTsKCX0KCglmdW5jdGlvbiBleHRyYWN0SUFOQVpvbmUobWF0Y2gsIGN1cnNvcikgewoJICB2YXIgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsOwoJICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTsKCX0gLy8gSVNPIHRpbWUgcGFyc2luZwoKCgl2YXIgaXNvVGltZU9ubHkgPSBSZWdFeHAoIl5UPyIgKyBpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZSArICIkIik7IC8vIElTTyBkdXJhdGlvbiBwYXJzaW5nCgoJdmFyIGlzb0R1cmF0aW9uID0gL14tP1AoPzooPzooLT9cZHsxLDl9KD86XC5cZHsxLDl9KT8pWSk/KD86KC0/XGR7MSw5fSg/OlwuXGR7MSw5fSk/KU0pPyg/OigtP1xkezEsOX0oPzpcLlxkezEsOX0pPylXKT8oPzooLT9cZHsxLDl9KD86XC5cZHsxLDl9KT8pRCk/KD86VCg/OigtP1xkezEsOX0oPzpcLlxkezEsOX0pPylIKT8oPzooLT9cZHsxLDl9KD86XC5cZHsxLDl9KT8pTSk/KD86KC0/XGR7MSwyMH0pKD86Wy4sXSgtP1xkezEsOX0pKT9TKT8pPykkLzsKCglmdW5jdGlvbiBleHRyYWN0SVNPRHVyYXRpb24obWF0Y2gpIHsKCSAgdmFyIHMgPSBtYXRjaFswXSwKCSAgICAgIHllYXJTdHIgPSBtYXRjaFsxXSwKCSAgICAgIG1vbnRoU3RyID0gbWF0Y2hbMl0sCgkgICAgICB3ZWVrU3RyID0gbWF0Y2hbM10sCgkgICAgICBkYXlTdHIgPSBtYXRjaFs0XSwKCSAgICAgIGhvdXJTdHIgPSBtYXRjaFs1XSwKCSAgICAgIG1pbnV0ZVN0ciA9IG1hdGNoWzZdLAoJICAgICAgc2Vjb25kU3RyID0gbWF0Y2hbN10sCgkgICAgICBtaWxsaXNlY29uZHNTdHIgPSBtYXRjaFs4XTsKCSAgdmFyIGhhc05lZ2F0aXZlUHJlZml4ID0gc1swXSA9PT0gIi0iOwoJICB2YXIgbmVnYXRpdmVTZWNvbmRzID0gc2Vjb25kU3RyICYmIHNlY29uZFN0clswXSA9PT0gIi0iOwoKCSAgdmFyIG1heWJlTmVnYXRlID0gZnVuY3Rpb24gbWF5YmVOZWdhdGUobnVtLCBmb3JjZSkgewoJICAgIGlmIChmb3JjZSA9PT0gdm9pZCAwKSB7CgkgICAgICBmb3JjZSA9IGZhbHNlOwoJICAgIH0KCgkgICAgcmV0dXJuIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCBudW0gJiYgaGFzTmVnYXRpdmVQcmVmaXgpID8gLW51bSA6IG51bTsKCSAgfTsKCgkgIHJldHVybiBbewoJICAgIHllYXJzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHllYXJTdHIpKSwKCSAgICBtb250aHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobW9udGhTdHIpKSwKCSAgICB3ZWVrczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh3ZWVrU3RyKSksCgkgICAgZGF5czogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhkYXlTdHIpKSwKCSAgICBob3VyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhob3VyU3RyKSksCgkgICAgbWludXRlczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhtaW51dGVTdHIpKSwKCSAgICBzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHNlY29uZFN0ciksIHNlY29uZFN0ciA9PT0gIi0wIiksCgkgICAgbWlsbGlzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZU1pbGxpcyhtaWxsaXNlY29uZHNTdHIpLCBuZWdhdGl2ZVNlY29uZHMpCgkgIH1dOwoJfSAvLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmsKCS8vIGFuZCBub3QganVzdCB0aGF0IHdlJ3JlIGluIC0yNDAgKnJpZ2h0IG5vdyouIEJ1dCBzaW5jZSBJIGRvbid0IHRoaW5rIHRoZXNlIGFyZSB1c2VkIHRoYXQgb2Z0ZW4KCS8vIEknbSBqdXN0IGdvaW5nIHRvIGlnbm9yZSB0aGF0CgoKCXZhciBvYnNPZmZzZXRzID0gewoJICBHTVQ6IDAsCgkgIEVEVDogLTQgKiA2MCwKCSAgRVNUOiAtNSAqIDYwLAoJICBDRFQ6IC01ICogNjAsCgkgIENTVDogLTYgKiA2MCwKCSAgTURUOiAtNiAqIDYwLAoJICBNU1Q6IC03ICogNjAsCgkgIFBEVDogLTcgKiA2MCwKCSAgUFNUOiAtOCAqIDYwCgl9OwoKCWZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7CgkgIHZhciByZXN1bHQgPSB7CgkgICAgeWVhcjogeWVhclN0ci5sZW5ndGggPT09IDIgPyB1bnRydW5jYXRlWWVhcihwYXJzZUludGVnZXIoeWVhclN0cikpIDogcGFyc2VJbnRlZ2VyKHllYXJTdHIpLAoJICAgIG1vbnRoOiBtb250aHNTaG9ydC5pbmRleE9mKG1vbnRoU3RyKSArIDEsCgkgICAgZGF5OiBwYXJzZUludGVnZXIoZGF5U3RyKSwKCSAgICBob3VyOiBwYXJzZUludGVnZXIoaG91clN0ciksCgkgICAgbWludXRlOiBwYXJzZUludGVnZXIobWludXRlU3RyKQoJICB9OwoJICBpZiAoc2Vjb25kU3RyKSByZXN1bHQuc2Vjb25kID0gcGFyc2VJbnRlZ2VyKHNlY29uZFN0cik7CgoJICBpZiAod2Vla2RheVN0cikgewoJICAgIHJlc3VsdC53ZWVrZGF5ID0gd2Vla2RheVN0ci5sZW5ndGggPiAzID8gd2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxIDogd2Vla2RheXNTaG9ydC5pbmRleE9mKHdlZWtkYXlTdHIpICsgMTsKCSAgfQoKCSAgcmV0dXJuIHJlc3VsdDsKCX0gLy8gUkZDIDI4MjIvNTMyMgoKCgl2YXIgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXHMpPyhcZHsxLDJ9KVxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxzKFxkezIsNH0pXHMoXGRcZCk6KFxkXGQpKD86OihcZFxkKSk/XHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KD86KFsrLV1cZFxkKShcZFxkKSkpJC87CgoJZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHsKCSAgdmFyIHdlZWtkYXlTdHIgPSBtYXRjaFsxXSwKCSAgICAgIGRheVN0ciA9IG1hdGNoWzJdLAoJICAgICAgbW9udGhTdHIgPSBtYXRjaFszXSwKCSAgICAgIHllYXJTdHIgPSBtYXRjaFs0XSwKCSAgICAgIGhvdXJTdHIgPSBtYXRjaFs1XSwKCSAgICAgIG1pbnV0ZVN0ciA9IG1hdGNoWzZdLAoJICAgICAgc2Vjb25kU3RyID0gbWF0Y2hbN10sCgkgICAgICBvYnNPZmZzZXQgPSBtYXRjaFs4XSwKCSAgICAgIG1pbE9mZnNldCA9IG1hdGNoWzldLAoJICAgICAgb2ZmSG91clN0ciA9IG1hdGNoWzEwXSwKCSAgICAgIG9mZk1pbnV0ZVN0ciA9IG1hdGNoWzExXSwKCSAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKCSAgdmFyIG9mZnNldDsKCgkgIGlmIChvYnNPZmZzZXQpIHsKCSAgICBvZmZzZXQgPSBvYnNPZmZzZXRzW29ic09mZnNldF07CgkgIH0gZWxzZSBpZiAobWlsT2Zmc2V0KSB7CgkgICAgb2Zmc2V0ID0gMDsKCSAgfSBlbHNlIHsKCSAgICBvZmZzZXQgPSBzaWduZWRPZmZzZXQob2ZmSG91clN0ciwgb2ZmTWludXRlU3RyKTsKCSAgfQoKCSAgcmV0dXJuIFtyZXN1bHQsIG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KV07Cgl9CgoJZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykgewoJICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZQoJICByZXR1cm4gcy5yZXBsYWNlKC9cKFteKV0qXCl8W1xuXHRdL2csICIgIikucmVwbGFjZSgvKFxzXHMrKS9nLCAiICIpLnRyaW0oKTsKCX0gLy8gaHR0cCBkYXRlCgoKCXZhciByZmMxMTIzID0gL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSwgKFxkXGQpIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKFxkezR9KSAoXGRcZCk6KFxkXGQpOihcZFxkKSBHTVQkLywKCSAgICByZmM4NTAgPSAvXihNb25kYXl8VHVlc2RheXxXZWRzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXGRcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXGRcZCkgKFxkXGQpOihcZFxkKTooXGRcZCkgR01UJC8sCgkgICAgYXNjaWkgPSAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKCBcZHxcZFxkKSAoXGRcZCk6KFxkXGQpOihcZFxkKSAoXGR7NH0pJC87CgoJZnVuY3Rpb24gZXh0cmFjdFJGQzExMjNPcjg1MChtYXRjaCkgewoJICB2YXIgd2Vla2RheVN0ciA9IG1hdGNoWzFdLAoJICAgICAgZGF5U3RyID0gbWF0Y2hbMl0sCgkgICAgICBtb250aFN0ciA9IG1hdGNoWzNdLAoJICAgICAgeWVhclN0ciA9IG1hdGNoWzRdLAoJICAgICAgaG91clN0ciA9IG1hdGNoWzVdLAoJICAgICAgbWludXRlU3RyID0gbWF0Y2hbNl0sCgkgICAgICBzZWNvbmRTdHIgPSBtYXRjaFs3XSwKCSAgICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTsKCSAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07Cgl9CgoJZnVuY3Rpb24gZXh0cmFjdEFTQ0lJKG1hdGNoKSB7CgkgIHZhciB3ZWVrZGF5U3RyID0gbWF0Y2hbMV0sCgkgICAgICBtb250aFN0ciA9IG1hdGNoWzJdLAoJICAgICAgZGF5U3RyID0gbWF0Y2hbM10sCgkgICAgICBob3VyU3RyID0gbWF0Y2hbNF0sCgkgICAgICBtaW51dGVTdHIgPSBtYXRjaFs1XSwKCSAgICAgIHNlY29uZFN0ciA9IG1hdGNoWzZdLAoJICAgICAgeWVhclN0ciA9IG1hdGNoWzddLAoJICAgICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpOwoJICByZXR1cm4gW3Jlc3VsdCwgRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlXTsKCX0KCgl2YXIgaXNvWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1ltZFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpOwoJdmFyIGlzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvV2Vla1JlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpOwoJdmFyIGlzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvT3JkaW5hbFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpOwoJdmFyIGlzb1RpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvVGltZVJlZ2V4KTsKCXZhciBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09ZbWQsIGV4dHJhY3RJU09UaW1lLCBleHRyYWN0SVNPT2Zmc2V0LCBleHRyYWN0SUFOQVpvbmUpOwoJdmFyIGV4dHJhY3RJU09XZWVrVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09XZWVrRGF0YSwgZXh0cmFjdElTT1RpbWUsIGV4dHJhY3RJU09PZmZzZXQsIGV4dHJhY3RJQU5BWm9uZSk7Cgl2YXIgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZSA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09PcmRpbmFsRGF0YSwgZXh0cmFjdElTT1RpbWUsIGV4dHJhY3RJU09PZmZzZXQsIGV4dHJhY3RJQU5BWm9uZSk7Cgl2YXIgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhleHRyYWN0SVNPVGltZSwgZXh0cmFjdElTT09mZnNldCwgZXh0cmFjdElBTkFab25lKTsKCS8qCgkgKiBAcHJpdmF0ZQoJICovCgoJZnVuY3Rpb24gcGFyc2VJU09EYXRlKHMpIHsKCSAgcmV0dXJuIHBhcnNlKHMsIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sIFtpc29XZWVrV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0XSwgW2lzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPT3JkaW5hbERhdGVBbmRUaW1lXSwgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF0pOwoJfQoJZnVuY3Rpb24gcGFyc2VSRkMyODIyRGF0ZShzKSB7CgkgIHJldHVybiBwYXJzZShwcmVwcm9jZXNzUkZDMjgyMihzKSwgW3JmYzI4MjIsIGV4dHJhY3RSRkMyODIyXSk7Cgl9CglmdW5jdGlvbiBwYXJzZUhUVFBEYXRlKHMpIHsKCSAgcmV0dXJuIHBhcnNlKHMsIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSwgW3JmYzg1MCwgZXh0cmFjdFJGQzExMjNPcjg1MF0sIFthc2NpaSwgZXh0cmFjdEFTQ0lJXSk7Cgl9CglmdW5jdGlvbiBwYXJzZUlTT0R1cmF0aW9uKHMpIHsKCSAgcmV0dXJuIHBhcnNlKHMsIFtpc29EdXJhdGlvbiwgZXh0cmFjdElTT0R1cmF0aW9uXSk7Cgl9Cgl2YXIgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpOwoJZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7CgkgIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pOwoJfQoJdmFyIHNxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhzcWxZbWRSZWdleCwgc3FsVGltZUV4dGVuc2lvblJlZ2V4KTsKCXZhciBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7Cgl2YXIgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZSA9IGNvbWJpbmVFeHRyYWN0b3JzKGV4dHJhY3RJU09UaW1lLCBleHRyYWN0SVNPT2Zmc2V0LCBleHRyYWN0SUFOQVpvbmUpOwoJZnVuY3Rpb24gcGFyc2VTUUwocykgewoJICByZXR1cm4gcGFyc2UocywgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSwgW3NxbFRpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZU9mZnNldEFuZElBTkFab25lXSk7Cgl9CgoJdmFyIElOVkFMSUQkMiA9ICJJbnZhbGlkIER1cmF0aW9uIjsgLy8gdW5pdCBjb252ZXJzaW9uIGNvbnN0YW50cwoKCXZhciBsb3dPcmRlck1hdHJpeCA9IHsKCSAgd2Vla3M6IHsKCSAgICBkYXlzOiA3LAoJICAgIGhvdXJzOiA3ICogMjQsCgkgICAgbWludXRlczogNyAqIDI0ICogNjAsCgkgICAgc2Vjb25kczogNyAqIDI0ICogNjAgKiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIGRheXM6IHsKCSAgICBob3VyczogMjQsCgkgICAgbWludXRlczogMjQgKiA2MCwKCSAgICBzZWNvbmRzOiAyNCAqIDYwICogNjAsCgkgICAgbWlsbGlzZWNvbmRzOiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIGhvdXJzOiB7CgkgICAgbWludXRlczogNjAsCgkgICAgc2Vjb25kczogNjAgKiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIG1pbnV0ZXM6IHsKCSAgICBzZWNvbmRzOiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IDYwICogMTAwMAoJICB9LAoJICBzZWNvbmRzOiB7CgkgICAgbWlsbGlzZWNvbmRzOiAxMDAwCgkgIH0KCX0sCgkgICAgY2FzdWFsTWF0cml4ID0gX2V4dGVuZHMoewoJICB5ZWFyczogewoJICAgIHF1YXJ0ZXJzOiA0LAoJICAgIG1vbnRoczogMTIsCgkgICAgd2Vla3M6IDUyLAoJICAgIGRheXM6IDM2NSwKCSAgICBob3VyczogMzY1ICogMjQsCgkgICAgbWludXRlczogMzY1ICogMjQgKiA2MCwKCSAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsCgkgICAgbWlsbGlzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0sCgkgIHF1YXJ0ZXJzOiB7CgkgICAgbW9udGhzOiAzLAoJICAgIHdlZWtzOiAxMywKCSAgICBkYXlzOiA5MSwKCSAgICBob3VyczogOTEgKiAyNCwKCSAgICBtaW51dGVzOiA5MSAqIDI0ICogNjAsCgkgICAgc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAsCgkgICAgbWlsbGlzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCAqIDEwMDAKCSAgfSwKCSAgbW9udGhzOiB7CgkgICAgd2Vla3M6IDQsCgkgICAgZGF5czogMzAsCgkgICAgaG91cnM6IDMwICogMjQsCgkgICAgbWludXRlczogMzAgKiAyNCAqIDYwLAoJICAgIHNlY29uZHM6IDMwICogMjQgKiA2MCAqIDYwLAoJICAgIG1pbGxpc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAgKiAxMDAwCgkgIH0KCX0sIGxvd09yZGVyTWF0cml4KSwKCSAgICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCwKCSAgICBkYXlzSW5Nb250aEFjY3VyYXRlID0gMTQ2MDk3LjAgLyA0ODAwLAoJICAgIGFjY3VyYXRlTWF0cml4ID0gX2V4dGVuZHMoewoJICB5ZWFyczogewoJICAgIHF1YXJ0ZXJzOiA0LAoJICAgIG1vbnRoczogMTIsCgkgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDcsCgkgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlLAoJICAgIGhvdXJzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCwKCSAgICBtaW51dGVzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwLAoJICAgIHNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCwKCSAgICBtaWxsaXNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAKCSAgfSwKCSAgcXVhcnRlcnM6IHsKCSAgICBtb250aHM6IDMsCgkgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDI4LAoJICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSAvIDQsCgkgICAgaG91cnM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0IC8gNCwKCSAgICBtaW51dGVzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwIC8gNCwKCSAgICBzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgLyA0LAoJICAgIG1pbGxpc2Vjb25kczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCAvIDQKCSAgfSwKCSAgbW9udGhzOiB7CgkgICAgd2Vla3M6IGRheXNJbk1vbnRoQWNjdXJhdGUgLyA3LAoJICAgIGRheXM6IGRheXNJbk1vbnRoQWNjdXJhdGUsCgkgICAgaG91cnM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCwKCSAgICBtaW51dGVzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCwKCSAgICBzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwLAoJICAgIG1pbGxpc2Vjb25kczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAKCSAgfQoJfSwgbG93T3JkZXJNYXRyaXgpOyAvLyB1bml0cyBvcmRlcmVkIGJ5IHNpemUKCgl2YXIgb3JkZXJlZFVuaXRzJDEgPSBbInllYXJzIiwgInF1YXJ0ZXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiXTsKCXZhciByZXZlcnNlVW5pdHMgPSBvcmRlcmVkVW5pdHMkMS5zbGljZSgwKS5yZXZlcnNlKCk7IC8vIGNsb25lIHJlYWxseSBtZWFucyAiY3JlYXRlIGFub3RoZXIgaW5zdGFuY2UganVzdCBsaWtlIHRoaXMgb25lLCBidXQgd2l0aCB0aGVzZSBjaGFuZ2VzIgoKCWZ1bmN0aW9uIGNsb25lJDEoZHVyLCBhbHRzLCBjbGVhcikgewoJICBpZiAoY2xlYXIgPT09IHZvaWQgMCkgewoJICAgIGNsZWFyID0gZmFsc2U7CgkgIH0KCgkgIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHMKCSAgdmFyIGNvbmYgPSB7CgkgICAgdmFsdWVzOiBjbGVhciA/IGFsdHMudmFsdWVzIDogX2V4dGVuZHMoe30sIGR1ci52YWx1ZXMsIGFsdHMudmFsdWVzIHx8IHt9KSwKCSAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLAoJICAgIGNvbnZlcnNpb25BY2N1cmFjeTogYWx0cy5jb252ZXJzaW9uQWNjdXJhY3kgfHwgZHVyLmNvbnZlcnNpb25BY2N1cmFjeQoJICB9OwoJICByZXR1cm4gbmV3IER1cmF0aW9uKGNvbmYpOwoJfQoKCWZ1bmN0aW9uIGFudGlUcnVuYyhuKSB7CgkgIHJldHVybiBuIDwgMCA/IE1hdGguZmxvb3IobikgOiBNYXRoLmNlaWwobik7Cgl9IC8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnMKCgoJZnVuY3Rpb24gY29udmVydChtYXRyaXgsIGZyb21NYXAsIGZyb21Vbml0LCB0b01hcCwgdG9Vbml0KSB7CgkgIHZhciBjb252ID0gbWF0cml4W3RvVW5pdF1bZnJvbVVuaXRdLAoJICAgICAgcmF3ID0gZnJvbU1hcFtmcm9tVW5pdF0gLyBjb252LAoJICAgICAgc2FtZVNpZ24gPSBNYXRoLnNpZ24ocmF3KSA9PT0gTWF0aC5zaWduKHRvTWFwW3RvVW5pdF0pLAoJICAgICAgLy8gb2ssIHNvIHRoaXMgaXMgd2lsZCwgYnV0IHNlZSB0aGUgbWF0cml4IGluIHRoZSB0ZXN0cwoJICBhZGRlZCA9ICFzYW1lU2lnbiAmJiB0b01hcFt0b1VuaXRdICE9PSAwICYmIE1hdGguYWJzKHJhdykgPD0gMSA/IGFudGlUcnVuYyhyYXcpIDogTWF0aC50cnVuYyhyYXcpOwoJICB0b01hcFt0b1VuaXRdICs9IGFkZGVkOwoJICBmcm9tTWFwW2Zyb21Vbml0XSAtPSBhZGRlZCAqIGNvbnY7Cgl9IC8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnMKCgoJZnVuY3Rpb24gbm9ybWFsaXplVmFsdWVzKG1hdHJpeCwgdmFscykgewoJICByZXZlcnNlVW5pdHMucmVkdWNlKGZ1bmN0aW9uIChwcmV2aW91cywgY3VycmVudCkgewoJICAgIGlmICghaXNVbmRlZmluZWQodmFsc1tjdXJyZW50XSkpIHsKCSAgICAgIGlmIChwcmV2aW91cykgewoJICAgICAgICBjb252ZXJ0KG1hdHJpeCwgdmFscywgcHJldmlvdXMsIHZhbHMsIGN1cnJlbnQpOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBjdXJyZW50OwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gcHJldmlvdXM7CgkgICAgfQoJICB9LCBudWxsKTsKCX0KCS8qKgoJICogQSBEdXJhdGlvbiBvYmplY3QgcmVwcmVzZW50cyBhIHBlcmlvZCBvZiB0aW1lLCBsaWtlICIyIG1vbnRocyIgb3IgIjEgZGF5LCAxIGhvdXIiLiBDb25jZXB0dWFsbHksIGl0J3MganVzdCBhIG1hcCBvZiB1bml0cyB0byB0aGVpciBxdWFudGl0aWVzLCBhY2NvbXBhbmllZCBieSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS4gVGhleSBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24gb3IgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBMdXhvbiB0eXBlczsgZm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHtAbGluayBEYXRlVGltZSNwbHVzfSB0byBhZGQgYSBEdXJhdGlvbiBvYmplY3QgdG8gYSBEYXRlVGltZSwgcHJvZHVjaW5nIGFub3RoZXIgRGF0ZVRpbWUuCgkgKgoJICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBEdXJhdGlvbjoKCSAqCgkgKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYSBEdXJhdGlvbiwgdXNlIHtAbGluayBEdXJhdGlvbiNmcm9tTWlsbGlzfSwge0BsaW5rIER1cmF0aW9uI2Zyb21PYmplY3R9LCBvciB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT30uCgkgKiAqICoqVW5pdCB2YWx1ZXMqKiBTZWUgdGhlIHtAbGluayBEdXJhdGlvbiN5ZWFyc30sIHtAbGluayBEdXJhdGlvbi5tb250aHN9LCB7QGxpbmsgRHVyYXRpb24jd2Vla3N9LCB7QGxpbmsgRHVyYXRpb24jZGF5c30sIHtAbGluayBEdXJhdGlvbiNob3Vyc30sIHtAbGluayBEdXJhdGlvbiNtaW51dGVzfSwge0BsaW5rIER1cmF0aW9uI3NlY29uZHN9LCB7QGxpbmsgRHVyYXRpb24jbWlsbGlzZWNvbmRzfSBhY2Nlc3NvcnMuCgkgKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSAge0BsaW5rIER1cmF0aW9uI2xvY2FsZX0gYW5kIHtAbGluayBEdXJhdGlvbiNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy4KCSAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBuZXcgRHVyYXRpb25zIG91dCBvZiBvbGQgb25lcyB1c2Uge0BsaW5rIER1cmF0aW9uI3BsdXN9LCB7QGxpbmsgRHVyYXRpb24jbWludXN9LCB7QGxpbmsgRHVyYXRpb24jbm9ybWFsaXplfSwge0BsaW5rIER1cmF0aW9uI3NldH0sIHtAbGluayBEdXJhdGlvbiNyZWNvbmZpZ3VyZX0sIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSwgYW5kIHtAbGluayBEdXJhdGlvbiNuZWdhdGV9LgoJICogKiAqKk91dHB1dCoqIFRvIGNvbnZlcnQgdGhlIER1cmF0aW9uIGludG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCBzZWUge0BsaW5rIER1cmF0aW9uI2FzfSwge0BsaW5rIER1cmF0aW9uI3RvSVNPfSwge0BsaW5rIER1cmF0aW9uI3RvRm9ybWF0fSwgYW5kIHtAbGluayBEdXJhdGlvbiN0b0pTT059CgkgKgoJICogVGhlcmUncyBhcmUgbW9yZSBtZXRob2RzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCB2YWxpZGl0eSwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLgoJICovCgoKCXZhciBEdXJhdGlvbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CgkgIC8qKgoJICAgKiBAcHJpdmF0ZQoJICAgKi8KCSAgZnVuY3Rpb24gRHVyYXRpb24oY29uZmlnKSB7CgkgICAgdmFyIGFjY3VyYXRlID0gY29uZmlnLmNvbnZlcnNpb25BY2N1cmFjeSA9PT0gImxvbmd0ZXJtIiB8fCBmYWxzZTsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy52YWx1ZXMgPSBjb25maWcudmFsdWVzOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmxvYyA9IGNvbmZpZy5sb2MgfHwgTG9jYWxlLmNyZWF0ZSgpOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGFjY3VyYXRlID8gImxvbmd0ZXJtIiA6ICJjYXN1YWwiOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLm1hdHJpeCA9IGFjY3VyYXRlID8gYWNjdXJhdGVNYXRyaXggOiBjYXN1YWxNYXRyaXg7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMuaXNMdXhvbkR1cmF0aW9uID0gdHJ1ZTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIER1cmF0aW9uIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLgoJICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgoKCSAgRHVyYXRpb24uZnJvbU1pbGxpcyA9IGZ1bmN0aW9uIGZyb21NaWxsaXMoY291bnQsIG9wdHMpIHsKCSAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdCh7CgkgICAgICBtaWxsaXNlY29uZHM6IGNvdW50CgkgICAgfSwgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLgoJICAgKiBJZiB0aGlzIG9iamVjdCBpcyBlbXB0eSB0aGVuIGEgemVybyBtaWxsaXNlY29uZHMgZHVyYXRpb24gaXMgcmV0dXJuZWQuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbQoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXJzCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoucXVhcnRlcnMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrcwoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheXMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VycwoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZXMKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmRzCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz1bXV0gLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIER1cmF0aW9uCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgRHVyYXRpb24uZnJvbU9iamVjdCA9IGZ1bmN0aW9uIGZyb21PYmplY3Qob2JqLCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIkR1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICIgKyAob2JqID09PSBudWxsID8gIm51bGwiIDogdHlwZW9mIG9iaikpOwoJICAgIH0KCgkgICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7CgkgICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLAoJICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSwKCSAgICAgIGNvbnZlcnNpb25BY2N1cmFjeTogb3B0cy5jb252ZXJzaW9uQWNjdXJhY3kKCSAgICB9KTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBEdXJhdGlvbkxpa2UuCgkgICAqCgkgICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZQoJICAgKiBPbmUgb2Y6CgkgICAqIC0gb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFycycgYW5kICdob3VycycuCgkgICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHMKCSAgICogLSBEdXJhdGlvbiBpbnN0YW5jZQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UgPSBmdW5jdGlvbiBmcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uTGlrZSkgewoJICAgIGlmIChpc051bWJlcihkdXJhdGlvbkxpa2UpKSB7CgkgICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpOwoJICAgIH0gZWxzZSBpZiAoRHVyYXRpb24uaXNEdXJhdGlvbihkdXJhdGlvbkxpa2UpKSB7CgkgICAgICByZXR1cm4gZHVyYXRpb25MaWtlOwoJICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gIm9iamVjdCIpIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KGR1cmF0aW9uTGlrZSk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigiVW5rbm93biBkdXJhdGlvbiBhcmd1bWVudCAiICsgZHVyYXRpb25MaWtlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZHVyYXRpb25MaWtlKTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYW4gSVNPIDg2MDEgZHVyYXRpb24gc3RyaW5nLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2UKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRHVyYXRpb25zCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1AzWTZNMVc0RFQxMkgzME01UycpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAzLCBtb250aHM6IDYsIHdlZWtzOiAxLCBkYXlzOiA0LCBob3VyczogMTIsIG1pbnV0ZXM6IDMwLCBzZWNvbmRzOiA1IH0KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUFQyM0gnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjMgfQoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQNVkzTScpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiA1LCBtb250aHM6IDMgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIER1cmF0aW9uLmZyb21JU08gPSBmdW5jdGlvbiBmcm9tSVNPKHRleHQsIG9wdHMpIHsKCSAgICB2YXIgX3BhcnNlSVNPRHVyYXRpb24gPSBwYXJzZUlTT0R1cmF0aW9uKHRleHQpLAoJICAgICAgICBwYXJzZWQgPSBfcGFyc2VJU09EdXJhdGlvblswXTsKCgkgICAgaWYgKHBhcnNlZCkgewoJICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QocGFyc2VkLCBvcHRzKTsKCSAgICB9IGVsc2UgewoJICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoInVucGFyc2FibGUiLCAidGhlIGlucHV0IFwiIiArIHRleHQgKyAiXCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxIik7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGFuIElTTyA4NjAxIHRpbWUgc3RyaW5nLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2UKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZXMKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjIyOjMzLjQ0NCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMjIsIHNlY29uZHM6IDMzLCBtaWxsaXNlY29uZHM6IDQ0NCB9CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCdUMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfQoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCdUMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgRHVyYXRpb24uZnJvbUlTT1RpbWUgPSBmdW5jdGlvbiBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7CgkgICAgdmFyIF9wYXJzZUlTT1RpbWVPbmx5ID0gcGFyc2VJU09UaW1lT25seSh0ZXh0KSwKCSAgICAgICAgcGFyc2VkID0gX3BhcnNlSVNPVGltZU9ubHlbMF07CgoJICAgIGlmIChwYXJzZWQpIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKCJ1bnBhcnNhYmxlIiwgInRoZSBpbnB1dCBcIiIgKyB0ZXh0ICsgIlwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMSIpOwoJICAgIH0KCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGFuIGludmFsaWQgRHVyYXRpb24uCgkgICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIGRhdGV0aW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnQKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbgoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIER1cmF0aW9uLmludmFsaWQgPSBmdW5jdGlvbiBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pIHsKCSAgICBpZiAoZXhwbGFuYXRpb24gPT09IHZvaWQgMCkgewoJICAgICAgZXhwbGFuYXRpb24gPSBudWxsOwoJICAgIH0KCgkgICAgaWYgKCFyZWFzb24pIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkIik7CgkgICAgfQoKCSAgICB2YXIgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTsKCgkgICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZER1cmF0aW9uRXJyb3IoaW52YWxpZCk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBuZXcgRHVyYXRpb24oewoJICAgICAgICBpbnZhbGlkOiBpbnZhbGlkCgkgICAgICB9KTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIEBwcml2YXRlCgkgICAqLwoJICA7CgoJICBEdXJhdGlvbi5ub3JtYWxpemVVbml0ID0gZnVuY3Rpb24gbm9ybWFsaXplVW5pdCh1bml0KSB7CgkgICAgdmFyIG5vcm1hbGl6ZWQgPSB7CgkgICAgICB5ZWFyOiAieWVhcnMiLAoJICAgICAgeWVhcnM6ICJ5ZWFycyIsCgkgICAgICBxdWFydGVyOiAicXVhcnRlcnMiLAoJICAgICAgcXVhcnRlcnM6ICJxdWFydGVycyIsCgkgICAgICBtb250aDogIm1vbnRocyIsCgkgICAgICBtb250aHM6ICJtb250aHMiLAoJICAgICAgd2VlazogIndlZWtzIiwKCSAgICAgIHdlZWtzOiAid2Vla3MiLAoJICAgICAgZGF5OiAiZGF5cyIsCgkgICAgICBkYXlzOiAiZGF5cyIsCgkgICAgICBob3VyOiAiaG91cnMiLAoJICAgICAgaG91cnM6ICJob3VycyIsCgkgICAgICBtaW51dGU6ICJtaW51dGVzIiwKCSAgICAgIG1pbnV0ZXM6ICJtaW51dGVzIiwKCSAgICAgIHNlY29uZDogInNlY29uZHMiLAoJICAgICAgc2Vjb25kczogInNlY29uZHMiLAoJICAgICAgbWlsbGlzZWNvbmQ6ICJtaWxsaXNlY29uZHMiLAoJICAgICAgbWlsbGlzZWNvbmRzOiAibWlsbGlzZWNvbmRzIgoJICAgIH1bdW5pdCA/IHVuaXQudG9Mb3dlckNhc2UoKSA6IHVuaXRdOwoJICAgIGlmICghbm9ybWFsaXplZCkgdGhyb3cgbmV3IEludmFsaWRVbml0RXJyb3IodW5pdCk7CgkgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7CgkgIH0KCSAgLyoqCgkgICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIER1cmF0aW9uLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCgkgICAqIEBwYXJhbSB7b2JqZWN0fSBvCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBEdXJhdGlvbi5pc0R1cmF0aW9uID0gZnVuY3Rpb24gaXNEdXJhdGlvbihvKSB7CgkgICAgcmV0dXJuIG8gJiYgby5pc0x1eG9uRHVyYXRpb24gfHwgZmFsc2U7CgkgIH0KCSAgLyoqCgkgICAqIEdldCAgdGhlIGxvY2FsZSBvZiBhIER1cmF0aW9uLCBzdWNoICdlbi1HQicKCSAgICogQHR5cGUge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIHZhciBfcHJvdG8gPSBEdXJhdGlvbi5wcm90b3R5cGU7CgoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLiBZb3UgbWF5IHVzZSB0aGVzZSB0b2tlbnM6CgkgICAqICogYFNgIGZvciBtaWxsaXNlY29uZHMKCSAgICogKiBgc2AgZm9yIHNlY29uZHMKCSAgICogKiBgbWAgZm9yIG1pbnV0ZXMKCSAgICogKiBgaGAgZm9yIGhvdXJzCgkgICAqICogYGRgIGZvciBkYXlzCgkgICAqICogYHdgIGZvciB3ZWVrcwoJICAgKiAqIGBNYCBmb3IgbW9udGhzCgkgICAqICogYHlgIGZvciB5ZWFycwoJICAgKiBOb3RlczoKCSAgICogKiBBZGQgcGFkZGluZyBieSByZXBlYXRpbmcgdGhlIHRva2VuLCBlLmcuICJ5eSIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgImhoaGgiIHBhZHMgdGhlIGhvdXJzIG91dCB0byBmb3VyIGRpZ2l0cwoJICAgKiAqIFRoZSBkdXJhdGlvbiB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgc2V0IG9mIHVuaXRzIGluIHRoZSBmb3JtYXQgc3RyaW5nIHVzaW5nIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSBhbmQgdGhlIER1cmF0aW9ucydzIGNvbnZlcnNpb24gYWNjdXJhY3kgc2V0dGluZy4KCSAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmZsb29yPXRydWVdIC0gZmxvb3IgbnVtZXJpY2FsIHZhbHVlcwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoInkgZCBzIikgLy89PiAiMSA2IDIiCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdCgieXkgZGQgc3NzIikgLy89PiAiMDEgMDYgMDAyIgoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoIk0gUyIpIC8vPT4gIjEyIDUxODQwMjAwMCIKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgX3Byb3RvLnRvRm9ybWF0ID0gZnVuY3Rpb24gdG9Gb3JtYXQoZm10LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdAoJICAgIHZhciBmbXRPcHRzID0gX2V4dGVuZHMoe30sIG9wdHMsIHsKCSAgICAgIGZsb29yOiBvcHRzLnJvdW5kICE9PSBmYWxzZSAmJiBvcHRzLmZsb29yICE9PSBmYWxzZQoJICAgIH0pOwoKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYywgZm10T3B0cykuZm9ybWF0RHVyYXRpb25Gcm9tU3RyaW5nKHRoaXMsIGZtdCkgOiBJTlZBTElEJDI7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEdXJhdGlvbiB3aXRoIGFsbCB1bml0cyBpbmNsdWRlZC4KCSAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LgoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTnVtYmVyRm9ybWF0CgkgICAqIEBwYXJhbSBvcHRzIC0gT24gb3B0aW9uIG9iamVjdCB0byBvdmVycmlkZSB0aGUgZm9ybWF0dGluZy4gQWNjZXB0cyB0aGUgc2FtZSBrZXlzIGFzIHRoZSBvcHRpb25zIHBhcmFtZXRlciBvZiB0aGUgbmF0aXZlIGBJbnQuTnVtYmVyRm9ybWF0YCBjb25zdHJ1Y3RvciwgYXMgd2VsbCBhcyBgbGlzdFN0eWxlYC4KCSAgICogQGV4YW1wbGUKCSAgICogYGBganMKCSAgICogdmFyIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxLCBob3VyczogNSwgbWludXRlczogNiB9KQoJICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnCgkgICAqIGR1ci50b0h1bWFuKHsgbGlzdFN0eWxlOiAibG9uZyIgfSkgLy89PiAnMSBkYXksIDUgaG91cnMsIGFuZCA2IG1pbnV0ZXMnCgkgICAqIGR1ci50b0h1bWFuKHsgdW5pdERpc3BsYXk6ICJzaG9ydCIgfSkgLy89PiAnMSBkYXksIDUgaHIsIDYgbWluJwoJICAgKiBgYGAKCSAgICovCgkgIDsKCgkgIF9wcm90by50b0h1bWFuID0gZnVuY3Rpb24gdG9IdW1hbihvcHRzKSB7CgkgICAgdmFyIF90aGlzID0gdGhpczsKCgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIGwgPSBvcmRlcmVkVW5pdHMkMS5tYXAoZnVuY3Rpb24gKHVuaXQpIHsKCSAgICAgIHZhciB2YWwgPSBfdGhpcy52YWx1ZXNbdW5pdF07CgoJICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbCkpIHsKCSAgICAgICAgcmV0dXJuIG51bGw7CgkgICAgICB9CgoJICAgICAgcmV0dXJuIF90aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIoX2V4dGVuZHMoewoJICAgICAgICBzdHlsZTogInVuaXQiLAoJICAgICAgICB1bml0RGlzcGxheTogImxvbmciCgkgICAgICB9LCBvcHRzLCB7CgkgICAgICAgIHVuaXQ6IHVuaXQuc2xpY2UoMCwgLTEpCgkgICAgICB9KSkuZm9ybWF0KHZhbCk7CgkgICAgfSkuZmlsdGVyKGZ1bmN0aW9uIChuKSB7CgkgICAgICByZXR1cm4gbjsKCSAgICB9KTsKCSAgICByZXR1cm4gdGhpcy5sb2MubGlzdEZvcm1hdHRlcihfZXh0ZW5kcyh7CgkgICAgICB0eXBlOiAiY29uanVuY3Rpb24iLAoJICAgICAgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8ICJuYXJyb3ciCgkgICAgfSwgb3B0cykpLmZvcm1hdChsKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEdXJhdGlvbidzIHZhbHVlcy4KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0KCSAgICogQHJldHVybiB7T2JqZWN0fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvT2JqZWN0ID0gZnVuY3Rpb24gdG9PYmplY3QoKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKCSAgICByZXR1cm4gX2V4dGVuZHMoe30sIHRoaXMudmFsdWVzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24uCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRHVyYXRpb25zCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMywgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQM1lUNDVTJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiA0LCBzZWNvbmRzOiA0NSB9KS50b0lTTygpIC8vPT4gJ1A0TVQ0NVMnCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDUgfSkudG9JU08oKSAvLz0+ICdQNU0nCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiA1IH0pLnRvSVNPKCkgLy89PiAnUFQ1TScKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbGxpc2Vjb25kczogNiB9KS50b0lTTygpIC8vPT4gJ1BUMC4wMDZTJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9JU08gPSBmdW5jdGlvbiB0b0lTTygpIHsKCSAgICAvLyB3ZSBjb3VsZCB1c2UgdGhlIGZvcm1hdHRlciwgYnV0IHRoaXMgaXMgYW4gZWFzaWVyIHdheSB0byBnZXQgdGhlIG1pbmltdW0gc3RyaW5nCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoJICAgIHZhciBzID0gIlAiOwoJICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyAiWSI7CgkgICAgaWYgKHRoaXMubW9udGhzICE9PSAwIHx8IHRoaXMucXVhcnRlcnMgIT09IDApIHMgKz0gdGhpcy5tb250aHMgKyB0aGlzLnF1YXJ0ZXJzICogMyArICJNIjsKCSAgICBpZiAodGhpcy53ZWVrcyAhPT0gMCkgcyArPSB0aGlzLndlZWtzICsgIlciOwoJICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgIkQiOwoJICAgIGlmICh0aGlzLmhvdXJzICE9PSAwIHx8IHRoaXMubWludXRlcyAhPT0gMCB8fCB0aGlzLnNlY29uZHMgIT09IDAgfHwgdGhpcy5taWxsaXNlY29uZHMgIT09IDApIHMgKz0gIlQiOwoJICAgIGlmICh0aGlzLmhvdXJzICE9PSAwKSBzICs9IHRoaXMuaG91cnMgKyAiSCI7CgkgICAgaWYgKHRoaXMubWludXRlcyAhPT0gMCkgcyArPSB0aGlzLm1pbnV0ZXMgKyAiTSI7CgkgICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMCkgLy8gdGhpcyB3aWxsIGhhbmRsZSAiZmxvYXRpbmcgcG9pbnQgbWFkbmVzcyIgYnkgcmVtb3ZpbmcgZXh0cmEgZGVjaW1hbCBwbGFjZXMKCSAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlbgoJICAgICAgcyArPSByb3VuZFRvKHRoaXMuc2Vjb25kcyArIHRoaXMubWlsbGlzZWNvbmRzIC8gMTAwMCwgMykgKyAiUyI7CgkgICAgaWYgKHMgPT09ICJQIikgcyArPSAiVDBTIjsKCSAgICByZXR1cm4gczsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24sIGZvcm1hdHRlZCBhcyBhIHRpbWUgb2YgZGF5LgoJICAgKiBOb3RlIHRoYXQgdGhpcyB3aWxsIHJldHVybiBudWxsIGlmIHRoZSBkdXJhdGlvbiBpcyBpbnZhbGlkLCBuZWdhdGl2ZSwgb3IgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIDI0IGhvdXJzLgoJICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlUHJlZml4PWZhbHNlXSAtIGluY2x1ZGUgdGhlIGBUYCBwcmVmaXgKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0CgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKCkgLy89PiAnMTE6MDA6MDAuMDAwJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzTWlsbGlzZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwOjAwJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzU2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMCcKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QxMTowMDowMC4wMDAnCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzExMDAwMC4wMDAnCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT1RpbWUgPSBmdW5jdGlvbiB0b0lTT1RpbWUob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDsKCSAgICB2YXIgbWlsbGlzID0gdGhpcy50b01pbGxpcygpOwoJICAgIGlmIChtaWxsaXMgPCAwIHx8IG1pbGxpcyA+PSA4NjQwMDAwMCkgcmV0dXJuIG51bGw7CgkgICAgb3B0cyA9IF9leHRlbmRzKHsKCSAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzOiBmYWxzZSwKCSAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsCgkgICAgICBpbmNsdWRlUHJlZml4OiBmYWxzZSwKCSAgICAgIGZvcm1hdDogImV4dGVuZGVkIgoJICAgIH0sIG9wdHMpOwoJICAgIHZhciB2YWx1ZSA9IHRoaXMuc2hpZnRUbygiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIiwgIm1pbGxpc2Vjb25kcyIpOwoJICAgIHZhciBmbXQgPSBvcHRzLmZvcm1hdCA9PT0gImJhc2ljIiA/ICJoaG1tIiA6ICJoaDptbSI7CgoJICAgIGlmICghb3B0cy5zdXBwcmVzc1NlY29uZHMgfHwgdmFsdWUuc2Vjb25kcyAhPT0gMCB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHsKCSAgICAgIGZtdCArPSBvcHRzLmZvcm1hdCA9PT0gImJhc2ljIiA/ICJzcyIgOiAiOnNzIjsKCgkgICAgICBpZiAoIW9wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHMgfHwgdmFsdWUubWlsbGlzZWNvbmRzICE9PSAwKSB7CgkgICAgICAgIGZtdCArPSAiLlNTUyI7CgkgICAgICB9CgkgICAgfQoKCSAgICB2YXIgc3RyID0gdmFsdWUudG9Gb3JtYXQoZm10KTsKCgkgICAgaWYgKG9wdHMuaW5jbHVkZVByZWZpeCkgewoJICAgICAgc3RyID0gIlQiICsgc3RyOwoJICAgIH0KCgkgICAgcmV0dXJuIHN0cjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi4KCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTigpIHsKCSAgICByZXR1cm4gdGhpcy50b0lTTygpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBkZWJ1Z2dpbmcuCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkgewoJICAgIHJldHVybiB0aGlzLnRvSVNPKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gbWlsbGlzZWNvbmRzIHZhbHVlIG9mIHRoaXMgRHVyYXRpb24uCgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b01pbGxpcyA9IGZ1bmN0aW9uIHRvTWlsbGlzKCkgewoJICAgIHJldHVybiB0aGlzLmFzKCJtaWxsaXNlY29uZHMiKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi4gQWxpYXMgb2Yge0BsaW5rIHRvTWlsbGlzfQoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udmFsdWVPZiA9IGZ1bmN0aW9uIHZhbHVlT2YoKSB7CgkgICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTsKCSAgfQoJICAvKioKCSAgICogTWFrZSB0aGlzIER1cmF0aW9uIGxvbmdlciBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uCgkgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8ucGx1cyA9IGZ1bmN0aW9uIHBsdXMoZHVyYXRpb24pIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAoJICAgICAgICByZXN1bHQgPSB7fTsKCgkgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvcmRlcmVkVW5pdHMkMSksIF9zdGVwOyAhKF9zdGVwID0gX2l0ZXJhdG9yKCkpLmRvbmU7KSB7CgkgICAgICB2YXIgayA9IF9zdGVwLnZhbHVlOwoKCSAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShkdXIudmFsdWVzLCBrKSB8fCBoYXNPd25Qcm9wZXJ0eSh0aGlzLnZhbHVlcywgaykpIHsKCSAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspOwoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIGNsb25lJDEodGhpcywgewoJICAgICAgdmFsdWVzOiByZXN1bHQKCSAgICB9LCB0cnVlKTsKCSAgfQoJICAvKioKCSAgICogTWFrZSB0aGlzIER1cmF0aW9uIHNob3J0ZXIgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLgoJICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8ubWludXMgPSBmdW5jdGlvbiBtaW51cyhkdXJhdGlvbikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbik7CgkgICAgcmV0dXJuIHRoaXMucGx1cyhkdXIubmVnYXRlKCkpOwoJICB9CgkgIC8qKgoJICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi4KCSAgICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB1bml0LiBBcml0eSBpcyAxIG9yIDI6IHRoZSB2YWx1ZSBvZiB0aGUgdW5pdCBhbmQsIG9wdGlvbmFsbHksIHRoZSB1bml0IG5hbWUuIE11c3QgcmV0dXJuIGEgbnVtYmVyLgoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKHggPT4geCAqIDIpIC8vPT4geyBob3VyczogMiwgbWludXRlczogNjAgfQoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSAiaG91ciIgPyB4ICogMiA6IHgpIC8vPT4geyBob3VyczogMiwgbWludXRlczogMzAgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5tYXBVbml0cyA9IGZ1bmN0aW9uIG1hcFVuaXRzKGZuKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoJICAgIHZhciByZXN1bHQgPSB7fTsKCgkgICAgZm9yICh2YXIgX2kgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcyk7IF9pIDwgX09iamVjdCRrZXlzLmxlbmd0aDsgX2krKykgewoJICAgICAgdmFyIGsgPSBfT2JqZWN0JGtleXNbX2ldOwoJICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTsKCSAgICB9CgoJICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIHsKCSAgICAgIHZhbHVlczogcmVzdWx0CgkgICAgfSwgdHJ1ZSk7CgkgIH0KCSAgLyoqCgkgICAqIEdldCB0aGUgdmFsdWUgb2YgdW5pdC4KCSAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5JwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgneWVhcnMnKSAvLz0+IDIKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ21vbnRocycpIC8vPT4gMAoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gMwoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZ2V0ID0gZnVuY3Rpb24gZ2V0KHVuaXQpIHsKCSAgICByZXR1cm4gdGhpc1tEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpXTsKCSAgfQoJICAvKioKCSAgICogIlNldCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLgoJICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnMKCSAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pCgkgICAqIEBleGFtcGxlIGR1ci5zZXQoeyBob3VyczogOCwgbWludXRlczogMzAgfSkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8uc2V0ID0gZnVuY3Rpb24gc2V0KHZhbHVlcykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCgkgICAgdmFyIG1peGVkID0gX2V4dGVuZHMoe30sIHRoaXMudmFsdWVzLCBub3JtYWxpemVPYmplY3QodmFsdWVzLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSk7CgoJICAgIHJldHVybiBjbG9uZSQxKHRoaXMsIHsKCSAgICAgIHZhbHVlczogbWl4ZWQKCSAgICB9KTsKCSAgfQoJICAvKioKCSAgICogIlNldCIgdGhlIGxvY2FsZSBhbmQvb3IgbnVtYmVyaW5nU3lzdGVtLiAgUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLgoJICAgKiBAZXhhbXBsZSBkdXIucmVjb25maWd1cmUoeyBsb2NhbGU6ICdlbi1HQicgfSkKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8ucmVjb25maWd1cmUgPSBmdW5jdGlvbiByZWNvbmZpZ3VyZShfdGVtcCkgewoJICAgIHZhciBfcmVmID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAsCgkgICAgICAgIGxvY2FsZSA9IF9yZWYubG9jYWxlLAoJICAgICAgICBudW1iZXJpbmdTeXN0ZW0gPSBfcmVmLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgY29udmVyc2lvbkFjY3VyYWN5ID0gX3JlZi5jb252ZXJzaW9uQWNjdXJhY3k7CgoJICAgIHZhciBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7CgkgICAgICBsb2NhbGU6IGxvY2FsZSwKCSAgICAgIG51bWJlcmluZ1N5c3RlbTogbnVtYmVyaW5nU3lzdGVtCgkgICAgfSksCgkgICAgICAgIG9wdHMgPSB7CgkgICAgICBsb2M6IGxvYwoJICAgIH07CgoJICAgIGlmIChjb252ZXJzaW9uQWNjdXJhY3kpIHsKCSAgICAgIG9wdHMuY29udmVyc2lvbkFjY3VyYWN5ID0gY29udmVyc2lvbkFjY3VyYWN5OwoJICAgIH0KCgkgICAgcmV0dXJuIGNsb25lJDEodGhpcywgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBkdXJhdGlvbiBpbiB0aGUgc3BlY2lmaWVkIHVuaXQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZXMnIG9yICdkYXlzJwoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdkYXlzJykgLy89PiAzNjUKCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnbW9udGhzJykgLy89PiAxMgoJICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtob3VyczogNjB9KS5hcygnZGF5cycpIC8vPT4gMi41CgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5hcyA9IGZ1bmN0aW9uIGFzKHVuaXQpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5zaGlmdFRvKHVuaXQpLmdldCh1bml0KSA6IE5hTjsKCSAgfQoJICAvKioKCSAgICogUmVkdWNlIHRoaXMgRHVyYXRpb24gdG8gaXRzIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbiBpbiBpdHMgY3VycmVudCB1bml0cy4KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAyLCBkYXlzOiA1MDAwIH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxNSwgZGF5czogMjU1IH0KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMiwgbWludXRlczogLTQ1IH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMTUgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5ub3JtYWxpemUgPSBmdW5jdGlvbiBub3JtYWxpemUoKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoJICAgIHZhciB2YWxzID0gdGhpcy50b09iamVjdCgpOwoJICAgIG5vcm1hbGl6ZVZhbHVlcyh0aGlzLm1hdHJpeCwgdmFscyk7CgkgICAgcmV0dXJuIGNsb25lJDEodGhpcywgewoJICAgICAgdmFsdWVzOiB2YWxzCgkgICAgfSwgdHJ1ZSk7CgkgIH0KCSAgLyoqCgkgICAqIENvbnZlcnQgdGhpcyBEdXJhdGlvbiBpbnRvIGl0cyByZXByZXNlbnRhdGlvbiBpbiBhIGRpZmZlcmVudCBzZXQgb2YgdW5pdHMuCgkgICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgc2Vjb25kczogMzAgfSkuc2hpZnRUbygnbWludXRlcycsICdtaWxsaXNlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBtaW51dGVzOiA2MCwgbWlsbGlzZWNvbmRzOiAzMDAwMCB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNoaWZ0VG8gPSBmdW5jdGlvbiBzaGlmdFRvKCkgewoJICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCB1bml0cyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHsKCSAgICAgIHVuaXRzW19rZXldID0gYXJndW1lbnRzW19rZXldOwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoKCSAgICBpZiAodW5pdHMubGVuZ3RoID09PSAwKSB7CgkgICAgICByZXR1cm4gdGhpczsKCSAgICB9CgoJICAgIHVuaXRzID0gdW5pdHMubWFwKGZ1bmN0aW9uICh1KSB7CgkgICAgICByZXR1cm4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KTsKCSAgICB9KTsKCSAgICB2YXIgYnVpbHQgPSB7fSwKCSAgICAgICAgYWNjdW11bGF0ZWQgPSB7fSwKCSAgICAgICAgdmFscyA9IHRoaXMudG9PYmplY3QoKTsKCSAgICB2YXIgbGFzdFVuaXQ7CgoJICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKG9yZGVyZWRVbml0cyQxKSwgX3N0ZXAyOyAhKF9zdGVwMiA9IF9pdGVyYXRvcjIoKSkuZG9uZTspIHsKCSAgICAgIHZhciBrID0gX3N0ZXAyLnZhbHVlOwoKCSAgICAgIGlmICh1bml0cy5pbmRleE9mKGspID49IDApIHsKCSAgICAgICAgbGFzdFVuaXQgPSBrOwoJICAgICAgICB2YXIgb3duID0gMDsgLy8gYW55dGhpbmcgd2UgaGF2ZW4ndCBib2lsZWQgZG93biB5ZXQgc2hvdWxkIGdldCBib2lsZWQgdG8gdGhpcyB1bml0CgoJICAgICAgICBmb3IgKHZhciBhayBpbiBhY2N1bXVsYXRlZCkgewoJICAgICAgICAgIG93biArPSB0aGlzLm1hdHJpeFtha11ba10gKiBhY2N1bXVsYXRlZFtha107CgkgICAgICAgICAgYWNjdW11bGF0ZWRbYWtdID0gMDsKCSAgICAgICAgfSAvLyBwbHVzIGFueXRoaW5nIHRoYXQncyBhbHJlYWR5IGluIHRoaXMgdW5pdAoKCgkgICAgICAgIGlmIChpc051bWJlcih2YWxzW2tdKSkgewoJICAgICAgICAgIG93biArPSB2YWxzW2tdOwoJICAgICAgICB9CgoJICAgICAgICB2YXIgaSA9IE1hdGgudHJ1bmMob3duKTsKCSAgICAgICAgYnVpbHRba10gPSBpOwoJICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IChvd24gKiAxMDAwIC0gaSAqIDEwMDApIC8gMTAwMDsgLy8gcGx1cyBhbnl0aGluZyBmdXJ0aGVyIGRvd24gdGhlIGNoYWluIHRoYXQgc2hvdWxkIGJlIHJvbGxlZCB1cCBpbiB0byB0aGlzCgoJICAgICAgICBmb3IgKHZhciBkb3duIGluIHZhbHMpIHsKCSAgICAgICAgICBpZiAob3JkZXJlZFVuaXRzJDEuaW5kZXhPZihkb3duKSA+IG9yZGVyZWRVbml0cyQxLmluZGV4T2YoaykpIHsKCSAgICAgICAgICAgIGNvbnZlcnQodGhpcy5tYXRyaXgsIHZhbHMsIGRvd24sIGJ1aWx0LCBrKTsKCSAgICAgICAgICB9CgkgICAgICAgIH0gLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyCgoJICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkgewoJICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IHZhbHNba107CgkgICAgICB9CgkgICAgfSAvLyBhbnl0aGluZyBsZWZ0b3ZlciBiZWNvbWVzIHRoZSBkZWNpbWFsIGZvciB0aGUgbGFzdCB1bml0CgkgICAgLy8gbGFzdFVuaXQgbXVzdCBiZSBkZWZpbmVkIHNpbmNlIHVuaXRzIGlzIG5vdCBlbXB0eQoKCgkgICAgZm9yICh2YXIga2V5IGluIGFjY3VtdWxhdGVkKSB7CgkgICAgICBpZiAoYWNjdW11bGF0ZWRba2V5XSAhPT0gMCkgewoJICAgICAgICBidWlsdFtsYXN0VW5pdF0gKz0ga2V5ID09PSBsYXN0VW5pdCA/IGFjY3VtdWxhdGVkW2tleV0gOiBhY2N1bXVsYXRlZFtrZXldIC8gdGhpcy5tYXRyaXhbbGFzdFVuaXRdW2tleV07CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7CgkgICAgICB2YWx1ZXM6IGJ1aWx0CgkgICAgfSwgdHJ1ZSkubm9ybWFsaXplKCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB0aGUgbmVnYXRpdmUgb2YgdGhpcyBEdXJhdGlvbi4KCSAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLm5lZ2F0ZSA9IGZ1bmN0aW9uIG5lZ2F0ZSgpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIG5lZ2F0ZWQgPSB7fTsKCgkgICAgZm9yICh2YXIgX2kyID0gMCwgX09iamVjdCRrZXlzMiA9IE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKTsgX2kyIDwgX09iamVjdCRrZXlzMi5sZW5ndGg7IF9pMisrKSB7CgkgICAgICB2YXIgayA9IF9PYmplY3Qka2V5czJbX2kyXTsKCSAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107CgkgICAgfQoKCSAgICByZXR1cm4gY2xvbmUkMSh0aGlzLCB7CgkgICAgICB2YWx1ZXM6IG5lZ2F0ZWQKCSAgICB9LCB0cnVlKTsKCSAgfQoJICAvKioKCSAgICogR2V0IHRoZSB5ZWFycy4KCSAgICogQHR5cGUge251bWJlcn0KCSAgICovCgkgIDsKCgkgIC8qKgoJICAgKiBFcXVhbGl0eSBjaGVjawoJICAgKiBUd28gRHVyYXRpb25zIGFyZSBlcXVhbCBpZmYgdGhleSBoYXZlIHRoZSBzYW1lIHVuaXRzIGFuZCB0aGUgc2FtZSB2YWx1ZXMgZm9yIGVhY2ggdW5pdC4KCSAgICogQHBhcmFtIHtEdXJhdGlvbn0gb3RoZXIKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXIpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXIuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmxvYy5lcXVhbHMob3RoZXIubG9jKSkgewoJICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCgkgICAgZnVuY3Rpb24gZXEodjEsIHYyKSB7CgkgICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWwKCSAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkIHx8IHYxID09PSAwKSByZXR1cm4gdjIgPT09IHVuZGVmaW5lZCB8fCB2MiA9PT0gMDsKCSAgICAgIHJldHVybiB2MSA9PT0gdjI7CgkgICAgfQoKCSAgICBmb3IgKHZhciBfaXRlcmF0b3IzID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvcmRlcmVkVW5pdHMkMSksIF9zdGVwMzsgIShfc3RlcDMgPSBfaXRlcmF0b3IzKCkpLmRvbmU7KSB7CgkgICAgICB2YXIgdSA9IF9zdGVwMy52YWx1ZTsKCgkgICAgICBpZiAoIWVxKHRoaXMudmFsdWVzW3VdLCBvdGhlci52YWx1ZXNbdV0pKSB7CgkgICAgICAgIHJldHVybiBmYWxzZTsKCSAgICAgIH0KCSAgICB9CgoJICAgIHJldHVybiB0cnVlOwoJICB9OwoKCSAgX2NyZWF0ZUNsYXNzKER1cmF0aW9uLCBbewoJICAgIGtleTogImxvY2FsZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRHVyYXRpb24KCSAgICAgKgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibnVtYmVyaW5nU3lzdGVtIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsOwoJICAgIH0KCSAgfSwgewoJICAgIGtleTogInllYXJzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy55ZWFycyB8fCAwIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHF1YXJ0ZXJzLgoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAicXVhcnRlcnMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnF1YXJ0ZXJzIHx8IDAgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbW9udGhzLgoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibW9udGhzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5tb250aHMgfHwgMCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSB3ZWVrcwoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAid2Vla3MiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLndlZWtzIHx8IDAgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgZGF5cy4KCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImRheXMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmRheXMgfHwgMCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBob3Vycy4KCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImhvdXJzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5ob3VycyB8fCAwIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG1pbnV0ZXMuCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJtaW51dGVzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taW51dGVzIHx8IDAgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgc2Vjb25kcy4KCSAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAic2Vjb25kcyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuc2Vjb25kcyB8fCAwIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG1pbGxpc2Vjb25kcy4KCSAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibWlsbGlzZWNvbmRzIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taWxsaXNlY29uZHMgfHwgMCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkLiBJbnZhbGlkIGR1cmF0aW9ucyBhcmUgcmV0dXJuZWQgYnkgZGlmZiBvcGVyYXRpb25zCgkgICAgICogb24gaW52YWxpZCBEYXRlVGltZXMgb3IgSW50ZXJ2YWxzLgoJICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWQKCSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaW52YWxpZFJlYXNvbiIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpbnZhbGlkRXhwbGFuYXRpb24iLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gRHVyYXRpb247Cgl9KCk7CgoJdmFyIElOVkFMSUQkMSA9ICJJbnZhbGlkIEludGVydmFsIjsgLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZAoKCWZ1bmN0aW9uIHZhbGlkYXRlU3RhcnRFbmQoc3RhcnQsIGVuZCkgewoJICBpZiAoIXN0YXJ0IHx8ICFzdGFydC5pc1ZhbGlkKSB7CgkgICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoIm1pc3Npbmcgb3IgaW52YWxpZCBzdGFydCIpOwoJICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7CgkgICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoIm1pc3Npbmcgb3IgaW52YWxpZCBlbmQiKTsKCSAgfSBlbHNlIGlmIChlbmQgPCBzdGFydCkgewoJICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKCJlbmQgYmVmb3JlIHN0YXJ0IiwgIlRoZSBlbmQgb2YgYW4gaW50ZXJ2YWwgbXVzdCBiZSBhZnRlciBpdHMgc3RhcnQsIGJ1dCB5b3UgaGFkIHN0YXJ0PSIgKyBzdGFydC50b0lTTygpICsgIiBhbmQgZW5kPSIgKyBlbmQudG9JU08oKSk7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0KCX0KCS8qKgoJICogQW4gSW50ZXJ2YWwgb2JqZWN0IHJlcHJlc2VudHMgYSBoYWxmLW9wZW4gaW50ZXJ2YWwgb2YgdGltZSwgd2hlcmUgZWFjaCBlbmRwb2ludCBpcyBhIHtAbGluayBEYXRlVGltZX0uIENvbmNlcHR1YWxseSwgaXQncyBhIGNvbnRhaW5lciBmb3IgdGhvc2UgdHdvIGVuZHBvaW50cywgYWNjb21wYW5pZWQgYnkgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIGNvbXBhcmluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLgoJICoKCSAqIEhlcmUgaXMgYSBicmllZiBvdmVydmlldyBvZiB0aGUgbW9zdCBjb21tb25seSB1c2VkIG1ldGhvZHMgYW5kIGdldHRlcnMgaW4gSW50ZXJ2YWw6CgkgKgoJICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGFuIEludGVydmFsLCB1c2Uge0BsaW5rIEludGVydmFsI2Zyb21EYXRlVGltZXN9LCB7QGxpbmsgSW50ZXJ2YWwjYWZ0ZXJ9LCB7QGxpbmsgSW50ZXJ2YWwjYmVmb3JlfSwgb3Ige0BsaW5rIEludGVydmFsI2Zyb21JU099LgoJICogKiAqKkFjY2Vzc29ycyoqIFVzZSB7QGxpbmsgSW50ZXJ2YWwjc3RhcnR9IGFuZCB7QGxpbmsgSW50ZXJ2YWwjZW5kfSB0byBnZXQgdGhlIHN0YXJ0IGFuZCBlbmQuCgkgKiAqICoqSW50ZXJyb2dhdGlvbioqIFRvIGFuYWx5emUgdGhlIEludGVydmFsLCB1c2Uge0BsaW5rIEludGVydmFsI2NvdW50fSwge0BsaW5rIEludGVydmFsI2xlbmd0aH0sIHtAbGluayBJbnRlcnZhbCNoYXNTYW1lfSwge0BsaW5rIEludGVydmFsI2NvbnRhaW5zfSwge0BsaW5rIEludGVydmFsI2lzQWZ0ZXJ9LCBvciB7QGxpbmsgSW50ZXJ2YWwjaXNCZWZvcmV9LgoJICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG90aGVyIEludGVydmFscyBvdXQgb2YgdGhpcyBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjc2V0fSwge0BsaW5rIEludGVydmFsI3NwbGl0QXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRCeX0sIHtAbGluayBJbnRlcnZhbCNkaXZpZGVFcXVhbGx5fSwge0BsaW5rIEludGVydmFsI21lcmdlfSwge0BsaW5rIEludGVydmFsI3hvcn0sIHtAbGluayBJbnRlcnZhbCN1bmlvbn0sIHtAbGluayBJbnRlcnZhbCNpbnRlcnNlY3Rpb259LCBvciB7QGxpbmsgSW50ZXJ2YWwjZGlmZmVyZW5jZX0uCgkgKiAqICoqQ29tcGFyaXNvbioqIFRvIGNvbXBhcmUgdGhpcyBJbnRlcnZhbCB0byBhbm90aGVyIG9uZSwgdXNlIHtAbGluayBJbnRlcnZhbCNlcXVhbHN9LCB7QGxpbmsgSW50ZXJ2YWwjb3ZlcmxhcHN9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNTdGFydH0sIHtAbGluayBJbnRlcnZhbCNhYnV0c0VuZH0sIHtAbGluayBJbnRlcnZhbCNlbmd1bGZzfQoJICogKiAqKk91dHB1dCoqIFRvIGNvbnZlcnQgdGhlIEludGVydmFsIGludG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCBzZWUge0BsaW5rIEludGVydmFsI3RvU3RyaW5nfSwge0BsaW5rIEludGVydmFsI3RvSVNPfSwge0BsaW5rIEludGVydmFsI3RvSVNPRGF0ZX0sIHtAbGluayBJbnRlcnZhbCN0b0lTT1RpbWV9LCB7QGxpbmsgSW50ZXJ2YWwjdG9Gb3JtYXR9LCBhbmQge0BsaW5rIEludGVydmFsI3RvRHVyYXRpb259LgoJICovCgoKCXZhciBJbnRlcnZhbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CgkgIC8qKgoJICAgKiBAcHJpdmF0ZQoJICAgKi8KCSAgZnVuY3Rpb24gSW50ZXJ2YWwoY29uZmlnKSB7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgkgICAgdGhpcy5zID0gY29uZmlnLnN0YXJ0OwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmUgPSBjb25maWcuZW5kOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsOwoJICAgIC8qKgoJICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQoJICAgICAqLwoKCSAgICB0aGlzLmlzTHV4b25JbnRlcnZhbCA9IHRydWU7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBpbnZhbGlkIEludGVydmFsLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KCSAgICogQHJldHVybiB7SW50ZXJ2YWx9CgkgICAqLwoKCgkgIEludGVydmFsLmludmFsaWQgPSBmdW5jdGlvbiBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pIHsKCSAgICBpZiAoZXhwbGFuYXRpb24gPT09IHZvaWQgMCkgewoJICAgICAgZXhwbGFuYXRpb24gPSBudWxsOwoJICAgIH0KCgkgICAgaWYgKCFyZWFzb24pIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkIik7CgkgICAgfQoKCSAgICB2YXIgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTsKCgkgICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEludGVydmFsRXJyb3IoaW52YWxpZCk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoewoJICAgICAgICBpbnZhbGlkOiBpbnZhbGlkCgkgICAgICB9KTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuCgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0CgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZAoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIEludGVydmFsLmZyb21EYXRlVGltZXMgPSBmdW5jdGlvbiBmcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpIHsKCSAgICB2YXIgYnVpbHRTdGFydCA9IGZyaWVuZGx5RGF0ZVRpbWUoc3RhcnQpLAoJICAgICAgICBidWlsdEVuZCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTsKCSAgICB2YXIgdmFsaWRhdGVFcnJvciA9IHZhbGlkYXRlU3RhcnRFbmQoYnVpbHRTdGFydCwgYnVpbHRFbmQpOwoKCSAgICBpZiAodmFsaWRhdGVFcnJvciA9PSBudWxsKSB7CgkgICAgICByZXR1cm4gbmV3IEludGVydmFsKHsKCSAgICAgICAgc3RhcnQ6IGJ1aWx0U3RhcnQsCgkgICAgICAgIGVuZDogYnVpbHRFbmQKCSAgICAgIH0pOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gdmFsaWRhdGVFcnJvcjsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGEgRHVyYXRpb24gdG8gZXh0ZW5kIHRvLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBzdGFydAoJICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwuCgkgICAqIEByZXR1cm4ge0ludGVydmFsfQoJICAgKi8KCSAgOwoKCSAgSW50ZXJ2YWwuYWZ0ZXIgPSBmdW5jdGlvbiBhZnRlcihzdGFydCwgZHVyYXRpb24pIHsKCSAgICB2YXIgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksCgkgICAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7CgkgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQsIGR0LnBsdXMoZHVyKSk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIGVuZCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgYmFja3dhcmRzIHRvLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmQKCSAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLgoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIEludGVydmFsLmJlZm9yZSA9IGZ1bmN0aW9uIGJlZm9yZShlbmQsIGR1cmF0aW9uKSB7CgkgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLAoJICAgICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTsKCSAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdC5taW51cyhkdXIpLCBkdCk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy4KCSAgICogQWNjZXB0cyBgPHN0YXJ0Pi88ZW5kPmAsIGA8c3RhcnQ+LzxkdXJhdGlvbj5gLCBhbmQgYDxkdXJhdGlvbj4vPGVuZD5gIGZvcm1hdHMuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIElTTyBzdHJpbmcgdG8gcGFyc2UKCSAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099CgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHMKCSAgICogQHJldHVybiB7SW50ZXJ2YWx9CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC5mcm9tSVNPID0gZnVuY3Rpb24gZnJvbUlTTyh0ZXh0LCBvcHRzKSB7CgkgICAgdmFyIF9zcGxpdCA9ICh0ZXh0IHx8ICIiKS5zcGxpdCgiLyIsIDIpLAoJICAgICAgICBzID0gX3NwbGl0WzBdLAoJICAgICAgICBlID0gX3NwbGl0WzFdOwoKCSAgICBpZiAocyAmJiBlKSB7CgkgICAgICB2YXIgc3RhcnQsIHN0YXJ0SXNWYWxpZDsKCgkgICAgICB0cnkgewoJICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7CgkgICAgICAgIHN0YXJ0SXNWYWxpZCA9IHN0YXJ0LmlzVmFsaWQ7CgkgICAgICB9IGNhdGNoIChlKSB7CgkgICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlOwoJICAgICAgfQoKCSAgICAgIHZhciBlbmQsIGVuZElzVmFsaWQ7CgoJICAgICAgdHJ5IHsKCSAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTsKCSAgICAgICAgZW5kSXNWYWxpZCA9IGVuZC5pc1ZhbGlkOwoJICAgICAgfSBjYXRjaCAoZSkgewoJICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7CgkgICAgICB9CgoJICAgICAgaWYgKHN0YXJ0SXNWYWxpZCAmJiBlbmRJc1ZhbGlkKSB7CgkgICAgICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpOwoJICAgICAgfQoKCSAgICAgIGlmIChzdGFydElzVmFsaWQpIHsKCSAgICAgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21JU08oZSwgb3B0cyk7CgoJICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHsKCSAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7CgkgICAgICAgIH0KCSAgICAgIH0gZWxzZSBpZiAoZW5kSXNWYWxpZCkgewoJICAgICAgICB2YXIgX2R1ciA9IER1cmF0aW9uLmZyb21JU08ocywgb3B0cyk7CgoJICAgICAgICBpZiAoX2R1ci5pc1ZhbGlkKSB7CgkgICAgICAgICAgcmV0dXJuIEludGVydmFsLmJlZm9yZShlbmQsIF9kdXIpOwoJICAgICAgICB9CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZCgidW5wYXJzYWJsZSIsICJ0aGUgaW5wdXQgXCIiICsgdGV4dCArICJcIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDEiKTsKCSAgfQoJICAvKioKCSAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzCgkgICAqIEBwYXJhbSB7b2JqZWN0fSBvCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC5pc0ludGVydmFsID0gZnVuY3Rpb24gaXNJbnRlcnZhbChvKSB7CgkgICAgcmV0dXJuIG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwgfHwgZmFsc2U7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBJbnRlcnZhbAoJICAgKiBAdHlwZSB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICB2YXIgX3Byb3RvID0gSW50ZXJ2YWwucHJvdG90eXBlOwoKCSAgLyoqCgkgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwgaW4gdGhlIHNwZWNpZmllZCB1bml0LgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byByZXR1cm4gdGhlIGxlbmd0aCBpbi4KCSAgICogQHJldHVybiB7bnVtYmVyfQoJICAgKi8KCSAgX3Byb3RvLmxlbmd0aCA9IGZ1bmN0aW9uIGxlbmd0aCh1bml0KSB7CgkgICAgaWYgKHVuaXQgPT09IHZvaWQgMCkgewoJICAgICAgdW5pdCA9ICJtaWxsaXNlY29uZHMiOwoJICAgIH0KCgkgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9EdXJhdGlvbi5hcHBseSh0aGlzLCBbdW5pdF0pLmdldCh1bml0KSA6IE5hTjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyB0aGUgY291bnQgb2YgbWludXRlcywgaG91cnMsIGRheXMsIG1vbnRocywgb3IgeWVhcnMgaW5jbHVkZWQgaW4gdGhlIEludGVydmFsLCBldmVuIGluIHBhcnQuCgkgICAqIFVubGlrZSB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSB0aGlzIGNvdW50cyBzZWN0aW9ucyBvZiB0aGUgY2FsZW5kYXIsIG5vdCBwZXJpb2RzIG9mIHRpbWUsIGUuZy4gc3BlY2lmeWluZyAnZGF5JwoJICAgKiBhc2tzICd3aGF0IGRhdGVzIGFyZSBpbmNsdWRlZCBpbiB0aGlzIGludGVydmFsPycsIG5vdCAnaG93IG1hbnkgZGF5cyBsb25nIGlzIHRoaXMgaW50ZXJ2YWw/JwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW3VuaXQ9J21pbGxpc2Vjb25kcyddIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC4KCSAgICogQHJldHVybiB7bnVtYmVyfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmNvdW50ID0gZnVuY3Rpb24gY291bnQodW5pdCkgewoJICAgIGlmICh1bml0ID09PSB2b2lkIDApIHsKCSAgICAgIHVuaXQgPSAibWlsbGlzZWNvbmRzIjsKCSAgICB9CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gTmFOOwoJICAgIHZhciBzdGFydCA9IHRoaXMuc3RhcnQuc3RhcnRPZih1bml0KSwKCSAgICAgICAgZW5kID0gdGhpcy5lbmQuc3RhcnRPZih1bml0KTsKCSAgICByZXR1cm4gTWF0aC5mbG9vcihlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpKSArIDE7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgYW5kIGVuZCBhcmUgYm90aCBpbiB0aGUgc2FtZSB1bml0IG9mIHRpbWUKCSAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNoZWNrIHNhbWVuZXNzIG9uCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uaGFzU2FtZSA9IGZ1bmN0aW9uIGhhc1NhbWUodW5pdCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmlzRW1wdHkoKSB8fCB0aGlzLmUubWludXMoMSkuaGFzU2FtZSh0aGlzLnMsIHVuaXQpIDogZmFsc2U7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgRGF0ZVRpbWVzLgoJICAgKiBAcmV0dXJuIHtib29sZWFufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmlzRW1wdHkgPSBmdW5jdGlvbiBpc0VtcHR5KCkgewoJICAgIHJldHVybiB0aGlzLnMudmFsdWVPZigpID09PSB0aGlzLmUudmFsdWVPZigpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBEYXRlVGltZS4KCSAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5pc0FmdGVyID0gZnVuY3Rpb24gaXNBZnRlcihkYXRlVGltZSkgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgkgICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBkYXRlVGltZQoJICAgKiBAcmV0dXJuIHtib29sZWFufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmlzQmVmb3JlID0gZnVuY3Rpb24gaXNCZWZvcmUoZGF0ZVRpbWUpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwoJICAgIHJldHVybiB0aGlzLmUgPD0gZGF0ZVRpbWU7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgY29udGFpbnMgdGhlIHNwZWNpZmllZCBEYXRlVGltZS4KCSAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWUKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5jb250YWlucyA9IGZ1bmN0aW9uIGNvbnRhaW5zKGRhdGVUaW1lKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTsKCSAgICByZXR1cm4gdGhpcy5zIDw9IGRhdGVUaW1lICYmIHRoaXMuZSA+IGRhdGVUaW1lOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0cyIgdGhlIHN0YXJ0IGFuZC9vciBlbmQgZGF0ZXMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBJbnRlcnZhbC4KCSAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIHRoZSB2YWx1ZXMgdG8gc2V0CgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IHZhbHVlcy5zdGFydCAtIHRoZSBzdGFydGluZyBEYXRlVGltZQoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuZW5kIC0gdGhlIGVuZGluZyBEYXRlVGltZQoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIF9wcm90by5zZXQgPSBmdW5jdGlvbiBzZXQoX3RlbXApIHsKCSAgICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLAoJICAgICAgICBzdGFydCA9IF9yZWYuc3RhcnQsCgkgICAgICAgIGVuZCA9IF9yZWYuZW5kOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTsKCSAgfQoJICAvKioKCSAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBhdCBlYWNoIG9mIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWVzCgkgICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY291bnQuCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNwbGl0QXQgPSBmdW5jdGlvbiBzcGxpdEF0KCkgewoJICAgIHZhciBfdGhpcyA9IHRoaXM7CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107CgoJICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBkYXRlVGltZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CgkgICAgICBkYXRlVGltZXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07CgkgICAgfQoKCSAgICB2YXIgc29ydGVkID0gZGF0ZVRpbWVzLm1hcChmcmllbmRseURhdGVUaW1lKS5maWx0ZXIoZnVuY3Rpb24gKGQpIHsKCSAgICAgIHJldHVybiBfdGhpcy5jb250YWlucyhkKTsKCSAgICB9KS5zb3J0KCksCgkgICAgICAgIHJlc3VsdHMgPSBbXTsKCSAgICB2YXIgcyA9IHRoaXMucywKCSAgICAgICAgaSA9IDA7CgoJICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7CgkgICAgICB2YXIgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLAoJICAgICAgICAgIG5leHQgPSArYWRkZWQgPiArdGhpcy5lID8gdGhpcy5lIDogYWRkZWQ7CgkgICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7CgkgICAgICBzID0gbmV4dDsKCSAgICAgIGkgKz0gMTsKCSAgICB9CgoJICAgIHJldHVybiByZXN1bHRzOwoJICB9CgkgIC8qKgoJICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gc21hbGxlciBJbnRlcnZhbHMsIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBsZW5ndGguCgkgICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWwKCSAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBsZW5ndGggb2YgZWFjaCByZXN1bHRpbmcgaW50ZXJ2YWwuCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNwbGl0QnkgPSBmdW5jdGlvbiBzcGxpdEJ5KGR1cmF0aW9uKSB7CgkgICAgdmFyIGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhZHVyLmlzVmFsaWQgfHwgZHVyLmFzKCJtaWxsaXNlY29uZHMiKSA9PT0gMCkgewoJICAgICAgcmV0dXJuIFtdOwoJICAgIH0KCgkgICAgdmFyIHMgPSB0aGlzLnMsCgkgICAgICAgIGlkeCA9IDEsCgkgICAgICAgIG5leHQ7CgkgICAgdmFyIHJlc3VsdHMgPSBbXTsKCgkgICAgd2hpbGUgKHMgPCB0aGlzLmUpIHsKCSAgICAgIHZhciBhZGRlZCA9IHRoaXMuc3RhcnQucGx1cyhkdXIubWFwVW5pdHMoZnVuY3Rpb24gKHgpIHsKCSAgICAgICAgcmV0dXJuIHggKiBpZHg7CgkgICAgICB9KSk7CgkgICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkOwoJICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpOwoJICAgICAgcyA9IG5leHQ7CgkgICAgICBpZHggKz0gMTsKCSAgICB9CgoJICAgIHJldHVybiByZXN1bHRzOwoJICB9CgkgIC8qKgoJICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc21hbGxlciBpbnRlcnZhbHMuCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZlBhcnRzIC0gVGhlIG51bWJlciBvZiBJbnRlcnZhbHMgdG8gZGl2aWRlIHRoZSBJbnRlcnZhbCBpbnRvLgoJICAgKiBAcmV0dXJuIHtBcnJheX0KCSAgICovCgkgIDsKCgkgIF9wcm90by5kaXZpZGVFcXVhbGx5ID0gZnVuY3Rpb24gZGl2aWRlRXF1YWxseShudW1iZXJPZlBhcnRzKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBbXTsKCSAgICByZXR1cm4gdGhpcy5zcGxpdEJ5KHRoaXMubGVuZ3RoKCkgLyBudW1iZXJPZlBhcnRzKS5zbGljZSgwLCBudW1iZXJPZlBhcnRzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwKCSAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXIKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5vdmVybGFwcyA9IGZ1bmN0aW9uIG92ZXJsYXBzKG90aGVyKSB7CgkgICAgcmV0dXJuIHRoaXMuZSA+IG90aGVyLnMgJiYgdGhpcy5zIDwgb3RoZXIuZTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uYWJ1dHNTdGFydCA9IGZ1bmN0aW9uIGFidXRzU3RhcnQob3RoZXIpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlOwoJICAgIHJldHVybiArdGhpcy5lID09PSArb3RoZXIuczsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBlbmQuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uYWJ1dHNFbmQgPSBmdW5jdGlvbiBhYnV0c0VuZChvdGhlcikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgkgICAgcmV0dXJuICtvdGhlci5lID09PSArdGhpcy5zOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGVuZ3VsZnMgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KCSAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXIKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5lbmd1bGZzID0gZnVuY3Rpb24gZW5ndWxmcyhvdGhlcikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7CgkgICAgcmV0dXJuIHRoaXMucyA8PSBvdGhlci5zICYmIHRoaXMuZSA+PSBvdGhlci5lOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGhhcyB0aGUgc2FtZSBzdGFydCBhbmQgZW5kIGFzIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzKG90aGVyKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBmYWxzZTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLnMuZXF1YWxzKG90aGVyLnMpICYmIHRoaXMuZS5lcXVhbHMob3RoZXIuZSk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIGludGVyc2VjdGlvbiBvZiB0aGlzIEludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIEludGVydmFsLgoJICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtYXhpbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtaW5pbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLgoJICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge0ludGVydmFsfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmludGVyc2VjdGlvbiA9IGZ1bmN0aW9uIGludGVyc2VjdGlvbihvdGhlcikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgcyA9IHRoaXMucyA+IG90aGVyLnMgPyB0aGlzLnMgOiBvdGhlci5zLAoJICAgICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7CgoJICAgIGlmIChzID49IGUpIHsKCSAgICAgIHJldHVybiBudWxsOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBlKTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCgkgICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1pbmltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1heGltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuCgkgICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyCgkgICAqIEByZXR1cm4ge0ludGVydmFsfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnVuaW9uID0gZnVuY3Rpb24gdW5pb24ob3RoZXIpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIHMgPSB0aGlzLnMgPCBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucywKCSAgICAgICAgZSA9IHRoaXMuZSA+IG90aGVyLmUgPyB0aGlzLmUgOiBvdGhlci5lOwoJICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpOwoJICB9CgkgIC8qKgoJICAgKiBNZXJnZSBhbiBhcnJheSBvZiBJbnRlcnZhbHMgaW50byBhIGVxdWl2YWxlbnQgbWluaW1hbCBzZXQgb2YgSW50ZXJ2YWxzLgoJICAgKiBDb21iaW5lcyBvdmVybGFwcGluZyBhbmQgYWRqYWNlbnQgSW50ZXJ2YWxzLgoJICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHMKCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC5tZXJnZSA9IGZ1bmN0aW9uIG1lcmdlKGludGVydmFscykgewoJICAgIHZhciBfaW50ZXJ2YWxzJHNvcnQkcmVkdWMgPSBpbnRlcnZhbHMuc29ydChmdW5jdGlvbiAoYSwgYikgewoJICAgICAgcmV0dXJuIGEucyAtIGIuczsKCSAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKF9yZWYyLCBpdGVtKSB7CgkgICAgICB2YXIgc29mYXIgPSBfcmVmMlswXSwKCSAgICAgICAgICBjdXJyZW50ID0gX3JlZjJbMV07CgoJICAgICAgaWYgKCFjdXJyZW50KSB7CgkgICAgICAgIHJldHVybiBbc29mYXIsIGl0ZW1dOwoJICAgICAgfSBlbHNlIGlmIChjdXJyZW50Lm92ZXJsYXBzKGl0ZW0pIHx8IGN1cnJlbnQuYWJ1dHNTdGFydChpdGVtKSkgewoJICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIHJldHVybiBbc29mYXIuY29uY2F0KFtjdXJyZW50XSksIGl0ZW1dOwoJICAgICAgfQoJICAgIH0sIFtbXSwgbnVsbF0pLAoJICAgICAgICBmb3VuZCA9IF9pbnRlcnZhbHMkc29ydCRyZWR1Y1swXSwKCSAgICAgICAgZmluYWwgPSBfaW50ZXJ2YWxzJHNvcnQkcmVkdWNbMV07CgoJICAgIGlmIChmaW5hbCkgewoJICAgICAgZm91bmQucHVzaChmaW5hbCk7CgkgICAgfQoKCSAgICByZXR1cm4gZm91bmQ7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhbiBhcnJheSBvZiBJbnRlcnZhbHMgcmVwcmVzZW50aW5nIHRoZSBzcGFucyBvZiB0aW1lIHRoYXQgb25seSBhcHBlYXIgaW4gb25lIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxzLgoJICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHMKCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbnRlcnZhbC54b3IgPSBmdW5jdGlvbiB4b3IoaW50ZXJ2YWxzKSB7CgkgICAgdmFyIF9BcnJheSRwcm90b3R5cGU7CgoJICAgIHZhciBzdGFydCA9IG51bGwsCgkgICAgICAgIGN1cnJlbnRDb3VudCA9IDA7CgoJICAgIHZhciByZXN1bHRzID0gW10sCgkgICAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKGZ1bmN0aW9uIChpKSB7CgkgICAgICByZXR1cm4gW3sKCSAgICAgICAgdGltZTogaS5zLAoJICAgICAgICB0eXBlOiAicyIKCSAgICAgIH0sIHsKCSAgICAgICAgdGltZTogaS5lLAoJICAgICAgICB0eXBlOiAiZSIKCSAgICAgIH1dOwoJICAgIH0pLAoJICAgICAgICBmbGF0dGVuZWQgPSAoX0FycmF5JHByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZSkuY29uY2F0LmFwcGx5KF9BcnJheSRwcm90b3R5cGUsIGVuZHMpLAoJICAgICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydChmdW5jdGlvbiAoYSwgYikgewoJICAgICAgcmV0dXJuIGEudGltZSAtIGIudGltZTsKCSAgICB9KTsKCgkgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShhcnIpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykgewoJICAgICAgdmFyIGkgPSBfc3RlcC52YWx1ZTsKCSAgICAgIGN1cnJlbnRDb3VudCArPSBpLnR5cGUgPT09ICJzIiA/IDEgOiAtMTsKCgkgICAgICBpZiAoY3VycmVudENvdW50ID09PSAxKSB7CgkgICAgICAgIHN0YXJ0ID0gaS50aW1lOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgaWYgKHN0YXJ0ICYmICtzdGFydCAhPT0gK2kudGltZSkgewoJICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTsKCSAgICAgICAgfQoKCSAgICAgICAgc3RhcnQgPSBudWxsOwoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIEludGVydmFsLm1lcmdlKHJlc3VsdHMpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy4KCSAgICogQHBhcmFtIHsuLi5JbnRlcnZhbH0gaW50ZXJ2YWxzCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmRpZmZlcmVuY2UgPSBmdW5jdGlvbiBkaWZmZXJlbmNlKCkgewoJICAgIHZhciBfdGhpczIgPSB0aGlzOwoKCSAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGludGVydmFscyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykgewoJICAgICAgaW50ZXJ2YWxzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07CgkgICAgfQoKCSAgICByZXR1cm4gSW50ZXJ2YWwueG9yKFt0aGlzXS5jb25jYXQoaW50ZXJ2YWxzKSkubWFwKGZ1bmN0aW9uIChpKSB7CgkgICAgICByZXR1cm4gX3RoaXMyLmludGVyc2VjdGlvbihpKTsKCSAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGkpIHsKCSAgICAgIHJldHVybiBpICYmICFpLmlzRW1wdHkoKTsKCSAgICB9KTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmcuCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwoJICAgIHJldHVybiAiWyIgKyB0aGlzLnMudG9JU08oKSArICIgXHUyMDEzICIgKyB0aGlzLmUudG9JU08oKSArICIpIjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwuCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT30KCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSVNPID0gZnVuY3Rpb24gdG9JU08ob3B0cykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwoJICAgIHJldHVybiB0aGlzLnMudG9JU08ob3B0cykgKyAiLyIgKyB0aGlzLmUudG9JU08ob3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuCgkgICAqIFRoZSB0aW1lIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuCgkgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHMKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSVNPRGF0ZSA9IGZ1bmN0aW9uIHRvSVNPRGF0ZSgpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKCSAgICByZXR1cm4gdGhpcy5zLnRvSVNPRGF0ZSgpICsgIi8iICsgdGhpcy5lLnRvSVNPRGF0ZSgpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGltZSBvZiB0aGlzIEludGVydmFsLgoJICAgKiBUaGUgZGF0ZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLgoJICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099CgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT1RpbWUgPSBmdW5jdGlvbiB0b0lTT1RpbWUob3B0cykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRCQxOwoJICAgIHJldHVybiB0aGlzLnMudG9JU09UaW1lKG9wdHMpICsgIi8iICsgdGhpcy5lLnRvSVNPVGltZShvcHRzKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0ZUZvcm1hdCAtIHRoZSBmb3JtYXQgc3RyaW5nLiBUaGlzIHN0cmluZyBmb3JtYXRzIHRoZSBzdGFydCBhbmQgZW5kIHRpbWUuIFNlZSB7QGxpbmsgRGF0ZVRpbWUjdG9Gb3JtYXR9IGZvciBkZXRhaWxzLgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLnNlcGFyYXRvciA9ICAnIOKAkyAnXSAtIGEgc2VwYXJhdG9yIHRvIHBsYWNlIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgcmVwcmVzZW50YXRpb25zCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0Zvcm1hdCA9IGZ1bmN0aW9uIHRvRm9ybWF0KGRhdGVGb3JtYXQsIF90ZW1wMikgewoJICAgIHZhciBfcmVmMyA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDIsCgkgICAgICAgIF9yZWYzJHNlcGFyYXRvciA9IF9yZWYzLnNlcGFyYXRvciwKCSAgICAgICAgc2VwYXJhdG9yID0gX3JlZjMkc2VwYXJhdG9yID09PSB2b2lkIDAgPyAiIOKAkyAiIDogX3JlZjMkc2VwYXJhdG9yOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQkMTsKCSAgICByZXR1cm4gIiIgKyB0aGlzLnMudG9Gb3JtYXQoZGF0ZUZvcm1hdCkgKyBzZXBhcmF0b3IgKyB0aGlzLmUudG9Gb3JtYXQoZGF0ZUZvcm1hdCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiBhIER1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBzcGFubmVkIGJ5IHRoaXMgaW50ZXJ2YWwuCgkgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi4KCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb24KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlCgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDg4NDg5MjU3IH0KCSAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9CgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQuODIwOTUgfQoJICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcycsICdzZWNvbmRzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQsIHNlY29uZHM6IDQ5LjI1NyB9CgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfQoJICAgKiBAcmV0dXJuIHtEdXJhdGlvbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0R1cmF0aW9uID0gZnVuY3Rpb24gdG9EdXJhdGlvbih1bml0LCBvcHRzKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKHRoaXMuaW52YWxpZFJlYXNvbik7CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5lLmRpZmYodGhpcy5zLCB1bml0LCBvcHRzKTsKCSAgfQoJICAvKioKCSAgICogUnVuIG1hcEZuIG9uIHRoZSBpbnRlcnZhbCBzdGFydCBhbmQgZW5kLCByZXR1cm5pbmcgYSBuZXcgSW50ZXJ2YWwgZnJvbSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lcwoJICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGbgoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnRvVVRDKCkpCgkgICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpCgkgICAqLwoJICA7CgoJICBfcHJvdG8ubWFwRW5kcG9pbnRzID0gZnVuY3Rpb24gbWFwRW5kcG9pbnRzKG1hcEZuKSB7CgkgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMobWFwRm4odGhpcy5zKSwgbWFwRm4odGhpcy5lKSk7CgkgIH07CgoJICBfY3JlYXRlQ2xhc3MoSW50ZXJ2YWwsIFt7CgkgICAga2V5OiAic3RhcnQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgdGhlIGVuZCBvZiB0aGUgSW50ZXJ2YWwKCSAgICAgKiBAdHlwZSB7RGF0ZVRpbWV9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZW5kIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhdCBsZWFzdCBpdHMgc3RhcnQsIG1lYW5pbmcgdGhhdCB0aGUgSW50ZXJ2YWwgaXNuJ3QgJ2JhY2t3YXJkcycuCgkgICAgICogQHR5cGUge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNWYWxpZCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZAoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaW52YWxpZFJlYXNvbiIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpbnZhbGlkRXhwbGFuYXRpb24iLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gSW50ZXJ2YWw7Cgl9KCk7CgoJLyoqCgkgKiBUaGUgSW5mbyBjbGFzcyBjb250YWlucyBzdGF0aWMgbWV0aG9kcyBmb3IgcmV0cmlldmluZyBnZW5lcmFsIHRpbWUgYW5kIGRhdGUgcmVsYXRlZCBkYXRhLiBGb3IgZXhhbXBsZSwgaXQgaGFzIG1ldGhvZHMgZm9yIGZpbmRpbmcgb3V0IGlmIGEgdGltZSB6b25lIGhhcyBhIERTVCwgZm9yIGxpc3RpbmcgdGhlIG1vbnRocyBpbiBhbnkgc3VwcG9ydGVkIGxvY2FsZSwgYW5kIGZvciBkaXNjb3ZlcmluZyB3aGljaCBvZiBMdXhvbiBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LgoJICovCgoJdmFyIEluZm8gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICBmdW5jdGlvbiBJbmZvKCkge30KCgkgIC8qKgoJICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgY29udGFpbnMgYSBEU1QuCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS4KCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIEluZm8uaGFzRFNUID0gZnVuY3Rpb24gaGFzRFNUKHpvbmUpIHsKCSAgICBpZiAoem9uZSA9PT0gdm9pZCAwKSB7CgkgICAgICB6b25lID0gU2V0dGluZ3MuZGVmYXVsdFpvbmU7CgkgICAgfQoKCSAgICB2YXIgcHJvdG8gPSBEYXRlVGltZS5ub3coKS5zZXRab25lKHpvbmUpLnNldCh7CgkgICAgICBtb250aDogMTIKCSAgICB9KTsKCSAgICByZXR1cm4gIXpvbmUuaXNVbml2ZXJzYWwgJiYgcHJvdG8ub2Zmc2V0ICE9PSBwcm90by5zZXQoewoJICAgICAgbW9udGg6IDYKCSAgICB9KS5vZmZzZXQ7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBpcyBhIHZhbGlkIElBTkEgc3BlY2lmaWVyLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFpvbmUgdG8gY2hlY2sKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIEluZm8uaXNWYWxpZElBTkFab25lID0gZnVuY3Rpb24gaXNWYWxpZElBTkFab25lKHpvbmUpIHsKCSAgICByZXR1cm4gSUFOQVpvbmUuaXNWYWxpZFpvbmUoem9uZSk7CgkgIH0KCSAgLyoqCgkgICAqIENvbnZlcnRzIHRoZSBpbnB1dCBpbnRvIGEge0BsaW5rIFpvbmV9IGluc3RhbmNlLgoJICAgKgoJICAgKiAqIElmIGBpbnB1dGAgaXMgYWxyZWFkeSBhIFpvbmUgaW5zdGFuY2UsIGl0IGlzIHJldHVybmVkIHVuY2hhbmdlZC4KCSAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCB0aW1lIHpvbmUgbmFtZSwgYSBab25lIGluc3RhbmNlCgkgICAqICAgd2l0aCB0aGF0IG5hbWUgaXMgcmV0dXJuZWQuCgkgICAqICogSWYgYGlucHV0YCBpcyBhIHN0cmluZyB0aGF0IGRvZXNuJ3QgcmVmZXIgdG8gYSBrbm93biB0aW1lIHpvbmUsIGEgWm9uZQoJICAgKiAgIGluc3RhbmNlIHdpdGgge0BsaW5rIFpvbmUjaXNWYWxpZH0gPT0gZmFsc2UgaXMgcmV0dXJuZWQuCgkgICAqICogSWYgYGlucHV0IGlzIGEgbnVtYmVyLCBhIFpvbmUgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGZpeGVkIG9mZnNldAoJICAgKiAgIGluIG1pbnV0ZXMgaXMgcmV0dXJuZWQuCgkgICAqICogSWYgYGlucHV0YCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZSBkZWZhdWx0IHpvbmUgaXMgcmV0dXJuZWQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV8bnVtYmVyfSBbaW5wdXRdIC0gdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZAoJICAgKiBAcmV0dXJuIHtab25lfQoJICAgKi8KCSAgOwoKCSAgSW5mby5ub3JtYWxpemVab25lID0gZnVuY3Rpb24gbm9ybWFsaXplWm9uZSQxKGlucHV0KSB7CgkgICAgcmV0dXJuIG5vcm1hbGl6ZVpvbmUoaW5wdXQsIFNldHRpbmdzLmRlZmF1bHRab25lKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIGFuIGFycmF5IG9mIHN0YW5kYWxvbmUgbW9udGggbmFtZXMuCgkgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJudW1lcmljIiwgIjItZGlnaXQiLCAibmFycm93IiwgInNob3J0IiwgImxvbmciCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyCgkgICAqIEBleGFtcGxlIEluZm8ubW9udGhzKClbMF0gLy89PiAnSmFudWFyeScKCSAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ3Nob3J0JylbMF0gLy89PiAnSmFuJwoJICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycpWzBdIC8vPT4gJzEnCgkgICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0gKVswXSAvLz0+ICdqYW52LicKCSAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ251bWVyaWMnLCB7IGxvY2FsZTogJ2FyJyB9KVswXSAvLz0+ICfZoScKCSAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ2xvbmcnLCB7IG91dHB1dENhbGVuZGFyOiAnaXNsYW1pYycgfSlbMF0gLy89PiAnUmFiacq7IEknCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgSW5mby5tb250aHMgPSBmdW5jdGlvbiBtb250aHMobGVuZ3RoLCBfdGVtcCkgewoJICAgIGlmIChsZW5ndGggPT09IHZvaWQgMCkgewoJICAgICAgbGVuZ3RoID0gImxvbmciOwoJICAgIH0KCgkgICAgdmFyIF9yZWYgPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcCwKCSAgICAgICAgX3JlZiRsb2NhbGUgPSBfcmVmLmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZiRsb2NhbGUgPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJGxvY2FsZSwKCSAgICAgICAgX3JlZiRudW1iZXJpbmdTeXN0ZW0gPSBfcmVmLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX3JlZiRudW1iZXJpbmdTeXN0ZW0gPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJG51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgX3JlZiRsb2NPYmogPSBfcmVmLmxvY09iaiwKCSAgICAgICAgbG9jT2JqID0gX3JlZiRsb2NPYmogPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJGxvY09iaiwKCSAgICAgICAgX3JlZiRvdXRwdXRDYWxlbmRhciA9IF9yZWYub3V0cHV0Q2FsZW5kYXIsCgkgICAgICAgIG91dHB1dENhbGVuZGFyID0gX3JlZiRvdXRwdXRDYWxlbmRhciA9PT0gdm9pZCAwID8gImdyZWdvcnkiIDogX3JlZiRvdXRwdXRDYWxlbmRhcjsKCgkgICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCBtb250aCBuYW1lcy4KCSAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0CgkgICAqIGNoYW5nZXMgdGhlIHN0cmluZy4KCSAgICogU2VlIHtAbGluayBJbmZvI21vbnRoc30KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJudW1lcmljIiwgIjItZGlnaXQiLCAibmFycm93IiwgInNob3J0IiwgImxvbmciCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgSW5mby5tb250aHNGb3JtYXQgPSBmdW5jdGlvbiBtb250aHNGb3JtYXQobGVuZ3RoLCBfdGVtcDIpIHsKCSAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsKCSAgICAgIGxlbmd0aCA9ICJsb25nIjsKCSAgICB9CgoJICAgIHZhciBfcmVmMiA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDIsCgkgICAgICAgIF9yZWYyJGxvY2FsZSA9IF9yZWYyLmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZjIkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjIkbG9jYWxlLAoJICAgICAgICBfcmVmMiRudW1iZXJpbmdTeXN0ZW0gPSBfcmVmMi5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9yZWYyJG51bWJlcmluZ1N5c3RlbSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYyJG51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgX3JlZjIkbG9jT2JqID0gX3JlZjIubG9jT2JqLAoJICAgICAgICBsb2NPYmogPSBfcmVmMiRsb2NPYmogPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmMiRsb2NPYmosCgkgICAgICAgIF9yZWYyJG91dHB1dENhbGVuZGFyID0gX3JlZjIub3V0cHV0Q2FsZW5kYXIsCgkgICAgICAgIG91dHB1dENhbGVuZGFyID0gX3JlZjIkb3V0cHV0Q2FsZW5kYXIgPT09IHZvaWQgMCA/ICJncmVnb3J5IiA6IF9yZWYyJG91dHB1dENhbGVuZGFyOwoKCSAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgsIHRydWUpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSB3ZWVrIG5hbWVzLgoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSB3ZWVrZGF5IHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlCgkgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoKVswXSAvLz0+ICdNb25kYXknCgkgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JylbMF0gLy89PiAnTW9uJwoJICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0pWzBdIC8vPT4gJ2x1bi4nCgkgICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAn2KfZhNin2KvZhtmK2YYnCgkgICAqIEByZXR1cm4ge0FycmF5fQoJICAgKi8KCSAgOwoKCSAgSW5mby53ZWVrZGF5cyA9IGZ1bmN0aW9uIHdlZWtkYXlzKGxlbmd0aCwgX3RlbXAzKSB7CgkgICAgaWYgKGxlbmd0aCA9PT0gdm9pZCAwKSB7CgkgICAgICBsZW5ndGggPSAibG9uZyI7CgkgICAgfQoKCSAgICB2YXIgX3JlZjMgPSBfdGVtcDMgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAzLAoJICAgICAgICBfcmVmMyRsb2NhbGUgPSBfcmVmMy5sb2NhbGUsCgkgICAgICAgIGxvY2FsZSA9IF9yZWYzJGxvY2FsZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYzJGxvY2FsZSwKCSAgICAgICAgX3JlZjMkbnVtYmVyaW5nU3lzdGVtID0gX3JlZjMubnVtYmVyaW5nU3lzdGVtLAoJICAgICAgICBudW1iZXJpbmdTeXN0ZW0gPSBfcmVmMyRudW1iZXJpbmdTeXN0ZW0gPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmMyRudW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIF9yZWYzJGxvY09iaiA9IF9yZWYzLmxvY09iaiwKCSAgICAgICAgbG9jT2JqID0gX3JlZjMkbG9jT2JqID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjMkbG9jT2JqOwoKCSAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCB3ZWVrIG5hbWVzLgoJICAgKiBGb3JtYXQgd2Vla2RheXMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSB3ZWVrZGF5cyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gbW9yZSBkYXRlIGluZm9ybWF0aW9uLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdAoJICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuCgkgICAqIFNlZSB7QGxpbmsgSW5mbyN3ZWVrZGF5c30KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPW51bGxdIC0gdGhlIGxvY2FsZSBjb2RlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2UKCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbmZvLndlZWtkYXlzRm9ybWF0ID0gZnVuY3Rpb24gd2Vla2RheXNGb3JtYXQobGVuZ3RoLCBfdGVtcDQpIHsKCSAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsKCSAgICAgIGxlbmd0aCA9ICJsb25nIjsKCSAgICB9CgoJICAgIHZhciBfcmVmNCA9IF90ZW1wNCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDQsCgkgICAgICAgIF9yZWY0JGxvY2FsZSA9IF9yZWY0LmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZjQkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjQkbG9jYWxlLAoJICAgICAgICBfcmVmNCRudW1iZXJpbmdTeXN0ZW0gPSBfcmVmNC5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9yZWY0JG51bWJlcmluZ1N5c3RlbSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWY0JG51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgX3JlZjQkbG9jT2JqID0gX3JlZjQubG9jT2JqLAoJICAgICAgICBsb2NPYmogPSBfcmVmNCRsb2NPYmogPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmNCRsb2NPYmo7CgoJICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgsIHRydWUpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgbWVyaWRpZW1zLgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGUKCSAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoKSAvLz0+IFsgJ0FNJywgJ1BNJyBdCgkgICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKHsgbG9jYWxlOiAnbXknIH0pIC8vPT4gWyAn4YCU4YC24YCU4YCA4YC6JywgJ+GAiuGAlOGAsScgXQoJICAgKiBAcmV0dXJuIHtBcnJheX0KCSAgICovCgkgIDsKCgkgIEluZm8ubWVyaWRpZW1zID0gZnVuY3Rpb24gbWVyaWRpZW1zKF90ZW1wNSkgewoJICAgIHZhciBfcmVmNSA9IF90ZW1wNSA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDUsCgkgICAgICAgIF9yZWY1JGxvY2FsZSA9IF9yZWY1LmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX3JlZjUkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZjUkbG9jYWxlOwoKCSAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUpLm1lcmlkaWVtcygpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZXJhcywgc3VjaCBhcyBbJ0JDJywgJ0FEJ10uIFRoZSBsb2NhbGUgY2FuIGJlIHNwZWNpZmllZCwgYnV0IHRoZSBjYWxlbmRhciBzeXN0ZW0gaXMgYWx3YXlzIEdyZWdvcmlhbi4KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J3Nob3J0J10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBlcmEgcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgInNob3J0IiBvciAibG9uZyIuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZQoJICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoKSAvLz0+IFsgJ0JDJywgJ0FEJyBdCgkgICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycpIC8vPT4gWyAnQmVmb3JlIENocmlzdCcsICdBbm5vIERvbWluaScgXQoJICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnLCB7IGxvY2FsZTogJ2ZyJyB9KSAvLz0+IFsgJ2F2YW50IErDqXN1cy1DaHJpc3QnLCAnYXByw6hzIErDqXN1cy1DaHJpc3QnIF0KCSAgICogQHJldHVybiB7QXJyYXl9CgkgICAqLwoJICA7CgoJICBJbmZvLmVyYXMgPSBmdW5jdGlvbiBlcmFzKGxlbmd0aCwgX3RlbXA2KSB7CgkgICAgaWYgKGxlbmd0aCA9PT0gdm9pZCAwKSB7CgkgICAgICBsZW5ndGggPSAic2hvcnQiOwoJICAgIH0KCgkgICAgdmFyIF9yZWY2ID0gX3RlbXA2ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNiwKCSAgICAgICAgX3JlZjYkbG9jYWxlID0gX3JlZjYubG9jYWxlLAoJICAgICAgICBsb2NhbGUgPSBfcmVmNiRsb2NhbGUgPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmNiRsb2NhbGU7CgoJICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgImdyZWdvcnkiKS5lcmFzKGxlbmd0aCk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBmZWF0dXJlcyBpbiB0aGlzIGVudmlyb25tZW50LgoJICAgKiBTb21lIGZlYXR1cmVzIG9mIEx1eG9uIGFyZSBub3QgYXZhaWxhYmxlIGluIGFsbCBlbnZpcm9ubWVudHMuIEZvciBleGFtcGxlLCBvbiBvbGRlciBicm93c2VycywgcmVsYXRpdmUgdGltZSBmb3JtYXR0aW5nIHN1cHBvcnQgaXMgbm90IGF2YWlsYWJsZS4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gZmlndXJlIG91dCBpZiB0aGF0J3MgdGhlIGNhc2UuCgkgICAqIEtleXM6CgkgICAqICogYHJlbGF0aXZlYDogd2hldGhlciB0aGlzIGVudmlyb25tZW50IHN1cHBvcnRzIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZwoJICAgKiBAZXhhbXBsZSBJbmZvLmZlYXR1cmVzKCkgLy89PiB7IHJlbGF0aXZlOiBmYWxzZSB9CgkgICAqIEByZXR1cm4ge09iamVjdH0KCSAgICovCgkgIDsKCgkgIEluZm8uZmVhdHVyZXMgPSBmdW5jdGlvbiBmZWF0dXJlcygpIHsKCSAgICByZXR1cm4gewoJICAgICAgcmVsYXRpdmU6IGhhc1JlbGF0aXZlKCkKCSAgICB9OwoJICB9OwoKCSAgcmV0dXJuIEluZm87Cgl9KCk7CgoJZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikgewoJICB2YXIgdXRjRGF5U3RhcnQgPSBmdW5jdGlvbiB1dGNEYXlTdGFydChkdCkgewoJICAgIHJldHVybiBkdC50b1VUQygwLCB7CgkgICAgICBrZWVwTG9jYWxUaW1lOiB0cnVlCgkgICAgfSkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpOwoJICB9LAoJICAgICAgbXMgPSB1dGNEYXlTdGFydChsYXRlcikgLSB1dGNEYXlTdGFydChlYXJsaWVyKTsKCgkgIHJldHVybiBNYXRoLmZsb29yKER1cmF0aW9uLmZyb21NaWxsaXMobXMpLmFzKCJkYXlzIikpOwoJfQoKCWZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7CgkgIHZhciBkaWZmZXJzID0gW1sieWVhcnMiLCBmdW5jdGlvbiAoYSwgYikgewoJICAgIHJldHVybiBiLnllYXIgLSBhLnllYXI7CgkgIH1dLCBbInF1YXJ0ZXJzIiwgZnVuY3Rpb24gKGEsIGIpIHsKCSAgICByZXR1cm4gYi5xdWFydGVyIC0gYS5xdWFydGVyOwoJICB9XSwgWyJtb250aHMiLCBmdW5jdGlvbiAoYSwgYikgewoJICAgIHJldHVybiBiLm1vbnRoIC0gYS5tb250aCArIChiLnllYXIgLSBhLnllYXIpICogMTI7CgkgIH1dLCBbIndlZWtzIiwgZnVuY3Rpb24gKGEsIGIpIHsKCSAgICB2YXIgZGF5cyA9IGRheURpZmYoYSwgYik7CgkgICAgcmV0dXJuIChkYXlzIC0gZGF5cyAlIDcpIC8gNzsKCSAgfV0sIFsiZGF5cyIsIGRheURpZmZdXTsKCSAgdmFyIHJlc3VsdHMgPSB7fTsKCSAgdmFyIGxvd2VzdE9yZGVyLCBoaWdoV2F0ZXI7CgoJICBmb3IgKHZhciBfaSA9IDAsIF9kaWZmZXJzID0gZGlmZmVyczsgX2kgPCBfZGlmZmVycy5sZW5ndGg7IF9pKyspIHsKCSAgICB2YXIgX2RpZmZlcnMkX2kgPSBfZGlmZmVyc1tfaV0sCgkgICAgICAgIHVuaXQgPSBfZGlmZmVycyRfaVswXSwKCSAgICAgICAgZGlmZmVyID0gX2RpZmZlcnMkX2lbMV07CgoJICAgIGlmICh1bml0cy5pbmRleE9mKHVuaXQpID49IDApIHsKCSAgICAgIHZhciBfY3Vyc29yJHBsdXM7CgoJICAgICAgbG93ZXN0T3JkZXIgPSB1bml0OwoJICAgICAgdmFyIGRlbHRhID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpOwoJICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoKF9jdXJzb3IkcGx1cyA9IHt9LCBfY3Vyc29yJHBsdXNbdW5pdF0gPSBkZWx0YSwgX2N1cnNvciRwbHVzKSk7CgoJICAgICAgaWYgKGhpZ2hXYXRlciA+IGxhdGVyKSB7CgkgICAgICAgIHZhciBfY3Vyc29yJHBsdXMyOwoKCSAgICAgICAgY3Vyc29yID0gY3Vyc29yLnBsdXMoKF9jdXJzb3IkcGx1czIgPSB7fSwgX2N1cnNvciRwbHVzMlt1bml0XSA9IGRlbHRhIC0gMSwgX2N1cnNvciRwbHVzMikpOwoJICAgICAgICBkZWx0YSAtPSAxOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgY3Vyc29yID0gaGlnaFdhdGVyOwoJICAgICAgfQoKCSAgICAgIHJlc3VsdHNbdW5pdF0gPSBkZWx0YTsKCSAgICB9CgkgIH0KCgkgIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTsKCX0KCglmdW5jdGlvbiBfZGlmZiAoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBvcHRzKSB7CgkgIHZhciBfaGlnaE9yZGVyRGlmZnMgPSBoaWdoT3JkZXJEaWZmcyhlYXJsaWVyLCBsYXRlciwgdW5pdHMpLAoJICAgICAgY3Vyc29yID0gX2hpZ2hPcmRlckRpZmZzWzBdLAoJICAgICAgcmVzdWx0cyA9IF9oaWdoT3JkZXJEaWZmc1sxXSwKCSAgICAgIGhpZ2hXYXRlciA9IF9oaWdoT3JkZXJEaWZmc1syXSwKCSAgICAgIGxvd2VzdE9yZGVyID0gX2hpZ2hPcmRlckRpZmZzWzNdOwoKCSAgdmFyIHJlbWFpbmluZ01pbGxpcyA9IGxhdGVyIC0gY3Vyc29yOwoJICB2YXIgbG93ZXJPcmRlclVuaXRzID0gdW5pdHMuZmlsdGVyKGZ1bmN0aW9uICh1KSB7CgkgICAgcmV0dXJuIFsiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIiwgIm1pbGxpc2Vjb25kcyJdLmluZGV4T2YodSkgPj0gMDsKCSAgfSk7CgoJICBpZiAobG93ZXJPcmRlclVuaXRzLmxlbmd0aCA9PT0gMCkgewoJICAgIGlmIChoaWdoV2F0ZXIgPCBsYXRlcikgewoJICAgICAgdmFyIF9jdXJzb3IkcGx1czM7CgoJICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoKF9jdXJzb3IkcGx1czMgPSB7fSwgX2N1cnNvciRwbHVzM1tsb3dlc3RPcmRlcl0gPSAxLCBfY3Vyc29yJHBsdXMzKSk7CgkgICAgfQoKCSAgICBpZiAoaGlnaFdhdGVyICE9PSBjdXJzb3IpIHsKCSAgICAgIHJlc3VsdHNbbG93ZXN0T3JkZXJdID0gKHJlc3VsdHNbbG93ZXN0T3JkZXJdIHx8IDApICsgcmVtYWluaW5nTWlsbGlzIC8gKGhpZ2hXYXRlciAtIGN1cnNvcik7CgkgICAgfQoJICB9CgoJICB2YXIgZHVyYXRpb24gPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHJlc3VsdHMsIG9wdHMpOwoKCSAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPiAwKSB7CgkgICAgdmFyIF9EdXJhdGlvbiRmcm9tTWlsbGlzOwoKCSAgICByZXR1cm4gKF9EdXJhdGlvbiRmcm9tTWlsbGlzID0gRHVyYXRpb24uZnJvbU1pbGxpcyhyZW1haW5pbmdNaWxsaXMsIG9wdHMpKS5zaGlmdFRvLmFwcGx5KF9EdXJhdGlvbiRmcm9tTWlsbGlzLCBsb3dlck9yZGVyVW5pdHMpLnBsdXMoZHVyYXRpb24pOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBkdXJhdGlvbjsKCSAgfQoJfQoKCXZhciBudW1iZXJpbmdTeXN0ZW1zID0gewoJICBhcmFiOiAiW1x1MDY2MC1cdTA2NjldIiwKCSAgYXJhYmV4dDogIltcdTA2RjAtXHUwNkY5XSIsCgkgIGJhbGk6ICJbXHUxQjUwLVx1MUI1OV0iLAoJICBiZW5nOiAiW1x1MDlFNi1cdTA5RUZdIiwKCSAgZGV2YTogIltcdTA5NjYtXHUwOTZGXSIsCgkgIGZ1bGx3aWRlOiAiW1x1RkYxMC1cdUZGMTldIiwKCSAgZ3VqcjogIltcdTBBRTYtXHUwQUVGXSIsCgkgIGhhbmlkZWM6ICJb44CHfOS4gHzkuox85LiJfOWbm3zkupR85YWtfOS4g3zlhat85LmdXSIsCgkgIGtobXI6ICJbXHUxN0UwLVx1MTdFOV0iLAoJICBrbmRhOiAiW1x1MENFNi1cdTBDRUZdIiwKCSAgbGFvbzogIltcdTBFRDAtXHUwRUQ5XSIsCgkgIGxpbWI6ICJbXHUxOTQ2LVx1MTk0Rl0iLAoJICBtbHltOiAiW1x1MEQ2Ni1cdTBENkZdIiwKCSAgbW9uZzogIltcdTE4MTAtXHUxODE5XSIsCgkgIG15bXI6ICJbXHUxMDQwLVx1MTA0OV0iLAoJICBvcnlhOiAiW1x1MEI2Ni1cdTBCNkZdIiwKCSAgdGFtbGRlYzogIltcdTBCRTYtXHUwQkVGXSIsCgkgIHRlbHU6ICJbXHUwQzY2LVx1MEM2Rl0iLAoJICB0aGFpOiAiW1x1MEU1MC1cdTBFNTldIiwKCSAgdGlidDogIltcdTBGMjAtXHUwRjI5XSIsCgkgIGxhdG46ICJcXGQiCgl9OwoJdmFyIG51bWJlcmluZ1N5c3RlbXNVVEYxNiA9IHsKCSAgYXJhYjogWzE2MzIsIDE2NDFdLAoJICBhcmFiZXh0OiBbMTc3NiwgMTc4NV0sCgkgIGJhbGk6IFs2OTkyLCA3MDAxXSwKCSAgYmVuZzogWzI1MzQsIDI1NDNdLAoJICBkZXZhOiBbMjQwNiwgMjQxNV0sCgkgIGZ1bGx3aWRlOiBbNjUyOTYsIDY1MzAzXSwKCSAgZ3VqcjogWzI3OTAsIDI3OTldLAoJICBraG1yOiBbNjExMiwgNjEyMV0sCgkgIGtuZGE6IFszMzAyLCAzMzExXSwKCSAgbGFvbzogWzM3OTIsIDM4MDFdLAoJICBsaW1iOiBbNjQ3MCwgNjQ3OV0sCgkgIG1seW06IFszNDMwLCAzNDM5XSwKCSAgbW9uZzogWzYxNjAsIDYxNjldLAoJICBteW1yOiBbNDE2MCwgNDE2OV0sCgkgIG9yeWE6IFsyOTE4LCAyOTI3XSwKCSAgdGFtbGRlYzogWzMwNDYsIDMwNTVdLAoJICB0ZWx1OiBbMzE3NCwgMzE4M10sCgkgIHRoYWk6IFszNjY0LCAzNjczXSwKCSAgdGlidDogWzM4NzIsIDM4ODFdCgl9OwoJdmFyIGhhbmlkZWNDaGFycyA9IG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYy5yZXBsYWNlKC9bXFt8XF1dL2csICIiKS5zcGxpdCgiIik7CglmdW5jdGlvbiBwYXJzZURpZ2l0cyhzdHIpIHsKCSAgdmFyIHZhbHVlID0gcGFyc2VJbnQoc3RyLCAxMCk7CgoJICBpZiAoaXNOYU4odmFsdWUpKSB7CgkgICAgdmFsdWUgPSAiIjsKCgkgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHsKCSAgICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7CgoJICAgICAgaWYgKHN0cltpXS5zZWFyY2gobnVtYmVyaW5nU3lzdGVtcy5oYW5pZGVjKSAhPT0gLTEpIHsKCSAgICAgICAgdmFsdWUgKz0gaGFuaWRlY0NoYXJzLmluZGV4T2Yoc3RyW2ldKTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIGZvciAodmFyIGtleSBpbiBudW1iZXJpbmdTeXN0ZW1zVVRGMTYpIHsKCSAgICAgICAgICB2YXIgX251bWJlcmluZ1N5c3RlbXNVVEYgPSBudW1iZXJpbmdTeXN0ZW1zVVRGMTZba2V5XSwKCSAgICAgICAgICAgICAgbWluID0gX251bWJlcmluZ1N5c3RlbXNVVEZbMF0sCgkgICAgICAgICAgICAgIG1heCA9IF9udW1iZXJpbmdTeXN0ZW1zVVRGWzFdOwoKCSAgICAgICAgICBpZiAoY29kZSA+PSBtaW4gJiYgY29kZSA8PSBtYXgpIHsKCSAgICAgICAgICAgIHZhbHVlICs9IGNvZGUgLSBtaW47CgkgICAgICAgICAgfQoJICAgICAgICB9CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gdmFsdWU7CgkgIH0KCX0KCWZ1bmN0aW9uIGRpZ2l0UmVnZXgoX3JlZiwgYXBwZW5kKSB7CgkgIHZhciBudW1iZXJpbmdTeXN0ZW0gPSBfcmVmLm51bWJlcmluZ1N5c3RlbTsKCgkgIGlmIChhcHBlbmQgPT09IHZvaWQgMCkgewoJICAgIGFwcGVuZCA9ICIiOwoJICB9CgoJICByZXR1cm4gbmV3IFJlZ0V4cCgiIiArIG51bWJlcmluZ1N5c3RlbXNbbnVtYmVyaW5nU3lzdGVtIHx8ICJsYXRuIl0gKyBhcHBlbmQpOwoJfQoKCXZhciBNSVNTSU5HX0ZUUCA9ICJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0IjsKCglmdW5jdGlvbiBpbnRVbml0KHJlZ2V4LCBwb3N0KSB7CgkgIGlmIChwb3N0ID09PSB2b2lkIDApIHsKCSAgICBwb3N0ID0gZnVuY3Rpb24gcG9zdChpKSB7CgkgICAgICByZXR1cm4gaTsKCSAgICB9OwoJICB9CgoJICByZXR1cm4gewoJICAgIHJlZ2V4OiByZWdleCwKCSAgICBkZXNlcjogZnVuY3Rpb24gZGVzZXIoX3JlZikgewoJICAgICAgdmFyIHMgPSBfcmVmWzBdOwoJICAgICAgcmV0dXJuIHBvc3QocGFyc2VEaWdpdHMocykpOwoJICAgIH0KCSAgfTsKCX0KCgl2YXIgTkJTUCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTsKCXZhciBzcGFjZU9yTkJTUCA9ICJbICIgKyBOQlNQICsgIl0iOwoJdmFyIHNwYWNlT3JOQlNQUmVnRXhwID0gbmV3IFJlZ0V4cChzcGFjZU9yTkJTUCwgImciKTsKCglmdW5jdGlvbiBmaXhMaXN0UmVnZXgocykgewoJICAvLyBtYWtlIGRvdHMgb3B0aW9uYWwgYW5kIGFsc28gbWFrZSB0aGVtIGxpdGVyYWwKCSAgLy8gbWFrZSBzcGFjZSBhbmQgbm9uIGJyZWFrYWJsZSBzcGFjZSBjaGFyYWN0ZXJzIGludGVyY2hhbmdlYWJsZQoJICByZXR1cm4gcy5yZXBsYWNlKC9cLi9nLCAiXFwuPyIpLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIHNwYWNlT3JOQlNQKTsKCX0KCglmdW5jdGlvbiBzdHJpcEluc2Vuc2l0aXZpdGllcyhzKSB7CgkgIHJldHVybiBzLnJlcGxhY2UoL1wuL2csICIiKSAvLyBpZ25vcmUgZG90cyB0aGF0IHdlcmUgbWFkZSBvcHRpb25hbAoJICAucmVwbGFjZShzcGFjZU9yTkJTUFJlZ0V4cCwgIiAiKSAvLyBpbnRlcmNoYW5nZSBzcGFjZSBhbmQgbmJzcAoJICAudG9Mb3dlckNhc2UoKTsKCX0KCglmdW5jdGlvbiBvbmVPZihzdHJpbmdzLCBzdGFydEluZGV4KSB7CgkgIGlmIChzdHJpbmdzID09PSBudWxsKSB7CgkgICAgcmV0dXJuIG51bGw7CgkgIH0gZWxzZSB7CgkgICAgcmV0dXJuIHsKCSAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKCJ8IikpLAoJICAgICAgZGVzZXI6IGZ1bmN0aW9uIGRlc2VyKF9yZWYyKSB7CgkgICAgICAgIHZhciBzID0gX3JlZjJbMF07CgkgICAgICAgIHJldHVybiBzdHJpbmdzLmZpbmRJbmRleChmdW5jdGlvbiAoaSkgewoJICAgICAgICAgIHJldHVybiBzdHJpcEluc2Vuc2l0aXZpdGllcyhzKSA9PT0gc3RyaXBJbnNlbnNpdGl2aXRpZXMoaSk7CgkgICAgICAgIH0pICsgc3RhcnRJbmRleDsKCSAgICAgIH0KCSAgICB9OwoJICB9Cgl9CgoJZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHsKCSAgcmV0dXJuIHsKCSAgICByZWdleDogcmVnZXgsCgkgICAgZGVzZXI6IGZ1bmN0aW9uIGRlc2VyKF9yZWYzKSB7CgkgICAgICB2YXIgaCA9IF9yZWYzWzFdLAoJICAgICAgICAgIG0gPSBfcmVmM1syXTsKCSAgICAgIHJldHVybiBzaWduZWRPZmZzZXQoaCwgbSk7CgkgICAgfSwKCSAgICBncm91cHM6IGdyb3VwcwoJICB9OwoJfQoKCWZ1bmN0aW9uIHNpbXBsZShyZWdleCkgewoJICByZXR1cm4gewoJICAgIHJlZ2V4OiByZWdleCwKCSAgICBkZXNlcjogZnVuY3Rpb24gZGVzZXIoX3JlZjQpIHsKCSAgICAgIHZhciBzID0gX3JlZjRbMF07CgkgICAgICByZXR1cm4gczsKCSAgICB9CgkgIH07Cgl9CgoJZnVuY3Rpb24gZXNjYXBlVG9rZW4odmFsdWUpIHsKCSAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1tcLVxbXF17fSgpKis/LixcXFxeJHwjXHNdL2csICJcXCQmIik7Cgl9CgoJZnVuY3Rpb24gdW5pdEZvclRva2VuKHRva2VuLCBsb2MpIHsKCSAgdmFyIG9uZSA9IGRpZ2l0UmVnZXgobG9jKSwKCSAgICAgIHR3byA9IGRpZ2l0UmVnZXgobG9jLCAiezJ9IiksCgkgICAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCAiezN9IiksCgkgICAgICBmb3VyID0gZGlnaXRSZWdleChsb2MsICJ7NH0iKSwKCSAgICAgIHNpeCA9IGRpZ2l0UmVnZXgobG9jLCAiezZ9IiksCgkgICAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCAiezEsMn0iKSwKCSAgICAgIG9uZVRvVGhyZWUgPSBkaWdpdFJlZ2V4KGxvYywgInsxLDN9IiksCgkgICAgICBvbmVUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCAiezEsNn0iKSwKCSAgICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCAiezEsOX0iKSwKCSAgICAgIHR3b1RvRm91ciA9IGRpZ2l0UmVnZXgobG9jLCAiezIsNH0iKSwKCSAgICAgIGZvdXJUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCAiezQsNn0iKSwKCSAgICAgIGxpdGVyYWwgPSBmdW5jdGlvbiBsaXRlcmFsKHQpIHsKCSAgICByZXR1cm4gewoJICAgICAgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLAoJICAgICAgZGVzZXI6IGZ1bmN0aW9uIGRlc2VyKF9yZWY1KSB7CgkgICAgICAgIHZhciBzID0gX3JlZjVbMF07CgkgICAgICAgIHJldHVybiBzOwoJICAgICAgfSwKCSAgICAgIGxpdGVyYWw6IHRydWUKCSAgICB9OwoJICB9LAoJICAgICAgdW5pdGF0ZSA9IGZ1bmN0aW9uIHVuaXRhdGUodCkgewoJICAgIGlmICh0b2tlbi5saXRlcmFsKSB7CgkgICAgICByZXR1cm4gbGl0ZXJhbCh0KTsKCSAgICB9CgoJICAgIHN3aXRjaCAodC52YWwpIHsKCSAgICAgIC8vIGVyYQoJICAgICAgY2FzZSAiRyI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcygic2hvcnQiLCBmYWxzZSksIDApOwoKCSAgICAgIGNhc2UgIkdHIjoKCSAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5lcmFzKCJsb25nIiwgZmFsc2UpLCAwKTsKCSAgICAgIC8vIHllYXJzCgoJICAgICAgY2FzZSAieSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvU2l4KTsKCgkgICAgICBjYXNlICJ5eSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpOwoKCSAgICAgIGNhc2UgInl5eXkiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTsKCgkgICAgICBjYXNlICJ5eXl5eSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXJUb1NpeCk7CgoJICAgICAgY2FzZSAieXl5eXl5IjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQoc2l4KTsKCSAgICAgIC8vIG1vbnRocwoKCSAgICAgIGNhc2UgIk0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAiTU0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgIk1NTSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJzaG9ydCIsIHRydWUsIGZhbHNlKSwgMSk7CgoJICAgICAgY2FzZSAiTU1NTSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKCJsb25nIiwgdHJ1ZSwgZmFsc2UpLCAxKTsKCgkgICAgICBjYXNlICJMIjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pOwoKCSAgICAgIGNhc2UgIkxMIjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTsKCgkgICAgICBjYXNlICJMTEwiOgoJICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocygic2hvcnQiLCBmYWxzZSwgZmFsc2UpLCAxKTsKCgkgICAgICBjYXNlICJMTExMIjoKCSAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoImxvbmciLCBmYWxzZSwgZmFsc2UpLCAxKTsKCSAgICAgIC8vIGRhdGVzCgoJICAgICAgY2FzZSAiZCI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKCgkgICAgICBjYXNlICJkZCI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CgkgICAgICAvLyBvcmRpbmFscwoKCSAgICAgIGNhc2UgIm8iOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1RocmVlKTsKCgkgICAgICBjYXNlICJvb28iOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7CgkgICAgICAvLyB0aW1lCgoJICAgICAgY2FzZSAiSEgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgIkgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAiaGgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgImgiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAibW0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoKCSAgICAgIGNhc2UgIm0iOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAicSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKCgkgICAgICBjYXNlICJxcSI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CgoJICAgICAgY2FzZSAicyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTsKCgkgICAgICBjYXNlICJzcyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7CgoJICAgICAgY2FzZSAiUyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpOwoKCSAgICAgIGNhc2UgIlNTUyI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KHRocmVlKTsKCgkgICAgICBjYXNlICJ1IjoKCSAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpOwoKCSAgICAgIGNhc2UgInV1IjoKCSAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVPclR3byk7CgoJICAgICAgY2FzZSAidXV1IjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTsKCSAgICAgIC8vIG1lcmlkaWVtCgoJICAgICAgY2FzZSAiYSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApOwoJICAgICAgLy8gd2Vla1llYXIgKGspCgoJICAgICAgY2FzZSAia2trayI6CgkgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpOwoKCSAgICAgIGNhc2UgImtrIjoKCSAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7CgkgICAgICAvLyB3ZWVrTnVtYmVyIChXKQoKCSAgICAgIGNhc2UgIlciOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7CgoJICAgICAgY2FzZSAiV1ciOgoJICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pOwoJICAgICAgLy8gd2Vla2RheXMKCgkgICAgICBjYXNlICJFIjoKCSAgICAgIGNhc2UgImMiOgoJICAgICAgICByZXR1cm4gaW50VW5pdChvbmUpOwoKCSAgICAgIGNhc2UgIkVFRSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoInNob3J0IiwgZmFsc2UsIGZhbHNlKSwgMSk7CgoJICAgICAgY2FzZSAiRUVFRSI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoImxvbmciLCBmYWxzZSwgZmFsc2UpLCAxKTsKCgkgICAgICBjYXNlICJjY2MiOgoJICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKCJzaG9ydCIsIHRydWUsIGZhbHNlKSwgMSk7CgoJICAgICAgY2FzZSAiY2NjYyI6CgkgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoImxvbmciLCB0cnVlLCBmYWxzZSksIDEpOwoJICAgICAgLy8gb2Zmc2V0L3pvbmUKCgkgICAgICBjYXNlICJaIjoKCSAgICAgIGNhc2UgIlpaIjoKCSAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKCIoWystXSIgKyBvbmVPclR3by5zb3VyY2UgKyAiKSg/OjooIiArIHR3by5zb3VyY2UgKyAiKSk/IiksIDIpOwoKCSAgICAgIGNhc2UgIlpaWiI6CgkgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cCgiKFsrLV0iICsgb25lT3JUd28uc291cmNlICsgIikoIiArIHR3by5zb3VyY2UgKyAiKT8iKSwgMik7CgkgICAgICAvLyB3ZSBkb24ndCBzdXBwb3J0IFpaWlogKFBTVCkgb3IgWlpaWlogKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkgaW4gcGFyc2luZwoJICAgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueSB3YXkgdG8gZmlndXJlIG91dCB3aGF0IHRoZXkgYXJlCgoJICAgICAgY2FzZSAieiI6CgkgICAgICAgIHJldHVybiBzaW1wbGUoL1thLXpfKy0vXXsxLDI1Nn0/L2kpOwoKCSAgICAgIGRlZmF1bHQ6CgkgICAgICAgIHJldHVybiBsaXRlcmFsKHQpOwoJICAgIH0KCSAgfTsKCgkgIHZhciB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwgewoJICAgIGludmFsaWRSZWFzb246IE1JU1NJTkdfRlRQCgkgIH07CgkgIHVuaXQudG9rZW4gPSB0b2tlbjsKCSAgcmV0dXJuIHVuaXQ7Cgl9CgoJdmFyIHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsID0gewoJICB5ZWFyOiB7CgkgICAgIjItZGlnaXQiOiAieXkiLAoJICAgIG51bWVyaWM6ICJ5eXl5eSIKCSAgfSwKCSAgbW9udGg6IHsKCSAgICBudW1lcmljOiAiTSIsCgkgICAgIjItZGlnaXQiOiAiTU0iLAoJICAgIHNob3J0OiAiTU1NIiwKCSAgICBsb25nOiAiTU1NTSIKCSAgfSwKCSAgZGF5OiB7CgkgICAgbnVtZXJpYzogImQiLAoJICAgICIyLWRpZ2l0IjogImRkIgoJICB9LAoJICB3ZWVrZGF5OiB7CgkgICAgc2hvcnQ6ICJFRUUiLAoJICAgIGxvbmc6ICJFRUVFIgoJICB9LAoJICBkYXlwZXJpb2Q6ICJhIiwKCSAgZGF5UGVyaW9kOiAiYSIsCgkgIGhvdXI6IHsKCSAgICBudW1lcmljOiAiaCIsCgkgICAgIjItZGlnaXQiOiAiaGgiCgkgIH0sCgkgIG1pbnV0ZTogewoJICAgIG51bWVyaWM6ICJtIiwKCSAgICAiMi1kaWdpdCI6ICJtbSIKCSAgfSwKCSAgc2Vjb25kOiB7CgkgICAgbnVtZXJpYzogInMiLAoJICAgICIyLWRpZ2l0IjogInNzIgoJICB9Cgl9OwoKCWZ1bmN0aW9uIHRva2VuRm9yUGFydChwYXJ0LCBsb2NhbGUsIGZvcm1hdE9wdHMpIHsKCSAgdmFyIHR5cGUgPSBwYXJ0LnR5cGUsCgkgICAgICB2YWx1ZSA9IHBhcnQudmFsdWU7CgoJICBpZiAodHlwZSA9PT0gImxpdGVyYWwiKSB7CgkgICAgcmV0dXJuIHsKCSAgICAgIGxpdGVyYWw6IHRydWUsCgkgICAgICB2YWw6IHZhbHVlCgkgICAgfTsKCSAgfQoKCSAgdmFyIHN0eWxlID0gZm9ybWF0T3B0c1t0eXBlXTsKCSAgdmFyIHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW3R5cGVdOwoKCSAgaWYgKHR5cGVvZiB2YWwgPT09ICJvYmplY3QiKSB7CgkgICAgdmFsID0gdmFsW3N0eWxlXTsKCSAgfQoKCSAgaWYgKHZhbCkgewoJICAgIHJldHVybiB7CgkgICAgICBsaXRlcmFsOiBmYWxzZSwKCSAgICAgIHZhbDogdmFsCgkgICAgfTsKCSAgfQoKCSAgcmV0dXJuIHVuZGVmaW5lZDsKCX0KCglmdW5jdGlvbiBidWlsZFJlZ2V4KHVuaXRzKSB7CgkgIHZhciByZSA9IHVuaXRzLm1hcChmdW5jdGlvbiAodSkgewoJICAgIHJldHVybiB1LnJlZ2V4OwoJICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGYsIHIpIHsKCSAgICByZXR1cm4gZiArICIoIiArIHIuc291cmNlICsgIikiOwoJICB9LCAiIik7CgkgIHJldHVybiBbIl4iICsgcmUgKyAiJCIsIHVuaXRzXTsKCX0KCglmdW5jdGlvbiBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSB7CgkgIHZhciBtYXRjaGVzID0gaW5wdXQubWF0Y2gocmVnZXgpOwoKCSAgaWYgKG1hdGNoZXMpIHsKCSAgICB2YXIgYWxsID0ge307CgkgICAgdmFyIG1hdGNoSW5kZXggPSAxOwoKCSAgICBmb3IgKHZhciBpIGluIGhhbmRsZXJzKSB7CgkgICAgICBpZiAoaGFzT3duUHJvcGVydHkoaGFuZGxlcnMsIGkpKSB7CgkgICAgICAgIHZhciBoID0gaGFuZGxlcnNbaV0sCgkgICAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7CgoJICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7CgkgICAgICAgICAgYWxsW2gudG9rZW4udmFsWzBdXSA9IGguZGVzZXIobWF0Y2hlcy5zbGljZShtYXRjaEluZGV4LCBtYXRjaEluZGV4ICsgZ3JvdXBzKSk7CgkgICAgICAgIH0KCgkgICAgICAgIG1hdGNoSW5kZXggKz0gZ3JvdXBzOwoJICAgICAgfQoJICAgIH0KCgkgICAgcmV0dXJuIFttYXRjaGVzLCBhbGxdOwoJICB9IGVsc2UgewoJICAgIHJldHVybiBbbWF0Y2hlcywge31dOwoJICB9Cgl9CgoJZnVuY3Rpb24gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKSB7CgkgIHZhciB0b0ZpZWxkID0gZnVuY3Rpb24gdG9GaWVsZCh0b2tlbikgewoJICAgIHN3aXRjaCAodG9rZW4pIHsKCSAgICAgIGNhc2UgIlMiOgoJICAgICAgICByZXR1cm4gIm1pbGxpc2Vjb25kIjsKCgkgICAgICBjYXNlICJzIjoKCSAgICAgICAgcmV0dXJuICJzZWNvbmQiOwoKCSAgICAgIGNhc2UgIm0iOgoJICAgICAgICByZXR1cm4gIm1pbnV0ZSI7CgoJICAgICAgY2FzZSAiaCI6CgkgICAgICBjYXNlICJIIjoKCSAgICAgICAgcmV0dXJuICJob3VyIjsKCgkgICAgICBjYXNlICJkIjoKCSAgICAgICAgcmV0dXJuICJkYXkiOwoKCSAgICAgIGNhc2UgIm8iOgoJICAgICAgICByZXR1cm4gIm9yZGluYWwiOwoKCSAgICAgIGNhc2UgIkwiOgoJICAgICAgY2FzZSAiTSI6CgkgICAgICAgIHJldHVybiAibW9udGgiOwoKCSAgICAgIGNhc2UgInkiOgoJICAgICAgICByZXR1cm4gInllYXIiOwoKCSAgICAgIGNhc2UgIkUiOgoJICAgICAgY2FzZSAiYyI6CgkgICAgICAgIHJldHVybiAid2Vla2RheSI7CgoJICAgICAgY2FzZSAiVyI6CgkgICAgICAgIHJldHVybiAid2Vla051bWJlciI7CgoJICAgICAgY2FzZSAiayI6CgkgICAgICAgIHJldHVybiAid2Vla1llYXIiOwoKCSAgICAgIGNhc2UgInEiOgoJICAgICAgICByZXR1cm4gInF1YXJ0ZXIiOwoKCSAgICAgIGRlZmF1bHQ6CgkgICAgICAgIHJldHVybiBudWxsOwoJICAgIH0KCSAgfTsKCgkgIHZhciB6b25lID0gbnVsbDsKCSAgdmFyIHNwZWNpZmljT2Zmc2V0OwoKCSAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7CgkgICAgem9uZSA9IElBTkFab25lLmNyZWF0ZShtYXRjaGVzLnopOwoJICB9CgoJICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHsKCSAgICBpZiAoIXpvbmUpIHsKCSAgICAgIHpvbmUgPSBuZXcgRml4ZWRPZmZzZXRab25lKG1hdGNoZXMuWik7CgkgICAgfQoKCSAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjsKCSAgfQoKCSAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnEpKSB7CgkgICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7CgkgIH0KCgkgIGlmICghaXNVbmRlZmluZWQobWF0Y2hlcy5oKSkgewoJICAgIGlmIChtYXRjaGVzLmggPCAxMiAmJiBtYXRjaGVzLmEgPT09IDEpIHsKCSAgICAgIG1hdGNoZXMuaCArPSAxMjsKCSAgICB9IGVsc2UgaWYgKG1hdGNoZXMuaCA9PT0gMTIgJiYgbWF0Y2hlcy5hID09PSAwKSB7CgkgICAgICBtYXRjaGVzLmggPSAwOwoJICAgIH0KCSAgfQoKCSAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHsKCSAgICBtYXRjaGVzLnkgPSAtbWF0Y2hlcy55OwoJICB9CgoJICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHsKCSAgICBtYXRjaGVzLlMgPSBwYXJzZU1pbGxpcyhtYXRjaGVzLnUpOwoJICB9CgoJICB2YXIgdmFscyA9IE9iamVjdC5rZXlzKG1hdGNoZXMpLnJlZHVjZShmdW5jdGlvbiAociwgaykgewoJICAgIHZhciBmID0gdG9GaWVsZChrKTsKCgkgICAgaWYgKGYpIHsKCSAgICAgIHJbZl0gPSBtYXRjaGVzW2tdOwoJICAgIH0KCgkgICAgcmV0dXJuIHI7CgkgIH0sIHt9KTsKCSAgcmV0dXJuIFt2YWxzLCB6b25lLCBzcGVjaWZpY09mZnNldF07Cgl9CgoJdmFyIGR1bW15RGF0ZVRpbWVDYWNoZSA9IG51bGw7CgoJZnVuY3Rpb24gZ2V0RHVtbXlEYXRlVGltZSgpIHsKCSAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHsKCSAgICBkdW1teURhdGVUaW1lQ2FjaGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpOwoJICB9CgoJICByZXR1cm4gZHVtbXlEYXRlVGltZUNhY2hlOwoJfQoKCWZ1bmN0aW9uIG1heWJlRXhwYW5kTWFjcm9Ub2tlbih0b2tlbiwgbG9jYWxlKSB7CgkgIGlmICh0b2tlbi5saXRlcmFsKSB7CgkgICAgcmV0dXJuIHRva2VuOwoJICB9CgoJICB2YXIgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuLnZhbCk7CgoJICBpZiAoIWZvcm1hdE9wdHMpIHsKCSAgICByZXR1cm4gdG9rZW47CgkgIH0KCgkgIHZhciBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7CgkgIHZhciBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXREYXRlVGltZVBhcnRzKGdldER1bW15RGF0ZVRpbWUoKSk7CgkgIHZhciB0b2tlbnMgPSBwYXJ0cy5tYXAoZnVuY3Rpb24gKHApIHsKCSAgICByZXR1cm4gdG9rZW5Gb3JQYXJ0KHAsIGxvY2FsZSwgZm9ybWF0T3B0cyk7CgkgIH0pOwoKCSAgaWYgKHRva2Vucy5pbmNsdWRlcyh1bmRlZmluZWQpKSB7CgkgICAgcmV0dXJuIHRva2VuOwoJICB9CgoJICByZXR1cm4gdG9rZW5zOwoJfQoKCWZ1bmN0aW9uIGV4cGFuZE1hY3JvVG9rZW5zKHRva2VucywgbG9jYWxlKSB7CgkgIHZhciBfQXJyYXkkcHJvdG90eXBlOwoKCSAgcmV0dXJuIChfQXJyYXkkcHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlKS5jb25jYXQuYXBwbHkoX0FycmF5JHByb3RvdHlwZSwgdG9rZW5zLm1hcChmdW5jdGlvbiAodCkgewoJICAgIHJldHVybiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKTsKCSAgfSkpOwoJfQoJLyoqCgkgKiBAcHJpdmF0ZQoJICovCgoKCWZ1bmN0aW9uIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkgewoJICB2YXIgdG9rZW5zID0gZXhwYW5kTWFjcm9Ub2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZvcm1hdCksIGxvY2FsZSksCgkgICAgICB1bml0cyA9IHRva2Vucy5tYXAoZnVuY3Rpb24gKHQpIHsKCSAgICByZXR1cm4gdW5pdEZvclRva2VuKHQsIGxvY2FsZSk7CgkgIH0pLAoJICAgICAgZGlzcXVhbGlmeWluZ1VuaXQgPSB1bml0cy5maW5kKGZ1bmN0aW9uICh0KSB7CgkgICAgcmV0dXJuIHQuaW52YWxpZFJlYXNvbjsKCSAgfSk7CgoJICBpZiAoZGlzcXVhbGlmeWluZ1VuaXQpIHsKCSAgICByZXR1cm4gewoJICAgICAgaW5wdXQ6IGlucHV0LAoJICAgICAgdG9rZW5zOiB0b2tlbnMsCgkgICAgICBpbnZhbGlkUmVhc29uOiBkaXNxdWFsaWZ5aW5nVW5pdC5pbnZhbGlkUmVhc29uCgkgICAgfTsKCSAgfSBlbHNlIHsKCSAgICB2YXIgX2J1aWxkUmVnZXggPSBidWlsZFJlZ2V4KHVuaXRzKSwKCSAgICAgICAgcmVnZXhTdHJpbmcgPSBfYnVpbGRSZWdleFswXSwKCSAgICAgICAgaGFuZGxlcnMgPSBfYnVpbGRSZWdleFsxXSwKCSAgICAgICAgcmVnZXggPSBSZWdFeHAocmVnZXhTdHJpbmcsICJpIiksCgkgICAgICAgIF9tYXRjaCA9IG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpLAoJICAgICAgICByYXdNYXRjaGVzID0gX21hdGNoWzBdLAoJICAgICAgICBtYXRjaGVzID0gX21hdGNoWzFdLAoJICAgICAgICBfcmVmNiA9IG1hdGNoZXMgPyBkYXRlVGltZUZyb21NYXRjaGVzKG1hdGNoZXMpIDogW251bGwsIG51bGwsIHVuZGVmaW5lZF0sCgkgICAgICAgIHJlc3VsdCA9IF9yZWY2WzBdLAoJICAgICAgICB6b25lID0gX3JlZjZbMV0sCgkgICAgICAgIHNwZWNpZmljT2Zmc2V0ID0gX3JlZjZbMl07CgoJICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCAiYSIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsICJIIikpIHsKCSAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXQiKTsKCSAgICB9CgoJICAgIHJldHVybiB7CgkgICAgICBpbnB1dDogaW5wdXQsCgkgICAgICB0b2tlbnM6IHRva2VucywKCSAgICAgIHJlZ2V4OiByZWdleCwKCSAgICAgIHJhd01hdGNoZXM6IHJhd01hdGNoZXMsCgkgICAgICBtYXRjaGVzOiBtYXRjaGVzLAoJICAgICAgcmVzdWx0OiByZXN1bHQsCgkgICAgICB6b25lOiB6b25lLAoJICAgICAgc3BlY2lmaWNPZmZzZXQ6IHNwZWNpZmljT2Zmc2V0CgkgICAgfTsKCSAgfQoJfQoJZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkgewoJICB2YXIgX2V4cGxhaW5Gcm9tVG9rZW5zID0gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlLCBpbnB1dCwgZm9ybWF0KSwKCSAgICAgIHJlc3VsdCA9IF9leHBsYWluRnJvbVRva2Vucy5yZXN1bHQsCgkgICAgICB6b25lID0gX2V4cGxhaW5Gcm9tVG9rZW5zLnpvbmUsCgkgICAgICBzcGVjaWZpY09mZnNldCA9IF9leHBsYWluRnJvbVRva2Vucy5zcGVjaWZpY09mZnNldCwKCSAgICAgIGludmFsaWRSZWFzb24gPSBfZXhwbGFpbkZyb21Ub2tlbnMuaW52YWxpZFJlYXNvbjsKCgkgIHJldHVybiBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZFJlYXNvbl07Cgl9CgoJdmFyIG5vbkxlYXBMYWRkZXIgPSBbMCwgMzEsIDU5LCA5MCwgMTIwLCAxNTEsIDE4MSwgMjEyLCAyNDMsIDI3MywgMzA0LCAzMzRdLAoJICAgIGxlYXBMYWRkZXIgPSBbMCwgMzEsIDYwLCA5MSwgMTIxLCAxNTIsIDE4MiwgMjEzLCAyNDQsIDI3NCwgMzA1LCAzMzVdOwoKCWZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7CgkgIHJldHVybiBuZXcgSW52YWxpZCgidW5pdCBvdXQgb2YgcmFuZ2UiLCAieW91IHNwZWNpZmllZCAiICsgdmFsdWUgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgdmFsdWUgKyAiKSBhcyBhICIgKyB1bml0ICsgIiwgd2hpY2ggaXMgaW52YWxpZCIpOwoJfQoKCWZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7CgkgIHZhciBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTsKCgkgIGlmICh5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkgewoJICAgIGQuc2V0VVRDRnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCk7CgkgIH0KCgkgIHZhciBqcyA9IGQuZ2V0VVRDRGF5KCk7CgkgIHJldHVybiBqcyA9PT0gMCA/IDcgOiBqczsKCX0KCglmdW5jdGlvbiBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSB7CgkgIHJldHVybiBkYXkgKyAoaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyKVttb250aCAtIDFdOwoJfQoKCWZ1bmN0aW9uIHVuY29tcHV0ZU9yZGluYWwoeWVhciwgb3JkaW5hbCkgewoJICB2YXIgdGFibGUgPSBpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIsCgkgICAgICBtb250aDAgPSB0YWJsZS5maW5kSW5kZXgoZnVuY3Rpb24gKGkpIHsKCSAgICByZXR1cm4gaSA8IG9yZGluYWw7CgkgIH0pLAoJICAgICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07CgkgIHJldHVybiB7CgkgICAgbW9udGg6IG1vbnRoMCArIDEsCgkgICAgZGF5OiBkYXkKCSAgfTsKCX0KCS8qKgoJICogQHByaXZhdGUKCSAqLwoKCglmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikgewoJICB2YXIgeWVhciA9IGdyZWdPYmoueWVhciwKCSAgICAgIG1vbnRoID0gZ3JlZ09iai5tb250aCwKCSAgICAgIGRheSA9IGdyZWdPYmouZGF5LAoJICAgICAgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpLAoJICAgICAgd2Vla2RheSA9IGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KTsKCSAgdmFyIHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLAoJICAgICAgd2Vla1llYXI7CgoJICBpZiAod2Vla051bWJlciA8IDEpIHsKCSAgICB3ZWVrWWVhciA9IHllYXIgLSAxOwoJICAgIHdlZWtOdW1iZXIgPSB3ZWVrc0luV2Vla1llYXIod2Vla1llYXIpOwoJICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHsKCSAgICB3ZWVrWWVhciA9IHllYXIgKyAxOwoJICAgIHdlZWtOdW1iZXIgPSAxOwoJICB9IGVsc2UgewoJICAgIHdlZWtZZWFyID0geWVhcjsKCSAgfQoKCSAgcmV0dXJuIF9leHRlbmRzKHsKCSAgICB3ZWVrWWVhcjogd2Vla1llYXIsCgkgICAgd2Vla051bWJlcjogd2Vla051bWJlciwKCSAgICB3ZWVrZGF5OiB3ZWVrZGF5CgkgIH0sIHRpbWVPYmplY3QoZ3JlZ09iaikpOwoJfQoJZnVuY3Rpb24gd2Vla1RvR3JlZ29yaWFuKHdlZWtEYXRhKSB7CgkgIHZhciB3ZWVrWWVhciA9IHdlZWtEYXRhLndlZWtZZWFyLAoJICAgICAgd2Vla051bWJlciA9IHdlZWtEYXRhLndlZWtOdW1iZXIsCgkgICAgICB3ZWVrZGF5ID0gd2Vla0RhdGEud2Vla2RheSwKCSAgICAgIHdlZWtkYXlPZkphbjQgPSBkYXlPZldlZWsod2Vla1llYXIsIDEsIDQpLAoJICAgICAgeWVhckluRGF5cyA9IGRheXNJblllYXIod2Vla1llYXIpOwoJICB2YXIgb3JkaW5hbCA9IHdlZWtOdW1iZXIgKiA3ICsgd2Vla2RheSAtIHdlZWtkYXlPZkphbjQgLSAzLAoJICAgICAgeWVhcjsKCgkgIGlmIChvcmRpbmFsIDwgMSkgewoJICAgIHllYXIgPSB3ZWVrWWVhciAtIDE7CgkgICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpOwoJICB9IGVsc2UgaWYgKG9yZGluYWwgPiB5ZWFySW5EYXlzKSB7CgkgICAgeWVhciA9IHdlZWtZZWFyICsgMTsKCSAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpOwoJICB9IGVsc2UgewoJICAgIHllYXIgPSB3ZWVrWWVhcjsKCSAgfQoKCSAgdmFyIF91bmNvbXB1dGVPcmRpbmFsID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSwKCSAgICAgIG1vbnRoID0gX3VuY29tcHV0ZU9yZGluYWwubW9udGgsCgkgICAgICBkYXkgPSBfdW5jb21wdXRlT3JkaW5hbC5kYXk7CgoJICByZXR1cm4gX2V4dGVuZHMoewoJICAgIHllYXI6IHllYXIsCgkgICAgbW9udGg6IG1vbnRoLAoJICAgIGRheTogZGF5CgkgIH0sIHRpbWVPYmplY3Qod2Vla0RhdGEpKTsKCX0KCWZ1bmN0aW9uIGdyZWdvcmlhblRvT3JkaW5hbChncmVnRGF0YSkgewoJICB2YXIgeWVhciA9IGdyZWdEYXRhLnllYXIsCgkgICAgICBtb250aCA9IGdyZWdEYXRhLm1vbnRoLAoJICAgICAgZGF5ID0gZ3JlZ0RhdGEuZGF5OwoJICB2YXIgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpOwoJICByZXR1cm4gX2V4dGVuZHMoewoJICAgIHllYXI6IHllYXIsCgkgICAgb3JkaW5hbDogb3JkaW5hbAoJICB9LCB0aW1lT2JqZWN0KGdyZWdEYXRhKSk7Cgl9CglmdW5jdGlvbiBvcmRpbmFsVG9HcmVnb3JpYW4ob3JkaW5hbERhdGEpIHsKCSAgdmFyIHllYXIgPSBvcmRpbmFsRGF0YS55ZWFyLAoJICAgICAgb3JkaW5hbCA9IG9yZGluYWxEYXRhLm9yZGluYWw7CgoJICB2YXIgX3VuY29tcHV0ZU9yZGluYWwyID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSwKCSAgICAgIG1vbnRoID0gX3VuY29tcHV0ZU9yZGluYWwyLm1vbnRoLAoJICAgICAgZGF5ID0gX3VuY29tcHV0ZU9yZGluYWwyLmRheTsKCgkgIHJldHVybiBfZXh0ZW5kcyh7CgkgICAgeWVhcjogeWVhciwKCSAgICBtb250aDogbW9udGgsCgkgICAgZGF5OiBkYXkKCSAgfSwgdGltZU9iamVjdChvcmRpbmFsRGF0YSkpOwoJfQoJZnVuY3Rpb24gaGFzSW52YWxpZFdlZWtEYXRhKG9iaikgewoJICB2YXIgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai53ZWVrWWVhciksCgkgICAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLAoJICAgICAgdmFsaWRXZWVrZGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLndlZWtkYXksIDEsIDcpOwoKCSAgaWYgKCF2YWxpZFllYXIpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIndlZWtZZWFyIiwgb2JqLndlZWtZZWFyKTsKCSAgfSBlbHNlIGlmICghdmFsaWRXZWVrKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ3ZWVrIiwgb2JqLndlZWspOwoJICB9IGVsc2UgaWYgKCF2YWxpZFdlZWtkYXkpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIndlZWtkYXkiLCBvYmoud2Vla2RheSk7CgkgIH0gZWxzZSByZXR1cm4gZmFsc2U7Cgl9CglmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7CgkgIHZhciB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLAoJICAgICAgdmFsaWRPcmRpbmFsID0gaW50ZWdlckJldHdlZW4ob2JqLm9yZGluYWwsIDEsIGRheXNJblllYXIob2JqLnllYXIpKTsKCgkgIGlmICghdmFsaWRZZWFyKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ5ZWFyIiwgb2JqLnllYXIpOwoJICB9IGVsc2UgaWYgKCF2YWxpZE9yZGluYWwpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm9yZGluYWwiLCBvYmoub3JkaW5hbCk7CgkgIH0gZWxzZSByZXR1cm4gZmFsc2U7Cgl9CglmdW5jdGlvbiBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHsKCSAgdmFyIHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksCgkgICAgICB2YWxpZE1vbnRoID0gaW50ZWdlckJldHdlZW4ob2JqLm1vbnRoLCAxLCAxMiksCgkgICAgICB2YWxpZERheSA9IGludGVnZXJCZXR3ZWVuKG9iai5kYXksIDEsIGRheXNJbk1vbnRoKG9iai55ZWFyLCBvYmoubW9udGgpKTsKCgkgIGlmICghdmFsaWRZZWFyKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJ5ZWFyIiwgb2JqLnllYXIpOwoJICB9IGVsc2UgaWYgKCF2YWxpZE1vbnRoKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtb250aCIsIG9iai5tb250aCk7CgkgIH0gZWxzZSBpZiAoIXZhbGlkRGF5KSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJkYXkiLCBvYmouZGF5KTsKCSAgfSBlbHNlIHJldHVybiBmYWxzZTsKCX0KCWZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHsKCSAgdmFyIGhvdXIgPSBvYmouaG91ciwKCSAgICAgIG1pbnV0ZSA9IG9iai5taW51dGUsCgkgICAgICBzZWNvbmQgPSBvYmouc2Vjb25kLAoJICAgICAgbWlsbGlzZWNvbmQgPSBvYmoubWlsbGlzZWNvbmQ7CgkgIHZhciB2YWxpZEhvdXIgPSBpbnRlZ2VyQmV0d2Vlbihob3VyLCAwLCAyMykgfHwgaG91ciA9PT0gMjQgJiYgbWludXRlID09PSAwICYmIHNlY29uZCA9PT0gMCAmJiBtaWxsaXNlY29uZCA9PT0gMCwKCSAgICAgIHZhbGlkTWludXRlID0gaW50ZWdlckJldHdlZW4obWludXRlLCAwLCA1OSksCgkgICAgICB2YWxpZFNlY29uZCA9IGludGVnZXJCZXR3ZWVuKHNlY29uZCwgMCwgNTkpLAoJICAgICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpOwoKCSAgaWYgKCF2YWxpZEhvdXIpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoImhvdXIiLCBob3VyKTsKCSAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHsKCSAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoIm1pbnV0ZSIsIG1pbnV0ZSk7CgkgIH0gZWxzZSBpZiAoIXZhbGlkU2Vjb25kKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJzZWNvbmQiLCBzZWNvbmQpOwoJICB9IGVsc2UgaWYgKCF2YWxpZE1pbGxpc2Vjb25kKSB7CgkgICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKCJtaWxsaXNlY29uZCIsIG1pbGxpc2Vjb25kKTsKCSAgfSBlbHNlIHJldHVybiBmYWxzZTsKCX0KCgl2YXIgSU5WQUxJRCA9ICJJbnZhbGlkIERhdGVUaW1lIjsKCXZhciBNQVhfREFURSA9IDguNjRlMTU7CgoJZnVuY3Rpb24gdW5zdXBwb3J0ZWRab25lKHpvbmUpIHsKCSAgcmV0dXJuIG5ldyBJbnZhbGlkKCJ1bnN1cHBvcnRlZCB6b25lIiwgInRoZSB6b25lIFwiIiArIHpvbmUubmFtZSArICJcIiBpcyBub3Qgc3VwcG9ydGVkIik7Cgl9IC8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlCgoKCWZ1bmN0aW9uIHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEoZHQpIHsKCSAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7CgkgICAgZHQud2Vla0RhdGEgPSBncmVnb3JpYW5Ub1dlZWsoZHQuYyk7CgkgIH0KCgkgIHJldHVybiBkdC53ZWVrRGF0YTsKCX0gLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCAibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zIi4gYWxsICJzZXR0ZXJzIiByZWFsbHkgdXNlIHRoaXMKCS8vIHRvIGNyZWF0ZSBhIG5ldyBvYmplY3Qgd2hpbGUgb25seSBjaGFuZ2luZyBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzCgoKCWZ1bmN0aW9uIGNsb25lKGluc3QsIGFsdHMpIHsKCSAgdmFyIGN1cnJlbnQgPSB7CgkgICAgdHM6IGluc3QudHMsCgkgICAgem9uZTogaW5zdC56b25lLAoJICAgIGM6IGluc3QuYywKCSAgICBvOiBpbnN0Lm8sCgkgICAgbG9jOiBpbnN0LmxvYywKCSAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQKCSAgfTsKCSAgcmV0dXJuIG5ldyBEYXRlVGltZShfZXh0ZW5kcyh7fSwgY3VycmVudCwgYWx0cywgewoJICAgIG9sZDogY3VycmVudAoJICB9KSk7Cgl9IC8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaAoJLy8gb2Zmc2V0IHdlJ2xsIHBpY2sgaW4gYW1iaWd1b3VzIGNhc2VzIChlLmcuIHRoZXJlIGFyZSB0d28gMyBBTXMgYi9jIEZhbGxiYWNrIERTVCkKCgoJZnVuY3Rpb24gZml4T2Zmc2V0KGxvY2FsVFMsIG8sIHR6KSB7CgkgIC8vIE91ciBVVEMgdGltZSBpcyBqdXN0IGEgZ3Vlc3MgYmVjYXVzZSBvdXIgb2Zmc2V0IGlzIGp1c3QgYSBndWVzcwoJICB2YXIgdXRjR3Vlc3MgPSBsb2NhbFRTIC0gbyAqIDYwICogMTAwMDsgLy8gVGVzdCB3aGV0aGVyIHRoZSB6b25lIG1hdGNoZXMgdGhlIG9mZnNldCBmb3IgdGhpcyB0cwoKCSAgdmFyIG8yID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTsgLy8gSWYgc28sIG9mZnNldCBkaWRuJ3QgY2hhbmdlIGFuZCB3ZSdyZSBkb25lCgoJICBpZiAobyA9PT0gbzIpIHsKCSAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTsKCSAgfSAvLyBJZiBub3QsIGNoYW5nZSB0aGUgdHMgYnkgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIG9mZnNldAoKCgkgIHV0Y0d1ZXNzIC09IChvMiAtIG8pICogNjAgKiAxMDAwOyAvLyBJZiB0aGF0IGdpdmVzIHVzIHRoZSBsb2NhbCB0aW1lIHdlIHdhbnQsIHdlJ3JlIGRvbmUKCgkgIHZhciBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7CgoJICBpZiAobzIgPT09IG8zKSB7CgkgICAgcmV0dXJuIFt1dGNHdWVzcywgbzJdOwoJICB9IC8vIElmIGl0J3MgZGlmZmVyZW50LCB3ZSdyZSBpbiBhIGhvbGUgdGltZS4gVGhlIG9mZnNldCBoYXMgY2hhbmdlZCwgYnV0IHRoZSB3ZSBkb24ndCBhZGp1c3QgdGhlIHRpbWUKCgoJICByZXR1cm4gW2xvY2FsVFMgLSBNYXRoLm1pbihvMiwgbzMpICogNjAgKiAxMDAwLCBNYXRoLm1heChvMiwgbzMpXTsKCX0gLy8gY29udmVydCBhbiBlcG9jaCB0aW1lc3RhbXAgaW50byBhIGNhbGVuZGFyIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBvZmZzZXQKCgoJZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7CgkgIHRzICs9IG9mZnNldCAqIDYwICogMTAwMDsKCSAgdmFyIGQgPSBuZXcgRGF0ZSh0cyk7CgkgIHJldHVybiB7CgkgICAgeWVhcjogZC5nZXRVVENGdWxsWWVhcigpLAoJICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLAoJICAgIGRheTogZC5nZXRVVENEYXRlKCksCgkgICAgaG91cjogZC5nZXRVVENIb3VycygpLAoJICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksCgkgICAgc2Vjb25kOiBkLmdldFVUQ1NlY29uZHMoKSwKCSAgICBtaWxsaXNlY29uZDogZC5nZXRVVENNaWxsaXNlY29uZHMoKQoJICB9OwoJfSAvLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgZXBvY2ggdGltZXN0YW1wCgoKCWZ1bmN0aW9uIG9ialRvVFMob2JqLCBvZmZzZXQsIHpvbmUpIHsKCSAgcmV0dXJuIGZpeE9mZnNldChvYmpUb0xvY2FsVFMob2JqKSwgb2Zmc2V0LCB6b25lKTsKCX0gLy8gY3JlYXRlIGEgbmV3IERUIGluc3RhbmNlIGJ5IGFkZGluZyBhIGR1cmF0aW9uLCBhZGp1c3RpbmcgZm9yIERTVHMKCgoJZnVuY3Rpb24gYWRqdXN0VGltZShpbnN0LCBkdXIpIHsKCSAgdmFyIG9QcmUgPSBpbnN0Lm8sCgkgICAgICB5ZWFyID0gaW5zdC5jLnllYXIgKyBNYXRoLnRydW5jKGR1ci55ZWFycyksCgkgICAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLAoJICAgICAgYyA9IF9leHRlbmRzKHt9LCBpbnN0LmMsIHsKCSAgICB5ZWFyOiB5ZWFyLAoJICAgIG1vbnRoOiBtb250aCwKCSAgICBkYXk6IE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgKyBNYXRoLnRydW5jKGR1ci5kYXlzKSArIE1hdGgudHJ1bmMoZHVyLndlZWtzKSAqIDcKCSAgfSksCgkgICAgICBtaWxsaXNUb0FkZCA9IER1cmF0aW9uLmZyb21PYmplY3QoewoJICAgIHllYXJzOiBkdXIueWVhcnMgLSBNYXRoLnRydW5jKGR1ci55ZWFycyksCgkgICAgcXVhcnRlcnM6IGR1ci5xdWFydGVycyAtIE1hdGgudHJ1bmMoZHVyLnF1YXJ0ZXJzKSwKCSAgICBtb250aHM6IGR1ci5tb250aHMgLSBNYXRoLnRydW5jKGR1ci5tb250aHMpLAoJICAgIHdlZWtzOiBkdXIud2Vla3MgLSBNYXRoLnRydW5jKGR1ci53ZWVrcyksCgkgICAgZGF5czogZHVyLmRheXMgLSBNYXRoLnRydW5jKGR1ci5kYXlzKSwKCSAgICBob3VyczogZHVyLmhvdXJzLAoJICAgIG1pbnV0ZXM6IGR1ci5taW51dGVzLAoJICAgIHNlY29uZHM6IGR1ci5zZWNvbmRzLAoJICAgIG1pbGxpc2Vjb25kczogZHVyLm1pbGxpc2Vjb25kcwoJICB9KS5hcygibWlsbGlzZWNvbmRzIiksCgkgICAgICBsb2NhbFRTID0gb2JqVG9Mb2NhbFRTKGMpOwoKCSAgdmFyIF9maXhPZmZzZXQgPSBmaXhPZmZzZXQobG9jYWxUUywgb1ByZSwgaW5zdC56b25lKSwKCSAgICAgIHRzID0gX2ZpeE9mZnNldFswXSwKCSAgICAgIG8gPSBfZml4T2Zmc2V0WzFdOwoKCSAgaWYgKG1pbGxpc1RvQWRkICE9PSAwKSB7CgkgICAgdHMgKz0gbWlsbGlzVG9BZGQ7IC8vIHRoYXQgY291bGQgaGF2ZSBjaGFuZ2VkIHRoZSBvZmZzZXQgYnkgZ29pbmcgb3ZlciBhIERTVCwgYnV0IHdlIHdhbnQgdG8ga2VlcCB0aGUgdHMgdGhlIHNhbWUKCgkgICAgbyA9IGluc3Quem9uZS5vZmZzZXQodHMpOwoJICB9CgoJICByZXR1cm4gewoJICAgIHRzOiB0cywKCSAgICBvOiBvCgkgIH07Cgl9IC8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlcwoJLy8gYnkgaGFuZGxpbmcgdGhlIHpvbmUgb3B0aW9ucwoKCglmdW5jdGlvbiBwYXJzZURhdGFUb0RhdGVUaW1lKHBhcnNlZCwgcGFyc2VkWm9uZSwgb3B0cywgZm9ybWF0LCB0ZXh0LCBzcGVjaWZpY09mZnNldCkgewoJICB2YXIgc2V0Wm9uZSA9IG9wdHMuc2V0Wm9uZSwKCSAgICAgIHpvbmUgPSBvcHRzLnpvbmU7CgoJICBpZiAocGFyc2VkICYmIE9iamVjdC5rZXlzKHBhcnNlZCkubGVuZ3RoICE9PSAwKSB7CgkgICAgdmFyIGludGVycHJldGF0aW9uWm9uZSA9IHBhcnNlZFpvbmUgfHwgem9uZSwKCSAgICAgICAgaW5zdCA9IERhdGVUaW1lLmZyb21PYmplY3QocGFyc2VkLCBfZXh0ZW5kcyh7fSwgb3B0cywgewoJICAgICAgem9uZTogaW50ZXJwcmV0YXRpb25ab25lLAoJICAgICAgc3BlY2lmaWNPZmZzZXQ6IHNwZWNpZmljT2Zmc2V0CgkgICAgfSkpOwoJICAgIHJldHVybiBzZXRab25lID8gaW5zdCA6IGluc3Quc2V0Wm9uZSh6b25lKTsKCSAgfSBlbHNlIHsKCSAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChuZXcgSW52YWxpZCgidW5wYXJzYWJsZSIsICJ0aGUgaW5wdXQgXCIiICsgdGV4dCArICJcIiBjYW4ndCBiZSBwYXJzZWQgYXMgIiArIGZvcm1hdCkpOwoJICB9Cgl9IC8vIGlmIHlvdSB3YW50IHRvIG91dHB1dCBhIHRlY2huaWNhbCBmb3JtYXQgKGUuZy4gUkZDIDI4MjIpLCB0aGlzIGhlbHBlcgoJLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzCgoKCWZ1bmN0aW9uIHRvVGVjaEZvcm1hdChkdCwgZm9ybWF0LCBhbGxvd1opIHsKCSAgaWYgKGFsbG93WiA9PT0gdm9pZCAwKSB7CgkgICAgYWxsb3daID0gdHJ1ZTsKCSAgfQoKCSAgcmV0dXJuIGR0LmlzVmFsaWQgPyBGb3JtYXR0ZXIuY3JlYXRlKExvY2FsZS5jcmVhdGUoImVuLVVTIiksIHsKCSAgICBhbGxvd1o6IGFsbG93WiwKCSAgICBmb3JjZVNpbXBsZTogdHJ1ZQoJICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdCkgOiBudWxsOwoJfQoKCWZ1bmN0aW9uIF90b0lTT0RhdGUobywgZXh0ZW5kZWQpIHsKCSAgdmFyIGxvbmdGb3JtYXQgPSBvLmMueWVhciA+IDk5OTkgfHwgby5jLnllYXIgPCAwOwoJICB2YXIgYyA9ICIiOwoJICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9ICIrIjsKCSAgYyArPSBwYWRTdGFydChvLmMueWVhciwgbG9uZ0Zvcm1hdCA/IDYgOiA0KTsKCgkgIGlmIChleHRlbmRlZCkgewoJICAgIGMgKz0gIi0iOwoJICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTsKCSAgICBjICs9ICItIjsKCSAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwoJICB9IGVsc2UgewoJICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTsKCSAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpOwoJICB9CgoJICByZXR1cm4gYzsKCX0KCglmdW5jdGlvbiBfdG9JU09UaW1lKG8sIGV4dGVuZGVkLCBzdXBwcmVzc1NlY29uZHMsIHN1cHByZXNzTWlsbGlzZWNvbmRzLCBpbmNsdWRlT2Zmc2V0LCBleHRlbmRlZFpvbmUpIHsKCSAgdmFyIGMgPSBwYWRTdGFydChvLmMuaG91cik7CgoJICBpZiAoZXh0ZW5kZWQpIHsKCSAgICBjICs9ICI6IjsKCSAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpOwoKCSAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7CgkgICAgICBjICs9ICI6IjsKCSAgICB9CgkgIH0gZWxzZSB7CgkgICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTsKCSAgfQoKCSAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykgewoJICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7CgoJICAgIGlmIChvLmMubWlsbGlzZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzTWlsbGlzZWNvbmRzKSB7CgkgICAgICBjICs9ICIuIjsKCSAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTsKCSAgICB9CgkgIH0KCgkgIGlmIChpbmNsdWRlT2Zmc2V0KSB7CgkgICAgaWYgKG8uaXNPZmZzZXRGaXhlZCAmJiBvLm9mZnNldCA9PT0gMCAmJiAhZXh0ZW5kZWRab25lKSB7CgkgICAgICBjICs9ICJaIjsKCSAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHsKCSAgICAgIGMgKz0gIi0iOwoJICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gLyA2MCkpOwoJICAgICAgYyArPSAiOiI7CgkgICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAlIDYwKSk7CgkgICAgfSBlbHNlIHsKCSAgICAgIGMgKz0gIisiOwoJICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAvIDYwKSk7CgkgICAgICBjICs9ICI6IjsKCSAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gJSA2MCkpOwoJICAgIH0KCSAgfQoKCSAgaWYgKGV4dGVuZGVkWm9uZSkgewoJICAgIGMgKz0gIlsiICsgby56b25lLmlhbmFOYW1lICsgIl0iOwoJICB9CgoJICByZXR1cm4gYzsKCX0gLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzCgoKCXZhciBkZWZhdWx0VW5pdFZhbHVlcyA9IHsKCSAgbW9udGg6IDEsCgkgIGRheTogMSwKCSAgaG91cjogMCwKCSAgbWludXRlOiAwLAoJICBzZWNvbmQ6IDAsCgkgIG1pbGxpc2Vjb25kOiAwCgl9LAoJICAgIGRlZmF1bHRXZWVrVW5pdFZhbHVlcyA9IHsKCSAgd2Vla051bWJlcjogMSwKCSAgd2Vla2RheTogMSwKCSAgaG91cjogMCwKCSAgbWludXRlOiAwLAoJICBzZWNvbmQ6IDAsCgkgIG1pbGxpc2Vjb25kOiAwCgl9LAoJICAgIGRlZmF1bHRPcmRpbmFsVW5pdFZhbHVlcyA9IHsKCSAgb3JkaW5hbDogMSwKCSAgaG91cjogMCwKCSAgbWludXRlOiAwLAoJICBzZWNvbmQ6IDAsCgkgIG1pbGxpc2Vjb25kOiAwCgl9OyAvLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3MKCgl2YXIgb3JkZXJlZFVuaXRzID0gWyJ5ZWFyIiwgIm1vbnRoIiwgImRheSIsICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAibWlsbGlzZWNvbmQiXSwKCSAgICBvcmRlcmVkV2Vla1VuaXRzID0gWyJ3ZWVrWWVhciIsICJ3ZWVrTnVtYmVyIiwgIndlZWtkYXkiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIl0sCgkgICAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFsieWVhciIsICJvcmRpbmFsIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlY29uZCJdOyAvLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHMKCglmdW5jdGlvbiBub3JtYWxpemVVbml0KHVuaXQpIHsKCSAgdmFyIG5vcm1hbGl6ZWQgPSB7CgkgICAgeWVhcjogInllYXIiLAoJICAgIHllYXJzOiAieWVhciIsCgkgICAgbW9udGg6ICJtb250aCIsCgkgICAgbW9udGhzOiAibW9udGgiLAoJICAgIGRheTogImRheSIsCgkgICAgZGF5czogImRheSIsCgkgICAgaG91cjogImhvdXIiLAoJICAgIGhvdXJzOiAiaG91ciIsCgkgICAgbWludXRlOiAibWludXRlIiwKCSAgICBtaW51dGVzOiAibWludXRlIiwKCSAgICBxdWFydGVyOiAicXVhcnRlciIsCgkgICAgcXVhcnRlcnM6ICJxdWFydGVyIiwKCSAgICBzZWNvbmQ6ICJzZWNvbmQiLAoJICAgIHNlY29uZHM6ICJzZWNvbmQiLAoJICAgIG1pbGxpc2Vjb25kOiAibWlsbGlzZWNvbmQiLAoJICAgIG1pbGxpc2Vjb25kczogIm1pbGxpc2Vjb25kIiwKCSAgICB3ZWVrZGF5OiAid2Vla2RheSIsCgkgICAgd2Vla2RheXM6ICJ3ZWVrZGF5IiwKCSAgICB3ZWVrbnVtYmVyOiAid2Vla051bWJlciIsCgkgICAgd2Vla3NudW1iZXI6ICJ3ZWVrTnVtYmVyIiwKCSAgICB3ZWVrbnVtYmVyczogIndlZWtOdW1iZXIiLAoJICAgIHdlZWt5ZWFyOiAid2Vla1llYXIiLAoJICAgIHdlZWt5ZWFyczogIndlZWtZZWFyIiwKCSAgICBvcmRpbmFsOiAib3JkaW5hbCIKCSAgfVt1bml0LnRvTG93ZXJDYXNlKCldOwoJICBpZiAoIW5vcm1hbGl6ZWQpIHRocm93IG5ldyBJbnZhbGlkVW5pdEVycm9yKHVuaXQpOwoJICByZXR1cm4gbm9ybWFsaXplZDsKCX0gLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyCgkvLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzCgkvLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLgoKCglmdW5jdGlvbiBxdWlja0RUKG9iaiwgb3B0cykgewoJICB2YXIgem9uZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksCgkgICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSwKCSAgICAgIHRzTm93ID0gU2V0dGluZ3Mubm93KCk7CgkgIHZhciB0cywgbzsgLy8gYXNzdW1lIHdlIGhhdmUgdGhlIGhpZ2hlci1vcmRlciB1bml0cwoKCSAgaWYgKCFpc1VuZGVmaW5lZChvYmoueWVhcikpIHsKCSAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKG9yZGVyZWRVbml0cyksIF9zdGVwOyAhKF9zdGVwID0gX2l0ZXJhdG9yKCkpLmRvbmU7KSB7CgkgICAgICB2YXIgdSA9IF9zdGVwLnZhbHVlOwoKCSAgICAgIGlmIChpc1VuZGVmaW5lZChvYmpbdV0pKSB7CgkgICAgICAgIG9ialt1XSA9IGRlZmF1bHRVbml0VmFsdWVzW3VdOwoJICAgICAgfQoJICAgIH0KCgkgICAgdmFyIGludmFsaWQgPSBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHx8IGhhc0ludmFsaWRUaW1lRGF0YShvYmopOwoKCSAgICBpZiAoaW52YWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CgkgICAgfQoKCSAgICB2YXIgb2Zmc2V0UHJvdmlzID0gem9uZS5vZmZzZXQodHNOb3cpOwoKCSAgICB2YXIgX29ialRvVFMgPSBvYmpUb1RTKG9iaiwgb2Zmc2V0UHJvdmlzLCB6b25lKTsKCgkgICAgdHMgPSBfb2JqVG9UU1swXTsKCSAgICBvID0gX29ialRvVFNbMV07CgkgIH0gZWxzZSB7CgkgICAgdHMgPSB0c05vdzsKCSAgfQoKCSAgcmV0dXJuIG5ldyBEYXRlVGltZSh7CgkgICAgdHM6IHRzLAoJICAgIHpvbmU6IHpvbmUsCgkgICAgbG9jOiBsb2MsCgkgICAgbzogbwoJICB9KTsKCX0KCglmdW5jdGlvbiBkaWZmUmVsYXRpdmUoc3RhcnQsIGVuZCwgb3B0cykgewoJICB2YXIgcm91bmQgPSBpc1VuZGVmaW5lZChvcHRzLnJvdW5kKSA/IHRydWUgOiBvcHRzLnJvdW5kLAoJICAgICAgZm9ybWF0ID0gZnVuY3Rpb24gZm9ybWF0KGMsIHVuaXQpIHsKCSAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTsKCSAgICB2YXIgZm9ybWF0dGVyID0gZW5kLmxvYy5jbG9uZShvcHRzKS5yZWxGb3JtYXR0ZXIob3B0cyk7CgkgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQoYywgdW5pdCk7CgkgIH0sCgkgICAgICBkaWZmZXIgPSBmdW5jdGlvbiBkaWZmZXIodW5pdCkgewoJICAgIGlmIChvcHRzLmNhbGVuZGFyeSkgewoJICAgICAgaWYgKCFlbmQuaGFzU2FtZShzdGFydCwgdW5pdCkpIHsKCSAgICAgICAgcmV0dXJuIGVuZC5zdGFydE9mKHVuaXQpLmRpZmYoc3RhcnQuc3RhcnRPZih1bml0KSwgdW5pdCkuZ2V0KHVuaXQpOwoJICAgICAgfSBlbHNlIHJldHVybiAwOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsIHVuaXQpLmdldCh1bml0KTsKCSAgICB9CgkgIH07CgoJICBpZiAob3B0cy51bml0KSB7CgkgICAgcmV0dXJuIGZvcm1hdChkaWZmZXIob3B0cy51bml0KSwgb3B0cy51bml0KTsKCSAgfQoKCSAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyTG9vc2Uob3B0cy51bml0cyksIF9zdGVwMjsgIShfc3RlcDIgPSBfaXRlcmF0b3IyKCkpLmRvbmU7KSB7CgkgICAgdmFyIHVuaXQgPSBfc3RlcDIudmFsdWU7CgkgICAgdmFyIGNvdW50ID0gZGlmZmVyKHVuaXQpOwoKCSAgICBpZiAoTWF0aC5hYnMoY291bnQpID49IDEpIHsKCSAgICAgIHJldHVybiBmb3JtYXQoY291bnQsIHVuaXQpOwoJICAgIH0KCSAgfQoKCSAgcmV0dXJuIGZvcm1hdChzdGFydCA+IGVuZCA/IC0wIDogMCwgb3B0cy51bml0c1tvcHRzLnVuaXRzLmxlbmd0aCAtIDFdKTsKCX0KCglmdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7CgkgIHZhciBvcHRzID0ge30sCgkgICAgICBhcmdzOwoKCSAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSAib2JqZWN0IikgewoJICAgIG9wdHMgPSBhcmdMaXN0W2FyZ0xpc3QubGVuZ3RoIC0gMV07CgkgICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCkuc2xpY2UoMCwgYXJnTGlzdC5sZW5ndGggLSAxKTsKCSAgfSBlbHNlIHsKCSAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KTsKCSAgfQoKCSAgcmV0dXJuIFtvcHRzLCBhcmdzXTsKCX0KCS8qKgoJICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLgoJICoKCSAqIEEgRGF0ZVRpbWUgY29tcHJpc2VzIG9mOgoJICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC4KCSAqICogQSB0aW1lIHpvbmUuIEVhY2ggaW5zdGFuY2UgaXMgY29uc2lkZXJlZCBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHpvbmUgKGJ5IGRlZmF1bHQgdGhlIGxvY2FsIHN5c3RlbSdzIHpvbmUpLgoJICogKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBlZmZlY3QgaG93IG91dHB1dCBzdHJpbmdzIGFyZSBmb3JtYXR0ZWQsIHN1Y2ggYXMgYGxvY2FsZWAsIGBudW1iZXJpbmdTeXN0ZW1gLCBhbmQgYG91dHB1dENhbGVuZGFyYC4KCSAqCgkgKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbmFsaXR5IGl0IHByb3ZpZGVzOgoJICoKCSAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZSNsb2NhbH0sIHtAbGluayBEYXRlVGltZSN1dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZSNmcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lI2Zyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZSNmcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSlNEYXRlfS4KCSAqICogKipHcmVnb3JpYW4gY2FsZW5kYXIgYW5kIHRpbWUqKjogVG8gZXhhbWluZSB0aGUgR3JlZ29yaWFuIHByb3BlcnRpZXMgb2YgYSBEYXRlVGltZSBpbmRpdmlkdWFsbHkgKGkuZSBhcyBvcHBvc2VkIHRvIGNvbGxlY3RpdmVseSB0aHJvdWdoIHtAbGluayBEYXRlVGltZSN0b09iamVjdH0pLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN5ZWFyfSwge0BsaW5rIERhdGVUaW1lI21vbnRofSwKCSAqIHtAbGluayBEYXRlVGltZSNkYXl9LCB7QGxpbmsgRGF0ZVRpbWUjaG91cn0sIHtAbGluayBEYXRlVGltZSNtaW51dGV9LCB7QGxpbmsgRGF0ZVRpbWUjc2Vjb25kfSwge0BsaW5rIERhdGVUaW1lI21pbGxpc2Vjb25kfSBhY2Nlc3NvcnMuCgkgKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLgoJICogKiAqKkNvbmZpZ3VyYXRpb24qKiBTZWUgdGhlIHtAbGluayBEYXRlVGltZSNsb2NhbGV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjbnVtYmVyaW5nU3lzdGVtfSBhY2Nlc3NvcnMuCgkgKiAqICoqVHJhbnNmb3JtYXRpb24qKjogVG8gdHJhbnNmb3JtIHRoZSBEYXRlVGltZSBpbnRvIG90aGVyIERhdGVUaW1lcywgdXNlIHtAbGluayBEYXRlVGltZSNzZXR9LCB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9LCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0sIHtAbGluayBEYXRlVGltZSNzZXRMb2NhbGV9LCB7QGxpbmsgRGF0ZVRpbWUucGx1c30sIHtAbGluayBEYXRlVGltZSNtaW51c30sIHtAbGluayBEYXRlVGltZSNlbmRPZn0sIHtAbGluayBEYXRlVGltZSNzdGFydE9mfSwge0BsaW5rIERhdGVUaW1lI3RvVVRDfSwgYW5kIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfS4KCSAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uCgkgKgoJICogVGhlcmUncyBwbGVudHkgb3RoZXJzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uLCB0aW1lIHpvbmVzLCBhbHRlcm5hdGl2ZSBjYWxlbmRhcnMsIHZhbGlkaXR5LCBhbmQgc28gb24sIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi4KCSAqLwoKCgl2YXIgRGF0ZVRpbWUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewoJICAvKioKCSAgICogQGFjY2VzcyBwcml2YXRlCgkgICAqLwoJICBmdW5jdGlvbiBEYXRlVGltZShjb25maWcpIHsKCSAgICB2YXIgem9uZSA9IGNvbmZpZy56b25lIHx8IFNldHRpbmdzLmRlZmF1bHRab25lOwoJICAgIHZhciBpbnZhbGlkID0gY29uZmlnLmludmFsaWQgfHwgKE51bWJlci5pc05hTihjb25maWcudHMpID8gbmV3IEludmFsaWQoImludmFsaWQgaW5wdXQiKSA6IG51bGwpIHx8ICghem9uZS5pc1ZhbGlkID8gdW5zdXBwb3J0ZWRab25lKHpvbmUpIDogbnVsbCk7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMudHMgPSBpc1VuZGVmaW5lZChjb25maWcudHMpID8gU2V0dGluZ3Mubm93KCkgOiBjb25maWcudHM7CgkgICAgdmFyIGMgPSBudWxsLAoJICAgICAgICBvID0gbnVsbDsKCgkgICAgaWYgKCFpbnZhbGlkKSB7CgkgICAgICB2YXIgdW5jaGFuZ2VkID0gY29uZmlnLm9sZCAmJiBjb25maWcub2xkLnRzID09PSB0aGlzLnRzICYmIGNvbmZpZy5vbGQuem9uZS5lcXVhbHMoem9uZSk7CgoJICAgICAgaWYgKHVuY2hhbmdlZCkgewoJICAgICAgICB2YXIgX3JlZiA9IFtjb25maWcub2xkLmMsIGNvbmZpZy5vbGQub107CgkgICAgICAgIGMgPSBfcmVmWzBdOwoJICAgICAgICBvID0gX3JlZlsxXTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIHZhciBvdCA9IHpvbmUub2Zmc2V0KHRoaXMudHMpOwoJICAgICAgICBjID0gdHNUb09iaih0aGlzLnRzLCBvdCk7CgkgICAgICAgIGludmFsaWQgPSBOdW1iZXIuaXNOYU4oYy55ZWFyKSA/IG5ldyBJbnZhbGlkKCJpbnZhbGlkIGlucHV0IikgOiBudWxsOwoJICAgICAgICBjID0gaW52YWxpZCA/IG51bGwgOiBjOwoJICAgICAgICBvID0gaW52YWxpZCA/IG51bGwgOiBvdDsKCSAgICAgIH0KCSAgICB9CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoKCSAgICB0aGlzLl96b25lID0gem9uZTsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy5pbnZhbGlkID0gaW52YWxpZDsKCSAgICAvKioKCSAgICAgKiBAYWNjZXNzIHByaXZhdGUKCSAgICAgKi8KCgkgICAgdGhpcy53ZWVrRGF0YSA9IG51bGw7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMuYyA9IGM7CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMubyA9IG87CgkgICAgLyoqCgkgICAgICogQGFjY2VzcyBwcml2YXRlCgkgICAgICovCgoJICAgIHRoaXMuaXNMdXhvbkRhdGVUaW1lID0gdHJ1ZTsKCSAgfSAvLyBDT05TVFJVQ1QKCgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS4KCSAgICoKCSAgICogVXNlIFNldHRpbmdzIHRvIG92ZXJyaWRlIHRoZXNlIGRlZmF1bHQgdmFsdWVzIGlmIG5lZWRlZC4KCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdAoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgoKCSAgRGF0ZVRpbWUubm93ID0gZnVuY3Rpb24gbm93KCkgewoJICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pOwoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBsb2NhbCBEYXRlVGltZQoJICAgKiBAcGFyYW0ge251bWJlcn0gW3llYXJdIC0gVGhlIGNhbGVuZGFyIHllYXIuIElmIG9taXR0ZWQgKGFzIGluLCBjYWxsIGBsb2NhbCgpYCB3aXRoIG5vIGFyZ3VtZW50cyksIHRoZSBjdXJyZW50IHRpbWUgd2lsbCBiZSB1c2VkCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZAoJICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoLCAxLWluZGV4ZWQKCSAgICogQHBhcmFtIHtudW1iZXJ9IFtob3VyPTBdIC0gVGhlIGhvdXIgb2YgdGhlIGRheSwgaW4gMjQtaG91ciB0aW1lCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5CgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2Vjb25kPTBdIC0gVGhlIHNlY29uZCBvZiB0aGUgbWludXRlLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTkKCSAgICogQHBhcmFtIHtudW1iZXJ9IFttaWxsaXNlY29uZD0wXSAtIFRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgOTk5CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiBub3cKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoeyB6b25lOiAiQW1lcmljYS9OZXdfWW9yayIgfSkgICAgICAvL34+IG5vdywgaW4gVVMgZWFzdCBjb2FzdCB0aW1lCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCB7IGxvY2FsZTogImZyIiB9KSAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwLCB3aXRoIGEgRnJlbmNoIGxvY2FsZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMAoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiAidXRjIiB9KSAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMCwgaW4gVVRDCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSkgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwLjc2NQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmxvY2FsID0gZnVuY3Rpb24gbG9jYWwoKSB7CgkgICAgdmFyIF9sYXN0T3B0cyA9IGxhc3RPcHRzKGFyZ3VtZW50cyksCgkgICAgICAgIG9wdHMgPSBfbGFzdE9wdHNbMF0sCgkgICAgICAgIGFyZ3MgPSBfbGFzdE9wdHNbMV0sCgkgICAgICAgIHllYXIgPSBhcmdzWzBdLAoJICAgICAgICBtb250aCA9IGFyZ3NbMV0sCgkgICAgICAgIGRheSA9IGFyZ3NbMl0sCgkgICAgICAgIGhvdXIgPSBhcmdzWzNdLAoJICAgICAgICBtaW51dGUgPSBhcmdzWzRdLAoJICAgICAgICBzZWNvbmQgPSBhcmdzWzVdLAoJICAgICAgICBtaWxsaXNlY29uZCA9IGFyZ3NbNl07CgoJICAgIHJldHVybiBxdWlja0RUKHsKCSAgICAgIHllYXI6IHllYXIsCgkgICAgICBtb250aDogbW9udGgsCgkgICAgICBkYXk6IGRheSwKCSAgICAgIGhvdXI6IGhvdXIsCgkgICAgICBtaW51dGU6IG1pbnV0ZSwKCSAgICAgIHNlY29uZDogc2Vjb25kLAoJICAgICAgbWlsbGlzZWNvbmQ6IG1pbGxpc2Vjb25kCgkgICAgfSwgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGluIFVUQwoJICAgKiBAcGFyYW0ge251bWJlcn0gW3llYXJdIC0gVGhlIGNhbGVuZGFyIHllYXIuIElmIG9taXR0ZWQgKGFzIGluLCBjYWxsIGB1dGMoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZAoJICAgKiBAcGFyYW0ge251bWJlcn0gW21vbnRoPTFdIC0gVGhlIG1vbnRoLCAxLWluZGV4ZWQKCSAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aAoJICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWUKCSAgICogQHBhcmFtIHtudW1iZXJ9IFttaW51dGU9MF0gLSBUaGUgbWludXRlIG9mIHRoZSBob3VyLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTkKCSAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWNvbmQ9MF0gLSBUaGUgc2Vjb25kIG9mIHRoZSBtaW51dGUsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OQoJICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTkKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW1dIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiBub3cKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwWgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMDFUMDA6MDA6MDBaCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwMDowMDowMFoKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwWgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBaCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUsIHsgbG9jYWxlOiAiZnIiIH0pICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFogd2l0aCBhIEZyZW5jaCBsb2NhbGUKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1LCB7IGxvY2FsZTogImZyIiB9KSAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1WiB3aXRoIGEgRnJlbmNoIGxvY2FsZQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLnV0YyA9IGZ1bmN0aW9uIHV0YygpIHsKCSAgICB2YXIgX2xhc3RPcHRzMiA9IGxhc3RPcHRzKGFyZ3VtZW50cyksCgkgICAgICAgIG9wdHMgPSBfbGFzdE9wdHMyWzBdLAoJICAgICAgICBhcmdzID0gX2xhc3RPcHRzMlsxXSwKCSAgICAgICAgeWVhciA9IGFyZ3NbMF0sCgkgICAgICAgIG1vbnRoID0gYXJnc1sxXSwKCSAgICAgICAgZGF5ID0gYXJnc1syXSwKCSAgICAgICAgaG91ciA9IGFyZ3NbM10sCgkgICAgICAgIG1pbnV0ZSA9IGFyZ3NbNF0sCgkgICAgICAgIHNlY29uZCA9IGFyZ3NbNV0sCgkgICAgICAgIG1pbGxpc2Vjb25kID0gYXJnc1s2XTsKCgkgICAgb3B0cy56b25lID0gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlOwoJICAgIHJldHVybiBxdWlja0RUKHsKCSAgICAgIHllYXI6IHllYXIsCgkgICAgICBtb250aDogbW9udGgsCgkgICAgICBkYXk6IGRheSwKCSAgICAgIGhvdXI6IGhvdXIsCgkgICAgICBtaW51dGU6IG1pbnV0ZSwKCSAgICAgIHNlY29uZDogc2Vjb25kLAoJICAgICAgbWlsbGlzZWNvbmQ6IG1pbGxpc2Vjb25kCgkgICAgfSwgb3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0LiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuCgkgICAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdAoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50bwoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21KU0RhdGUgPSBmdW5jdGlvbiBmcm9tSlNEYXRlKGRhdGUsIG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICB2YXIgdHMgPSBpc0RhdGUoZGF0ZSkgPyBkYXRlLnZhbHVlT2YoKSA6IE5hTjsKCgkgICAgaWYgKE51bWJlci5pc05hTih0cykpIHsKCSAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKCJpbnZhbGlkIGlucHV0Iik7CgkgICAgfQoKCSAgICB2YXIgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTsKCgkgICAgaWYgKCF6b25lVG9Vc2UuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpOwoJICAgIH0KCgkgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7CgkgICAgICB0czogdHMsCgkgICAgICB6b25lOiB6b25lVG9Vc2UsCgkgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpCgkgICAgfSk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVEMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZQoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG8KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tTWlsbGlzID0gZnVuY3Rpb24gZnJvbU1pbGxpcyhtaWxsaXNlY29uZHMsIG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICBpZiAoIWlzTnVtYmVyKG1pbGxpc2Vjb25kcykpIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigiZnJvbU1pbGxpcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCwgYnV0IHJlY2VpdmVkIGEgIiArIHR5cGVvZiBtaWxsaXNlY29uZHMgKyAiIHdpdGggdmFsdWUgIiArIG1pbGxpc2Vjb25kcyk7CgkgICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPCAtTUFYX0RBVEUgfHwgbWlsbGlzZWNvbmRzID4gTUFYX0RBVEUpIHsKCSAgICAgIC8vIHRoaXMgaXNuJ3QgcGVyZmVjdCBiZWNhdXNlIGJlY2F1c2Ugd2UgY2FuIHN0aWxsIGVuZCB1cCBvdXQgb2YgcmFuZ2UgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIHNoaWZ0aW5nLCBidXQgaXQncyBhIHN0YXJ0CgkgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgiVGltZXN0YW1wIG91dCBvZiByYW5nZSIpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKCSAgICAgICAgdHM6IG1pbGxpc2Vjb25kcywKCSAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSwKCSAgICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRpb25zKQoJICAgICAgfSk7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS4KCSAgICogQHBhcmFtIHtudW1iZXJ9IHNlY29uZHMgLSBhIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIDE5NzAgVVRDCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWUKCSAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdGlvbnMuem9uZT0nbG9jYWwnXSAtIHRoZSB6b25lIHRvIHBsYWNlIHRoZSBEYXRlVGltZSBpbnRvCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgRGF0ZVRpbWUuZnJvbVNlY29uZHMgPSBmdW5jdGlvbiBmcm9tU2Vjb25kcyhzZWNvbmRzLCBvcHRpb25zKSB7CgkgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0aW9ucyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKCFpc051bWJlcihzZWNvbmRzKSkgewoJICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCIpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKCSAgICAgICAgdHM6IHNlY29uZHMgKiAxMDAwLAoJICAgICAgICB6b25lOiBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpLAoJICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpCgkgICAgICB9KTsKCSAgICB9CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcicgYW5kICdob3VyJyB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbQoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXIgLSBhIHllYXIsIHN1Y2ggYXMgMTk4NwoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1vbnRoIC0gYSBtb250aCwgMS0xMgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheSAtIGEgZGF5IG9mIHRoZSBtb250aCwgMS0zMSwgZGVwZW5kaW5nIG9uIHRoZSBtb250aAoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm9yZGluYWwgLSBkYXkgb2YgdGhlIHllYXIsIDEtMzY1IG9yIDM2NgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtZZWFyIC0gYW4gSVNPIHdlZWsgeWVhcgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtOdW1iZXIgLSBhbiBJU08gd2VlayBudW1iZXIsIGJldHdlZW4gMSBhbmQgNTIgb3IgNTMsIGRlcGVuZGluZyBvbiB0aGUgeWVhcgoJICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtkYXkgLSBhbiBJU08gd2Vla2RheSwgMS03LCB3aGVyZSAxIGlzIE1vbmRheSBhbmQgNyBpcyBTdW5kYXkKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3VyIC0gaG91ciBvZiB0aGUgZGF5LCAwLTIzCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWludXRlIC0gbWludXRlIG9mIHRoZSBob3VyLCAwLTU5CgkgICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouc2Vjb25kIC0gc2Vjb25kIG9mIHRoZSBtaW51dGUsIDAtNTkKCSAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taWxsaXNlY29uZCAtIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIDAtOTk5CgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhpcyBEYXRlVGltZQoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gaW50ZXJwcmV0IHRoZSBudW1iZXJzIGluIHRoZSBjb250ZXh0IG9mIGEgcGFydGljdWxhciB6b25lLiBDYW4gdGFrZSBhbnkgdmFsdWUgdGFrZW4gYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHNldFpvbmUoKQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogMTk4MiwgbW9udGg6IDUsIGRheTogMjV9KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1JwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogMTk4MiB9KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTAxLTAxJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9KSAvL34+IHRvZGF5IGF0IDEwOjI2OjA2CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ3V0YycgfSksCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ2xvY2FsJyB9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyB9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgd2Vla1llYXI6IDIwMTYsIHdlZWtOdW1iZXI6IDIsIHdlZWtkYXk6IDMgfSkudG9JU09EYXRlKCkgLy89PiAnMjAxNi0wMS0xMycKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tT2JqZWN0ID0gZnVuY3Rpb24gZnJvbU9iamVjdChvYmosIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICBvYmogPSBvYmogfHwge307CgkgICAgdmFyIHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CgoJICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lVG9Vc2UpKTsKCSAgICB9CgoJICAgIHZhciB0c05vdyA9IFNldHRpbmdzLm5vdygpLAoJICAgICAgICBvZmZzZXRQcm92aXMgPSAhaXNVbmRlZmluZWQob3B0cy5zcGVjaWZpY09mZnNldCkgPyBvcHRzLnNwZWNpZmljT2Zmc2V0IDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksCgkgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVVbml0KSwKCSAgICAgICAgY29udGFpbnNPcmRpbmFsID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQub3JkaW5hbCksCgkgICAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLAoJICAgICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksCgkgICAgICAgIGNvbnRhaW5zR3JlZ29yID0gY29udGFpbnNHcmVnb3JZZWFyIHx8IGNvbnRhaW5zR3JlZ29yTUQsCgkgICAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLAoJICAgICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKTsgLy8gY2FzZXM6CgkgICAgLy8ganVzdCBhIHdlZWtkYXkgLT4gdGhpcyB3ZWVrJ3MgaW5zdGFuY2Ugb2YgdGhhdCB3ZWVrZGF5LCBubyB3b3JyaWVzCgkgICAgLy8gKGdyZWdvcmlhbiBkYXRhIG9yIG9yZGluYWwpICsgKHdlZWtZZWFyIG9yIHdlZWtOdW1iZXIpIC0+IGVycm9yCgkgICAgLy8gKGdyZWdvcmlhbiBtb250aCBvciBkYXkpICsgb3JkaW5hbCAtPiBlcnJvcgoJICAgIC8vIG90aGVyd2lzZSBqdXN0IHVzZSB3ZWVrcyBvciBvcmRpbmFscyBvciBncmVnb3JpYW4sIGRlcGVuZGluZyBvbiB3aGF0J3Mgc3BlY2lmaWVkCgoJICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHsKCSAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgbWl4IHdlZWtZZWFyL3dlZWtOdW1iZXIgdW5pdHMgd2l0aCB5ZWFyL21vbnRoL2RheSBvciBvcmRpbmFscyIpOwoJICAgIH0KCgkgICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7CgkgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5Iik7CgkgICAgfQoKCSAgICB2YXIgdXNlV2Vla0RhdGEgPSBkZWZpbml0ZVdlZWtEZWYgfHwgbm9ybWFsaXplZC53ZWVrZGF5ICYmICFjb250YWluc0dyZWdvcjsgLy8gY29uZmlndXJlIG91cnNlbHZlcyB0byBkZWFsIHdpdGggZ3JlZ29yaWFuIGRhdGVzIG9yIHdlZWsgc3R1ZmYKCgkgICAgdmFyIHVuaXRzLAoJICAgICAgICBkZWZhdWx0VmFsdWVzLAoJICAgICAgICBvYmpOb3cgPSB0c1RvT2JqKHRzTm93LCBvZmZzZXRQcm92aXMpOwoKCSAgICBpZiAodXNlV2Vla0RhdGEpIHsKCSAgICAgIHVuaXRzID0gb3JkZXJlZFdlZWtVbml0czsKCSAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0V2Vla1VuaXRWYWx1ZXM7CgkgICAgICBvYmpOb3cgPSBncmVnb3JpYW5Ub1dlZWsob2JqTm93KTsKCSAgICB9IGVsc2UgaWYgKGNvbnRhaW5zT3JkaW5hbCkgewoJICAgICAgdW5pdHMgPSBvcmRlcmVkT3JkaW5hbFVuaXRzOwoJICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRPcmRpbmFsVW5pdFZhbHVlczsKCSAgICAgIG9iak5vdyA9IGdyZWdvcmlhblRvT3JkaW5hbChvYmpOb3cpOwoJICAgIH0gZWxzZSB7CgkgICAgICB1bml0cyA9IG9yZGVyZWRVbml0czsKCSAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VW5pdFZhbHVlczsKCSAgICB9IC8vIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBzdHVmZgoKCgkgICAgdmFyIGZvdW5kRmlyc3QgPSBmYWxzZTsKCgkgICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyTG9vc2UodW5pdHMpLCBfc3RlcDM7ICEoX3N0ZXAzID0gX2l0ZXJhdG9yMygpKS5kb25lOykgewoJICAgICAgdmFyIHUgPSBfc3RlcDMudmFsdWU7CgkgICAgICB2YXIgdiA9IG5vcm1hbGl6ZWRbdV07CgoJICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkgewoJICAgICAgICBmb3VuZEZpcnN0ID0gdHJ1ZTsKCSAgICAgIH0gZWxzZSBpZiAoZm91bmRGaXJzdCkgewoJICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTsKCSAgICAgIH0gZWxzZSB7CgkgICAgICAgIG5vcm1hbGl6ZWRbdV0gPSBvYmpOb3dbdV07CgkgICAgICB9CgkgICAgfSAvLyBtYWtlIHN1cmUgdGhlIHZhbHVlcyB3ZSBoYXZlIGFyZSBpbiByYW5nZQoKCgkgICAgdmFyIGhpZ2hlck9yZGVySW52YWxpZCA9IHVzZVdlZWtEYXRhID8gaGFzSW52YWxpZFdlZWtEYXRhKG5vcm1hbGl6ZWQpIDogY29udGFpbnNPcmRpbmFsID8gaGFzSW52YWxpZE9yZGluYWxEYXRhKG5vcm1hbGl6ZWQpIDogaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEobm9ybWFsaXplZCksCgkgICAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpOwoKCSAgICBpZiAoaW52YWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CgkgICAgfSAvLyBjb21wdXRlIHRoZSBhY3R1YWwgdGltZQoKCgkgICAgdmFyIGdyZWdvcmlhbiA9IHVzZVdlZWtEYXRhID8gd2Vla1RvR3JlZ29yaWFuKG5vcm1hbGl6ZWQpIDogY29udGFpbnNPcmRpbmFsID8gb3JkaW5hbFRvR3JlZ29yaWFuKG5vcm1hbGl6ZWQpIDogbm9ybWFsaXplZCwKCSAgICAgICAgX29ialRvVFMyID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSwKCSAgICAgICAgdHNGaW5hbCA9IF9vYmpUb1RTMlswXSwKCSAgICAgICAgb2Zmc2V0RmluYWwgPSBfb2JqVG9UUzJbMV0sCgkgICAgICAgIGluc3QgPSBuZXcgRGF0ZVRpbWUoewoJICAgICAgdHM6IHRzRmluYWwsCgkgICAgICB6b25lOiB6b25lVG9Vc2UsCgkgICAgICBvOiBvZmZzZXRGaW5hbCwKCSAgICAgIGxvYzogbG9jCgkgICAgfSk7IC8vIGdyZWdvcmlhbiBkYXRhICsgd2Vla2RheSBzZXJ2ZXMgb25seSB0byB2YWxpZGF0ZQoKCgkgICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7CgkgICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCgibWlzbWF0Y2hlZCB3ZWVrZGF5IiwgInlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICIgKyBub3JtYWxpemVkLndlZWtkYXkgKyAiIGFuZCBhIGRhdGUgb2YgIiArIGluc3QudG9JU08oKSk7CgkgICAgfQoKCSAgICByZXR1cm4gaW5zdDsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBJU08gODYwMSBzdHJpbmcKCSAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZwoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMrMDY6MDAnKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnLCB7em9uZTogJ3V0Yyd9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LVcwNS00JykKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tSVNPID0gZnVuY3Rpb24gZnJvbUlTTyh0ZXh0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIF9wYXJzZUlTT0RhdGUgPSBwYXJzZUlTT0RhdGUodGV4dCksCgkgICAgICAgIHZhbHMgPSBfcGFyc2VJU09EYXRlWzBdLAoJICAgICAgICBwYXJzZWRab25lID0gX3BhcnNlSVNPRGF0ZVsxXTsKCgkgICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgIklTTyA4NjAxIiwgdGV4dCk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gUkZDIDI4MjIgc3RyaW5nCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZwoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUuIFNpbmNlIHRoZSBvZmZzZXQgaXMgYWx3YXlzIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi4KCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzOjEyIEdNVCcpCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCdGcmksIDI1IE5vdiAyMDE2IDEzOjIzOjEyICswNjAwJykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21SRkMyODIyID0gZnVuY3Rpb24gZnJvbVJGQzI4MjIodGV4dCwgb3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfcGFyc2VSRkMyODIyRGF0ZSA9IHBhcnNlUkZDMjgyMkRhdGUodGV4dCksCgkgICAgICAgIHZhbHMgPSBfcGFyc2VSRkMyODIyRGF0ZVswXSwKCSAgICAgICAgcGFyc2VkWm9uZSA9IF9wYXJzZVJGQzI4MjJEYXRlWzFdOwoKCSAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCAiUkZDIDI4MjIiLCB0ZXh0KTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBIVFRQIGhlYWRlciBkYXRlCgkgICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIEhUVFAgaGVhZGVyIGRhdGUKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb24KCSAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLgoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCB0aGUgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcuIEZvciBIVFRQIGRhdGVzLCB0aGlzIGlzIGFsd2F5cyBVVEMsIHNvIHRoaXMgb3B0aW9uIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGUgYHpvbmVgIG9wdGlvbiB0byAndXRjJywgYnV0IHRoaXMgb3B0aW9uIGlzIGluY2x1ZGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHNpbWlsYXIgbWV0aG9kcy4KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2UKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1biwgMDYgTm92IDE5OTQgMDg6NDk6MzcgR01UJykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4gTm92ICA2IDA4OjQ5OjM3IDE5OTQnKQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21IVFRQID0gZnVuY3Rpb24gZnJvbUhUVFAodGV4dCwgb3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfcGFyc2VIVFRQRGF0ZSA9IHBhcnNlSFRUUERhdGUodGV4dCksCgkgICAgICAgIHZhbHMgPSBfcGFyc2VIVFRQRGF0ZVswXSwKCSAgICAgICAgcGFyc2VkWm9uZSA9IF9wYXJzZUhUVFBEYXRlWzFdOwoKCSAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCAiSFRUUCIsIG9wdHMpOwoJICB9CgkgIC8qKgoJICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy4KCSAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9wYXJzaW5nP2lkPXRhYmxlLW9mLXRva2VucykuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKQoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmUKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmZyb21Gb3JtYXQgPSBmdW5jdGlvbiBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoImZyb21Gb3JtYXQgcmVxdWlyZXMgYW4gaW5wdXQgc3RyaW5nIGFuZCBhIGZvcm1hdCIpOwoJICAgIH0KCgkgICAgdmFyIF9vcHRzID0gb3B0cywKCSAgICAgICAgX29wdHMkbG9jYWxlID0gX29wdHMubG9jYWxlLAoJICAgICAgICBsb2NhbGUgPSBfb3B0cyRsb2NhbGUgPT09IHZvaWQgMCA/IG51bGwgOiBfb3B0cyRsb2NhbGUsCgkgICAgICAgIF9vcHRzJG51bWJlcmluZ1N5c3RlbSA9IF9vcHRzLm51bWJlcmluZ1N5c3RlbSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX29wdHMkbnVtYmVyaW5nU3lzdGVtID09PSB2b2lkIDAgPyBudWxsIDogX29wdHMkbnVtYmVyaW5nU3lzdGVtLAoJICAgICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7CgkgICAgICBsb2NhbGU6IGxvY2FsZSwKCSAgICAgIG51bWJlcmluZ1N5c3RlbTogbnVtYmVyaW5nU3lzdGVtLAoJICAgICAgZGVmYXVsdFRvRU46IHRydWUKCSAgICB9KSwKCSAgICAgICAgX3BhcnNlRnJvbVRva2VucyA9IHBhcnNlRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KSwKCSAgICAgICAgdmFscyA9IF9wYXJzZUZyb21Ub2tlbnNbMF0sCgkgICAgICAgIHBhcnNlZFpvbmUgPSBfcGFyc2VGcm9tVG9rZW5zWzFdLAoJICAgICAgICBzcGVjaWZpY09mZnNldCA9IF9wYXJzZUZyb21Ub2tlbnNbMl0sCgkgICAgICAgIGludmFsaWQgPSBfcGFyc2VGcm9tVG9rZW5zWzNdOwoKCSAgICBpZiAoaW52YWxpZCkgewoJICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsICJmb3JtYXQgIiArIGZtdCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpOwoJICAgIH0KCSAgfQoJICAvKioKCSAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21Gb3JtYXQgaW5zdGVhZAoJICAgKi8KCSAgOwoKCSAgRGF0ZVRpbWUuZnJvbVN0cmluZyA9IGZ1bmN0aW9uIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodGV4dCwgZm10LCBvcHRzKTsKCSAgfQoJICAvKioKCSAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIFNRTCBkYXRlLCB0aW1lLCBvciBkYXRldGltZQoJICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGUKCSAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmUKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZQoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gYSBsb2NhbGUgc3RyaW5nIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIERhdGVUaW1lIHRvIHRoaXMgbG9jYWxlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW0KCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUnKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0JykKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiswNjowMCcpCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyIEFtZXJpY2EvTG9zX0FuZ2VsZXMnKQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJywgeyB6b25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycgfSkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMDk6MTI6MzQuMzQyJykKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tU1FMID0gZnVuY3Rpb24gZnJvbVNRTCh0ZXh0LCBvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgdmFyIF9wYXJzZVNRTCA9IHBhcnNlU1FMKHRleHQpLAoJICAgICAgICB2YWxzID0gX3BhcnNlU1FMWzBdLAoJICAgICAgICBwYXJzZWRab25lID0gX3BhcnNlU1FMWzFdOwoKCSAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCAiU1FMIiwgdGV4dCk7CgkgIH0KCSAgLyoqCgkgICAqIENyZWF0ZSBhbiBpbnZhbGlkIERhdGVUaW1lLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBEYXRlVGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5pbnZhbGlkID0gZnVuY3Rpb24gaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKSB7CgkgICAgaWYgKGV4cGxhbmF0aW9uID09PSB2b2lkIDApIHsKCSAgICAgIGV4cGxhbmF0aW9uID0gbnVsbDsKCSAgICB9CgoJICAgIGlmICghcmVhc29uKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRGF0ZVRpbWUgaXMgaW52YWxpZCIpOwoJICAgIH0KCgkgICAgdmFyIGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7CgoJICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkgewoJICAgICAgdGhyb3cgbmV3IEludmFsaWREYXRlVGltZUVycm9yKGludmFsaWQpOwoJICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gbmV3IERhdGVUaW1lKHsKCSAgICAgICAgaW52YWxpZDogaW52YWxpZAoJICAgICAgfSk7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZVRpbWUuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXMKCSAgICogQHBhcmFtIHtvYmplY3R9IG8KCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIERhdGVUaW1lLmlzRGF0ZVRpbWUgPSBmdW5jdGlvbiBpc0RhdGVUaW1lKG8pIHsKCSAgICByZXR1cm4gbyAmJiBvLmlzTHV4b25EYXRlVGltZSB8fCBmYWxzZTsKCSAgfSAvLyBJTkZPCgoJICAvKioKCSAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LgoJICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnbW9udGgnKTsgLy89PiA3CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnZGF5Jyk7IC8vPT4gNAoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICB2YXIgX3Byb3RvID0gRGF0ZVRpbWUucHJvdG90eXBlOwoKCSAgX3Byb3RvLmdldCA9IGZ1bmN0aW9uIGdldCh1bml0KSB7CgkgICAgcmV0dXJuIHRoaXNbdW5pdF07CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQuIEludmFsaWQgRGF0ZVRpbWVzIG9jY3VyIHdoZW46CgkgICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGZyb20gaW52YWxpZCBjYWxlbmRhciBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgMTN0aCBtb250aCBvciBGZWJydWFyeSAzMAoJICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBieSBhbiBvcGVyYXRpb24gb24gYW5vdGhlciBpbnZhbGlkIGRhdGUKCSAgICogQHR5cGUge2Jvb2xlYW59CgkgICAqLwoJICA7CgoJICAvKioKCSAgICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgSW50bCBvcHRpb25zIGZvciB0aGlzIERhdGVUaW1lLgoJICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSB0aGUgc2FtZSBvcHRpb25zIGFzIHRvTG9jYWxlU3RyaW5nCgkgICAqIEByZXR1cm4ge09iamVjdH0KCSAgICovCgkgIF9wcm90by5yZXNvbHZlZExvY2FsZU9wdGlvbnMgPSBmdW5jdGlvbiByZXNvbHZlZExvY2FsZU9wdGlvbnMob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfRm9ybWF0dGVyJGNyZWF0ZSRyZXMgPSBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5yZXNvbHZlZE9wdGlvbnModGhpcyksCgkgICAgICAgIGxvY2FsZSA9IF9Gb3JtYXR0ZXIkY3JlYXRlJHJlcy5sb2NhbGUsCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9Gb3JtYXR0ZXIkY3JlYXRlJHJlcy5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIGNhbGVuZGFyID0gX0Zvcm1hdHRlciRjcmVhdGUkcmVzLmNhbGVuZGFyOwoKCSAgICByZXR1cm4gewoJICAgICAgbG9jYWxlOiBsb2NhbGUsCgkgICAgICBudW1iZXJpbmdTeXN0ZW06IG51bWJlcmluZ1N5c3RlbSwKCSAgICAgIG91dHB1dENhbGVuZGFyOiBjYWxlbmRhcgoJICAgIH07CgkgIH0gLy8gVFJBTlNGT1JNCgoJICAvKioKCSAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBVVEMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS4KCSAgICoKCSAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdIC0gb3B0aW9uYWxseSwgYW4gb2Zmc2V0IGZyb20gVVRDIGluIG1pbnV0ZXMKCSAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzPXt9XSAtIG9wdGlvbnMgdG8gcGFzcyB0byBgc2V0Wm9uZSgpYAoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1VUQyA9IGZ1bmN0aW9uIHRvVVRDKG9mZnNldCwgb3B0cykgewoJICAgIGlmIChvZmZzZXQgPT09IHZvaWQgMCkgewoJICAgICAgb2Zmc2V0ID0gMDsKCSAgICB9CgoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgRGF0ZVRpbWUncyB6b25lIHRvIHRoZSBob3N0J3MgbG9jYWwgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgoJICAgKgoJICAgKiBFcXVpdmFsZW50IHRvIGBzZXRab25lKCdsb2NhbCcpYAoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0xvY2FsID0gZnVuY3Rpb24gdG9Mb2NhbCgpIHsKCSAgICByZXR1cm4gdGhpcy5zZXRab25lKFNldHRpbmdzLmRlZmF1bHRab25lKTsKCSAgfQoJICAvKioKCSAgICogIlNldCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgoJICAgKgoJICAgKiBCeSBkZWZhdWx0LCB0aGUgc2V0dGVyIGtlZXBzIHRoZSB1bmRlcmx5aW5nIHRpbWUgdGhlIHNhbWUgKGFzIGluLCB0aGUgc2FtZSB0aW1lc3RhbXApLCBidXQgdGhlIG5ldyBpbnN0YW5jZSB3aWxsIHJlcG9ydCBkaWZmZXJlbnQgbG9jYWwgdGltZXMgYW5kIGNvbnNpZGVyIERTVHMgd2hlbiBtYWtpbmcgY29tcHV0YXRpb25zLCBhcyB3aXRoIHtAbGluayBEYXRlVGltZSNwbHVzfS4gWW91IG1heSB3aXNoIHRvIHVzZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbH0gYW5kIHtAbGluayBEYXRlVGltZSN0b1VUQ30gd2hpY2ggcHJvdmlkZSBzaW1wbGUgY29udmVuaWVuY2Ugd3JhcHBlcnMgZm9yIGNvbW1vbmx5IHVzZWQgem9uZXMuCgkgICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5rZWVwTG9jYWxUaW1lPWZhbHNlXSAtIElmIHRydWUsIGFkanVzdCB0aGUgdW5kZXJseWluZyB0aW1lIHNvIHRoYXQgdGhlIGxvY2FsIHRpbWUgc3RheXMgdGhlIHNhbWUsIGJ1dCBpbiB0aGUgdGFyZ2V0IHpvbmUuIFlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdGhpcy4KCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uc2V0Wm9uZSA9IGZ1bmN0aW9uIHNldFpvbmUoem9uZSwgX3RlbXApIHsKCSAgICB2YXIgX3JlZjIgPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcCwKCSAgICAgICAgX3JlZjIka2VlcExvY2FsVGltZSA9IF9yZWYyLmtlZXBMb2NhbFRpbWUsCgkgICAgICAgIGtlZXBMb2NhbFRpbWUgPSBfcmVmMiRrZWVwTG9jYWxUaW1lID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYyJGtlZXBMb2NhbFRpbWUsCgkgICAgICAgIF9yZWYyJGtlZXBDYWxlbmRhclRpbSA9IF9yZWYyLmtlZXBDYWxlbmRhclRpbWUsCgkgICAgICAgIGtlZXBDYWxlbmRhclRpbWUgPSBfcmVmMiRrZWVwQ2FsZW5kYXJUaW0gPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjIka2VlcENhbGVuZGFyVGltOwoKCSAgICB6b25lID0gbm9ybWFsaXplWm9uZSh6b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7CgoJICAgIGlmICh6b25lLmVxdWFscyh0aGlzLnpvbmUpKSB7CgkgICAgICByZXR1cm4gdGhpczsKCSAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHsKCSAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lKSk7CgkgICAgfSBlbHNlIHsKCSAgICAgIHZhciBuZXdUUyA9IHRoaXMudHM7CgoJICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkgewoJICAgICAgICB2YXIgb2Zmc2V0R3Vlc3MgPSB6b25lLm9mZnNldCh0aGlzLnRzKTsKCSAgICAgICAgdmFyIGFzT2JqID0gdGhpcy50b09iamVjdCgpOwoKCSAgICAgICAgdmFyIF9vYmpUb1RTMyA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTsKCgkgICAgICAgIG5ld1RTID0gX29ialRvVFMzWzBdOwoJICAgICAgfQoKCSAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7CgkgICAgICAgIHRzOiBuZXdUUywKCSAgICAgICAgem9uZTogem9uZQoJICAgICAgfSk7CgkgICAgfQoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzIC0gdGhlIHByb3BlcnRpZXMgdG8gc2V0CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0KCSAgICovCgkgIDsKCgkgIF9wcm90by5yZWNvbmZpZ3VyZSA9IGZ1bmN0aW9uIHJlY29uZmlndXJlKF90ZW1wMikgewoJICAgIHZhciBfcmVmMyA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDIsCgkgICAgICAgIGxvY2FsZSA9IF9yZWYzLmxvY2FsZSwKCSAgICAgICAgbnVtYmVyaW5nU3lzdGVtID0gX3JlZjMubnVtYmVyaW5nU3lzdGVtLAoJICAgICAgICBvdXRwdXRDYWxlbmRhciA9IF9yZWYzLm91dHB1dENhbGVuZGFyOwoKCSAgICB2YXIgbG9jID0gdGhpcy5sb2MuY2xvbmUoewoJICAgICAgbG9jYWxlOiBsb2NhbGUsCgkgICAgICBudW1iZXJpbmdTeXN0ZW06IG51bWJlcmluZ1N5c3RlbSwKCSAgICAgIG91dHB1dENhbGVuZGFyOiBvdXRwdXRDYWxlbmRhcgoJICAgIH0pOwoJICAgIHJldHVybiBjbG9uZSh0aGlzLCB7CgkgICAgICBsb2M6IGxvYwoJICAgIH0pOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgbG9jYWxlLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuCgkgICAqIEp1c3QgYSBjb252ZW5pZW50IGFsaWFzIGZvciByZWNvbmZpZ3VyZSh7IGxvY2FsZSB9KQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkuc2V0TG9jYWxlKCdlbi1HQicpCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnNldExvY2FsZSA9IGZ1bmN0aW9uIHNldExvY2FsZShsb2NhbGUpIHsKCSAgICByZXR1cm4gdGhpcy5yZWNvbmZpZ3VyZSh7CgkgICAgICBsb2NhbGU6IGxvY2FsZQoJICAgIH0pOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLgoJICAgKiBZb3UgY2FuIG9ubHkgc2V0IHVuaXRzIHdpdGggdGhpcyBtZXRob2Q7IGZvciAic2V0dGluZyIgbWV0YWRhdGEsIHNlZSB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0uCgkgICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVycwoJICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB5ZWFyOiAyMDE3IH0pCgkgICAqIEBleGFtcGxlIGR0LnNldCh7IGhvdXI6IDgsIG1pbnV0ZTogMzAgfSkKCSAgICogQGV4YW1wbGUgZHQuc2V0KHsgd2Vla2RheTogNSB9KQoJICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB5ZWFyOiAyMDA1LCBvcmRpbmFsOiAyMzQgfSkKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uc2V0ID0gZnVuY3Rpb24gc2V0KHZhbHVlcykgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIG5vcm1hbGl6ZVVuaXQpLAoJICAgICAgICBzZXR0aW5nV2Vla1N0dWZmID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla1llYXIpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtkYXkpLAoJICAgICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSwKCSAgICAgICAgY29udGFpbnNHcmVnb3JZZWFyID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQueWVhciksCgkgICAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSwKCSAgICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCwKCSAgICAgICAgZGVmaW5pdGVXZWVrRGVmID0gbm9ybWFsaXplZC53ZWVrWWVhciB8fCBub3JtYWxpemVkLndlZWtOdW1iZXI7CgoJICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHsKCSAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcigiQ2FuJ3QgbWl4IHdlZWtZZWFyL3dlZWtOdW1iZXIgdW5pdHMgd2l0aCB5ZWFyL21vbnRoL2RheSBvciBvcmRpbmFscyIpOwoJICAgIH0KCgkgICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7CgkgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5Iik7CgkgICAgfQoKCSAgICB2YXIgbWl4ZWQ7CgoJICAgIGlmIChzZXR0aW5nV2Vla1N0dWZmKSB7CgkgICAgICBtaXhlZCA9IHdlZWtUb0dyZWdvcmlhbihfZXh0ZW5kcyh7fSwgZ3JlZ29yaWFuVG9XZWVrKHRoaXMuYyksIG5vcm1hbGl6ZWQpKTsKCSAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7CgkgICAgICBtaXhlZCA9IG9yZGluYWxUb0dyZWdvcmlhbihfZXh0ZW5kcyh7fSwgZ3JlZ29yaWFuVG9PcmRpbmFsKHRoaXMuYyksIG5vcm1hbGl6ZWQpKTsKCSAgICB9IGVsc2UgewoJICAgICAgbWl4ZWQgPSBfZXh0ZW5kcyh7fSwgdGhpcy50b09iamVjdCgpLCBub3JtYWxpemVkKTsgLy8gaWYgd2UgZGlkbid0IHNldCB0aGUgZGF5IGJ1dCB3ZSBlbmRlZCB1cCBvbiBhbiBvdmVyZmxvdyBkYXRlLAoJICAgICAgLy8gdXNlIHRoZSBsYXN0IGRheSBvZiB0aGUgcmlnaHQgbW9udGgKCgkgICAgICBpZiAoaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpKSB7CgkgICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTsKCSAgICAgIH0KCSAgICB9CgoJICAgIHZhciBfb2JqVG9UUzQgPSBvYmpUb1RTKG1peGVkLCB0aGlzLm8sIHRoaXMuem9uZSksCgkgICAgICAgIHRzID0gX29ialRvVFM0WzBdLAoJICAgICAgICBvID0gX29ialRvVFM0WzFdOwoKCSAgICByZXR1cm4gY2xvbmUodGhpcywgewoJICAgICAgdHM6IHRzLAoJICAgICAgbzogbwoJICAgIH0pOwoJICB9CgkgIC8qKgoJICAgKiBBZGQgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZQoJICAgKgoJICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uCgkgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KCkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cygxMjMpIC8vfj4gaW4gMTIzIG1pbGxpc2Vjb25kcwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pIC8vfj4gdGhpcyB0aW1lIHRvbW9ycm93CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAtMSB9KSAvL34+IHRoaXMgdGltZSB5ZXN0ZXJkYXkKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pbgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMywgbWludXRlczogMTMgfSkpIC8vfj4gaW4gMyBociwgMTMgbWluCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnBsdXMgPSBmdW5jdGlvbiBwbHVzKGR1cmF0aW9uKSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzOwoJICAgIHZhciBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTsKCSAgICByZXR1cm4gY2xvbmUodGhpcywgYWRqdXN0VGltZSh0aGlzLCBkdXIpKTsKCSAgfQoJICAvKioKCSAgICogU3VidHJhY3QgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZQoJICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI3BsdXN9CgkgICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIHN1YnRyYWN0LiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKQoJICAgQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8ubWludXMgPSBmdW5jdGlvbiBtaW51cyhkdXJhdGlvbikgewoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpczsKCSAgICB2YXIgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbikubmVnYXRlKCk7CgkgICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7CgkgIH0KCSAgLyoqCgkgICAqICJTZXQiIHRoaXMgRGF0ZVRpbWUgdG8gdGhlIGJlZ2lubmluZyBvZiBhIHVuaXQgb2YgdGltZS4KCSAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBUaGUgdW5pdCB0byBnbyB0byB0aGUgYmVnaW5uaW5nIG9mLiBDYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLCBvciAnbWlsbGlzZWNvbmQnLgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCdtb250aCcpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAxJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCd5ZWFyJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDEtMDEnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ3dlZWsnKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMy0wMycsIHdlZWtzIGFsd2F5cyBzdGFydCBvbiBNb25kYXlzCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdkYXknKS50b0lTT1RpbWUoKTsgLy89PiAnMDA6MDAuMDAwLTA1OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuc3RhcnRPZignaG91cicpLnRvSVNPVGltZSgpOyAvLz0+ICcwNTowMDowMC4wMDAtMDU6MDAnCgkgICAqIEByZXR1cm4ge0RhdGVUaW1lfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnN0YXJ0T2YgPSBmdW5jdGlvbiBzdGFydE9mKHVuaXQpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7CgkgICAgdmFyIG8gPSB7fSwKCSAgICAgICAgbm9ybWFsaXplZFVuaXQgPSBEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpOwoKCSAgICBzd2l0Y2ggKG5vcm1hbGl6ZWRVbml0KSB7CgkgICAgICBjYXNlICJ5ZWFycyI6CgkgICAgICAgIG8ubW9udGggPSAxOwoJICAgICAgLy8gZmFsbHMgdGhyb3VnaAoKCSAgICAgIGNhc2UgInF1YXJ0ZXJzIjoKCSAgICAgIGNhc2UgIm1vbnRocyI6CgkgICAgICAgIG8uZGF5ID0gMTsKCSAgICAgIC8vIGZhbGxzIHRocm91Z2gKCgkgICAgICBjYXNlICJ3ZWVrcyI6CgkgICAgICBjYXNlICJkYXlzIjoKCSAgICAgICAgby5ob3VyID0gMDsKCSAgICAgIC8vIGZhbGxzIHRocm91Z2gKCgkgICAgICBjYXNlICJob3VycyI6CgkgICAgICAgIG8ubWludXRlID0gMDsKCSAgICAgIC8vIGZhbGxzIHRocm91Z2gKCgkgICAgICBjYXNlICJtaW51dGVzIjoKCSAgICAgICAgby5zZWNvbmQgPSAwOwoJICAgICAgLy8gZmFsbHMgdGhyb3VnaAoKCSAgICAgIGNhc2UgInNlY29uZHMiOgoJICAgICAgICBvLm1pbGxpc2Vjb25kID0gMDsKCSAgICAgICAgYnJlYWs7CgkgICAgICAvLyBubyBkZWZhdWx0LCBpbnZhbGlkIHVuaXRzIHRocm93IGluIG5vcm1hbGl6ZVVuaXQoKQoJICAgIH0KCgkgICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSAid2Vla3MiKSB7CgkgICAgICBvLndlZWtkYXkgPSAxOwoJICAgIH0KCgkgICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSAicXVhcnRlcnMiKSB7CgkgICAgICB2YXIgcSA9IE1hdGguY2VpbCh0aGlzLm1vbnRoIC8gMyk7CgkgICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxOwoJICAgIH0KCgkgICAgcmV0dXJuIHRoaXMuc2V0KG8pOwoJICB9CgkgIC8qKgoJICAgKiAiU2V0IiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGVuZCBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy4KCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ21vbnRoJykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0zMVQyMzo1OTo1OS45OTktMDU6MDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd3ZWVrJykudG9JU08oKTsgLy8gPT4gJzIwMTQtMDMtMDlUMjM6NTk6NTkuOTk5LTA1OjAwJywgd2Vla3Mgc3RhcnQgb24gTW9uZGF5cwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2RheScpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMjM6NTk6NTkuOTk5LTA1OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCcKCSAgICogQHJldHVybiB7RGF0ZVRpbWV9CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZW5kT2YgPSBmdW5jdGlvbiBlbmRPZih1bml0KSB7CgkgICAgdmFyIF90aGlzJHBsdXM7CgoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnBsdXMoKF90aGlzJHBsdXMgPSB7fSwgX3RoaXMkcGx1c1t1bml0XSA9IDEsIF90aGlzJHBsdXMpKS5zdGFydE9mKHVuaXQpLm1pbnVzKDEpIDogdGhpczsKCSAgfSAvLyBPVVRQVVQKCgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuCgkgICAqICoqWW91IG1heSBub3Qgd2FudCB0aGlzLioqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvciBhIG1vcmUgZmxleGlibGUgZm9ybWF0dGluZyB0b29sLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9mb3JtYXR0aW5nP2lkPXRhYmxlLW9mLXRva2VucykuCgkgICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4KCSAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0cyB0byBvdmVycmlkZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIG9uIHRoaXMgRGF0ZVRpbWUKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJykgLy89PiAnMjAxNyBBcHIgMjInCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZnInKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IGF2ci4gMjInCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcsIHsgbG9jYWxlOiAiZnIiIH0pIC8vPT4gJzIwMTcgYXZyLiAyMicKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoIkhIICdob3VycyBhbmQnIG1tICdtaW51dGVzJyIpIC8vPT4gJzIwIGhvdXJzIGFuZCA1NSBtaW51dGVzJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9Gb3JtYXQgPSBmdW5jdGlvbiB0b0Zvcm1hdChmbXQsIG9wdHMpIHsKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5yZWRlZmF1bHRUb0VOKG9wdHMpKS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcodGhpcywgZm10KSA6IElOVkFMSUQ7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBsb2NhbGl6ZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGlzIGRhdGUuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUgSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBhbmQgYW55IHByZXNldHMgZGVmaW5lZCBieSBMdXhvbiwgc3VjaCBhcyBgRGF0ZVRpbWUuREFURV9GVUxMYCBvciBgRGF0ZVRpbWUuVElNRV9TSU1QTEVgLgoJICAgKiBUaGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhpcyBtZXRob2QgaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb24KCSAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuCgkgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0CgkgICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDQvMjAvMjAxNwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNycKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyBsb2NhbGU6ICdlbi1nYicgfSk7IC8vPT4gJzIwLzA0LzIwMTcnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3JwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5USU1FX1NJTVBMRSk7IC8vPT4gJzExOjMyIEFNJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1cnNkYXksIEFwcmlsIDIwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdzaG9ydCcsIG1vbnRoOiAnc2hvcnQnLCBkYXk6ICcyLWRpZ2l0JywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1LCBBcHIgMjAsIDExOjI3IEFNJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9Mb2NhbGVTdHJpbmcgPSBmdW5jdGlvbiB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzLCBvcHRzKSB7CgkgICAgaWYgKGZvcm1hdE9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgZm9ybWF0T3B0cyA9IERBVEVfU0hPUlQ7CgkgICAgfQoKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0RGF0ZVRpbWUodGhpcykgOiBJTlZBTElEOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGZvcm1hdCAicGFydHMiLCBtZWFuaW5nIGluZGl2aWR1YWwgdG9rZW5zIGFsb25nIHdpdGggbWV0YWRhdGEuIFRoaXMgaXMgYWxsb3dzIGNhbGxlcnMgdG8gcG9zdC1wcm9jZXNzIGluZGl2aWR1YWwgc2VjdGlvbnMgb2YgdGhlIGZvcm1hdHRlZCBvdXRwdXQuCgkgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAoJICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHMKCSAgICogQHBhcmFtIG9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMsIHNhbWUgYXMgYHRvTG9jYWxlU3RyaW5nYC4KCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVQYXJ0cygpOyAvLz0+IFsKCSAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LAoJICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sCgkgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbW9udGgnLCB2YWx1ZTogJzA1JyB9LAoJICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sCgkgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAneWVhcicsIHZhbHVlOiAnMTk4MicgfQoJICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiBdCgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9Mb2NhbGVQYXJ0cyA9IGZ1bmN0aW9uIHRvTG9jYWxlUGFydHMob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpIDogW107CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDAKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJwoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmV4dGVuZGVkWm9uZT10cnVlXSAtIGFkZCB0aGUgdGltZSB6b25lIGZvcm1hdCBleHRlbnNpb24KCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgzLCA1LCAyNSkudG9JU08oKSAvLz0+ICcxOTgyLTA1LTI1VDAwOjAwOjAwLjAwMFonCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKCkgLy89PiAnMjAxNy0wNC0yMlQyMDo0NzowNS4zMzUtMDQ6MDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMjAxNy0wNC0yMlQyMDo0NzowNS4zMzUnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzIwMTcwNDIyVDIwNDcwNS4zMzUtMDQwMCcKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSVNPID0gZnVuY3Rpb24gdG9JU08oX3RlbXAzKSB7CgkgICAgdmFyIF9yZWY0ID0gX3RlbXAzID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wMywKCSAgICAgICAgX3JlZjQkZm9ybWF0ID0gX3JlZjQuZm9ybWF0LAoJICAgICAgICBmb3JtYXQgPSBfcmVmNCRmb3JtYXQgPT09IHZvaWQgMCA/ICJleHRlbmRlZCIgOiBfcmVmNCRmb3JtYXQsCgkgICAgICAgIF9yZWY0JHN1cHByZXNzU2Vjb25kcyA9IF9yZWY0LnN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgc3VwcHJlc3NTZWNvbmRzID0gX3JlZjQkc3VwcHJlc3NTZWNvbmRzID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY0JHN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgX3JlZjQkc3VwcHJlc3NNaWxsaXNlID0gX3JlZjQuc3VwcHJlc3NNaWxsaXNlY29uZHMsCgkgICAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gX3JlZjQkc3VwcHJlc3NNaWxsaXNlID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY0JHN1cHByZXNzTWlsbGlzZSwKCSAgICAgICAgX3JlZjQkaW5jbHVkZU9mZnNldCA9IF9yZWY0LmluY2x1ZGVPZmZzZXQsCgkgICAgICAgIGluY2x1ZGVPZmZzZXQgPSBfcmVmNCRpbmNsdWRlT2Zmc2V0ID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjQkaW5jbHVkZU9mZnNldCwKCSAgICAgICAgX3JlZjQkZXh0ZW5kZWRab25lID0gX3JlZjQuZXh0ZW5kZWRab25lLAoJICAgICAgICBleHRlbmRlZFpvbmUgPSBfcmVmNCRleHRlbmRlZFpvbmUgPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjQkZXh0ZW5kZWRab25lOwoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIG51bGw7CgkgICAgfQoKCSAgICB2YXIgZXh0ID0gZm9ybWF0ID09PSAiZXh0ZW5kZWQiOwoKCSAgICB2YXIgYyA9IF90b0lTT0RhdGUodGhpcywgZXh0KTsKCgkgICAgYyArPSAiVCI7CgkgICAgYyArPSBfdG9JU09UaW1lKHRoaXMsIGV4dCwgc3VwcHJlc3NTZWNvbmRzLCBzdXBwcmVzc01pbGxpc2Vjb25kcywgaW5jbHVkZU9mZnNldCwgZXh0ZW5kZWRab25lKTsKCSAgICByZXR1cm4gYzsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyBkYXRlIGNvbXBvbmVudAoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0CgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNScKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT0RhdGUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMTk4MjA1MjUnCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT0RhdGUgPSBmdW5jdGlvbiB0b0lTT0RhdGUoX3RlbXA0KSB7CgkgICAgdmFyIF9yZWY1ID0gX3RlbXA0ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNCwKCSAgICAgICAgX3JlZjUkZm9ybWF0ID0gX3JlZjUuZm9ybWF0LAoJICAgICAgICBmb3JtYXQgPSBfcmVmNSRmb3JtYXQgPT09IHZvaWQgMCA/ICJleHRlbmRlZCIgOiBfcmVmNSRmb3JtYXQ7CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gbnVsbDsKCSAgICB9CgoJICAgIHJldHVybiBfdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gImV4dGVuZGVkIik7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3Mgd2VlayBkYXRlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09XZWVrRGF0ZSgpIC8vPT4gJzE5ODItVzIxLTInCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0lTT1dlZWtEYXRlID0gZnVuY3Rpb24gdG9JU09XZWVrRGF0ZSgpIHsKCSAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsICJra2trLSdXJ1dXLWMiKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyB0aW1lIGNvbXBvbmVudAoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCcKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdAoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSgpIC8vPT4gJzA3OjM0OjE5LjM2MVonCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQsIHNlY29uZHM6IDAsIG1pbGxpc2Vjb25kczogMCB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMDc6MzRaJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWicKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QwNzozNDoxOS4zNjFaJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9JU09UaW1lID0gZnVuY3Rpb24gdG9JU09UaW1lKF90ZW1wNSkgewoJICAgIHZhciBfcmVmNiA9IF90ZW1wNSA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDUsCgkgICAgICAgIF9yZWY2JHN1cHByZXNzTWlsbGlzZSA9IF9yZWY2LnN1cHByZXNzTWlsbGlzZWNvbmRzLAoJICAgICAgICBzdXBwcmVzc01pbGxpc2Vjb25kcyA9IF9yZWY2JHN1cHByZXNzTWlsbGlzZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmNiRzdXBwcmVzc01pbGxpc2UsCgkgICAgICAgIF9yZWY2JHN1cHByZXNzU2Vjb25kcyA9IF9yZWY2LnN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgc3VwcHJlc3NTZWNvbmRzID0gX3JlZjYkc3VwcHJlc3NTZWNvbmRzID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY2JHN1cHByZXNzU2Vjb25kcywKCSAgICAgICAgX3JlZjYkaW5jbHVkZU9mZnNldCA9IF9yZWY2LmluY2x1ZGVPZmZzZXQsCgkgICAgICAgIGluY2x1ZGVPZmZzZXQgPSBfcmVmNiRpbmNsdWRlT2Zmc2V0ID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjYkaW5jbHVkZU9mZnNldCwKCSAgICAgICAgX3JlZjYkaW5jbHVkZVByZWZpeCA9IF9yZWY2LmluY2x1ZGVQcmVmaXgsCgkgICAgICAgIGluY2x1ZGVQcmVmaXggPSBfcmVmNiRpbmNsdWRlUHJlZml4ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY2JGluY2x1ZGVQcmVmaXgsCgkgICAgICAgIF9yZWY2JGV4dGVuZGVkWm9uZSA9IF9yZWY2LmV4dGVuZGVkWm9uZSwKCSAgICAgICAgZXh0ZW5kZWRab25lID0gX3JlZjYkZXh0ZW5kZWRab25lID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY2JGV4dGVuZGVkWm9uZSwKCSAgICAgICAgX3JlZjYkZm9ybWF0ID0gX3JlZjYuZm9ybWF0LAoJICAgICAgICBmb3JtYXQgPSBfcmVmNiRmb3JtYXQgPT09IHZvaWQgMCA/ICJleHRlbmRlZCIgOiBfcmVmNiRmb3JtYXQ7CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gbnVsbDsKCSAgICB9CgoJICAgIHZhciBjID0gaW5jbHVkZVByZWZpeCA/ICJUIiA6ICIiOwoJICAgIHJldHVybiBjICsgX3RvSVNPVGltZSh0aGlzLCBmb3JtYXQgPT09ICJleHRlbmRlZCIsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQsIGV4dGVuZGVkWm9uZSk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYW4gUkZDIDI4MjItY29tcGF0aWJsZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZQoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgKzAwMDAnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9SRkMyODIyID0gZnVuY3Rpb24gdG9SRkMyODIyKCkgewoJICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaIiwgZmFsc2UpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBIVFRQIGhlYWRlcnMuIFRoZSBvdXRwdXQgaXMgYWx3YXlzIGV4cHJlc3NlZCBpbiBHTVQuCgkgICAqIFNwZWNpZmljYWxseSwgdGhlIHN0cmluZyBjb25mb3JtcyB0byBSRkMgMTEyMy4KCSAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjEKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIEdNVCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzLCAxOSkudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAxOTowMDowMCBHTVQnCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b0hUVFAgPSBmdW5jdGlvbiB0b0hUVFAoKSB7CgkgICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLnRvVVRDKCksICJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnIik7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9TUUxEYXRlKCkgLy89PiAnMjAxNC0wNy0xMycKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvU1FMRGF0ZSA9IGZ1bmN0aW9uIHRvU1FMRGF0ZSgpIHsKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgewoJICAgICAgcmV0dXJuIG51bGw7CgkgICAgfQoKCSAgICByZXR1cm4gX3RvSVNPRGF0ZSh0aGlzLCB0cnVlKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIFRpbWUKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LgoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldFNwYWNlPXRydWVdIC0gaW5jbHVkZSB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgdGltZSBhbmQgdGhlIG9mZnNldCwgc3VjaCBhcyAnMDU6MTU6MTYuMzQ1IC0wNDowMCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKCkgLy89PiAnMDU6MTU6MTYuMzQ1IC0wNDowMCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcwNToxNToxNi4zNDUnCgkgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSBBbWVyaWNhL05ld19Zb3JrJwoJICAgKiBAcmV0dXJuIHtzdHJpbmd9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9TUUxUaW1lID0gZnVuY3Rpb24gdG9TUUxUaW1lKF90ZW1wNikgewoJICAgIHZhciBfcmVmNyA9IF90ZW1wNiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDYsCgkgICAgICAgIF9yZWY3JGluY2x1ZGVPZmZzZXQgPSBfcmVmNy5pbmNsdWRlT2Zmc2V0LAoJICAgICAgICBpbmNsdWRlT2Zmc2V0ID0gX3JlZjckaW5jbHVkZU9mZnNldCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWY3JGluY2x1ZGVPZmZzZXQsCgkgICAgICAgIF9yZWY3JGluY2x1ZGVab25lID0gX3JlZjcuaW5jbHVkZVpvbmUsCgkgICAgICAgIGluY2x1ZGVab25lID0gX3JlZjckaW5jbHVkZVpvbmUgPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjckaW5jbHVkZVpvbmUsCgkgICAgICAgIF9yZWY3JGluY2x1ZGVPZmZzZXRTcCA9IF9yZWY3LmluY2x1ZGVPZmZzZXRTcGFjZSwKCSAgICAgICAgaW5jbHVkZU9mZnNldFNwYWNlID0gX3JlZjckaW5jbHVkZU9mZnNldFNwID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjckaW5jbHVkZU9mZnNldFNwOwoKCSAgICB2YXIgZm10ID0gIkhIOm1tOnNzLlNTUyI7CgoJICAgIGlmIChpbmNsdWRlWm9uZSB8fCBpbmNsdWRlT2Zmc2V0KSB7CgkgICAgICBpZiAoaW5jbHVkZU9mZnNldFNwYWNlKSB7CgkgICAgICAgIGZtdCArPSAiICI7CgkgICAgICB9CgoJICAgICAgaWYgKGluY2x1ZGVab25lKSB7CgkgICAgICAgIGZtdCArPSAieiI7CgkgICAgICB9IGVsc2UgaWYgKGluY2x1ZGVPZmZzZXQpIHsKCSAgICAgICAgZm10ICs9ICJaWiI7CgkgICAgICB9CgkgICAgfQoKCSAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIGZtdCwgdHJ1ZSk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlVGltZQoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCcKCSAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgWicKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgLTA0OjAwJwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCcKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IHRydWUgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgQW1lcmljYS9OZXdfWW9yaycKCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvU1FMID0gZnVuY3Rpb24gdG9TUUwob3B0cykgewoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gbnVsbDsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLnRvU1FMRGF0ZSgpICsgIiAiICsgdGhpcy50b1NRTFRpbWUob3B0cyk7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nCgkgICAqIEByZXR1cm4ge3N0cmluZ30KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBtaWxsaXNlY29uZHMgb2YgdGhpcyBEYXRlVGltZS4gQWxpYXMgb2Yge0BsaW5rIERhdGVUaW1lI3RvTWlsbGlzfQoJICAgKiBAcmV0dXJuIHtudW1iZXJ9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udmFsdWVPZiA9IGZ1bmN0aW9uIHZhbHVlT2YoKSB7CgkgICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuCgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b01pbGxpcyA9IGZ1bmN0aW9uIHRvTWlsbGlzKCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRzIDogTmFOOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuCgkgICAqIEByZXR1cm4ge251bWJlcn0KCSAgICovCgkgIDsKCgkgIF9wcm90by50b1NlY29uZHMgPSBmdW5jdGlvbiB0b1NlY29uZHMoKSB7CgkgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIChhcyBhIHdob2xlIG51bWJlcikgb2YgdGhpcyBEYXRlVGltZS4KCSAgICogQHJldHVybiB7bnVtYmVyfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvVW5peEludGVnZXIgPSBmdW5jdGlvbiB0b1VuaXhJbnRlZ2VyKCkgewoJICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi4KCSAgICogQHJldHVybiB7c3RyaW5nfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTigpIHsKCSAgICByZXR1cm4gdGhpcy50b0lTTygpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgQlNPTiBzZXJpYWxpemFibGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLgoJICAgKiBAcmV0dXJuIHtEYXRlfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvQlNPTiA9IGZ1bmN0aW9uIHRvQlNPTigpIHsKCSAgICByZXR1cm4gdGhpcy50b0pTRGF0ZSgpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGlzIERhdGVUaW1lJ3MgeWVhciwgbW9udGgsIGRheSwgYW5kIHNvIG9uLgoJICAgKiBAcGFyYW0gb3B0cyAtIG9wdGlvbnMgZm9yIGdlbmVyYXRpbmcgdGhlIG9iamVjdAoJICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVDb25maWc9ZmFsc2VdIC0gaW5jbHVkZSBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgaW4gdGhlIG91dHB1dAoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b09iamVjdCgpIC8vPT4geyB5ZWFyOiAyMDE3LCBtb250aDogNCwgZGF5OiAyMiwgaG91cjogMjAsIG1pbnV0ZTogNDksIHNlY29uZDogNDIsIG1pbGxpc2Vjb25kOiAyNjggfQoJICAgKiBAcmV0dXJuIHtPYmplY3R9CgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9PYmplY3QgPSBmdW5jdGlvbiB0b09iamVjdChvcHRzKSB7CgkgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0cyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTsKCgkgICAgdmFyIGJhc2UgPSBfZXh0ZW5kcyh7fSwgdGhpcy5jKTsKCgkgICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykgewoJICAgICAgYmFzZS5vdXRwdXRDYWxlbmRhciA9IHRoaXMub3V0cHV0Q2FsZW5kYXI7CgkgICAgICBiYXNlLm51bWJlcmluZ1N5c3RlbSA9IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbTsKCSAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlOwoJICAgIH0KCgkgICAgcmV0dXJuIGJhc2U7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IERhdGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLgoJICAgKiBAcmV0dXJuIHtEYXRlfQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLnRvSlNEYXRlID0gZnVuY3Rpb24gdG9KU0RhdGUoKSB7CgkgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU4pOwoJICB9IC8vIENPTVBBUkUKCgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gRGF0ZVRpbWVzIGFzIGEgRHVyYXRpb24uCgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgRGF0ZVRpbWUgdG8gY29tcGFyZSB0aGlzIG9uZSB0bwoJICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciBhcnJheSBvZiB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb24uCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZQoJICAgKiBAZXhhbXBsZQoJICAgKiB2YXIgaTEgPSBEYXRlVGltZS5mcm9tSVNPKCcxOTgyLTA1LTI1VDA5OjQ1JyksCgkgICAqICAgICBpMiA9IERhdGVUaW1lLmZyb21JU08oJzE5ODMtMTAtMTRUMTA6MzAnKTsKCSAgICogaTIuZGlmZihpMSkudG9PYmplY3QoKSAvLz0+IHsgbWlsbGlzZWNvbmRzOiA0MzgwNzUwMDAwMCB9CgkgICAqIGkyLmRpZmYoaTEsICdob3VycycpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMjE2OC43NSB9CgkgICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTkuMDMxMjUgfQoJICAgKiBpMi5kaWZmKGkxLCBbJ21vbnRocycsICdkYXlzJywgJ2hvdXJzJ10pLnRvT2JqZWN0KCkgLy89PiB7IG1vbnRoczogMTYsIGRheXM6IDE5LCBob3VyczogMC43NSB9CgkgICAqIEByZXR1cm4ge0R1cmF0aW9ufQoJICAgKi8KCSAgOwoKCSAgX3Byb3RvLmRpZmYgPSBmdW5jdGlvbiBkaWZmKG90aGVyRGF0ZVRpbWUsIHVuaXQsIG9wdHMpIHsKCSAgICBpZiAodW5pdCA9PT0gdm9pZCAwKSB7CgkgICAgICB1bml0ID0gIm1pbGxpc2Vjb25kcyI7CgkgICAgfQoKCSAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRzID0ge307CgkgICAgfQoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXJEYXRlVGltZS5pc1ZhbGlkKSB7CgkgICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZCgiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWUiKTsKCSAgICB9CgoJICAgIHZhciBkdXJPcHRzID0gX2V4dGVuZHMoewoJICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSwKCSAgICAgIG51bWJlcmluZ1N5c3RlbTogdGhpcy5udW1iZXJpbmdTeXN0ZW0KCSAgICB9LCBvcHRzKTsKCgkgICAgdmFyIHVuaXRzID0gbWF5YmVBcnJheSh1bml0KS5tYXAoRHVyYXRpb24ubm9ybWFsaXplVW5pdCksCgkgICAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksCgkgICAgICAgIGVhcmxpZXIgPSBvdGhlcklzTGF0ZXIgPyB0aGlzIDogb3RoZXJEYXRlVGltZSwKCSAgICAgICAgbGF0ZXIgPSBvdGhlcklzTGF0ZXIgPyBvdGhlckRhdGVUaW1lIDogdGhpcywKCSAgICAgICAgZGlmZmVkID0gX2RpZmYoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBkdXJPcHRzKTsKCgkgICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDsKCSAgfQoJICAvKioKCSAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBEYXRlVGltZSBhbmQgcmlnaHQgbm93LgoJICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI2RpZmZ9CgkgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvbgoJICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2UKCSAgICogQHJldHVybiB7RHVyYXRpb259CgkgICAqLwoJICA7CgoJICBfcHJvdG8uZGlmZk5vdyA9IGZ1bmN0aW9uIGRpZmZOb3codW5pdCwgb3B0cykgewoJICAgIGlmICh1bml0ID09PSB2b2lkIDApIHsKCSAgICAgIHVuaXQgPSAibWlsbGlzZWNvbmRzIjsKCSAgICB9CgoJICAgIGlmIChvcHRzID09PSB2b2lkIDApIHsKCSAgICAgIG9wdHMgPSB7fTsKCSAgICB9CgoJICAgIHJldHVybiB0aGlzLmRpZmYoRGF0ZVRpbWUubm93KCksIHVuaXQsIG9wdHMpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgc3Bhbm5pbmcgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCBhbm90aGVyIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgb3RoZXIgZW5kIHBvaW50IG9mIHRoZSBJbnRlcnZhbAoJICAgKiBAcmV0dXJuIHtJbnRlcnZhbH0KCSAgICovCgkgIDsKCgkgIF9wcm90by51bnRpbCA9IGZ1bmN0aW9uIHVudGlsKG90aGVyRGF0ZVRpbWUpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyh0aGlzLCBvdGhlckRhdGVUaW1lKSA6IHRoaXM7CgkgIH0KCSAgLyoqCgkgICAqIFJldHVybiB3aGV0aGVyIHRoaXMgRGF0ZVRpbWUgaXMgaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lIGFzIGFub3RoZXIgRGF0ZVRpbWUuCgkgICAqIEhpZ2hlci1vcmRlciB1bml0cyBtdXN0IGFsc28gYmUgaWRlbnRpY2FsIGZvciB0aGlzIGZ1bmN0aW9uIHRvIHJldHVybiBgdHJ1ZWAuCgkgICAqIE5vdGUgdGhhdCB0aW1lIHpvbmVzIGFyZSAqKmlnbm9yZWQqKiBpbiB0aGlzIGNvbXBhcmlzb24sIHdoaWNoIGNvbXBhcmVzIHRoZSAqKmxvY2FsKiogY2FsZW5kYXIgdGltZS4gVXNlIHtAbGluayBEYXRlVGltZSNzZXRab25lfSB0byBjb252ZXJ0IG9uZSBvZiB0aGUgZGF0ZXMgaWYgbmVlZGVkLgoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgb2YgdGltZSB0byBjaGVjayBzYW1lbmVzcyBvbgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5oYXNTYW1lKG90aGVyRFQsICdkYXknKTsgLy9+PiB0cnVlIGlmIG90aGVyRFQgaXMgaW4gdGhlIHNhbWUgY3VycmVudCBjYWxlbmRhciBkYXkKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5oYXNTYW1lID0gZnVuY3Rpb24gaGFzU2FtZShvdGhlckRhdGVUaW1lLCB1bml0KSB7CgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTsKCSAgICB2YXIgaW5wdXRNcyA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpOwoJICAgIHZhciBhZGp1c3RlZFRvWm9uZSA9IHRoaXMuc2V0Wm9uZShvdGhlckRhdGVUaW1lLnpvbmUsIHsKCSAgICAgIGtlZXBMb2NhbFRpbWU6IHRydWUKCSAgICB9KTsKCSAgICByZXR1cm4gYWRqdXN0ZWRUb1pvbmUuc3RhcnRPZih1bml0KSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gYWRqdXN0ZWRUb1pvbmUuZW5kT2YodW5pdCk7CgkgIH0KCSAgLyoqCgkgICAqIEVxdWFsaXR5IGNoZWNrCgkgICAqIFR3byBEYXRlVGltZXMgYXJlIGVxdWFsIGlmZiB0aGV5IHJlcHJlc2VudCB0aGUgc2FtZSBtaWxsaXNlY29uZCwgaGF2ZSB0aGUgc2FtZSB6b25lIGFuZCBsb2NhdGlvbiwgYW5kIGFyZSBib3RoIHZhbGlkLgoJICAgKiBUbyBjb21wYXJlIGp1c3QgdGhlIG1pbGxpc2Vjb25kIHZhbHVlcywgdXNlIGArZHQxID09PSArZHQyYC4KCSAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXIgLSB0aGUgb3RoZXIgRGF0ZVRpbWUKCSAgICogQHJldHVybiB7Ym9vbGVhbn0KCSAgICovCgkgIDsKCgkgIF9wcm90by5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMob3RoZXIpIHsKCSAgICByZXR1cm4gdGhpcy5pc1ZhbGlkICYmIG90aGVyLmlzVmFsaWQgJiYgdGhpcy52YWx1ZU9mKCkgPT09IG90aGVyLnZhbHVlT2YoKSAmJiB0aGlzLnpvbmUuZXF1YWxzKG90aGVyLnpvbmUpICYmIHRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdGhpcyB0aW1lIHJlbGF0aXZlIHRvIG5vdywgc3VjaCBhcyAiaW4gdHdvIGRheXMiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXIKCSAgICogcGxhdGZvcm0gc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuIFJvdW5kcyBkb3duIGJ5IGRlZmF1bHQuCgkgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0CgkgICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zdHlsZT0ibG9uZyJdIC0gdGhlIHN0eWxlIG9mIHVuaXRzLCBtdXN0IGJlICJsb25nIiwgInNob3J0Iiwgb3IgIm5hcnJvdyIKCSAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHM7IGlmIG9taXR0ZWQsIG9yIGFuIGFycmF5LCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgYmVzdCB1bml0LiBVc2UgYW4gYXJyYXkgb3Igb25lIG9mICJ5ZWFycyIsICJxdWFydGVycyIsICJtb250aHMiLCAid2Vla3MiLCAiZGF5cyIsICJob3VycyIsICJtaW51dGVzIiwgb3IgInNlY29uZHMiCgkgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuCgkgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5wYWRkaW5nPTBdIC0gcGFkZGluZyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgYWxsb3dzIHlvdSB0byByb3VuZCB1cCB0aGUgcmVzdWx0IGlmIGl0IGZpdHMgaW5zaWRlIHRoZSB0aHJlc2hvbGQuIERvbid0IHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIHtyb3VuZDogZmFsc2V9IGJlY2F1c2UgdGhlIGRlY2ltYWwgb3V0cHV0IHdpbGwgaW5jbHVkZSB0aGUgcGFkZGluZy4KCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubG9jYWxlIC0gb3ZlcnJpZGUgdGhlIGxvY2FsZSBvZiB0aGlzIERhdGVUaW1lCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXMKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gImluIDEgZGF5IgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoImVzIikudG9SZWxhdGl2ZSh7IGRheXM6IDEgfSkgLy89PiAiZGVudHJvIGRlIDEgZMOtYSIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSh7IGxvY2FsZTogImZyIiB9KSAvLz0+ICJkYW5zIDIzIGhldXJlcyIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoKSAvLz0+ICIyIGRheXMgYWdvIgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZSh7IHVuaXQ6ICJob3VycyIgfSkgLy89PiAiNDggaG91cnMgYWdvIgoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGhvdXJzOiAzNiB9KS50b1JlbGF0aXZlKHsgcm91bmQ6IGZhbHNlIH0pIC8vPT4gIjEuNSBkYXlzIGFnbyIKCSAgICovCgkgIDsKCgkgIF9wcm90by50b1JlbGF0aXZlID0gZnVuY3Rpb24gdG9SZWxhdGl2ZShvcHRpb25zKSB7CgkgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgewoJICAgICAgb3B0aW9ucyA9IHt9OwoJICAgIH0KCgkgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsOwoJICAgIHZhciBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsKCSAgICAgIHpvbmU6IHRoaXMuem9uZQoJICAgIH0pLAoJICAgICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nID8gdGhpcyA8IGJhc2UgPyAtb3B0aW9ucy5wYWRkaW5nIDogb3B0aW9ucy5wYWRkaW5nIDogMDsKCSAgICB2YXIgdW5pdHMgPSBbInllYXJzIiwgIm1vbnRocyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyJdOwoJICAgIHZhciB1bml0ID0gb3B0aW9ucy51bml0OwoKCSAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnVuaXQpKSB7CgkgICAgICB1bml0cyA9IG9wdGlvbnMudW5pdDsKCSAgICAgIHVuaXQgPSB1bmRlZmluZWQ7CgkgICAgfQoKCSAgICByZXR1cm4gZGlmZlJlbGF0aXZlKGJhc2UsIHRoaXMucGx1cyhwYWRkaW5nKSwgX2V4dGVuZHMoe30sIG9wdGlvbnMsIHsKCSAgICAgIG51bWVyaWM6ICJhbHdheXMiLAoJICAgICAgdW5pdHM6IHVuaXRzLAoJICAgICAgdW5pdDogdW5pdAoJICAgIH0pKTsKCSAgfQoJICAvKioKCSAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGRhdGUgcmVsYXRpdmUgdG8gdG9kYXksIHN1Y2ggYXMgInllc3RlcmRheSIgb3IgIm5leHQgbW9udGgiLgoJICAgKiBPbmx5IGludGVybmF0aW9uYWxpemVzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LgoJICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIG91dHB1dAoJICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBbb3B0aW9ucy5iYXNlPURhdGVUaW1lLm5vdygpXSAtIHRoZSBEYXRlVGltZSB0byB1c2UgYXMgdGhlIGJhc2lzIHRvIHdoaWNoIHRoaXMgdGltZSBpcyBjb21wYXJlZC4gRGVmYXVsdHMgdG8gbm93LgoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWUKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQ7IGlmIG9taXR0ZWQsIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSB1bml0LiBVc2Ugb25lIG9mICJ5ZWFycyIsICJxdWFydGVycyIsICJtb250aHMiLCAid2Vla3MiLCBvciAiZGF5cyIKCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gb3ZlcnJpZGUgdGhlIG51bWJlcmluZ1N5c3RlbSBvZiB0aGlzIERhdGVUaW1lLiBUaGUgSW50bCBzeXN0ZW0gbWF5IGNob29zZSBub3QgdG8gaG9ub3IgdGhpcwoJICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+ICJ0b21vcnJvdyIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKCJlcyIpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+ICIibWHDsWFuYSIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKHsgbG9jYWxlOiAiZnIiIH0pIC8vPT4gImRlbWFpbiIKCSAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gIjIgZGF5cyBhZ28iCgkgICAqLwoJICA7CgoJICBfcHJvdG8udG9SZWxhdGl2ZUNhbGVuZGFyID0gZnVuY3Rpb24gdG9SZWxhdGl2ZUNhbGVuZGFyKG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7CgkgICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgewoJICAgICAgem9uZTogdGhpcy56b25lCgkgICAgfSksIHRoaXMsIF9leHRlbmRzKHt9LCBvcHRpb25zLCB7CgkgICAgICBudW1lcmljOiAiYXV0byIsCgkgICAgICB1bml0czogWyJ5ZWFycyIsICJtb250aHMiLCAiZGF5cyJdLAoJICAgICAgY2FsZW5kYXJ5OiB0cnVlCgkgICAgfSkpOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXMKCSAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWluaW11bQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1pbiBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5taW4gPSBmdW5jdGlvbiBtaW4oKSB7CgkgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGRhdGVUaW1lcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHsKCSAgICAgIGRhdGVUaW1lc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTsKCSAgICB9CgoJICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7CgkgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIm1pbiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lcyIpOwoJICAgIH0KCgkgICAgcmV0dXJuIGJlc3RCeShkYXRlVGltZXMsIGZ1bmN0aW9uIChpKSB7CgkgICAgICByZXR1cm4gaS52YWx1ZU9mKCk7CgkgICAgfSwgTWF0aC5taW4pOwoJICB9CgkgIC8qKgoJICAgKiBSZXR1cm4gdGhlIG1heCBvZiBzZXZlcmFsIGRhdGUgdGltZXMKCSAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bQoJICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1heCBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5tYXggPSBmdW5jdGlvbiBtYXgoKSB7CgkgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBkYXRlVGltZXMgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHsKCSAgICAgIGRhdGVUaW1lc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdOwoJICAgIH0KCgkgICAgaWYgKCFkYXRlVGltZXMuZXZlcnkoRGF0ZVRpbWUuaXNEYXRlVGltZSkpIHsKCSAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigibWF4IHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzIik7CgkgICAgfQoKCSAgICByZXR1cm4gYmVzdEJ5KGRhdGVUaW1lcywgZnVuY3Rpb24gKGkpIHsKCSAgICAgIHJldHVybiBpLnZhbHVlT2YoKTsKCSAgICB9LCBNYXRoLm1heCk7CgkgIH0gLy8gTUlTQwoKCSAgLyoqCgkgICAqIEV4cGxhaW4gaG93IGEgc3RyaW5nIHdvdWxkIGJlIHBhcnNlZCBieSBmcm9tRm9ybWF0KCkKCSAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHRoZSBzdHJpbmcgaXMgZXhwZWN0ZWQgdG8gYmUgaW4gKHNlZSBkZXNjcmlwdGlvbikKCSAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRha2VuIGJ5IGZyb21Gb3JtYXQoKQoJICAgKiBAcmV0dXJuIHtPYmplY3R9CgkgICAqLwoJICA7CgoJICBEYXRlVGltZS5mcm9tRm9ybWF0RXhwbGFpbiA9IGZ1bmN0aW9uIGZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucykgewoJICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsKCSAgICAgIG9wdGlvbnMgPSB7fTsKCSAgICB9CgoJICAgIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsCgkgICAgICAgIF9vcHRpb25zJGxvY2FsZSA9IF9vcHRpb25zLmxvY2FsZSwKCSAgICAgICAgbG9jYWxlID0gX29wdGlvbnMkbG9jYWxlID09PSB2b2lkIDAgPyBudWxsIDogX29wdGlvbnMkbG9jYWxlLAoJICAgICAgICBfb3B0aW9ucyRudW1iZXJpbmdTeXMgPSBfb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0sCgkgICAgICAgIG51bWJlcmluZ1N5c3RlbSA9IF9vcHRpb25zJG51bWJlcmluZ1N5cyA9PT0gdm9pZCAwID8gbnVsbCA6IF9vcHRpb25zJG51bWJlcmluZ1N5cywKCSAgICAgICAgbG9jYWxlVG9Vc2UgPSBMb2NhbGUuZnJvbU9wdHMoewoJICAgICAgbG9jYWxlOiBsb2NhbGUsCgkgICAgICBudW1iZXJpbmdTeXN0ZW06IG51bWJlcmluZ1N5c3RlbSwKCSAgICAgIGRlZmF1bHRUb0VOOiB0cnVlCgkgICAgfSk7CgkgICAgcmV0dXJuIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZVRvVXNlLCB0ZXh0LCBmbXQpOwoJICB9CgkgIC8qKgoJICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdEV4cGxhaW4gaW5zdGVhZAoJICAgKi8KCSAgOwoKCSAgRGF0ZVRpbWUuZnJvbVN0cmluZ0V4cGxhaW4gPSBmdW5jdGlvbiBmcm9tU3RyaW5nRXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMpIHsKCSAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CgkgICAgICBvcHRpb25zID0ge307CgkgICAgfQoKCSAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zKTsKCSAgfSAvLyBGT1JNQVQgUFJFU0VUUwoKCSAgLyoqCgkgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4MwoJICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgKi8KCSAgOwoKCSAgX2NyZWF0ZUNsYXNzKERhdGVUaW1lLCBbewoJICAgIGtleTogImlzVmFsaWQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA9PT0gbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImludmFsaWRSZWFzb24iLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZAoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaW52YWxpZEV4cGxhbmF0aW9uIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lCgkgICAgICoKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImxvY2FsZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWUKCSAgICAgKgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibnVtYmVyaW5nU3lzdGVtIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG91dHB1dCBjYWxlbmRhciBvZiBhIERhdGVUaW1lLCBzdWNoICdpc2xhbWljJy4gVGhlIG91dHB1dCBjYWxlbmRhciBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWUKCSAgICAgKgoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAib3V0cHV0Q2FsZW5kYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLm91dHB1dENhbGVuZGFyIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuCgkgICAgICogQHR5cGUge1pvbmV9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiem9uZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5fem9uZTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJ6b25lTmFtZSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy56b25lLm5hbWUgOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHllYXIKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkueWVhciAvLz0+IDIwMTcKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogInllYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy55ZWFyIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHF1YXJ0ZXIKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkucXVhcnRlciAvLz0+IDIKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogInF1YXJ0ZXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBtb250aCAoMS0xMikuCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNQoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibW9udGgiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5tb250aCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS4KCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkuZGF5IC8vPT4gMjUKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImRheSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmRheSA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBob3VyIG9mIHRoZSBkYXkgKDAtMjMpLgoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5KS5ob3VyIC8vPT4gOQoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaG91ciIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbWludXRlIG9mIHRoZSBob3VyICgwLTU5KS4KCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJtaW51dGUiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5taW51dGUgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLgoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIpLnNlY29uZCAvLz0+IDUyCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJzZWNvbmQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5zZWNvbmQgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCAoMC05OTkpLgoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIsIDY1NCkubWlsbGlzZWNvbmQgLy89PiA2NTQKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIm1pbGxpc2Vjb25kIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgd2VlayB5ZWFyCgkgICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTIsIDMxKS53ZWVrWWVhciAvLz0+IDIwMTUKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIndlZWtZZWFyIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtZZWFyIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIHdlZWsgbnVtYmVyIG9mIHRoZSB3ZWVrIHllYXIgKDEtNTJpc2gpLgoJICAgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZQoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjEKCSAgICAgKiBAdHlwZSB7bnVtYmVyfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIndlZWtOdW1iZXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla051bWJlciA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuCgkgICAgICogMSBpcyBNb25kYXkgYW5kIDcgaXMgU3VuZGF5CgkgICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNAoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAid2Vla2RheSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrZGF5IDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcikKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkub3JkaW5hbCAvLz0+IDE0NQoJICAgICAqIEB0eXBlIHtudW1iZXJ8RGF0ZVRpbWV9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAib3JkaW5hbCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZ3JlZ29yaWFuVG9PcmRpbmFsKHRoaXMuYykub3JkaW5hbCA6IE5hTjsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBzaG9ydCBtb250aCBuYW1lLCBzdWNoIGFzICdPY3QnLgoJICAgICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZAoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdAoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAibW9udGhTaG9ydCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoInNob3J0IiwgewoJICAgICAgICBsb2NPYmo6IHRoaXMubG9jCgkgICAgICB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgbW9udGggbmFtZSwgc3VjaCBhcyAnT2N0b2JlcicuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJtb250aExvbmciLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ubW9udGhzKCJsb25nIiwgewoJICAgICAgICBsb2NPYmo6IHRoaXMubG9jCgkgICAgICB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IHdlZWtkYXksIHN1Y2ggYXMgJ01vbicuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb24KCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIndlZWtkYXlTaG9ydCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cygic2hvcnQiLCB7CgkgICAgICAgIGxvY09iajogdGhpcy5sb2MKCSAgICAgIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBsb25nIHdlZWtkYXksIHN1Y2ggYXMgJ01vbmRheScuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheQoJICAgICAqIEB0eXBlIHtzdHJpbmd9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAid2Vla2RheUxvbmciLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ud2Vla2RheXMoImxvbmciLCB7CgkgICAgICAgIGxvY09iajogdGhpcy5sb2MKCSAgICAgIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDsKCSAgICB9CgkgICAgLyoqCgkgICAgICogR2V0IHRoZSBVVEMgb2Zmc2V0IG9mIHRoaXMgRGF0ZVRpbWUgaW4gbWludXRlcwoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm9mZnNldCAvLz0+IC0yNDAKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJvZmZzZXQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/ICt0aGlzLm8gOiBOYU47CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgIkVTVCIgb3IgIkVEVCIuCgkgICAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkCgkgICAgICogQHR5cGUge3N0cmluZ30KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJvZmZzZXROYW1lU2hvcnQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgaWYgKHRoaXMuaXNWYWxpZCkgewoJICAgICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywgewoJICAgICAgICAgIGZvcm1hdDogInNob3J0IiwKCSAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlCgkgICAgICAgIH0pOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIG51bGw7CgkgICAgICB9CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB0aGUgbG9uZyBodW1hbiBuYW1lIGZvciB0aGUgem9uZSdzIGN1cnJlbnQgb2Zmc2V0LCBmb3IgZXhhbXBsZSAiRWFzdGVybiBTdGFuZGFyZCBUaW1lIiBvciAiRWFzdGVybiBEYXlsaWdodCBUaW1lIi4KCSAgICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQKCSAgICAgKiBAdHlwZSB7c3RyaW5nfQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIm9mZnNldE5hbWVMb25nIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIGlmICh0aGlzLmlzVmFsaWQpIHsKCSAgICAgICAgcmV0dXJuIHRoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMsIHsKCSAgICAgICAgICBmb3JtYXQ6ICJsb25nIiwKCSAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlCgkgICAgICAgIH0pOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIG51bGw7CgkgICAgICB9CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB3aGV0aGVyIHRoaXMgem9uZSdzIG9mZnNldCBldmVyIGNoYW5nZXMsIGFzIGluIGEgRFNULgoJICAgICAqIEB0eXBlIHtib29sZWFufQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogImlzT2Zmc2V0Rml4ZWQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5pc1VuaXZlcnNhbCA6IG51bGw7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIEdldCB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyBpbiBhIERTVC4KCSAgICAgKiBAdHlwZSB7Ym9vbGVhbn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJpc0luRFNUIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIGlmICh0aGlzLmlzT2Zmc2V0Rml4ZWQpIHsKCSAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgfSBlbHNlIHsKCSAgICAgICAgcmV0dXJuIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoewoJICAgICAgICAgIG1vbnRoOiAxLAoJICAgICAgICAgIGRheTogMQoJICAgICAgICB9KS5vZmZzZXQgfHwgdGhpcy5vZmZzZXQgPiB0aGlzLnNldCh7CgkgICAgICAgICAgbW9udGg6IDUKCSAgICAgICAgfSkub2Zmc2V0OwoJICAgICAgfQoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBEYXRlVGltZSBpcyBpbiBhIGxlYXAgeWVhciwgZmFsc2Ugb3RoZXJ3aXNlCgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuaXNJbkxlYXBZZWFyIC8vPT4gdHJ1ZQoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLmlzSW5MZWFwWWVhciAvLz0+IGZhbHNlCgkgICAgICogQHR5cGUge2Jvb2xlYW59CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiaXNJbkxlYXBZZWFyIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcik7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyBtb250aAoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYsIDIpLmRheXNJbk1vbnRoIC8vPT4gMjkKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2LCAzKS5kYXlzSW5Nb250aCAvLz0+IDMxCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJkYXlzSW5Nb250aCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gZGF5c0luTW9udGgodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTsKCSAgICB9CgkgICAgLyoqCgkgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIHllYXIKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2KS5kYXlzSW5ZZWFyIC8vPT4gMzY2CgkgICAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuZGF5c0luWWVhciAvLz0+IDM2NQoJICAgICAqIEB0eXBlIHtudW1iZXJ9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiZGF5c0luWWVhciIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZGF5c0luWWVhcih0aGlzLnllYXIpIDogTmFOOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygd2Vla3MgaW4gdGhpcyBEYXRlVGltZSdzIHllYXIKCSAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUKCSAgICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDA0KS53ZWVrc0luV2Vla1llYXIgLy89PiA1MwoJICAgICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUyCgkgICAgICogQHR5cGUge251bWJlcn0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJ3ZWVrc0luV2Vla1llYXIiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHdlZWtzSW5XZWVrWWVhcih0aGlzLndlZWtZZWFyKSA6IE5hTjsKCSAgICB9CgkgIH1dLCBbewoJICAgIGtleTogIkRBVEVfU0hPUlQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVfU0hPUlQ7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MycKCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVfTUVEIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFX01FRDsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCBPY3QgMTQsIDE5ODMnCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFX01FRF9XSVRIX1dFRUtEQVkiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVfTUVEX1dJVEhfV0VFS0RBWTsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MycKCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVfRlVMTCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURV9GVUxMOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdUdWVzZGF5LCBPY3RvYmVyIDE0LCAxOTgzJwoJICAgICAqIEB0eXBlIHtPYmplY3R9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiREFURV9IVUdFIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFX0hVR0U7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FX1NJTVBMRSIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV9TSU1QTEU7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FX1dJVEhfU0VDT05EUyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV9XSVRIX1NFQ09ORFM7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgoJICAgICAqIEB0eXBlIHtPYmplY3R9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiVElNRV9XSVRIX1NIT1JUX09GRlNFVCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV9XSVRIX1NIT1JUX09GRlNFVDsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FX1dJVEhfTE9OR19PRkZTRVQiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIFRJTUVfV0lUSF9MT05HX09GRlNFVDsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAnLCBhbHdheXMgMjQtaG91ci4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIlRJTUVfMjRfU0lNUExFIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBUSU1FXzI0X1NJTVBMRTsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMnLCBhbHdheXMgMjQtaG91ci4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIlRJTUVfMjRfV0lUSF9TRUNPTkRTIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfU0VDT05EUzsKCSAgICB9CgkgICAgLyoqCgkgICAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgRURUJywgYWx3YXlzIDI0LWhvdXIuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLCBhbHdheXMgMjQtaG91ci4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9TSE9SVCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfU0hPUlQ7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX01FRCIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfTUVEOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgMTQgT2N0IDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy4KCSAgICAgKiBAdHlwZSB7T2JqZWN0fQoJICAgICAqLwoKCSAgfSwgewoJICAgIGtleTogIkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVk7CgkgICAgfQoJICAgIC8qKgoJICAgICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9GVUxMIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFVElNRV9GVUxMOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLgoJICAgICAqIEB0eXBlIHtPYmplY3R9CgkgICAgICovCgoJICB9LCB7CgkgICAga2V5OiAiREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMiLAoJICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewoJICAgICAgcmV0dXJuIERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9IVUdFIiwKCSAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKCSAgICAgIHJldHVybiBEQVRFVElNRV9IVUdFOwoJICAgIH0KCSAgICAvKioKCSAgICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuCgkgICAgICogQHR5cGUge09iamVjdH0KCSAgICAgKi8KCgkgIH0sIHsKCSAgICBrZXk6ICJEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyIsCgkgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CgkgICAgICByZXR1cm4gREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFM7CgkgICAgfQoJICB9XSk7CgoJICByZXR1cm4gRGF0ZVRpbWU7Cgl9KCk7CglmdW5jdGlvbiBmcmllbmRseURhdGVUaW1lKGRhdGVUaW1laXNoKSB7CgkgIGlmIChEYXRlVGltZS5pc0RhdGVUaW1lKGRhdGVUaW1laXNoKSkgewoJICAgIHJldHVybiBkYXRlVGltZWlzaDsKCSAgfSBlbHNlIGlmIChkYXRlVGltZWlzaCAmJiBkYXRlVGltZWlzaC52YWx1ZU9mICYmIGlzTnVtYmVyKGRhdGVUaW1laXNoLnZhbHVlT2YoKSkpIHsKCSAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUpTRGF0ZShkYXRlVGltZWlzaCk7CgkgIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgdHlwZW9mIGRhdGVUaW1laXNoID09PSAib2JqZWN0IikgewoJICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KGRhdGVUaW1laXNoKTsKCSAgfSBlbHNlIHsKCSAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoIlVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICIgKyBkYXRlVGltZWlzaCArICIsIG9mIHR5cGUgIiArIHR5cGVvZiBkYXRlVGltZWlzaCk7CgkgIH0KCX0KCgl2YXIgVkVSU0lPTiA9ICIyLjQuMCI7CgoJdmFyIERhdGVUaW1lXzEgPSBsdXhvbi5EYXRlVGltZSA9IERhdGVUaW1lOwoJdmFyIER1cmF0aW9uXzEgPSBsdXhvbi5EdXJhdGlvbiA9IER1cmF0aW9uOwoJbHV4b24uRml4ZWRPZmZzZXRab25lID0gRml4ZWRPZmZzZXRab25lOwoJbHV4b24uSUFOQVpvbmUgPSBJQU5BWm9uZTsKCWx1eG9uLkluZm8gPSBJbmZvOwoJbHV4b24uSW50ZXJ2YWwgPSBJbnRlcnZhbDsKCWx1eG9uLkludmFsaWRab25lID0gSW52YWxpZFpvbmU7CglsdXhvbi5TZXR0aW5ncyA9IFNldHRpbmdzOwoJbHV4b24uU3lzdGVtWm9uZSA9IFN5c3RlbVpvbmU7CglsdXhvbi5WRVJTSU9OID0gVkVSU0lPTjsKCWx1eG9uLlpvbmUgPSBab25lOwoKCS8vLy8vLy8vLy8vLy8vLy8vLy8vDQoJLy8gUXVlcnkgU2V0dGluZ3MgLy8NCgkvLy8vLy8vLy8vLy8vLy8vLy8vLw0KCWNvbnN0IERFRkFVTFRfUVVFUllfU0VUVElOR1MgPSB7DQoJICAgIHJlbmRlck51bGxBczogIlxcLSIsDQoJICAgIHRhc2tDb21wbGV0aW9uVHJhY2tpbmc6IGZhbHNlLA0KCSAgICB0YXNrQ29tcGxldGlvblVzZUVtb2ppU2hvcnRoYW5kOiBmYWxzZSwNCgkgICAgdGFza0NvbXBsZXRpb25UZXh0OiAiY29tcGxldGlvbiIsDQoJICAgIHRhc2tDb21wbGV0aW9uRGF0ZUZvcm1hdDogInl5eXktTU0tZGQiLA0KCSAgICB3YXJuT25FbXB0eVJlc3VsdDogdHJ1ZSwNCgkgICAgcmVmcmVzaEVuYWJsZWQ6IHRydWUsDQoJICAgIHJlZnJlc2hJbnRlcnZhbDogMjUwMCwNCgkgICAgZGVmYXVsdERhdGVGb3JtYXQ6ICJNTU1NIGRkLCB5eXl5IiwNCgkgICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0OiAiaDptbSBhIC0gTU1NTSBkZCwgeXl5eSIsDQoJICAgIG1heFJlY3Vyc2l2ZVJlbmRlckRlcHRoOiA0LA0KCSAgICB0YWJsZUlkQ29sdW1uTmFtZTogIkZpbGUiLA0KCSAgICB0YWJsZUdyb3VwQ29sdW1uTmFtZTogIkdyb3VwIiwNCgl9Ow0KCWNvbnN0IERFRkFVTFRfRVhQT1JUX1NFVFRJTkdTID0gew0KCSAgICBhbGxvd0h0bWw6IHRydWUsDQoJfTsNCgkvKiogRGVmYXVsdCBzZXR0aW5ncyBmb3IgZGF0YXZpZXcgb24gaW5zdGFsbC4gKi8NCgkoew0KCSAgICAuLi5ERUZBVUxUX1FVRVJZX1NFVFRJTkdTLA0KCSAgICAuLi5ERUZBVUxUX0VYUE9SVF9TRVRUSU5HUywNCgkgICAgLi4uew0KCSAgICAgICAgaW5saW5lUXVlcnlQcmVmaXg6ICI9IiwNCgkgICAgICAgIGlubGluZUpzUXVlcnlQcmVmaXg6ICIkPSIsDQoJICAgICAgICBpbmxpbmVRdWVyaWVzSW5Db2RlYmxvY2tzOiB0cnVlLA0KCSAgICAgICAgZW5hYmxlRGF0YXZpZXdKczogZmFsc2UsDQoJICAgICAgICBlbmFibGVJbmxpbmVEYXRhdmlld0pzOiBmYWxzZSwNCgkgICAgICAgIHByZXR0eVJlbmRlcklubGluZUZpZWxkczogdHJ1ZSwNCgkgICAgfSwNCgl9KTsKCgkvKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuICovDQoJY2xhc3MgU3VjY2VzcyB7DQoJICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7DQoJICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQoJICAgICAgICB0aGlzLnN1Y2Nlc3NmdWwgPSB0cnVlOw0KCSAgICB9DQoJICAgIG1hcChmKSB7DQoJICAgICAgICByZXR1cm4gbmV3IFN1Y2Nlc3MoZih0aGlzLnZhbHVlKSk7DQoJICAgIH0NCgkgICAgZmxhdE1hcChmKSB7DQoJICAgICAgICByZXR1cm4gZih0aGlzLnZhbHVlKTsNCgkgICAgfQ0KCSAgICBtYXBFcnIoZikgew0KCSAgICAgICAgcmV0dXJuIHRoaXM7DQoJICAgIH0NCgkgICAgYmltYXAoc3VjYywgX2ZhaWwpIHsNCgkgICAgICAgIHJldHVybiB0aGlzLm1hcChzdWNjKTsNCgkgICAgfQ0KCSAgICBvckVsc2UoX3ZhbHVlKSB7DQoJICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsNCgkgICAgfQ0KCSAgICBjYXN0KCkgew0KCSAgICAgICAgcmV0dXJuIHRoaXM7DQoJICAgIH0NCgkgICAgb3JFbHNlVGhyb3coX21lc3NhZ2UpIHsNCgkgICAgICAgIHJldHVybiB0aGlzLnZhbHVlOw0KCSAgICB9DQoJfQ0KCS8qKiBGdW5jdGlvbmFsIHJldHVybiB0eXBlIGZvciBlcnJvciBoYW5kbGluZy4gKi8NCgljbGFzcyBGYWlsdXJlIHsNCgkgICAgY29uc3RydWN0b3IoZXJyb3IpIHsNCgkgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsNCgkgICAgICAgIHRoaXMuc3VjY2Vzc2Z1bCA9IGZhbHNlOw0KCSAgICB9DQoJICAgIG1hcChfZikgew0KCSAgICAgICAgcmV0dXJuIHRoaXM7DQoJICAgIH0NCgkgICAgZmxhdE1hcChfZikgew0KCSAgICAgICAgcmV0dXJuIHRoaXM7DQoJICAgIH0NCgkgICAgbWFwRXJyKGYpIHsNCgkgICAgICAgIHJldHVybiBuZXcgRmFpbHVyZShmKHRoaXMuZXJyb3IpKTsNCgkgICAgfQ0KCSAgICBiaW1hcChfc3VjYywgZmFpbCkgew0KCSAgICAgICAgcmV0dXJuIHRoaXMubWFwRXJyKGZhaWwpOw0KCSAgICB9DQoJICAgIG9yRWxzZSh2YWx1ZSkgew0KCSAgICAgICAgcmV0dXJuIHZhbHVlOw0KCSAgICB9DQoJICAgIGNhc3QoKSB7DQoJICAgICAgICByZXR1cm4gdGhpczsNCgkgICAgfQ0KCSAgICBvckVsc2VUaHJvdyhtZXNzYWdlKSB7DQoJICAgICAgICBpZiAobWVzc2FnZSkNCgkgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSh0aGlzLmVycm9yKSk7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCIiICsgdGhpcy5lcnJvcik7DQoJICAgIH0NCgl9DQoJLyoqIE1vbmFkaWMgJ1Jlc3VsdCcgdHlwZSB3aGljaCBlbmNhcHN1bGF0ZXMgd2hldGhlciBhIHByb2NlZHVyZSBzdWNjZWVkZWQgb3IgZmFpbGVkLCBhcyB3ZWxsIGFzIGl0J3MgcmV0dXJuIHZhbHVlLiAqLw0KCXZhciBSZXN1bHQ7DQoJKGZ1bmN0aW9uIChSZXN1bHQpIHsNCgkgICAgLyoqIENvbnN0cnVjdCBhIG5ldyBzdWNjZXNzIHJlc3VsdCB3cmFwcGluZyB0aGUgZ2l2ZW4gdmFsdWUuICovDQoJICAgIGZ1bmN0aW9uIHN1Y2Nlc3ModmFsdWUpIHsNCgkgICAgICAgIHJldHVybiBuZXcgU3VjY2Vzcyh2YWx1ZSk7DQoJICAgIH0NCgkgICAgUmVzdWx0LnN1Y2Nlc3MgPSBzdWNjZXNzOw0KCSAgICAvKiogQ29uc3RydWN0IGEgbmV3IGZhaWx1cmUgdmFsdWUgd3JhcHBpbmcgdGhlIGdpdmVuIGVycm9yLiAqLw0KCSAgICBmdW5jdGlvbiBmYWlsdXJlKGVycm9yKSB7DQoJICAgICAgICByZXR1cm4gbmV3IEZhaWx1cmUoZXJyb3IpOw0KCSAgICB9DQoJICAgIFJlc3VsdC5mYWlsdXJlID0gZmFpbHVyZTsNCgkgICAgLyoqIEpvaW4gdHdvIHJlc3VsdHMgd2l0aCBhIGJpLWZ1bmN0aW9uIGFuZCByZXR1cm4gYSBuZXcgcmVzdWx0LiAqLw0KCSAgICBmdW5jdGlvbiBmbGF0TWFwMihmaXJzdCwgc2Vjb25kLCBmKSB7DQoJICAgICAgICBpZiAoZmlyc3Quc3VjY2Vzc2Z1bCkgew0KCSAgICAgICAgICAgIGlmIChzZWNvbmQuc3VjY2Vzc2Z1bCkNCgkgICAgICAgICAgICAgICAgcmV0dXJuIGYoZmlyc3QudmFsdWUsIHNlY29uZC52YWx1ZSk7DQoJICAgICAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZShzZWNvbmQuZXJyb3IpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoZmlyc3QuZXJyb3IpOw0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIFJlc3VsdC5mbGF0TWFwMiA9IGZsYXRNYXAyOw0KCSAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovDQoJICAgIGZ1bmN0aW9uIG1hcDIoZmlyc3QsIHNlY29uZCwgZikgew0KCSAgICAgICAgcmV0dXJuIGZsYXRNYXAyKGZpcnN0LCBzZWNvbmQsIChhLCBiKSA9PiBzdWNjZXNzKGYoYSwgYikpKTsNCgkgICAgfQ0KCSAgICBSZXN1bHQubWFwMiA9IG1hcDI7DQoJfSkoUmVzdWx0IHx8IChSZXN1bHQgPSB7fSkpOwoKCXZhciBwYXJzaW1tb25fdW1kX21pbiA9IHtleHBvcnRzOiB7fX07CgoJKGZ1bmN0aW9uIChtb2R1bGUsIGV4cG9ydHMpIHsKCSFmdW5jdGlvbihuLHQpe21vZHVsZS5leHBvcnRzPXQoKTt9KCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOmNvbW1vbmpzR2xvYmFsLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXt9O2Z1bmN0aW9uIHIoZSl7aWYodFtlXSlyZXR1cm4gdFtlXS5leHBvcnRzO3ZhciB1PXRbZV09e2k6ZSxsOiExLGV4cG9ydHM6e319O3JldHVybiBuW2VdLmNhbGwodS5leHBvcnRzLHUsdS5leHBvcnRzLHIpLHUubD0hMCx1LmV4cG9ydHN9cmV0dXJuIHIubT1uLHIuYz10LHIuZD1mdW5jdGlvbihuLHQsZSl7ci5vKG4sdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHQse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDplfSk7fSxyLnI9ZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO30sci5uPWZ1bmN0aW9uKG4pe3ZhciB0PW4mJm4uX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBuLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIG59O3JldHVybiByLmQodCwiYSIsdCksdH0sci5vPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpfSxyLnA9IiIscihyLnM9MCl9KFtmdW5jdGlvbihuLHQscil7ZnVuY3Rpb24gZShuKXtpZighKHRoaXMgaW5zdGFuY2VvZiBlKSlyZXR1cm4gbmV3IGUobik7dGhpcy5fPW47fXZhciB1PWUucHJvdG90eXBlO2Z1bmN0aW9uIG8obix0KXtmb3IodmFyIHI9MDtyPG47cisrKXQocik7fWZ1bmN0aW9uIGkobix0LHIpe3JldHVybiBmdW5jdGlvbihuLHQpe28odC5sZW5ndGgsZnVuY3Rpb24ocil7bih0W3JdLHIsdCk7fSk7fShmdW5jdGlvbihyLGUsdSl7dD1uKHQscixlLHUpO30sciksdH1mdW5jdGlvbiBhKG4sdCl7cmV0dXJuIGkoZnVuY3Rpb24odCxyLGUsdSl7cmV0dXJuIHQuY29uY2F0KFtuKHIsZSx1KV0pfSxbXSx0KX1mdW5jdGlvbiBmKG4sdCl7dmFyIHI9e3Y6MCxidWY6dH07cmV0dXJuIG8obixmdW5jdGlvbigpe3ZhciBuO3I9e3Y6ci52PDwxfChuPXIuYnVmLG5bMF0+PjcpLGJ1ZjpmdW5jdGlvbihuKXt2YXIgdD1pKGZ1bmN0aW9uKG4sdCxyLGUpe3JldHVybiBuLmNvbmNhdChyPT09ZS5sZW5ndGgtMT9CdWZmZXIuZnJvbShbdCwwXSkucmVhZFVJbnQxNkJFKDApOmUucmVhZFVJbnQxNkJFKHIpKX0sW10sbik7cmV0dXJuIEJ1ZmZlci5mcm9tKGEoZnVuY3Rpb24obil7cmV0dXJuIChuPDwxJjY1NTM1KT4+OH0sdCkpfShyLmJ1Zil9O30pLHJ9ZnVuY3Rpb24gYygpe3JldHVybiAidW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcn1mdW5jdGlvbiBzKCl7aWYoIWMoKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlciBnbG9iYWwgZG9lcyBub3QgZXhpc3Q7IHBsZWFzZSB1c2Ugd2VicGFjayBpZiB5b3UgbmVlZCB0byBwYXJzZSBCdWZmZXJzIGluIHRoZSBicm93c2VyLiIpfWZ1bmN0aW9uIGwobil7cygpO3ZhciB0PWkoZnVuY3Rpb24obix0KXtyZXR1cm4gbit0fSwwLG4pO2lmKHQlOCE9MCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBiaXRzIFsiK24uam9pbigiLCAiKSsiXSBhZGQgdXAgdG8gIit0KyIgd2hpY2ggaXMgbm90IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzOyB0aGUgdG90YWwgc2hvdWxkIGJlIGRpdmlzaWJsZSBieSA4Iik7dmFyIHIsdT10Lzgsbz0ocj1mdW5jdGlvbihuKXtyZXR1cm4gbj40OH0saShmdW5jdGlvbihuLHQpe3JldHVybiBufHwocih0KT90Om4pfSxudWxsLG4pKTtpZihvKXRocm93IG5ldyBFcnJvcihvKyIgYml0IHJhbmdlIHJlcXVlc3RlZCBleGNlZWRzIDQ4IGJpdCAoNiBieXRlKSBOdW1iZXIgbWF4LiIpO3JldHVybiBuZXcgZShmdW5jdGlvbih0LHIpe3ZhciBlPXUrcjtyZXR1cm4gZT50Lmxlbmd0aD94KHIsdS50b1N0cmluZygpKyIgYnl0ZXMiKTpiKGUsaShmdW5jdGlvbihuLHQpe3ZhciByPWYodCxuLmJ1Zik7cmV0dXJuIHtjb2xsOm4uY29sbC5jb25jYXQoci52KSxidWY6ci5idWZ9fSx7Y29sbDpbXSxidWY6dC5zbGljZShyLGUpfSxuKS5jb2xsKX0pfWZ1bmN0aW9uIGgobix0KXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24ocixlKXtyZXR1cm4gcygpLGUrdD5yLmxlbmd0aD94KGUsdCsiIGJ5dGVzIGZvciAiK24pOmIoZSt0LHIuc2xpY2UoZSxlK3QpKX0pfWZ1bmN0aW9uIHAobix0KXtpZigibnVtYmVyIiE9dHlwZW9mKHI9dCl8fE1hdGguZmxvb3IocikhPT1yfHx0PDB8fHQ+Nil0aHJvdyBuZXcgRXJyb3IobisiIHJlcXVpcmVzIGludGVnZXIgbGVuZ3RoIGluIHJhbmdlIFswLCA2XS4iKTt2YXIgcjt9ZnVuY3Rpb24gZChuKXtyZXR1cm4gcCgidWludEJFIixuKSxoKCJ1aW50QkUoIituKyIpIixuKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVhZFVJbnRCRSgwLG4pfSl9ZnVuY3Rpb24gdihuKXtyZXR1cm4gcCgidWludExFIixuKSxoKCJ1aW50TEUoIituKyIpIixuKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVhZFVJbnRMRSgwLG4pfSl9ZnVuY3Rpb24gZyhuKXtyZXR1cm4gcCgiaW50QkUiLG4pLGgoImludEJFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRJbnRCRSgwLG4pfSl9ZnVuY3Rpb24gbShuKXtyZXR1cm4gcCgiaW50TEUiLG4pLGgoImludExFKCIrbisiKSIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRJbnRMRSgwLG4pfSl9ZnVuY3Rpb24geShuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIGV9ZnVuY3Rpb24gRShuKXtyZXR1cm4gIltvYmplY3QgQXJyYXldIj09PXt9LnRvU3RyaW5nLmNhbGwobil9ZnVuY3Rpb24gdyhuKXtyZXR1cm4gYygpJiZCdWZmZXIuaXNCdWZmZXIobil9ZnVuY3Rpb24gYihuLHQpe3JldHVybiB7c3RhdHVzOiEwLGluZGV4Om4sdmFsdWU6dCxmdXJ0aGVzdDotMSxleHBlY3RlZDpbXX19ZnVuY3Rpb24geChuLHQpe3JldHVybiBFKHQpfHwodD1bdF0pLHtzdGF0dXM6ITEsaW5kZXg6LTEsdmFsdWU6bnVsbCxmdXJ0aGVzdDpuLGV4cGVjdGVkOnR9fWZ1bmN0aW9uIEIobix0KXtpZighdClyZXR1cm4gbjtpZihuLmZ1cnRoZXN0PnQuZnVydGhlc3QpcmV0dXJuIG47dmFyIHI9bi5mdXJ0aGVzdD09PXQuZnVydGhlc3Q/ZnVuY3Rpb24obix0KXtpZihmdW5jdGlvbigpe2lmKHZvaWQgMCE9PWUuX3N1cHBvcnRzU2V0KXJldHVybiBlLl9zdXBwb3J0c1NldDt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFNldDtyZXR1cm4gZS5fc3VwcG9ydHNTZXQ9bixufSgpJiZBcnJheS5mcm9tKXtmb3IodmFyIHI9bmV3IFNldChuKSx1PTA7dTx0Lmxlbmd0aDt1Kyspci5hZGQodFt1XSk7dmFyIG89QXJyYXkuZnJvbShyKTtyZXR1cm4gby5zb3J0KCksb31mb3IodmFyIGk9e30sYT0wO2E8bi5sZW5ndGg7YSsrKWlbblthXV09ITA7Zm9yKHZhciBmPTA7Zjx0Lmxlbmd0aDtmKyspaVt0W2ZdXT0hMDt2YXIgYz1bXTtmb3IodmFyIHMgaW4gaSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoaSxzKSYmYy5wdXNoKHMpO3JldHVybiBjLnNvcnQoKSxjfShuLmV4cGVjdGVkLHQuZXhwZWN0ZWQpOnQuZXhwZWN0ZWQ7cmV0dXJuIHtzdGF0dXM6bi5zdGF0dXMsaW5kZXg6bi5pbmRleCx2YWx1ZTpuLnZhbHVlLGZ1cnRoZXN0OnQuZnVydGhlc3QsZXhwZWN0ZWQ6cn19dmFyIGo9e307ZnVuY3Rpb24gUyhuLHQpe2lmKHcobikpcmV0dXJuIHtvZmZzZXQ6dCxsaW5lOi0xLGNvbHVtbjotMX07biBpbiBqfHwoaltuXT17fSk7Zm9yKHZhciByPWpbbl0sZT0wLHU9MCxvPTAsaT10O2k+PTA7KXtpZihpIGluIHIpe2U9cltpXS5saW5lLDA9PT1vJiYobz1yW2ldLmxpbmVTdGFydCk7YnJlYWt9KCJcbiI9PT1uLmNoYXJBdChpKXx8IlxyIj09PW4uY2hhckF0KGkpJiYiXG4iIT09bi5jaGFyQXQoaSsxKSkmJih1KyssMD09PW8mJihvPWkrMSkpLGktLTt9dmFyIGE9ZSt1LGY9dC1vO3JldHVybiByW3RdPXtsaW5lOmEsbGluZVN0YXJ0Om99LHtvZmZzZXQ6dCxsaW5lOmErMSxjb2x1bW46ZisxfX1mdW5jdGlvbiBfKG4pe2lmKCF5KG4pKXRocm93IG5ldyBFcnJvcigibm90IGEgcGFyc2VyOiAiK24pfWZ1bmN0aW9uIEwobix0KXtyZXR1cm4gInN0cmluZyI9PXR5cGVvZiBuP24uY2hhckF0KHQpOm5bdF19ZnVuY3Rpb24gTyhuKXtpZigibnVtYmVyIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKCJub3QgYSBudW1iZXI6ICIrbil9ZnVuY3Rpb24gayhuKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIGZ1bmN0aW9uOiAiK24pfWZ1bmN0aW9uIFAobil7aWYoInN0cmluZyIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcigibm90IGEgc3RyaW5nOiAiK24pfXZhciBxPTIsQT0zLEk9OCxGPTUqSSxNPTQqSSx6PSIgICI7ZnVuY3Rpb24gUihuLHQpe3JldHVybiBuZXcgQXJyYXkodCsxKS5qb2luKG4pfWZ1bmN0aW9uIFUobix0LHIpe3ZhciBlPXQtbi5sZW5ndGg7cmV0dXJuIGU8PTA/bjpSKHIsZSkrbn1mdW5jdGlvbiBXKG4sdCxyLGUpe3JldHVybiB7ZnJvbTpuLXQ+MD9uLXQ6MCx0bzpuK3I+ZT9lOm4rcn19ZnVuY3Rpb24gRChuLHQpe3ZhciByLGUsdSxvLGYsYz10LmluZGV4LHM9Yy5vZmZzZXQsbD0xO2lmKHM9PT1uLmxlbmd0aClyZXR1cm4gIkdvdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCI7aWYodyhuKSl7dmFyIGg9cy1zJUkscD1zLWgsZD1XKGgsRixNK0ksbi5sZW5ndGgpLHY9YShmdW5jdGlvbihuKXtyZXR1cm4gYShmdW5jdGlvbihuKXtyZXR1cm4gVShuLnRvU3RyaW5nKDE2KSwyLCIwIil9LG4pfSxmdW5jdGlvbihuLHQpe3ZhciByPW4ubGVuZ3RoLGU9W10sdT0wO2lmKHI8PXQpcmV0dXJuIFtuLnNsaWNlKCldO2Zvcih2YXIgbz0wO288cjtvKyspZVt1XXx8ZS5wdXNoKFtdKSxlW3VdLnB1c2gobltvXSksKG8rMSkldD09MCYmdSsrO3JldHVybiBlfShuLnNsaWNlKGQuZnJvbSxkLnRvKS50b0pTT04oKS5kYXRhLEkpKTtvPWZ1bmN0aW9uKG4pe3JldHVybiAwPT09bi5mcm9tJiYxPT09bi50bz97ZnJvbTpuLmZyb20sdG86bi50b306e2Zyb206bi5mcm9tL0ksdG86TWF0aC5mbG9vcihuLnRvL0kpfX0oZCksZT1oL0kscj0zKnAscD49NCYmKHIrPTEpLGw9Mix1PWEoZnVuY3Rpb24obil7cmV0dXJuIG4ubGVuZ3RoPD00P24uam9pbigiICIpOm4uc2xpY2UoMCw0KS5qb2luKCIgIikrIiAgIituLnNsaWNlKDQpLmpvaW4oIiAiKX0sdiksKGY9KDgqKG8udG8+MD9vLnRvLTE6by50bykpLnRvU3RyaW5nKDE2KS5sZW5ndGgpPDImJihmPTIpO31lbHNlIHt2YXIgZz1uLnNwbGl0KC9cclxufFtcblxyXHUyMDI4XHUyMDI5XS8pO3I9Yy5jb2x1bW4tMSxlPWMubGluZS0xLG89VyhlLHEsQSxnLmxlbmd0aCksdT1nLnNsaWNlKG8uZnJvbSxvLnRvKSxmPW8udG8udG9TdHJpbmcoKS5sZW5ndGg7fXZhciBtPWUtby5mcm9tO3JldHVybiB3KG4pJiYoZj0oOCooby50bz4wP28udG8tMTpvLnRvKSkudG9TdHJpbmcoMTYpLmxlbmd0aCk8MiYmKGY9MiksaShmdW5jdGlvbih0LGUsdSl7dmFyIGksYT11PT09bSxjPWE/Ij4gIjp6O3JldHVybiBpPXcobik/VSgoOCooby5mcm9tK3UpKS50b1N0cmluZygxNiksZiwiMCIpOlUoKG8uZnJvbSt1KzEpLnRvU3RyaW5nKCksZiwiICIpLFtdLmNvbmNhdCh0LFtjK2krIiB8ICIrZV0sYT9beitSKCIgIixmKSsiIHwgIitVKCIiLHIsIiAiKStSKCJeIixsKV06W10pfSxbXSx1KS5qb2luKCJcbiIpfWZ1bmN0aW9uIE4obix0KXtyZXR1cm4gWyJcbiIsIi0tIFBBUlNJTkcgRkFJTEVEICIrUigiLSIsNTApLCJcblxuIixEKG4sdCksIlxuXG4iLChyPXQuZXhwZWN0ZWQsMT09PXIubGVuZ3RoPyJFeHBlY3RlZDpcblxuIityWzBdOiJFeHBlY3RlZCBvbmUgb2YgdGhlIGZvbGxvd2luZzogXG5cbiIrci5qb2luKCIsICIpKSwiXG4iXS5qb2luKCIiKTt2YXIgcjt9ZnVuY3Rpb24gRyhuKXtyZXR1cm4gdm9pZCAwIT09bi5mbGFncz9uLmZsYWdzOltuLmdsb2JhbD8iZyI6IiIsbi5pZ25vcmVDYXNlPyJpIjoiIixuLm11bHRpbGluZT8ibSI6IiIsbi51bmljb2RlPyJ1IjoiIixuLnN0aWNreT8ieSI6IiJdLmpvaW4oIiIpfWZ1bmN0aW9uIEMoKXtmb3IodmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLHQ9bi5sZW5ndGgscj0wO3I8dDtyKz0xKV8obltyXSk7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXtmb3IodmFyIHUsbz1uZXcgQXJyYXkodCksaT0wO2k8dDtpKz0xKXtpZighKHU9QihuW2ldLl8ocixlKSx1KSkuc3RhdHVzKXJldHVybiB1O29baV09dS52YWx1ZSxlPXUuaW5kZXg7fXJldHVybiBCKGIoZSxvKSx1KX0pfWZ1bmN0aW9uIEooKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoMD09PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigic2VxTWFwIG5lZWRzIGF0IGxlYXN0IG9uZSBhcmd1bWVudCIpO3ZhciB0PW4ucG9wKCk7cmV0dXJuIGsodCksQy5hcHBseShudWxsLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gdC5hcHBseShudWxsLG4pfSl9ZnVuY3Rpb24gVCgpe3ZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoO2lmKDA9PT10KXJldHVybiBZKCJ6ZXJvIGFsdGVybmF0ZXMiKTtmb3IodmFyIHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlLHU9MDt1PG4ubGVuZ3RoO3UrPTEpaWYoKGU9QihuW3VdLl8odCxyKSxlKSkuc3RhdHVzKXJldHVybiBlO3JldHVybiBlfSl9ZnVuY3Rpb24gVihuLHQpe3JldHVybiBIKG4sdCkub3IoWChbXSkpfWZ1bmN0aW9uIEgobix0KXtyZXR1cm4gXyhuKSxfKHQpLEoobix0LnRoZW4obikubWFueSgpLGZ1bmN0aW9uKG4sdCl7cmV0dXJuIFtuXS5jb25jYXQodCl9KX1mdW5jdGlvbiBLKG4pe1Aobik7dmFyIHQ9IiciK24rIiciO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9ZStuLmxlbmd0aCxvPXIuc2xpY2UoZSx1KTtyZXR1cm4gbz09PW4/Yih1LG8pOngoZSx0KX0pfWZ1bmN0aW9uIFEobix0KXshZnVuY3Rpb24obil7aWYoIShuIGluc3RhbmNlb2YgUmVnRXhwKSl0aHJvdyBuZXcgRXJyb3IoIm5vdCBhIHJlZ2V4cDogIituKTtmb3IodmFyIHQ9RyhuKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBlPXQuY2hhckF0KHIpO2lmKCJpIiE9PWUmJiJtIiE9PWUmJiJ1IiE9PWUmJiJzIiE9PWUpdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCByZWdleHAgZmxhZyAiJytlKyciOiAnK24pfX0obiksYXJndW1lbnRzLmxlbmd0aD49Mj9PKHQpOnQ9MDt2YXIgcj1mdW5jdGlvbihuKXtyZXR1cm4gUmVnRXhwKCJeKD86IituLnNvdXJjZSsiKSIsRyhuKSl9KG4pLHU9IiIrbjtyZXR1cm4gZShmdW5jdGlvbihuLGUpe3ZhciBvPXIuZXhlYyhuLnNsaWNlKGUpKTtpZihvKXtpZigwPD10JiZ0PD1vLmxlbmd0aCl7dmFyIGk9b1swXSxhPW9bdF07cmV0dXJuIGIoZStpLmxlbmd0aCxhKX1yZXR1cm4geChlLCJ2YWxpZCBtYXRjaCBncm91cCAoMCB0byAiK28ubGVuZ3RoKyIpIGluICIrdSl9cmV0dXJuIHgoZSx1KX0pfWZ1bmN0aW9uIFgobil7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtyZXR1cm4gYihyLG4pfSl9ZnVuY3Rpb24gWShuKXtyZXR1cm4gZShmdW5jdGlvbih0LHIpe3JldHVybiB4KHIsbil9KX1mdW5jdGlvbiBaKG4pe2lmKHkobikpcmV0dXJuIGUoZnVuY3Rpb24odCxyKXt2YXIgZT1uLl8odCxyKTtyZXR1cm4gZS5pbmRleD1yLGUudmFsdWU9IiIsZX0pO2lmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gWihLKG4pKTtpZihuIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBaKFEobikpO3Rocm93IG5ldyBFcnJvcigibm90IGEgc3RyaW5nLCByZWdleHAsIG9yIHBhcnNlcjogIituKX1mdW5jdGlvbiAkKG4pe3JldHVybiBfKG4pLGUoZnVuY3Rpb24odCxyKXt2YXIgZT1uLl8odCxyKSx1PXQuc2xpY2UocixlLmluZGV4KTtyZXR1cm4gZS5zdGF0dXM/eChyLCdub3QgIicrdSsnIicpOmIocixudWxsKX0pfWZ1bmN0aW9uIG5uKG4pe3JldHVybiBrKG4pLGUoZnVuY3Rpb24odCxyKXt2YXIgZT1MKHQscik7cmV0dXJuIHI8dC5sZW5ndGgmJm4oZSk/YihyKzEsZSk6eChyLCJhIGNoYXJhY3Rlci9ieXRlIG1hdGNoaW5nICIrbil9KX1mdW5jdGlvbiB0bihuLHQpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9bixuPXZvaWQgMCk7dmFyIHI9ZShmdW5jdGlvbihuLGUpe3JldHVybiByLl89dCgpLl8sci5fKG4sZSl9KTtyZXR1cm4gbj9yLmRlc2Mobik6cn1mdW5jdGlvbiBybigpe3JldHVybiBZKCJmYW50YXN5LWxhbmQvZW1wdHkiKX11LnBhcnNlPWZ1bmN0aW9uKG4pe2lmKCJzdHJpbmciIT10eXBlb2YgbiYmIXcobikpdGhyb3cgbmV3IEVycm9yKCIucGFyc2UgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIHN0cmluZyBvciBCdWZmZXIgYXMgaXRzIGFyZ3VtZW50Iik7dmFyIHQscj10aGlzLnNraXAoYW4pLl8obiwwKTtyZXR1cm4gdD1yLnN0YXR1cz97c3RhdHVzOiEwLHZhbHVlOnIudmFsdWV9OntzdGF0dXM6ITEsaW5kZXg6UyhuLHIuZnVydGhlc3QpLGV4cGVjdGVkOnIuZXhwZWN0ZWR9LGRlbGV0ZSBqW25dLHR9LHUudHJ5UGFyc2U9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5wYXJzZShuKTtpZih0LnN0YXR1cylyZXR1cm4gdC52YWx1ZTt2YXIgcj1OKG4sdCksZT1uZXcgRXJyb3Iocik7dGhyb3cgZS50eXBlPSJQYXJzaW1tb25FcnJvciIsZS5yZXN1bHQ9dCxlfSx1LmFzc2VydD1mdW5jdGlvbihuLHQpe3JldHVybiB0aGlzLmNoYWluKGZ1bmN0aW9uKHIpe3JldHVybiBuKHIpP1gocik6WSh0KX0pfSx1Lm9yPWZ1bmN0aW9uKG4pe3JldHVybiBUKHRoaXMsbil9LHUudHJpbT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy53cmFwKG4sbil9LHUud3JhcD1mdW5jdGlvbihuLHQpe3JldHVybiBKKG4sdGhpcyx0LGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHR9KX0sdS50aHJ1PWZ1bmN0aW9uKG4pe3JldHVybiBuKHRoaXMpfSx1LnRoZW49ZnVuY3Rpb24obil7cmV0dXJuIF8obiksQyh0aGlzLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gblsxXX0pfSx1Lm1hbnk9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPVtdLHU9dm9pZCAwOzspe2lmKCEodT1CKG4uXyh0LHIpLHUpKS5zdGF0dXMpcmV0dXJuIEIoYihyLGUpLHUpO2lmKHI9PT11LmluZGV4KXRocm93IG5ldyBFcnJvcigiaW5maW5pdGUgbG9vcCBkZXRlY3RlZCBpbiAubWFueSgpIHBhcnNlciAtLS0gY2FsbGluZyAubWFueSgpIG9uIGEgcGFyc2VyIHdoaWNoIGNhbiBhY2NlcHQgemVybyBjaGFyYWN0ZXJzIGlzIHVzdWFsbHkgdGhlIGNhdXNlIik7cj11LmluZGV4LGUucHVzaCh1LnZhbHVlKTt9fSl9LHUudGllV2l0aD1mdW5jdGlvbihuKXtyZXR1cm4gUChuKSx0aGlzLm1hcChmdW5jdGlvbih0KXtpZihmdW5jdGlvbihuKXtpZighRShuKSl0aHJvdyBuZXcgRXJyb3IoIm5vdCBhbiBhcnJheTogIituKX0odCksdC5sZW5ndGgpe1AodFswXSk7Zm9yKHZhciByPXRbMF0sZT0xO2U8dC5sZW5ndGg7ZSsrKVAodFtlXSkscis9bit0W2VdO3JldHVybiByfXJldHVybiAiIn0pfSx1LnRpZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpZVdpdGgoIiIpfSx1LnRpbWVzPWZ1bmN0aW9uKG4sdCl7dmFyIHI9dGhpcztyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYodD1uKSxPKG4pLE8odCksZShmdW5jdGlvbihlLHUpe2Zvcih2YXIgbz1bXSxpPXZvaWQgMCxhPXZvaWQgMCxmPTA7ZjxuO2YrPTEpe2lmKGE9QihpPXIuXyhlLHUpLGEpLCFpLnN0YXR1cylyZXR1cm4gYTt1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO31mb3IoO2Y8dCYmKGE9QihpPXIuXyhlLHUpLGEpLGkuc3RhdHVzKTtmKz0xKXU9aS5pbmRleCxvLnB1c2goaS52YWx1ZSk7cmV0dXJuIEIoYih1LG8pLGEpfSl9LHUucmVzdWx0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBufSl9LHUuYXRNb3N0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnRpbWVzKDAsbil9LHUuYXRMZWFzdD1mdW5jdGlvbihuKXtyZXR1cm4gSih0aGlzLnRpbWVzKG4pLHRoaXMubWFueSgpLGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4uY29uY2F0KHQpfSl9LHUubWFwPWZ1bmN0aW9uKG4pe2sobik7dmFyIHQ9dGhpcztyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PXQuXyhyLGUpO3JldHVybiB1LnN0YXR1cz9CKGIodS5pbmRleCxuKHUudmFsdWUpKSx1KTp1fSl9LHUuY29udHJhbWFwPWZ1bmN0aW9uKG4pe2sobik7dmFyIHQ9dGhpcztyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PXQucGFyc2UobihyLnNsaWNlKGUpKSk7cmV0dXJuIHUuc3RhdHVzP2IoZStyLmxlbmd0aCx1LnZhbHVlKTp1fSl9LHUucHJvbWFwPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGsobiksayh0KSx0aGlzLmNvbnRyYW1hcChuKS5tYXAodCl9LHUuc2tpcD1mdW5jdGlvbihuKXtyZXR1cm4gQyh0aGlzLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gblswXX0pfSx1Lm1hcms9ZnVuY3Rpb24oKXtyZXR1cm4gSihlbix0aGlzLGVuLGZ1bmN0aW9uKG4sdCxyKXtyZXR1cm4ge3N0YXJ0Om4sdmFsdWU6dCxlbmQ6cn19KX0sdS5ub2RlPWZ1bmN0aW9uKG4pe3JldHVybiBKKGVuLHRoaXMsZW4sZnVuY3Rpb24odCxyLGUpe3JldHVybiB7bmFtZTpuLHZhbHVlOnIsc3RhcnQ6dCxlbmQ6ZX19KX0sdS5zZXBCeT1mdW5jdGlvbihuKXtyZXR1cm4gVih0aGlzLG4pfSx1LnNlcEJ5MT1mdW5jdGlvbihuKXtyZXR1cm4gSCh0aGlzLG4pfSx1Lmxvb2thaGVhZD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5za2lwKFoobikpfSx1Lm5vdEZvbGxvd2VkQnk9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuc2tpcCgkKG4pKX0sdS5kZXNjPWZ1bmN0aW9uKG4pe0Uobil8fChuPVtuXSk7dmFyIHQ9dGhpcztyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PXQuXyhyLGUpO3JldHVybiB1LnN0YXR1c3x8KHUuZXhwZWN0ZWQ9biksdX0pfSx1LmZhbGxiYWNrPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm9yKFgobikpfSx1LmFwPWZ1bmN0aW9uKG4pe3JldHVybiBKKG4sdGhpcyxmdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSl9LHUuY2hhaW49ZnVuY3Rpb24obil7dmFyIHQ9dGhpcztyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PXQuXyhyLGUpO3JldHVybiB1LnN0YXR1cz9CKG4odS52YWx1ZSkuXyhyLHUuaW5kZXgpLHUpOnV9KX0sdS5jb25jYXQ9dS5vcix1LmVtcHR5PXJuLHUub2Y9WCx1WyJmYW50YXN5LWxhbmQvYXAiXT11LmFwLHVbImZhbnRhc3ktbGFuZC9jaGFpbiJdPXUuY2hhaW4sdVsiZmFudGFzeS1sYW5kL2NvbmNhdCJdPXUuY29uY2F0LHVbImZhbnRhc3ktbGFuZC9lbXB0eSJdPXUuZW1wdHksdVsiZmFudGFzeS1sYW5kL29mIl09dS5vZix1WyJmYW50YXN5LWxhbmQvbWFwIl09dS5tYXA7dmFyIGVuPWUoZnVuY3Rpb24obix0KXtyZXR1cm4gYih0LFMobix0KSl9KSx1bj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ+PW4ubGVuZ3RoP3godCwiYW55IGNoYXJhY3Rlci9ieXRlIik6Yih0KzEsTChuLHQpKX0pLG9uPWUoZnVuY3Rpb24obix0KXtyZXR1cm4gYihuLmxlbmd0aCxuLnNsaWNlKHQpKX0pLGFuPWUoZnVuY3Rpb24obix0KXtyZXR1cm4gdDxuLmxlbmd0aD94KHQsIkVPRiIpOmIodCxudWxsKX0pLGZuPVEoL1swLTldLykuZGVzYygiYSBkaWdpdCIpLGNuPVEoL1swLTldKi8pLmRlc2MoIm9wdGlvbmFsIGRpZ2l0cyIpLHNuPVEoL1thLXpdL2kpLmRlc2MoImEgbGV0dGVyIiksbG49USgvW2Etel0qL2kpLmRlc2MoIm9wdGlvbmFsIGxldHRlcnMiKSxobj1RKC9ccyovKS5kZXNjKCJvcHRpb25hbCB3aGl0ZXNwYWNlIikscG49USgvXHMrLykuZGVzYygid2hpdGVzcGFjZSIpLGRuPUsoIlxyIiksdm49SygiXG4iKSxnbj1LKCJcclxuIiksbW49VChnbix2bixkbikuZGVzYygibmV3bGluZSIpLHluPVQobW4sYW4pO2UuYWxsPW9uLGUuYWx0PVQsZS5hbnk9dW4sZS5jcj1kbixlLmNyZWF0ZUxhbmd1YWdlPWZ1bmN0aW9uKG4pe3ZhciB0PXt9O2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiZmdW5jdGlvbihyKXt0W3JdPXRuKGZ1bmN0aW9uKCl7cmV0dXJuIG5bcl0odCl9KTt9KHIpO3JldHVybiB0fSxlLmNybGY9Z24sZS5jdXN0b209ZnVuY3Rpb24obil7cmV0dXJuIGUobihiLHgpKX0sZS5kaWdpdD1mbixlLmRpZ2l0cz1jbixlLmVtcHR5PXJuLGUuZW5kPXluLGUuZW9mPWFuLGUuZmFpbD1ZLGUuZm9ybWF0RXJyb3I9TixlLmluZGV4PWVuLGUuaXNQYXJzZXI9eSxlLmxhenk9dG4sZS5sZXR0ZXI9c24sZS5sZXR0ZXJzPWxuLGUubGY9dm4sZS5sb29rYWhlYWQ9WixlLm1ha2VGYWlsdXJlPXgsZS5tYWtlU3VjY2Vzcz1iLGUubmV3bGluZT1tbixlLm5vbmVPZj1mdW5jdGlvbihuKXtyZXR1cm4gbm4oZnVuY3Rpb24odCl7cmV0dXJuIG4uaW5kZXhPZih0KTwwfSkuZGVzYygibm9uZSBvZiAnIituKyInIil9LGUubm90Rm9sbG93ZWRCeT0kLGUub2Y9WCxlLm9uZU9mPWZ1bmN0aW9uKG4pe2Zvcih2YXIgdD1uLnNwbGl0KCIiKSxyPTA7cjx0Lmxlbmd0aDtyKyspdFtyXT0iJyIrdFtyXSsiJyI7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk+PTB9KS5kZXNjKHQpfSxlLm9wdFdoaXRlc3BhY2U9aG4sZS5QYXJzZXI9ZSxlLnJhbmdlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG5uKGZ1bmN0aW9uKHIpe3JldHVybiBuPD1yJiZyPD10fSkuZGVzYyhuKyItIit0KX0sZS5yZWdleD1RLGUucmVnZXhwPVEsZS5zZXBCeT1WLGUuc2VwQnkxPUgsZS5zZXE9QyxlLnNlcU1hcD1KLGUuc2VxT2JqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuLHQ9e30scj0wLHU9KG49YXJndW1lbnRzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4pKSxvPXUubGVuZ3RoLGk9MDtpPG87aSs9MSl7dmFyIGE9dVtpXTtpZigheShhKSl7aWYoRShhKSYmMj09PWEubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGFbMF0mJnkoYVsxXSkpe3ZhciBmPWFbMF07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZikpdGhyb3cgbmV3IEVycm9yKCJzZXFPYmo6IGR1cGxpY2F0ZSBrZXkgIitmKTt0W2ZdPSEwLHIrKztjb250aW51ZX10aHJvdyBuZXcgRXJyb3IoInNlcU9iaiBhcmd1bWVudHMgbXVzdCBiZSBwYXJzZXJzIG9yIFtzdHJpbmcsIHBhcnNlcl0gYXJyYXkgcGFpcnMuIil9fWlmKDA9PT1yKXRocm93IG5ldyBFcnJvcigic2VxT2JqIGV4cGVjdHMgYXQgbGVhc3Qgb25lIG5hbWVkIHBhcnNlciwgZm91bmQgemVybyIpO3JldHVybiBlKGZ1bmN0aW9uKG4sdCl7Zm9yKHZhciByLGU9e30saT0wO2k8bztpKz0xKXt2YXIgYSxmO2lmKEUodVtpXSk/KGE9dVtpXVswXSxmPXVbaV1bMV0pOihhPW51bGwsZj11W2ldKSwhKHI9QihmLl8obix0KSxyKSkuc3RhdHVzKXJldHVybiByO2EmJihlW2FdPXIudmFsdWUpLHQ9ci5pbmRleDt9cmV0dXJuIEIoYih0LGUpLHIpfSl9LGUuc3RyaW5nPUssZS5zdWNjZWVkPVgsZS50YWtlV2hpbGU9ZnVuY3Rpb24obil7cmV0dXJuIGsobiksZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT1yO2U8dC5sZW5ndGgmJm4oTCh0LGUpKTspZSsrO3JldHVybiBiKGUsdC5zbGljZShyLGUpKX0pfSxlLnRlc3Q9bm4sZS53aGl0ZXNwYWNlPXBuLGVbImZhbnRhc3ktbGFuZC9lbXB0eSJdPXJuLGVbImZhbnRhc3ktbGFuZC9vZiJdPVgsZS5CaW5hcnk9e2JpdFNlcTpsLGJpdFNlcU9iajpmdW5jdGlvbihuKXtzKCk7dmFyIHQ9e30scj0wLGU9YShmdW5jdGlvbihuKXtpZihFKG4pKXt2YXIgZT1uO2lmKDIhPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlsiK2Uuam9pbigiLCAiKSsiXSBzaG91bGQgYmUgbGVuZ3RoIDIsIGdvdCBsZW5ndGggIitlLmxlbmd0aCk7aWYoUChlWzBdKSxPKGVbMV0pLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGVbMF0pKXRocm93IG5ldyBFcnJvcigiZHVwbGljYXRlIGtleSBpbiBiaXRTZXFPYmo6ICIrZVswXSk7cmV0dXJuIHRbZVswXV09ITAscisrLGV9cmV0dXJuIE8obiksW251bGwsbl19LG4pO2lmKHI8MSl0aHJvdyBuZXcgRXJyb3IoImJpdFNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYWlyLCBnb3QgWyIrbi5qb2luKCIsICIpKyJdIik7dmFyIHU9YShmdW5jdGlvbihuKXtyZXR1cm4gblswXX0sZSk7cmV0dXJuIGwoYShmdW5jdGlvbihuKXtyZXR1cm4gblsxXX0sZSkpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gaShmdW5jdGlvbihuLHQpe3JldHVybiBudWxsIT09dFswXSYmKG5bdFswXV09dFsxXSksbn0se30sYShmdW5jdGlvbih0LHIpe3JldHVybiBbdCxuW3JdXX0sdSkpfSl9LGJ5dGU6ZnVuY3Rpb24obil7aWYocygpLE8obiksbj4yNTUpdGhyb3cgbmV3IEVycm9yKCJWYWx1ZSBzcGVjaWZpZWQgdG8gYnl0ZSBjb25zdHJ1Y3RvciAoIituKyI9MHgiK24udG9TdHJpbmcoMTYpKyIpIGlzIGxhcmdlciBpbiB2YWx1ZSB0aGFuIGEgc2luZ2xlIGJ5dGUuIik7dmFyIHQ9KG4+MTU/IjB4IjoiMHgwIikrbi50b1N0cmluZygxNik7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT1MKHIsZSk7cmV0dXJuIHU9PT1uP2IoZSsxLHUpOngoZSx0KX0pfSxidWZmZXI6ZnVuY3Rpb24obil7cmV0dXJuIGgoImJ1ZmZlciIsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBCdWZmZXIuZnJvbShuKX0pfSxlbmNvZGVkU3RyaW5nOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIGgoInN0cmluZyIsdCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKG4pfSl9LHVpbnRCRTpkLHVpbnQ4QkU6ZCgxKSx1aW50MTZCRTpkKDIpLHVpbnQzMkJFOmQoNCksdWludExFOnYsdWludDhMRTp2KDEpLHVpbnQxNkxFOnYoMiksdWludDMyTEU6dig0KSxpbnRCRTpnLGludDhCRTpnKDEpLGludDE2QkU6ZygyKSxpbnQzMkJFOmcoNCksaW50TEU6bSxpbnQ4TEU6bSgxKSxpbnQxNkxFOm0oMiksaW50MzJMRTptKDQpLGZsb2F0QkU6aCgiZmxvYXRCRSIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdEJFKDApfSksZmxvYXRMRTpoKCJmbG9hdExFIiw0KS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVhZEZsb2F0TEUoMCl9KSxkb3VibGVCRTpoKCJkb3VibGVCRSIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVCRSgwKX0pLGRvdWJsZUxFOmgoImRvdWJsZUxFIiw4KS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVhZERvdWJsZUxFKDApfSl9LG4uZXhwb3J0cz1lO31dKX0pOwoJfShwYXJzaW1tb25fdW1kX21pbikpOwoKCXZhciBlbW9qaVJlZ2V4ID0gKCkgPT4gewoJCS8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaQoJCXJldHVybiAvKD86WyMqMC05XVx1RkUwRj9cdTIwRTN8W1x4QTlceEFFXHUyMDNDXHUyMDQ5XHUyMTIyXHUyMTM5XHUyMTk0LVx1MjE5OVx1MjFBOVx1MjFBQVx1MjMxQVx1MjMxQlx1MjMyOFx1MjNDRlx1MjNFRC1cdTIzRUZcdTIzRjFcdTIzRjJcdTIzRjgtXHUyM0ZBXHUyNEMyXHUyNUFBXHUyNUFCXHUyNUI2XHUyNUMwXHUyNUZCXHUyNUZDXHUyNUZFXHUyNjAwLVx1MjYwNFx1MjYwRVx1MjYxMVx1MjYxNFx1MjYxNVx1MjYxOFx1MjYyMFx1MjYyMlx1MjYyM1x1MjYyNlx1MjYyQVx1MjYyRVx1MjYyRlx1MjYzOC1cdTI2M0FcdTI2NDBcdTI2NDJcdTI2NDgtXHUyNjUzXHUyNjVGXHUyNjYwXHUyNjYzXHUyNjY1XHUyNjY2XHUyNjY4XHUyNjdCXHUyNjdFXHUyNjdGXHUyNjkyXHUyNjk0LVx1MjY5N1x1MjY5OVx1MjY5Qlx1MjY5Q1x1MjZBMFx1MjZBN1x1MjZBQVx1MjZCMFx1MjZCMVx1MjZCRFx1MjZCRVx1MjZDNFx1MjZDOFx1MjZDRlx1MjZEMVx1MjZEM1x1MjZFOVx1MjZGMC1cdTI2RjVcdTI2RjdcdTI2RjhcdTI2RkFcdTI3MDJcdTI3MDhcdTI3MDlcdTI3MEZcdTI3MTJcdTI3MTRcdTI3MTZcdTI3MURcdTI3MjFcdTI3MzNcdTI3MzRcdTI3NDRcdTI3NDdcdTI3NTdcdTI3NjNcdTI3QTFcdTI5MzRcdTI5MzVcdTJCMDUtXHUyQjA3XHUyQjFCXHUyQjFDXHUyQjU1XHUzMDMwXHUzMDNEXHUzMjk3XHUzMjk5XVx1RkUwRj98W1x1MjYxRFx1MjcwQ1x1MjcwRF0oPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1MjcwQVx1MjcwQl0oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHUyM0U5LVx1MjNFQ1x1MjNGMFx1MjNGM1x1MjVGRFx1MjY5M1x1MjZBMVx1MjZBQlx1MjZDNVx1MjZDRVx1MjZENFx1MjZFQVx1MjZGRFx1MjcwNVx1MjcyOFx1Mjc0Q1x1Mjc0RVx1Mjc1My1cdTI3NTVcdTI3OTUtXHUyNzk3XHUyN0IwXHUyN0JGXHUyQjUwXXxcdTI2RjkoPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xcdTI3NjRcdUZFMEY/KD86XHUyMDBEKD86XHVEODNEXHVERDI1fFx1RDgzRVx1REU3OSkpP3xcdUQ4M0MoPzpbXHVEQzA0XHVERDcwXHVERDcxXHVERDdFXHVERDdGXHVERTAyXHVERTM3XHVERjIxXHVERjI0LVx1REYyQ1x1REYzNlx1REY3RFx1REY5Nlx1REY5N1x1REY5OS1cdURGOUJcdURGOUVcdURGOUZcdURGQ0RcdURGQ0VcdURGRDQtXHVERkRGXHVERkY1XHVERkY3XVx1RkUwRj98W1x1REY4NVx1REZDMlx1REZDN10oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHVERkMzXHVERkM0XHVERkNBXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REZDQlx1REZDQ10oPzpcdUZFMEZ8XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVEQ0NGXHVERDhFXHVERDkxLVx1REQ5QVx1REUwMVx1REUxQVx1REUyRlx1REUzMi1cdURFMzZcdURFMzgtXHVERTNBXHVERTUwXHVERTUxXHVERjAwLVx1REYyMFx1REYyRC1cdURGMzVcdURGMzctXHVERjdDXHVERjdFLVx1REY4NFx1REY4Ni1cdURGOTNcdURGQTAtXHVERkMxXHVERkM1XHVERkM2XHVERkM4XHVERkM5XHVERkNGLVx1REZEM1x1REZFMC1cdURGRjBcdURGRjgtXHVERkZGXXxcdURERTZcdUQ4M0NbXHVEREU4LVx1RERFQ1x1RERFRVx1RERGMVx1RERGMlx1RERGNFx1RERGNi1cdURERkFcdURERkNcdURERkRcdURERkZdfFx1RERFN1x1RDgzQ1tcdURERTZcdURERTdcdURERTktXHVEREVGXHVEREYxLVx1RERGNFx1RERGNi1cdURERjlcdURERkJcdURERkNcdURERkVcdURERkZdfFx1RERFOFx1RDgzQ1tcdURERTZcdURERThcdURERTlcdURERUItXHVEREVFXHVEREYwLVx1RERGNVx1RERGN1x1RERGQS1cdURERkZdfFx1RERFOVx1RDgzQ1tcdURERUFcdURERUNcdURERUZcdURERjBcdURERjJcdURERjRcdURERkZdfFx1RERFQVx1RDgzQ1tcdURERTZcdURERThcdURERUFcdURERUNcdURERURcdURERjctXHVEREZBXXxcdURERUJcdUQ4M0NbXHVEREVFLVx1RERGMFx1RERGMlx1RERGNFx1RERGN118XHVEREVDXHVEODNDW1x1RERFNlx1RERFN1x1RERFOS1cdURERUVcdURERjEtXHVEREYzXHVEREY1LVx1RERGQVx1RERGQ1x1RERGRV18XHVEREVEXHVEODNDW1x1RERGMFx1RERGMlx1RERGM1x1RERGN1x1RERGOVx1RERGQV18XHVEREVFXHVEODNDW1x1RERFOC1cdURERUFcdURERjEtXHVEREY0XHVEREY2LVx1RERGOV18XHVEREVGXHVEODNDW1x1RERFQVx1RERGMlx1RERGNFx1RERGNV18XHVEREYwXHVEODNDW1x1RERFQVx1RERFQy1cdURERUVcdURERjJcdURERjNcdURERjVcdURERjdcdURERkNcdURERkVcdURERkZdfFx1RERGMVx1RDgzQ1tcdURERTYtXHVEREU4XHVEREVFXHVEREYwXHVEREY3LVx1RERGQlx1RERGRV18XHVEREYyXHVEODNDW1x1RERFNlx1RERFOC1cdURERURcdURERjAtXHVEREZGXXxcdURERjNcdUQ4M0NbXHVEREU2XHVEREU4XHVEREVBLVx1RERFQ1x1RERFRVx1RERGMVx1RERGNFx1RERGNVx1RERGN1x1RERGQVx1RERGRl18XHVEREY0XHVEODNDXHVEREYyfFx1RERGNVx1RDgzQ1tcdURERTZcdURERUEtXHVEREVEXHVEREYwLVx1RERGM1x1RERGNy1cdURERjlcdURERkNcdURERkVdfFx1RERGNlx1RDgzQ1x1RERFNnxcdURERjdcdUQ4M0NbXHVEREVBXHVEREY0XHVEREY4XHVEREZBXHVEREZDXXxcdURERjhcdUQ4M0NbXHVEREU2LVx1RERFQVx1RERFQy1cdURERjRcdURERjctXHVEREY5XHVEREZCXHVEREZELVx1RERGRl18XHVEREY5XHVEODNDW1x1RERFNlx1RERFOFx1RERFOVx1RERFQi1cdURERURcdURERUYtXHVEREY0XHVEREY3XHVEREY5XHVEREZCXHVEREZDXHVEREZGXXxcdURERkFcdUQ4M0NbXHVEREU2XHVEREVDXHVEREYyXHVEREYzXHVEREY4XHVEREZFXHVEREZGXXxcdURERkJcdUQ4M0NbXHVEREU2XHVEREU4XHVEREVBXHVEREVDXHVEREVFXHVEREYzXHVEREZBXXxcdURERkNcdUQ4M0NbXHVEREVCXHVEREY4XXxcdURERkRcdUQ4M0NcdURERjB8XHVEREZFXHVEODNDW1x1RERFQVx1RERGOV18XHVEREZGXHVEODNDW1x1RERFNlx1RERGMlx1RERGQ118XHVERkYzXHVGRTBGPyg/Olx1MjAwRCg/Olx1MjZBN1x1RkUwRj98XHVEODNDXHVERjA4KSk/fFx1REZGNCg/Olx1MjAwRFx1MjYyMFx1RkUwRj98XHVEQjQwXHVEQzY3XHVEQjQwXHVEQzYyXHVEQjQwKD86XHVEQzY1XHVEQjQwXHVEQzZFXHVEQjQwXHVEQzY3fFx1REM3M1x1REI0MFx1REM2M1x1REI0MFx1REM3NHxcdURDNzdcdURCNDBcdURDNkNcdURCNDBcdURDNzMpXHVEQjQwXHVEQzdGKT8pfFx1RDgzRCg/OltcdURDM0ZcdURDRkRcdURENDlcdURENEFcdURENkZcdURENzBcdURENzNcdURENzYtXHVERDc5XHVERDg3XHVERDhBLVx1REQ4RFx1RERBNVx1RERBOFx1RERCMVx1RERCMlx1RERCQ1x1RERDMi1cdUREQzRcdURERDEtXHVEREQzXHVERERDLVx1RERERVx1RERFMVx1RERFM1x1RERFOFx1RERFRlx1RERGM1x1RERGQVx1REVDQlx1REVDRC1cdURFQ0ZcdURFRTAtXHVERUU1XHVERUU5XHVERUYwXHVERUYzXVx1RkUwRj98W1x1REM0Mlx1REM0M1x1REM0Ni1cdURDNTBcdURDNjZcdURDNjdcdURDNkItXHVEQzZEXHVEQzcyXHVEQzc0LVx1REM3Nlx1REM3OFx1REM3Q1x1REM4M1x1REM4NVx1REM4Rlx1REM5MVx1RENBQVx1REQ3QVx1REQ5NVx1REQ5Nlx1REU0Q1x1REU0Rlx1REVDMFx1REVDQ10oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHVEQzZFXHVEQzcwXHVEQzcxXHVEQzczXHVEQzc3XHVEQzgxXHVEQzgyXHVEQzg2XHVEQzg3XHVERTQ1LVx1REU0N1x1REU0Qlx1REU0RFx1REU0RVx1REVBM1x1REVCNC1cdURFQjZdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERDc0XHVERDkwXSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHVEQzAwLVx1REMwN1x1REMwOS1cdURDMTRcdURDMTYtXHVEQzNBXHVEQzNDLVx1REMzRVx1REM0MFx1REM0NFx1REM0NVx1REM1MS1cdURDNjVcdURDNkFcdURDNzktXHVEQzdCXHVEQzdELVx1REM4MFx1REM4NFx1REM4OC1cdURDOEVcdURDOTBcdURDOTItXHVEQ0E5XHVEQ0FCLVx1RENGQ1x1RENGRi1cdUREM0RcdURENEItXHVERDRFXHVERDUwLVx1REQ2N1x1RERBNFx1RERGQi1cdURFMkRcdURFMkYtXHVERTM0XHVERTM3LVx1REU0NFx1REU0OC1cdURFNEFcdURFODAtXHVERUEyXHVERUE0LVx1REVCM1x1REVCNy1cdURFQkZcdURFQzEtXHVERUM1XHVERUQwLVx1REVEMlx1REVENS1cdURFRDdcdURFREQtXHVERURGXHVERUVCXHVERUVDXHVERUY0LVx1REVGQ1x1REZFMC1cdURGRUJcdURGRjBdfFx1REMwOCg/Olx1MjAwRFx1MkIxQik/fFx1REMxNSg/Olx1MjAwRFx1RDgzRVx1RERCQSk/fFx1REMzQig/Olx1MjAwRFx1Mjc0NFx1RkUwRj8pP3xcdURDNDFcdUZFMEY/KD86XHUyMDBEXHVEODNEXHVEREU4XHVGRTBGPyk/fFx1REM2OCg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjh8XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEKD86W1x1REM2OFx1REM2OV1cdTIwMERcdUQ4M0QoPzpcdURDNjYoPzpcdTIwMERcdUQ4M0RcdURDNjYpP3xcdURDNjcoPzpcdTIwMERcdUQ4M0RbXHVEQzY2XHVEQzY3XSk/KXxbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDNjYoPzpcdTIwMERcdUQ4M0RcdURDNjYpP3xcdURDNjcoPzpcdTIwMERcdUQ4M0RbXHVEQzY2XHVEQzY3XSk/KXxcdUQ4M0VbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF0pfFx1RDgzQyg/Olx1REZGQig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkMtXHVERkZGXSkpKT98XHVERkZDKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQlx1REZGRC1cdURGRkZdKSkpP3xcdURGRkQoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXSkpKT98XHVERkZFKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKSkpP3xcdURGRkYoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRV0pKSk/KSk/fFx1REM2OSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9bXHVEQzY4XHVEQzY5XXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDNjYoPzpcdTIwMERcdUQ4M0RcdURDNjYpP3xcdURDNjcoPzpcdTIwMERcdUQ4M0RbXHVEQzY2XHVEQzY3XSk/fFx1REM2OVx1MjAwRFx1RDgzRCg/Olx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT8pKXxcdUQ4M0VbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF0pfFx1RDgzQyg/Olx1REZGQig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkMtXHVERkZGXSkpKT98XHVERkZDKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQlx1REZGRC1cdURGRkZdKSkpP3xcdURGRkQoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXSkpKT98XHVERkZFKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKSkpP3xcdURGRkYoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV1cdUQ4M0NbXHVERkZCLVx1REZGRV0pKSk/KSk/fFx1REM2Rig/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFx1REQ3NSg/Olx1RkUwRnxcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFx1REUyRSg/Olx1MjAwRFx1RDgzRFx1RENBOCk/fFx1REUzNSg/Olx1MjAwRFx1RDgzRFx1RENBQik/fFx1REUzNig/Olx1MjAwRFx1RDgzQ1x1REYyQlx1RkUwRj8pPyl8XHVEODNFKD86W1x1REQwQ1x1REQwRlx1REQxOC1cdUREMUZcdUREMzAtXHVERDM0XHVERDM2XHVERDc3XHVEREI1XHVEREI2XHVEREJCXHVEREQyXHVEREQzXHVEREQ1XHVERUMzLVx1REVDNVx1REVGMFx1REVGMi1cdURFRjZdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REQyNlx1REQzNVx1REQzNy1cdUREMzlcdUREM0RcdUREM0VcdUREQjhcdUREQjlcdUREQ0QtXHVERENGXHVEREQ0XHVEREQ2LVx1RERERF0oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFtcdUREREVcdUREREZdKD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REQwRFx1REQwRVx1REQxMC1cdUREMTdcdUREMjAtXHVERDI1XHVERDI3LVx1REQyRlx1REQzQVx1REQzRi1cdURENDVcdURENDctXHVERDc2XHVERDc4LVx1RERCNFx1RERCN1x1RERCQVx1RERCQy1cdUREQ0NcdURERDBcdURERTAtXHVEREZGXHVERTcwLVx1REU3NFx1REU3OC1cdURFN0NcdURFODAtXHVERTg2XHVERTkwLVx1REVBQ1x1REVCMC1cdURFQkFcdURFQzAtXHVERUMyXHVERUQwLVx1REVEOVx1REVFMC1cdURFRTddfFx1REQzQyg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGP3xcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xcdURERDEoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMSkpfFx1RDgzQyg/Olx1REZGQig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEKD86XHVEODNEXHVEQzhCXHUyMDBEKT9cdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZDLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZDKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpP3xcdURGRkQoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQlx1REZGQ1x1REZGRVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY4NFx1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEW1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEODNFKD86W1x1RERBRi1cdUREQjNcdUREQkNcdUREQkRdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXSkpKT98XHVERkZFKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGLVx1RERCM1x1RERCQ1x1RERCRF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkZdKSkpP3xcdURGRkYoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkVdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRFtcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1RDgzRSg/OltcdUREQUYtXHVEREIzXHVEREJDXHVEREJEXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl0pKSk/KSk/fFx1REVGMSg/Olx1RDgzQyg/Olx1REZGQig/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkMtXHVERkZGXSk/fFx1REZGQyg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSk/fFx1REZGRCg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKT98XHVERkZFKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKT98XHVERkZGKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkVdKT8pKT8pKS9nOwoJfTsKCgkvKiogTm9ybWFsaXplIGEgZHVyYXRpb24gdG8gYWxsIG9mIHRoZSBwcm9wZXIgdW5pdHMuICovDQoJZnVuY3Rpb24gbm9ybWFsaXplRHVyYXRpb24oZHVyKSB7DQoJICAgIGlmIChkdXIgPT09IHVuZGVmaW5lZCB8fCBkdXIgPT09IG51bGwpDQoJICAgICAgICByZXR1cm4gZHVyOw0KCSAgICByZXR1cm4gZHVyLnNoaWZ0VG8oInllYXJzIiwgIm1vbnRocyIsICJ3ZWVrcyIsICJkYXlzIiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2Vjb25kcyIsICJtaWxsaXNlY29uZHMiKS5ub3JtYWxpemUoKTsNCgl9DQoJLyoqIFN0cmlwIHRoZSB0aW1lIGNvbXBvbmVudHMgb2YgYSBkYXRlIHRpbWUgb2JqZWN0LiAqLw0KCWZ1bmN0aW9uIHN0cmlwVGltZShkdCkgew0KCSAgICBpZiAoZHQgPT09IG51bGwgfHwgZHQgPT09IHVuZGVmaW5lZCkNCgkgICAgICAgIHJldHVybiBkdDsNCgkgICAgcmV0dXJuIERhdGVUaW1lXzEuZnJvbU9iamVjdCh7DQoJICAgICAgICB5ZWFyOiBkdC55ZWFyLA0KCSAgICAgICAgbW9udGg6IGR0Lm1vbnRoLA0KCSAgICAgICAgZGF5OiBkdC5kYXksDQoJICAgIH0pOw0KCX0NCgkvKiogVHJ5IHRvIGV4dHJhY3QgYSBZWVlZTU1ERCBkYXRlIGZyb20gYSBzdHJpbmcuICovDQoJZnVuY3Rpb24gZXh0cmFjdERhdGUoc3RyKSB7DQoJICAgIGxldCBkYXRlTWF0Y2ggPSAvKFxkezR9KS0oXGR7Mn0pLShcZHsyfSkvLmV4ZWMoc3RyKTsNCgkgICAgaWYgKCFkYXRlTWF0Y2gpDQoJICAgICAgICBkYXRlTWF0Y2ggPSAvKFxkezR9KShcZHsyfSkoXGR7Mn0pLy5leGVjKHN0cik7DQoJICAgIGlmIChkYXRlTWF0Y2gpIHsNCgkgICAgICAgIGxldCB5ZWFyID0gTnVtYmVyLnBhcnNlSW50KGRhdGVNYXRjaFsxXSk7DQoJICAgICAgICBsZXQgbW9udGggPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzJdKTsNCgkgICAgICAgIGxldCBkYXkgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzNdKTsNCgkgICAgICAgIHJldHVybiBEYXRlVGltZV8xLmZyb21PYmplY3QoeyB5ZWFyLCBtb250aCwgZGF5IH0pOw0KCSAgICB9DQoJICAgIHJldHVybiB1bmRlZmluZWQ7DQoJfQ0KCS8qKiBHZXQgdGhlIGZvbGRlciBjb250YWluaW5nIHRoZSBnaXZlbiBwYXRoIChpLmUuLCBsaWtlIGNvbXB1dGluZyAncGF0aC8uLicpLiAqLw0KCWZ1bmN0aW9uIGdldFBhcmVudEZvbGRlcihwYXRoKSB7DQoJICAgIHJldHVybiBwYXRoLnNwbGl0KCIvIikuc2xpY2UoMCwgLTEpLmpvaW4oIi8iKTsNCgl9DQoJLyoqIEdldCB0aGUgInRpdGxlIiBmb3IgYSBmaWxlLCBieSBzdHJpcHBpbmcgb3RoZXIgcGFydHMgb2YgdGhlIHBhdGggYXMgd2VsbCBhcyB0aGUgZXh0ZW5zaW9uLiAqLw0KCWZ1bmN0aW9uIGdldEZpbGVUaXRsZShwYXRoKSB7DQoJICAgIGlmIChwYXRoLmluY2x1ZGVzKCIvIikpDQoJICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMSk7DQoJICAgIGlmIChwYXRoLmVuZHNXaXRoKCIubWQiKSkNCgkgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDMpOw0KCSAgICByZXR1cm4gcGF0aDsNCgl9DQoJLyoqIEdldCB0aGUgZXh0ZW5zaW9uIG9mIGEgZmlsZSBmcm9tIHRoZSBmaWxlIHBhdGguICovDQoJZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uKHBhdGgpIHsNCgkgICAgaWYgKCFwYXRoLmluY2x1ZGVzKCIuIikpDQoJICAgICAgICByZXR1cm4gIiI7DQoJICAgIHJldHVybiBwYXRoLnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKCIuIikgKyAxKTsNCgl9DQoJLyoqIFBhcnNlIGFsbCBzdWJ0YWdzIG91dCBvZiB0aGUgZ2l2ZW4gdGFnLiBJLmUuLCAjaGVsbG8vaS9hbSB3b3VsZCB5aWVsZCBbI2hlbGxvL2kvYW0sICNoZWxsby9pLCAjaGVsbG9dLiAqLw0KCWZ1bmN0aW9uIGV4dHJhY3RTdWJ0YWdzKHRhZykgew0KCSAgICBsZXQgcmVzdWx0ID0gW3RhZ107DQoJICAgIHdoaWxlICh0YWcuaW5jbHVkZXMoIi8iKSkgew0KCSAgICAgICAgdGFnID0gdGFnLnN1YnN0cmluZygwLCB0YWcubGFzdEluZGV4T2YoIi8iKSk7DQoJICAgICAgICByZXN1bHQucHVzaCh0YWcpOw0KCSAgICB9DQoJICAgIHJldHVybiByZXN1bHQ7DQoJfQ0KCS8qKiBBIHBhcnNpbW1vbiBwYXJzZXIgd2hpY2ggY2Fub25pY2FsaXplcyB2YXJpYWJsZSBuYW1lcyB3aGlsZSBwcm9wZXJseSByZXNwZWN0aW5nIGVtb2ppLiAqLw0KCWNvbnN0IFZBUl9OQU1FX0NBTk9OSUNBTElaRVIgPSBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4KG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAiIikpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4KC9bMC05XHB7TGV0dGVyfV8tXSsvdSkubWFwKHN0ciA9PiBzdHIudG9Mb2NhbGVMb3dlckNhc2UoKSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMud2hpdGVzcGFjZS5tYXAoXyA9PiAiLSIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFueS5tYXAoXyA9PiAiIikpDQoJICAgIC5tYW55KCkNCgkgICAgLm1hcChyZXN1bHQgPT4gcmVzdWx0LmpvaW4oIiIpKTsNCgkvKiogQ29udmVydCBhbiBhcmJpdHJhcnkgdmFyaWFibGUgbmFtZSBpbnRvIHNvbWV0aGluZyBKUy9xdWVyeSBmcmllbmRseS4gKi8NCglmdW5jdGlvbiBjYW5vbmljYWxpemVWYXJOYW1lKG5hbWUpIHsNCgkgICAgcmV0dXJuIFZBUl9OQU1FX0NBTk9OSUNBTElaRVIudHJ5UGFyc2UobmFtZSk7DQoJfQ0KCWNvbnN0IEhFQURFUl9DQU5PTklDQUxJWkVSID0gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgIiIpKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleCgvWzAtOVxwe0xldHRlcn1fLV0rL3UpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLndoaXRlc3BhY2UubWFwKF8gPT4gIiAiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbnkubWFwKF8gPT4gIiAiKSkNCgkgICAgLm1hbnkoKQ0KCSAgICAubWFwKHJlc3VsdCA9PiB7DQoJICAgIHJldHVybiByZXN1bHQuam9pbigiIikuc3BsaXQoL1xzKy8pLmpvaW4oIiAiKS50cmltKCk7DQoJfSk7DQoJLyoqDQoJICogTm9ybWFsaXplcyB0aGUgdGV4dCBpbiBhIGhlYWRlciB0byBiZSBzb21ldGhpbmcgdGhhdCBpcyBhY3R1YWxseSBsaW5rYWJsZSB0by4gVGhpcyBtaW1pY3MNCgkgKiBob3cgT2JzaWRpYW4gZG9lcyBpdCdzIG5vcm1hbGl6YXRpb24sIGNvbGxhcHNpbmcgcmVwZWF0ZWQgc3BhY2VzIGFuZCBzdHJpcHBpbmcgb3V0IGNvbnRyb2wgY2hhcmFjdGVycy4NCgkgKi8NCglmdW5jdGlvbiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlcikgew0KCSAgICByZXR1cm4gSEVBREVSX0NBTk9OSUNBTElaRVIudHJ5UGFyc2UoaGVhZGVyKTsNCgl9DQoJLyoqIFJlbmRlciBhIGR1cmF0aW9uIGluIGEgbWluaW1hbCBmb3JtYXQgdG8gc2F2ZSBzcGFjZS4gKi8NCglmdW5jdGlvbiByZW5kZXJNaW5pbWFsRHVyYXRpb24oZHVyKSB7DQoJICAgIGR1ciA9IG5vcm1hbGl6ZUR1cmF0aW9uKGR1cik7DQoJICAgIC8vIFRPRE86IEx1eG9uIGRvZXMgbm90IGhhdmUgbXVsdGktbGluZ3VhbC9sb2NhbGUtYXdhcmUgZHVyYXRpb24gcmVuZGVyaW5nLg0KCSAgICBsZXQgcmVzdWx0ID0gIiI7DQoJICAgIGlmIChkdXIueWVhcnMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7ZHVyLnllYXJzfSB5ZWFycywgYDsNCgkgICAgaWYgKGR1ci5tb250aHMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7ZHVyLm1vbnRoc30gbW9udGhzLCBgOw0KCSAgICBpZiAoZHVyLndlZWtzKQ0KCSAgICAgICAgcmVzdWx0ICs9IGAke2R1ci53ZWVrc30gd2Vla3MsIGA7DQoJICAgIGlmIChkdXIuZGF5cykNCgkgICAgICAgIHJlc3VsdCArPSBgJHtkdXIuZGF5c30gZGF5cywgYDsNCgkgICAgaWYgKGR1ci5ob3VycykNCgkgICAgICAgIHJlc3VsdCArPSBgJHtkdXIuaG91cnN9IGhvdXJzLCBgOw0KCSAgICBpZiAoZHVyLm1pbnV0ZXMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7ZHVyLm1pbnV0ZXN9IG1pbnV0ZXMsIGA7DQoJICAgIGlmIChkdXIuc2Vjb25kcykNCgkgICAgICAgIHJlc3VsdCArPSBgJHtNYXRoLnJvdW5kKGR1ci5zZWNvbmRzKX0gc2Vjb25kcywgYDsNCgkgICAgaWYgKGR1ci5taWxsaXNlY29uZHMpDQoJICAgICAgICByZXN1bHQgKz0gYCR7TWF0aC5yb3VuZChkdXIubWlsbGlzZWNvbmRzKX0gbXMsIGA7DQoJICAgIGlmIChyZXN1bHQuZW5kc1dpdGgoIiwgIikpDQoJICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIHJlc3VsdC5sZW5ndGggLSAyKTsNCgkgICAgcmV0dXJuIHJlc3VsdDsNCgl9CgoJdmFyIFZhbHVlczsNCgkoZnVuY3Rpb24gKFZhbHVlcykgew0KCSAgICAvKiogQ29udmVydCBhbiBhcmJpdGFyeSB2YWx1ZSBpbnRvIGEgcmVhc29uYWJsZSwgTWFya2Rvd24tZnJpZW5kbHkgc3RyaW5nIGlmIHBvc3NpYmxlLiAqLw0KCSAgICBmdW5jdGlvbiB0b1N0cmluZyhmaWVsZCwgc2V0dGluZyA9IERFRkFVTFRfUVVFUllfU0VUVElOR1MsIHJlY3Vyc2l2ZSA9IGZhbHNlKSB7DQoJICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7DQoJICAgICAgICBpZiAoIXdyYXBwZWQpDQoJICAgICAgICAgICAgcmV0dXJuIHNldHRpbmcucmVuZGVyTnVsbEFzOw0KCSAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHsNCgkgICAgICAgICAgICBjYXNlICJudWxsIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmcucmVuZGVyTnVsbEFzOw0KCSAgICAgICAgICAgIGNhc2UgInN0cmluZyI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlOw0KCSAgICAgICAgICAgIGNhc2UgIm51bWJlciI6DQoJICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiAiIiArIHdyYXBwZWQudmFsdWU7DQoJICAgICAgICAgICAgY2FzZSAiaHRtbCI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm91dGVySFRNTDsNCgkgICAgICAgICAgICBjYXNlICJ3aWRnZXQiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpOw0KCSAgICAgICAgICAgIGNhc2UgImxpbmsiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpOw0KCSAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuICI8ZnVuY3Rpb24+IjsNCgkgICAgICAgICAgICBjYXNlICJhcnJheSI6DQoJICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSAiIjsNCgkgICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkNCgkgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiWyI7DQoJICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3cmFwcGVkLnZhbHVlLm1hcChmID0+IHRvU3RyaW5nKGYsIHNldHRpbmcsIHRydWUpKS5qb2luKCIsICIpOw0KCSAgICAgICAgICAgICAgICBpZiAocmVjdXJzaXZlKQ0KCSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJdIjsNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgICAgICBjYXNlICJvYmplY3QiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gKCJ7ICIgKw0KCSAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSkNCgkgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGUgPT4gZVswXSArICI6ICIgKyB0b1N0cmluZyhlWzFdLCBzZXR0aW5nLCB0cnVlKSkNCgkgICAgICAgICAgICAgICAgICAgICAgICAuam9pbigiLCAiKSArDQoJICAgICAgICAgICAgICAgICAgICAiIH0iKTsNCgkgICAgICAgICAgICBjYXNlICJkYXRlIjoNCgkgICAgICAgICAgICAgICAgaWYgKHdyYXBwZWQudmFsdWUuc2Vjb25kID09IDAgJiYgd3JhcHBlZC52YWx1ZS5ob3VyID09IDAgJiYgd3JhcHBlZC52YWx1ZS5taW51dGUgPT0gMCkgew0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9Gb3JtYXQoc2V0dGluZy5kZWZhdWx0RGF0ZUZvcm1hdCk7DQoJICAgICAgICAgICAgICAgIH0NCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9Gb3JtYXQoc2V0dGluZy5kZWZhdWx0RGF0ZVRpbWVGb3JtYXQpOw0KCSAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlck1pbmltYWxEdXJhdGlvbih3cmFwcGVkLnZhbHVlKTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBWYWx1ZXMudG9TdHJpbmcgPSB0b1N0cmluZzsNCgkgICAgLyoqIFdyYXAgYSBsaXRlcmFsIHZhbHVlIHNvIHlvdSBjYW4gc3dpdGNoIG9uIGl0IGVhc2lseS4gKi8NCgkgICAgZnVuY3Rpb24gd3JhcFZhbHVlKHZhbCkgew0KCSAgICAgICAgaWYgKGlzTnVsbCh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJudWxsIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIodmFsKSkNCgkgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkNCgkgICAgICAgICAgICByZXR1cm4geyB0eXBlOiAic3RyaW5nIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNCb29sZWFuKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdmFsIH07DQoJICAgICAgICBlbHNlIGlmIChpc0R1cmF0aW9uKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImR1cmF0aW9uIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImRhdGUiLCB2YWx1ZTogdmFsIH07DQoJICAgICAgICBlbHNlIGlmIChpc1dpZGdldCh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJ3aWRnZXQiLCB2YWx1ZTogdmFsIH07DQoJICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImFycmF5IiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNMaW5rKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImxpbmsiLCB2YWx1ZTogdmFsIH07DQoJICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImZ1bmN0aW9uIiwgdmFsdWU6IHZhbCB9Ow0KCSAgICAgICAgZWxzZSBpZiAoaXNIdG1sKHZhbCkpDQoJICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogImh0bWwiLCB2YWx1ZTogdmFsIH07DQoJICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJvYmplY3QiLCB2YWx1ZTogdmFsIH07DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgkgICAgfQ0KCSAgICBWYWx1ZXMud3JhcFZhbHVlID0gd3JhcFZhbHVlOw0KCSAgICAvKiogUmVjdXJzaXZlbHkgbWFwIGNvbXBsZXggb2JqZWN0cyBhdCB0aGUgbGVhdmVzLiAqLw0KCSAgICBmdW5jdGlvbiBtYXBMZWF2ZXModmFsLCBmdW5jKSB7DQoJICAgICAgICBpZiAoaXNPYmplY3QodmFsKSkgew0KCSAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsNCgkgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsKSkNCgkgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBtYXBMZWF2ZXModmFsdWUsIGZ1bmMpOw0KCSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpIHsNCgkgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107DQoJICAgICAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChtYXBMZWF2ZXModmFsdWUsIGZ1bmMpKTsNCgkgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsKTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBWYWx1ZXMubWFwTGVhdmVzID0gbWFwTGVhdmVzOw0KCSAgICAvKiogQ29tcGFyZSB0d28gYXJiaXRyYXJ5IEphdmFTY3JpcHQgdmFsdWVzLiBQcm9kdWNlcyBhIHRvdGFsIG9yZGVyaW5nIG92ZXIgQU5ZIHBvc3NpYmxlIGRhdGF2aWV3IHZhbHVlLiAqLw0KCSAgICBmdW5jdGlvbiBjb21wYXJlVmFsdWUodmFsMSwgdmFsMiwgbGlua05vcm1hbGl6ZXIpIHsNCgkgICAgICAgIHZhciBfYSwgX2I7DQoJICAgICAgICAvLyBIYW5kbGUgdW5kZWZpbmVkL251bGxzIGZpcnN0Lg0KCSAgICAgICAgaWYgKHZhbDEgPT09IHVuZGVmaW5lZCkNCgkgICAgICAgICAgICB2YWwxID0gbnVsbDsNCgkgICAgICAgIGlmICh2YWwyID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgdmFsMiA9IG51bGw7DQoJICAgICAgICBpZiAodmFsMSA9PT0gbnVsbCAmJiB2YWwyID09PSBudWxsKQ0KCSAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgZWxzZSBpZiAodmFsMSA9PT0gbnVsbCkNCgkgICAgICAgICAgICByZXR1cm4gLTE7DQoJICAgICAgICBlbHNlIGlmICh2YWwyID09PSBudWxsKQ0KCSAgICAgICAgICAgIHJldHVybiAxOw0KCSAgICAgICAgLy8gQSBub24tbnVsbCB2YWx1ZSBub3cgd2hpY2ggd2UgY2FuIHdyYXAgJiBjb21wYXJlIG9uLg0KCSAgICAgICAgbGV0IHdyYXAxID0gd3JhcFZhbHVlKHZhbDEpOw0KCSAgICAgICAgbGV0IHdyYXAyID0gd3JhcFZhbHVlKHZhbDIpOw0KCSAgICAgICAgaWYgKHdyYXAxID09PSB1bmRlZmluZWQgJiYgd3JhcDIgPT09IHVuZGVmaW5lZCkNCgkgICAgICAgICAgICByZXR1cm4gMDsNCgkgICAgICAgIGVsc2UgaWYgKHdyYXAxID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgcmV0dXJuIC0xOw0KCSAgICAgICAgZWxzZSBpZiAod3JhcDIgPT09IHVuZGVmaW5lZCkNCgkgICAgICAgICAgICByZXR1cm4gMTsNCgkgICAgICAgIC8vIFNob3J0LWNpcmN1aXQgb24gZGlmZmVyZW50IHR5cGVzIG9yIG9uIHJlZmVyZW5jZSBlcXVhbGl0eS4NCgkgICAgICAgIGlmICh3cmFwMS50eXBlICE9IHdyYXAyLnR5cGUpDQoJICAgICAgICAgICAgcmV0dXJuIHdyYXAxLnR5cGUubG9jYWxlQ29tcGFyZSh3cmFwMi50eXBlKTsNCgkgICAgICAgIGlmICh3cmFwMS52YWx1ZSA9PT0gd3JhcDIudmFsdWUpDQoJICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICBzd2l0Y2ggKHdyYXAxLnR5cGUpIHsNCgkgICAgICAgICAgICBjYXNlICJzdHJpbmciOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUubG9jYWxlQ29tcGFyZSh3cmFwMi52YWx1ZSk7DQoJICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoNCgkgICAgICAgICAgICAgICAgaWYgKHdyYXAxLnZhbHVlIDwgd3JhcDIudmFsdWUpDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQoJICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdyYXAxLnZhbHVlID09IHdyYXAyLnZhbHVlKQ0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICAgICAgICAgIHJldHVybiAxOw0KCSAgICAgICAgICAgIGNhc2UgIm51bGwiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gMDsNCgkgICAgICAgICAgICBjYXNlICJib29sZWFuIjoNCgkgICAgICAgICAgICAgICAgaWYgKHdyYXAxLnZhbHVlID09IHdyYXAyLnZhbHVlKQ0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICAgICAgICAgIGVsc2UNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZSA/IDEgOiAtMTsNCgkgICAgICAgICAgICBjYXNlICJsaW5rIjoNCgkgICAgICAgICAgICAgICAgbGV0IGxpbmsxID0gd3JhcDEudmFsdWU7DQoJICAgICAgICAgICAgICAgIGxldCBsaW5rMiA9IHdyYXAyLnZhbHVlOw0KCSAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplID0gbGlua05vcm1hbGl6ZXIgIT09IG51bGwgJiYgbGlua05vcm1hbGl6ZXIgIT09IHZvaWQgMCA/IGxpbmtOb3JtYWxpemVyIDogKCh4KSA9PiB4KTsNCgkgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY29tcGFyZSBieSBmaWxlIG5hbWUgb3IgZGlzcGxheSwgc2luY2UgdGhhdCB3b3VsZCBicmVhayBsaW5rIGVxdWFsaXR5LiBDb21wYXJlIGJ5IHBhdGguDQoJICAgICAgICAgICAgICAgIGxldCBwYXRoQ29tcGFyZSA9IG5vcm1hbGl6ZShsaW5rMS5wYXRoKS5sb2NhbGVDb21wYXJlKG5vcm1hbGl6ZShsaW5rMi5wYXRoKSk7DQoJICAgICAgICAgICAgICAgIGlmIChwYXRoQ29tcGFyZSAhPSAwKQ0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGhDb21wYXJlOw0KCSAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgdHlwZS4NCgkgICAgICAgICAgICAgICAgbGV0IHR5cGVDb21wYXJlID0gbGluazEudHlwZS5sb2NhbGVDb21wYXJlKGxpbmsyLnR5cGUpOw0KCSAgICAgICAgICAgICAgICBpZiAodHlwZUNvbXBhcmUgIT0gMCkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlQ29tcGFyZTsNCgkgICAgICAgICAgICAgICAgLy8gVGhlbiBjb21wYXJlIGJ5IHN1YnBhdGggZXhpc3RlbmNlLg0KCSAgICAgICAgICAgICAgICBpZiAobGluazEuc3VicGF0aCAmJiAhbGluazIuc3VicGF0aCkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KCSAgICAgICAgICAgICAgICBpZiAoIWxpbmsxLnN1YnBhdGggJiYgbGluazIuc3VicGF0aCkNCgkgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCgkgICAgICAgICAgICAgICAgaWYgKCFsaW5rMS5zdWJwYXRoICYmICFsaW5rMi5zdWJwYXRoKQ0KCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICAgICAgICAgIC8vIFNpbmNlIGJvdGggaGF2ZSBhIHN1YnBhdGgsIGNvbXBhcmUgYnkgc3VicGF0aC4NCgkgICAgICAgICAgICAgICAgcmV0dXJuICgoX2EgPSBsaW5rMS5zdWJwYXRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAiIikubG9jYWxlQ29tcGFyZSgoX2IgPSBsaW5rMi5zdWJwYXRoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAiIik7DQoJICAgICAgICAgICAgY2FzZSAiZGF0ZSI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZSA8IHdyYXAyLnZhbHVlDQoJICAgICAgICAgICAgICAgICAgICA/IC0xDQoJICAgICAgICAgICAgICAgICAgICA6IHdyYXAxLnZhbHVlLmVxdWFscyh3cmFwMi52YWx1ZSkNCgkgICAgICAgICAgICAgICAgICAgICAgICA/IDANCgkgICAgICAgICAgICAgICAgICAgICAgICA6IDE7DQoJICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCB3cmFwMi52YWx1ZQ0KCSAgICAgICAgICAgICAgICAgICAgPyAtMQ0KCSAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUpDQoJICAgICAgICAgICAgICAgICAgICAgICAgPyAwDQoJICAgICAgICAgICAgICAgICAgICAgICAgOiAxOw0KCSAgICAgICAgICAgIGNhc2UgImFycmF5IjoNCgkgICAgICAgICAgICAgICAgbGV0IGYxID0gd3JhcDEudmFsdWU7DQoJICAgICAgICAgICAgICAgIGxldCBmMiA9IHdyYXAyLnZhbHVlOw0KCSAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgTWF0aC5taW4oZjEubGVuZ3RoLCBmMi5sZW5ndGgpOyBpbmRleCsrKSB7DQoJICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmVWYWx1ZShmMVtpbmRleF0sIGYyW2luZGV4XSk7DQoJICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKQ0KCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wOw0KCSAgICAgICAgICAgICAgICB9DQoJICAgICAgICAgICAgICAgIHJldHVybiBmMS5sZW5ndGggLSBmMi5sZW5ndGg7DQoJICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoNCgkgICAgICAgICAgICAgICAgbGV0IG8xID0gd3JhcDEudmFsdWU7DQoJICAgICAgICAgICAgICAgIGxldCBvMiA9IHdyYXAyLnZhbHVlOw0KCSAgICAgICAgICAgICAgICBsZXQgazEgPSBBcnJheS5mcm9tKE9iamVjdC5rZXlzKG8xKSk7DQoJICAgICAgICAgICAgICAgIGxldCBrMiA9IEFycmF5LmZyb20oT2JqZWN0LmtleXMobzIpKTsNCgkgICAgICAgICAgICAgICAgazEuc29ydCgpOw0KCSAgICAgICAgICAgICAgICBrMi5zb3J0KCk7DQoJICAgICAgICAgICAgICAgIGxldCBrZXlDb21wYXJlID0gY29tcGFyZVZhbHVlKGsxLCBrMik7DQoJICAgICAgICAgICAgICAgIGlmIChrZXlDb21wYXJlICE9IDApDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5Q29tcGFyZTsNCgkgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IG9mIGsxKSB7DQoJICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmVWYWx1ZShvMVtrZXldLCBvMltrZXldKTsNCgkgICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApDQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXA7DQoJICAgICAgICAgICAgICAgIH0NCgkgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoJICAgICAgICAgICAgY2FzZSAid2lkZ2V0IjoNCgkgICAgICAgICAgICBjYXNlICJodG1sIjoNCgkgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiAwOw0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIFZhbHVlcy5jb21wYXJlVmFsdWUgPSBjb21wYXJlVmFsdWU7DQoJICAgIC8qKiBGaW5kIHRoZSBjb3JyZXNwb25kaW5nIERhdGF2ZWl3IHR5cGUgZm9yIGFuIGFyYml0cmFyeSB2YWx1ZS4gKi8NCgkgICAgZnVuY3Rpb24gdHlwZU9mKHZhbCkgew0KCSAgICAgICAgdmFyIF9hOw0KCSAgICAgICAgcmV0dXJuIChfYSA9IHdyYXBWYWx1ZSh2YWwpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudHlwZTsNCgkgICAgfQ0KCSAgICBWYWx1ZXMudHlwZU9mID0gdHlwZU9mOw0KCSAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyAidHJ1dGh5IiAoaS5lLiwgaXMgbm9uLW51bGwgYW5kIGhhcyBkYXRhIGluIGl0KS4gKi8NCgkgICAgZnVuY3Rpb24gaXNUcnV0aHkoZmllbGQpIHsNCgkgICAgICAgIGxldCB3cmFwcGVkID0gd3JhcFZhbHVlKGZpZWxkKTsNCgkgICAgICAgIGlmICghd3JhcHBlZCkNCgkgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQoJICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkgew0KCSAgICAgICAgICAgIGNhc2UgIm51bWJlciI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlICE9IDA7DQoJICAgICAgICAgICAgY2FzZSAic3RyaW5nIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubGVuZ3RoID4gMDsNCgkgICAgICAgICAgICBjYXNlICJib29sZWFuIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7DQoJICAgICAgICAgICAgY2FzZSAibGluayI6DQoJICAgICAgICAgICAgICAgIHJldHVybiAhIXdyYXBwZWQudmFsdWUucGF0aDsNCgkgICAgICAgICAgICBjYXNlICJkYXRlIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9NaWxsaXMoKSAhPSAwOw0KCSAgICAgICAgICAgIGNhc2UgImR1cmF0aW9uIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUuYXMoInNlY29uZHMiKSAhPSAwOw0KCSAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6DQoJICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh3cmFwcGVkLnZhbHVlKS5sZW5ndGggPiAwOw0KCSAgICAgICAgICAgIGNhc2UgImFycmF5IjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubGVuZ3RoID4gMDsNCgkgICAgICAgICAgICBjYXNlICJudWxsIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KCSAgICAgICAgICAgIGNhc2UgImh0bWwiOg0KCSAgICAgICAgICAgIGNhc2UgIndpZGdldCI6DQoJICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNUcnV0aHkgPSBpc1RydXRoeTsNCgkgICAgLyoqIERlZXAgY29weSBhIGZpZWxkLiAqLw0KCSAgICBmdW5jdGlvbiBkZWVwQ29weShmaWVsZCkgew0KCSAgICAgICAgaWYgKGZpZWxkID09PSBudWxsIHx8IGZpZWxkID09PSB1bmRlZmluZWQpDQoJICAgICAgICAgICAgcmV0dXJuIGZpZWxkOw0KCSAgICAgICAgaWYgKFZhbHVlcy5pc0FycmF5KGZpZWxkKSkgew0KCSAgICAgICAgICAgIHJldHVybiBbXS5jb25jYXQoZmllbGQubWFwKHYgPT4gZGVlcENvcHkodikpKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKFZhbHVlcy5pc09iamVjdChmaWVsZCkpIHsNCgkgICAgICAgICAgICBsZXQgcmVzdWx0ID0ge307DQoJICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpZWxkKSkNCgkgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBkZWVwQ29weSh2YWx1ZSk7DQoJICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJldHVybiBmaWVsZDsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBWYWx1ZXMuZGVlcENvcHkgPSBkZWVwQ29weTsNCgkgICAgZnVuY3Rpb24gaXNTdHJpbmcodmFsKSB7DQoJICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSAic3RyaW5nIjsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNTdHJpbmcgPSBpc1N0cmluZzsNCgkgICAgZnVuY3Rpb24gaXNOdW1iZXIodmFsKSB7DQoJICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSAibnVtYmVyIjsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNOdW1iZXIgPSBpc051bWJlcjsNCgkgICAgZnVuY3Rpb24gaXNEYXRlKHZhbCkgew0KCSAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIERhdGVUaW1lXzE7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzRGF0ZSA9IGlzRGF0ZTsNCgkgICAgZnVuY3Rpb24gaXNEdXJhdGlvbih2YWwpIHsNCgkgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEdXJhdGlvbl8xOw0KCSAgICB9DQoJICAgIFZhbHVlcy5pc0R1cmF0aW9uID0gaXNEdXJhdGlvbjsNCgkgICAgZnVuY3Rpb24gaXNOdWxsKHZhbCkgew0KCSAgICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZDsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNOdWxsID0gaXNOdWxsOw0KCSAgICBmdW5jdGlvbiBpc0FycmF5KHZhbCkgew0KCSAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsKTsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNBcnJheSA9IGlzQXJyYXk7DQoJICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWwpIHsNCgkgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAiYm9vbGVhbiI7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjsNCgkgICAgZnVuY3Rpb24gaXNMaW5rKHZhbCkgew0KCSAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIExpbms7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzTGluayA9IGlzTGluazsNCgkgICAgZnVuY3Rpb24gaXNXaWRnZXQodmFsKSB7DQoJICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgV2lkZ2V0Ow0KCSAgICB9DQoJICAgIFZhbHVlcy5pc1dpZGdldCA9IGlzV2lkZ2V0Ow0KCSAgICBmdW5jdGlvbiBpc0h0bWwodmFsKSB7DQoJICAgICAgICBpZiAodHlwZW9mIEhUTUxFbGVtZW50ICE9PSAidW5kZWZpbmVkIikgew0KCSAgICAgICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNIdG1sID0gaXNIdG1sOw0KCSAgICAvKiogQ2hlY2tzIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBvYmplY3QgKGFuZCBub3QgYW55IG90aGVyIGRhdGF2aWV3LXJlY29nbml6ZWQgb2JqZWN0LWxpa2UgdHlwZSkuICovDQoJICAgIGZ1bmN0aW9uIGlzT2JqZWN0KHZhbCkgew0KCSAgICAgICAgcmV0dXJuICh0eXBlb2YgdmFsID09ICJvYmplY3QiICYmDQoJICAgICAgICAgICAgIWlzSHRtbCh2YWwpICYmDQoJICAgICAgICAgICAgIWlzV2lkZ2V0KHZhbCkgJiYNCgkgICAgICAgICAgICAhaXNBcnJheSh2YWwpICYmDQoJICAgICAgICAgICAgIWlzRHVyYXRpb24odmFsKSAmJg0KCSAgICAgICAgICAgICFpc0RhdGUodmFsKSAmJg0KCSAgICAgICAgICAgICFpc0xpbmsodmFsKSAmJg0KCSAgICAgICAgICAgIHZhbCAhPT0gdW5kZWZpbmVkICYmDQoJICAgICAgICAgICAgIWlzTnVsbCh2YWwpKTsNCgkgICAgfQ0KCSAgICBWYWx1ZXMuaXNPYmplY3QgPSBpc09iamVjdDsNCgkgICAgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWwpIHsNCgkgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09ICJmdW5jdGlvbiI7DQoJICAgIH0NCgkgICAgVmFsdWVzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uOw0KCX0pKFZhbHVlcyB8fCAoVmFsdWVzID0ge30pKTsNCgkvLy8vLy8vLy8vLy8vLy8NCgkvLyBHcm91cGluZ3MgLy8NCgkvLy8vLy8vLy8vLy8vLy8NCgl2YXIgR3JvdXBpbmdzOw0KCShmdW5jdGlvbiAoR3JvdXBpbmdzKSB7DQoJICAgIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBncm91cCBlbnRyeSBpcyBhIHN0YW5kYWxvbmUgdmFsdWUsIG9yIGEgZ3JvdXBpbmcgb2Ygc3ViLWVudHJpZXMuICovDQoJICAgIGZ1bmN0aW9uIGlzRWxlbWVudEdyb3VwKGVudHJ5KSB7DQoJICAgICAgICByZXR1cm4gVmFsdWVzLmlzT2JqZWN0KGVudHJ5KSAmJiBPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoID09IDIgJiYgImtleSIgaW4gZW50cnkgJiYgInJvd3MiIGluIGVudHJ5Ow0KCSAgICB9DQoJICAgIEdyb3VwaW5ncy5pc0VsZW1lbnRHcm91cCA9IGlzRWxlbWVudEdyb3VwOw0KCSAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gYXJyYXkgaXMgYSBncm91cGluZyBhcnJheS4gKi8NCgkgICAgZnVuY3Rpb24gaXNHcm91cGluZyhlbnRyeSkgew0KCSAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbnRyeSkNCgkgICAgICAgICAgICBpZiAoIWlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKQ0KCSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQoJICAgICAgICByZXR1cm4gdHJ1ZTsNCgkgICAgfQ0KCSAgICBHcm91cGluZ3MuaXNHcm91cGluZyA9IGlzR3JvdXBpbmc7DQoJICAgIC8qKiBDb3VudCB0aGUgdG90YWwgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgcmVjdXJzaXZlIGdyb3VwaW5nLiAqLw0KCSAgICBmdW5jdGlvbiBjb3VudChlbGVtZW50cykgew0KCSAgICAgICAgaWYgKGlzR3JvdXBpbmcoZWxlbWVudHMpKSB7DQoJICAgICAgICAgICAgbGV0IHJlc3VsdCA9IDA7DQoJICAgICAgICAgICAgZm9yIChsZXQgc3ViZ3JvdXAgb2YgZWxlbWVudHMpDQoJICAgICAgICAgICAgICAgIHJlc3VsdCArPSBjb3VudChzdWJncm91cC5yb3dzKTsNCgkgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmxlbmd0aDsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICBHcm91cGluZ3MuY291bnQgPSBjb3VudDsNCgl9KShHcm91cGluZ3MgfHwgKEdyb3VwaW5ncyA9IHt9KSk7DQoJLy8vLy8vLy8vLw0KCS8vIExJTksgLy8NCgkvLy8vLy8vLy8vDQoJLyoqIFRoZSBPYnNpZGlhbiAnbGluaycsIHVzZWQgZm9yIHVuaXF1ZWx5IGRlc2NyaWJpbmcgYSBmaWxlLCBoZWFkZXIsIG9yIGJsb2NrLiAqLw0KCWNsYXNzIExpbmsgew0KCSAgICBjb25zdHJ1Y3RvcihmaWVsZHMpIHsNCgkgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTsNCgkgICAgfQ0KCSAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUuICovDQoJICAgIHN0YXRpYyBmaWxlKHBhdGgsIGVtYmVkID0gZmFsc2UsIGRpc3BsYXkpIHsNCgkgICAgICAgIHJldHVybiBuZXcgTGluayh7DQoJICAgICAgICAgICAgcGF0aCwNCgkgICAgICAgICAgICBlbWJlZCwNCgkgICAgICAgICAgICBkaXNwbGF5LA0KCSAgICAgICAgICAgIHN1YnBhdGg6IHVuZGVmaW5lZCwNCgkgICAgICAgICAgICB0eXBlOiAiZmlsZSIsDQoJICAgICAgICB9KTsNCgkgICAgfQ0KCSAgICBzdGF0aWMgaW5mZXIobGlua3BhdGgsIGVtYmVkID0gZmFsc2UsIGRpc3BsYXkpIHsNCgkgICAgICAgIGlmIChsaW5rcGF0aC5pbmNsdWRlcygiI14iKSkgew0KCSAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KCIjXiIpOw0KCSAgICAgICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHNwbGl0WzBdLCBzcGxpdFsxXSwgZW1iZWQsIGRpc3BsYXkpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAobGlua3BhdGguaW5jbHVkZXMoIiMiKSkgew0KCSAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KCIjIik7DQoJICAgICAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHNwbGl0WzBdLCBzcGxpdFsxXSwgZW1iZWQsIGRpc3BsYXkpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTsNCgkgICAgfQ0KCSAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovDQoJICAgIHN0YXRpYyBoZWFkZXIocGF0aCwgaGVhZGVyLCBlbWJlZCwgZGlzcGxheSkgew0KCSAgICAgICAgLy8gSGVhZGVycyBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQgdG8gYWxwaGEtbnVtZXJpYyAmIHdpdGggZXh0cmEgc3BhY2luZyByZW1vdmVkLg0KCSAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHsNCgkgICAgICAgICAgICBwYXRoLA0KCSAgICAgICAgICAgIGVtYmVkLA0KCSAgICAgICAgICAgIGRpc3BsYXksDQoJICAgICAgICAgICAgc3VicGF0aDogbm9ybWFsaXplSGVhZGVyRm9yTGluayhoZWFkZXIpLA0KCSAgICAgICAgICAgIHR5cGU6ICJoZWFkZXIiLA0KCSAgICAgICAgfSk7DQoJICAgIH0NCgkgICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBzcGVjaWZpYyBmaWxlIGFuZCBibG9jayBpbiB0aGF0IGZpbGUuICovDQoJICAgIHN0YXRpYyBibG9jayhwYXRoLCBibG9ja0lkLCBlbWJlZCwgZGlzcGxheSkgew0KCSAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHsNCgkgICAgICAgICAgICBwYXRoLA0KCSAgICAgICAgICAgIGVtYmVkLA0KCSAgICAgICAgICAgIGRpc3BsYXksDQoJICAgICAgICAgICAgc3VicGF0aDogYmxvY2tJZCwNCgkgICAgICAgICAgICB0eXBlOiAiYmxvY2siLA0KCSAgICAgICAgfSk7DQoJICAgIH0NCgkgICAgc3RhdGljIGZyb21PYmplY3Qob2JqZWN0KSB7DQoJICAgICAgICByZXR1cm4gbmV3IExpbmsob2JqZWN0KTsNCgkgICAgfQ0KCSAgICAvKiogQ2hlY2tzIGZvciBsaW5rIGVxdWFsaXR5IChpLmUuLCB0aGF0IHRoZSBsaW5rcyBhcmUgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZXhhY3QgbG9jYXRpb24pLiAqLw0KCSAgICBlcXVhbHMob3RoZXIpIHsNCgkgICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkNCgkgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQoJICAgICAgICByZXR1cm4gdGhpcy5wYXRoID09IG90aGVyLnBhdGggJiYgdGhpcy50eXBlID09IG90aGVyLnR5cGUgJiYgdGhpcy5zdWJwYXRoID09IG90aGVyLnN1YnBhdGg7DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIGl0J3MgbWFya2Rvd24gcmVwcmVzZW50YXRpb24uICovDQoJICAgIHRvU3RyaW5nKCkgew0KCSAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTsNCgkgICAgfQ0KCSAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovDQoJICAgIHRvT2JqZWN0KCkgew0KCSAgICAgICAgcmV0dXJuIHsgcGF0aDogdGhpcy5wYXRoLCB0eXBlOiB0aGlzLnR5cGUsIHN1YnBhdGg6IHRoaXMuc3VicGF0aCwgZGlzcGxheTogdGhpcy5kaXNwbGF5LCBlbWJlZDogdGhpcy5lbWJlZCB9Ow0KCSAgICB9DQoJICAgIC8qKiBVcGRhdGUgdGhpcyBsaW5rIHdpdGggYSBuZXcgcGF0aC4gKi8NCgkgICAgLy9AdHMtaWdub3JlOyBlcnJvciBhcHBlYXJlZCBhZnRlciB1cGRhdGluZyBPYnNpZGlhbiB0byAwLjE1LjQ7IGl0IGFsc28gdXBkYXRlZCBvdGhlciBwYWNrYWdlcyBidXQgZGlkbid0IHNheSB3aGljaA0KCSAgICB3aXRoUGF0aChwYXRoKSB7DQoJICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBwYXRoIH0pKTsNCgkgICAgfQ0KCSAgICAvKiogUmV0dXJuIGEgbmV3IGxpbmsgd2hpY2ggcG9pbnRzIHRvIHRoZSBzYW1lIGxvY2F0aW9uIGJ1dCB3aXRoIGEgbmV3IGRpc3BsYXkgdmFsdWUuICovDQoJICAgIHdpdGhEaXNwbGF5KGRpc3BsYXkpIHsNCgkgICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpOw0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWMgaGVhZGVyLiAqLw0KCSAgICB3aXRoSGVhZGVyKGhlYWRlcikgew0KCSAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpOw0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqLw0KCSAgICB0b0ZpbGUoKSB7DQoJICAgICAgICByZXR1cm4gTGluay5maWxlKHRoaXMucGF0aCwgdGhpcy5lbWJlZCwgdGhpcy5kaXNwbGF5KTsNCgkgICAgfQ0KCSAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhbiBlbWJlZGRlZCBsaW5rLiAqLw0KCSAgICB0b0VtYmVkKCkgew0KCSAgICAgICAgaWYgKHRoaXMuZW1iZWQpIHsNCgkgICAgICAgICAgICByZXR1cm4gdGhpczsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIGxldCBsaW5rID0gbmV3IExpbmsodGhpcyk7DQoJICAgICAgICAgICAgbGluay5lbWJlZCA9IHRydWU7DQoJICAgICAgICAgICAgcmV0dXJuIGxpbms7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIGludG8gYSBub24tZW1iZWRkZWQgbGluay4gKi8NCgkgICAgZnJvbUVtYmVkKCkgew0KCSAgICAgICAgaWYgKCF0aGlzLmVtYmVkKSB7DQoJICAgICAgICAgICAgcmV0dXJuIHRoaXM7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIHsNCgkgICAgICAgICAgICBsZXQgbGluayA9IG5ldyBMaW5rKHRoaXMpOw0KCSAgICAgICAgICAgIGxpbmsuZW1iZWQgPSBmYWxzZTsNCgkgICAgICAgICAgICByZXR1cm4gbGluazsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gbWFya2Rvd24gc28gaXQgY2FuIGJlIHJlbmRlcmVkLiAqLw0KCSAgICBtYXJrZG93bigpIHsNCgkgICAgICAgIGxldCByZXN1bHQgPSAodGhpcy5lbWJlZCA/ICIhIiA6ICIiKSArICJbWyIgKyB0aGlzLm9ic2lkaWFuTGluaygpOw0KCSAgICAgICAgaWYgKHRoaXMuZGlzcGxheSkgew0KCSAgICAgICAgICAgIHJlc3VsdCArPSAifCIgKyB0aGlzLmRpc3BsYXk7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIHsNCgkgICAgICAgICAgICByZXN1bHQgKz0gInwiICsgZ2V0RmlsZVRpdGxlKHRoaXMucGF0aCk7DQoJICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAiaGVhZGVyIiB8fCB0aGlzLnR5cGUgPT0gImJsb2NrIikNCgkgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgPiAiICsgdGhpcy5zdWJwYXRoOw0KCSAgICAgICAgfQ0KCSAgICAgICAgcmVzdWx0ICs9ICJdXSI7DQoJICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICB9DQoJICAgIC8qKiBDb252ZXJ0IHRoZSBpbm5lciBwYXJ0IG9mIHRoZSBsaW5rIHRvIHNvbWV0aGluZyB0aGF0IE9ic2lkaWFuIGNhbiBvcGVuIC8gdW5kZXJzdGFuZC4gKi8NCgkgICAgb2JzaWRpYW5MaW5rKCkgew0KCSAgICAgICAgdmFyIF9hLCBfYjsNCgkgICAgICAgIGNvbnN0IGVzY2FwZWQgPSB0aGlzLnBhdGgucmVwbGFjZSgifCIsICJcXHwiKTsNCgkgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gImhlYWRlciIpDQoJICAgICAgICAgICAgcmV0dXJuIGVzY2FwZWQgKyAiIyIgKyAoKF9hID0gdGhpcy5zdWJwYXRoKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVwbGFjZSgifCIsICJcXHwiKSk7DQoJICAgICAgICBpZiAodGhpcy50eXBlID09ICJibG9jayIpDQoJICAgICAgICAgICAgcmV0dXJuIGVzY2FwZWQgKyAiI14iICsgKChfYiA9IHRoaXMuc3VicGF0aCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnJlcGxhY2UoInwiLCAiXFx8IikpOw0KCSAgICAgICAgZWxzZQ0KCSAgICAgICAgICAgIHJldHVybiBlc2NhcGVkOw0KCSAgICB9DQoJICAgIC8qKiBUaGUgc3RyaXBwZWQgbmFtZSBvZiB0aGUgZmlsZSB0aGlzIGxpbmsgcG9pbnRzIHRvLiAqLw0KCSAgICBmaWxlTmFtZSgpIHsNCgkgICAgICAgIHJldHVybiBnZXRGaWxlVGl0bGUodGhpcy5wYXRoKS5yZXBsYWNlKCIubWQiLCAiIik7DQoJICAgIH0NCgl9DQoJLy8vLy8vLy8vLy8vLy8vLy8NCgkvLyBXSURHRVQgQkFTRSAvLw0KCS8vLy8vLy8vLy8vLy8vLy8vDQoJLyoqDQoJICogQSB0cml2aWFsIGJhc2UgY2xhc3Mgd2hpY2gganVzdCBkZWZpbmVzIHRoZSAnJHdpZGdldCcgaWRlbnRpZmllciB0eXBlLiBTdWJ0eXBlcyBvZg0KCSAqIHdpZGdldCBhcmUgcmVzcG9uc2libGUgZm9yIGFkZGluZyB3aGF0ZXZlciBtZXRhZGF0YSBpcyByZWxldmFudC4gSWYgeW91IHdhbnQgeW91ciB3aWRnZXQNCgkgKiB0byBoYXZlIHJlbmRlcmluZyBmdW5jdGlvbmFsaXR5ICh3aGljaCB5b3UgcHJvYmFibHkgZG8pLCB5b3Ugc2hvdWxkIGV4dGVuZCBgUmVuZGVyV2lkZ2V0YC4NCgkgKi8NCgljbGFzcyBXaWRnZXQgew0KCSAgICBjb25zdHJ1Y3Rvcigkd2lkZ2V0KSB7DQoJICAgICAgICB0aGlzLiR3aWRnZXQgPSAkd2lkZ2V0Ow0KCSAgICB9DQoJfQ0KCS8qKiBBIHRyaXZpYWwgd2lkZ2V0IHdoaWNoIHJlbmRlcnMgYSAoa2V5LCB2YWx1ZSkgcGFpciwgYW5kIGFsbG93cyBhY2Nlc3NpbmcgdGhlIGtleSBhbmQgdmFsdWUuICovDQoJY2xhc3MgTGlzdFBhaXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXQgew0KCSAgICBjb25zdHJ1Y3RvcihrZXksIHZhbHVlKSB7DQoJICAgICAgICBzdXBlcigiZGF0YXZpZXc6bGlzdC1wYWlyIik7DQoJICAgICAgICB0aGlzLmtleSA9IGtleTsNCgkgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsNCgkgICAgfQ0KCSAgICBtYXJrZG93bigpIHsNCgkgICAgICAgIHJldHVybiBgJHtWYWx1ZXMudG9TdHJpbmcodGhpcy5rZXkpfTogJHtWYWx1ZXMudG9TdHJpbmcodGhpcy52YWx1ZSl9YDsNCgkgICAgfQ0KCX0NCgkvKiogQSBzaW1wbGUgd2lkZ2V0IHdoaWNoIHJlbmRlcnMgYW4gZXh0ZXJuYWwgbGluay4gKi8NCgljbGFzcyBFeHRlcm5hbExpbmtXaWRnZXQgZXh0ZW5kcyBXaWRnZXQgew0KCSAgICBjb25zdHJ1Y3Rvcih1cmwsIGRpc3BsYXkpIHsNCgkgICAgICAgIHN1cGVyKCJkYXRhdmlldzpleHRlcm5hbC1saW5rIik7DQoJICAgICAgICB0aGlzLnVybCA9IHVybDsNCgkgICAgICAgIHRoaXMuZGlzcGxheSA9IGRpc3BsYXk7DQoJICAgIH0NCgkgICAgbWFya2Rvd24oKSB7DQoJICAgICAgICB2YXIgX2E7DQoJICAgICAgICByZXR1cm4gYFskeyhfYSA9IHRoaXMuZGlzcGxheSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy51cmx9XSgke3RoaXMudXJsfSlgOw0KCSAgICB9DQoJfQ0KCXZhciBXaWRnZXRzOw0KCShmdW5jdGlvbiAoV2lkZ2V0cykgew0KCSAgICAvKiogQ3JlYXRlIGEgbGlzdCBwYWlyIHdpZGdldCBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5IGFuZCB2YWx1ZS4gKi8NCgkgICAgZnVuY3Rpb24gbGlzdFBhaXIoa2V5LCB2YWx1ZSkgew0KCSAgICAgICAgcmV0dXJuIG5ldyBMaXN0UGFpcldpZGdldChrZXksIHZhbHVlKTsNCgkgICAgfQ0KCSAgICBXaWRnZXRzLmxpc3RQYWlyID0gbGlzdFBhaXI7DQoJICAgIC8qKiBDcmVhdGUgYW4gZXh0ZXJuYWwgbGluayB3aWRnZXQgd2hpY2ggcmVuZGVycyBhbiBleHRlcm5hbCBPYnNpZGlhbiBsaW5rLiAqLw0KCSAgICBmdW5jdGlvbiBleHRlcm5hbExpbmsodXJsLCBkaXNwbGF5KSB7DQoJICAgICAgICByZXR1cm4gbmV3IEV4dGVybmFsTGlua1dpZGdldCh1cmwsIGRpc3BsYXkpOw0KCSAgICB9DQoJICAgIFdpZGdldHMuZXh0ZXJuYWxMaW5rID0gZXh0ZXJuYWxMaW5rOw0KCSAgICAvKiogQ2hlY2tzIGlmIHRoZSBnaXZlbiB3aWRnZXQgaXMgYSBsaXN0IHBhaXIgd2lkZ2V0LiAqLw0KCSAgICBmdW5jdGlvbiBpc0xpc3RQYWlyKHdpZGdldCkgew0KCSAgICAgICAgcmV0dXJuIHdpZGdldC4kd2lkZ2V0ID09PSAiZGF0YXZpZXc6bGlzdC1wYWlyIjsNCgkgICAgfQ0KCSAgICBXaWRnZXRzLmlzTGlzdFBhaXIgPSBpc0xpc3RQYWlyOw0KCSAgICBmdW5jdGlvbiBpc0V4dGVybmFsTGluayh3aWRnZXQpIHsNCgkgICAgICAgIHJldHVybiB3aWRnZXQuJHdpZGdldCA9PT0gImRhdGF2aWV3OmV4dGVybmFsLWxpbmsiOw0KCSAgICB9DQoJICAgIFdpZGdldHMuaXNFeHRlcm5hbExpbmsgPSBpc0V4dGVybmFsTGluazsNCgkgICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHdpZGdldCBpcyBhbnkga2luZCBvZiBidWlsdC1pbiB3aWRnZXQgd2l0aCBzcGVjaWFsIHJlbmRlcmluZyBoYW5kbGluZy4gKi8NCgkgICAgZnVuY3Rpb24gaXNCdWlsdGluKHdpZGdldCkgew0KCSAgICAgICAgcmV0dXJuIGlzTGlzdFBhaXIod2lkZ2V0KSB8fCBpc0V4dGVybmFsTGluayh3aWRnZXQpOw0KCSAgICB9DQoJICAgIFdpZGdldHMuaXNCdWlsdGluID0gaXNCdWlsdGluOw0KCX0pKFdpZGdldHMgfHwgKFdpZGdldHMgPSB7fSkpOwoKCS8qKiBVdGlsaXR5IG1ldGhvZHMgZm9yIGNyZWF0aW5nICYgY29tcGFyaW5nIGZpZWxkcy4gKi8NCgl2YXIgRmllbGRzOw0KCShmdW5jdGlvbiAoRmllbGRzKSB7DQoJICAgIGZ1bmN0aW9uIHZhcmlhYmxlKG5hbWUpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJ2YXJpYWJsZSIsIG5hbWUgfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMudmFyaWFibGUgPSB2YXJpYWJsZTsNCgkgICAgZnVuY3Rpb24gbGl0ZXJhbCh2YWx1ZSkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImxpdGVyYWwiLCB2YWx1ZSB9Ow0KCSAgICB9DQoJICAgIEZpZWxkcy5saXRlcmFsID0gbGl0ZXJhbDsNCgkgICAgZnVuY3Rpb24gYmluYXJ5T3AobGVmdCwgb3AsIHJpZ2h0KSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiYmluYXJ5b3AiLCBsZWZ0LCBvcCwgcmlnaHQgfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMuYmluYXJ5T3AgPSBiaW5hcnlPcDsNCgkgICAgZnVuY3Rpb24gaW5kZXgob2JqLCBpbmRleCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImluZGV4Iiwgb2JqZWN0OiBvYmosIGluZGV4IH07DQoJICAgIH0NCgkgICAgRmllbGRzLmluZGV4ID0gaW5kZXg7DQoJICAgIC8qKiBDb252ZXJ0cyBhIHN0cmluZyBpbiBkb3Qtbm90YXRpb24tZm9ybWF0IGludG8gYSB2YXJpYWJsZSB3aGljaCBpbmRleGVzLiAqLw0KCSAgICBmdW5jdGlvbiBpbmRleFZhcmlhYmxlKG5hbWUpIHsNCgkgICAgICAgIGxldCBwYXJ0cyA9IG5hbWUuc3BsaXQoIi4iKTsNCgkgICAgICAgIGxldCByZXN1bHQgPSBGaWVsZHMudmFyaWFibGUocGFydHNbMF0pOw0KCSAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHBhcnRzLmxlbmd0aDsgaW5kZXgrKykgew0KCSAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5pbmRleChyZXN1bHQsIEZpZWxkcy5saXRlcmFsKHBhcnRzW2luZGV4XSkpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgfQ0KCSAgICBGaWVsZHMuaW5kZXhWYXJpYWJsZSA9IGluZGV4VmFyaWFibGU7DQoJICAgIGZ1bmN0aW9uIGxhbWJkYShhcmdzLCB2YWx1ZSkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImxhbWJkYSIsIGFyZ3VtZW50czogYXJncywgdmFsdWUgfTsNCgkgICAgfQ0KCSAgICBGaWVsZHMubGFtYmRhID0gbGFtYmRhOw0KCSAgICBmdW5jdGlvbiBmdW5jKGZ1bmMsIGFyZ3MpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJmdW5jdGlvbiIsIGZ1bmMsIGFyZ3VtZW50czogYXJncyB9Ow0KCSAgICB9DQoJICAgIEZpZWxkcy5mdW5jID0gZnVuYzsNCgkgICAgZnVuY3Rpb24gbGlzdCh2YWx1ZXMpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJsaXN0IiwgdmFsdWVzIH07DQoJICAgIH0NCgkgICAgRmllbGRzLmxpc3QgPSBsaXN0Ow0KCSAgICBmdW5jdGlvbiBvYmplY3QodmFsdWVzKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAib2JqZWN0IiwgdmFsdWVzIH07DQoJICAgIH0NCgkgICAgRmllbGRzLm9iamVjdCA9IG9iamVjdDsNCgkgICAgZnVuY3Rpb24gbmVnYXRlKGNoaWxkKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAibmVnYXRlZCIsIGNoaWxkIH07DQoJICAgIH0NCgkgICAgRmllbGRzLm5lZ2F0ZSA9IG5lZ2F0ZTsNCgkgICAgZnVuY3Rpb24gaXNDb21wYXJlT3Aob3ApIHsNCgkgICAgICAgIHJldHVybiBvcCA9PSAiPD0iIHx8IG9wID09ICI8IiB8fCBvcCA9PSAiPiIgfHwgb3AgPT0gIj49IiB8fCBvcCA9PSAiIT0iIHx8IG9wID09ICI9IjsNCgkgICAgfQ0KCSAgICBGaWVsZHMuaXNDb21wYXJlT3AgPSBpc0NvbXBhcmVPcDsNCgkgICAgRmllbGRzLk5VTEwgPSBGaWVsZHMubGl0ZXJhbChudWxsKTsNCgl9KShGaWVsZHMgfHwgKEZpZWxkcyA9IHt9KSk7CgoJLyoqIEFTVCBpbXBsZW1lbnRhdGlvbiBmb3IgcXVlcmllcyBvdmVyIGRhdGEgc291cmNlcy4gKi8NCgkvKiogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgc291cmNlcy4gKi8NCgl2YXIgU291cmNlczsNCgkoZnVuY3Rpb24gKFNvdXJjZXMpIHsNCgkgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCBzZWFyY2hlcyBmcm9tIGEgdGFnLiAqLw0KCSAgICBmdW5jdGlvbiB0YWcodGFnKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAidGFnIiwgdGFnIH07DQoJICAgIH0NCgkgICAgU291cmNlcy50YWcgPSB0YWc7DQoJICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggZmV0Y2hlcyBmcm9tIGEgQ1NWIGZpbGUuICovDQoJICAgIGZ1bmN0aW9uIGNzdihwYXRoKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiY3N2IiwgcGF0aCB9Ow0KCSAgICB9DQoJICAgIFNvdXJjZXMuY3N2ID0gY3N2Ow0KCSAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHNlYXJjaGVzIGZvciBmaWxlcyB1bmRlciBhIGZvbGRlciBwcmVmaXguICovDQoJICAgIGZ1bmN0aW9uIGZvbGRlcihwcmVmaXgpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJmb2xkZXIiLCBmb2xkZXI6IHByZWZpeCB9Ow0KCSAgICB9DQoJICAgIFNvdXJjZXMuZm9sZGVyID0gZm9sZGVyOw0KCSAgICAvKiogQ3JlYXRlIGEgc291cmNlIHdoaWNoIHNlYXJjaGVzIGZvciBmaWxlcyB3aGljaCBsaW5rIHRvL2Zyb20gYSBnaXZlbiBmaWxlLiAqLw0KCSAgICBmdW5jdGlvbiBsaW5rKGZpbGUsIGluY29taW5nKSB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAibGluayIsIGZpbGUsIGRpcmVjdGlvbjogaW5jb21pbmcgPyAiaW5jb21pbmciIDogIm91dGdvaW5nIiB9Ow0KCSAgICB9DQoJICAgIFNvdXJjZXMubGluayA9IGxpbms7DQoJICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggam9pbnMgdHdvIHNvdXJjZXMgYnkgYSBsb2dpY2FsIG9wZXJhdG9yIChhbmQvb3IpLiAqLw0KCSAgICBmdW5jdGlvbiBiaW5hcnlPcChsZWZ0LCBvcCwgcmlnaHQpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJiaW5hcnlvcCIsIGxlZnQsIG9wLCByaWdodCB9Ow0KCSAgICB9DQoJICAgIFNvdXJjZXMuYmluYXJ5T3AgPSBiaW5hcnlPcDsNCgkgICAgLyoqIENyZWF0ZSBhIHNvdXJjZSB3aGljaCB0YWtlcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHR3byBzb3VyY2VzLiAqLw0KCSAgICBmdW5jdGlvbiBhbmQobGVmdCwgcmlnaHQpIHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJiaW5hcnlvcCIsIGxlZnQsIG9wOiAiJiIsIHJpZ2h0IH07DQoJICAgIH0NCgkgICAgU291cmNlcy5hbmQgPSBhbmQ7DQoJICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggdGFrZXMgdGhlIHVuaW9uIG9mIHR3byBzb3VyY2VzLiAqLw0KCSAgICBmdW5jdGlvbiBvcihsZWZ0LCByaWdodCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImJpbmFyeW9wIiwgbGVmdCwgb3A6ICJ8IiwgcmlnaHQgfTsNCgkgICAgfQ0KCSAgICBTb3VyY2VzLm9yID0gb3I7DQoJICAgIC8qKiBDcmVhdGUgYSBzb3VyY2Ugd2hpY2ggbmVnYXRlcyB0aGUgdW5kZXJseWluZyBzb3VyY2UuICovDQoJICAgIGZ1bmN0aW9uIG5lZ2F0ZShjaGlsZCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogIm5lZ2F0ZSIsIGNoaWxkIH07DQoJICAgIH0NCgkgICAgU291cmNlcy5uZWdhdGUgPSBuZWdhdGU7DQoJICAgIGZ1bmN0aW9uIGVtcHR5KCkgew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImVtcHR5IiB9Ow0KCSAgICB9DQoJICAgIFNvdXJjZXMuZW1wdHkgPSBlbXB0eTsNCgl9KShTb3VyY2VzIHx8IChTb3VyY2VzID0ge30pKTsKCgkvKiogRW1vamkgcmVnZXggd2l0aG91dCBhbnkgYWRkaXRpb25hbCBmbGFncy4gKi8NCgljb25zdCBFTU9KSV9SRUdFWCA9IG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCAiIik7DQoJLyoqIFByb3ZpZGVzIGEgbG9va3VwIHRhYmxlIGZvciB1bml0IGR1cmF0aW9ucyBvZiB0aGUgZ2l2ZW4gdHlwZS4gKi8NCgljb25zdCBEVVJBVElPTl9UWVBFUyA9IHsNCgkgICAgeWVhcjogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksDQoJICAgIHllYXJzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSwNCgkgICAgeXI6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLA0KCSAgICB5cnM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLA0KCSAgICBtb250aDogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLA0KCSAgICBtb250aHM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwNCgkgICAgbW86IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSwNCgkgICAgbW9zOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksDQoJICAgIHdlZWs6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLA0KCSAgICB3ZWVrczogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksDQoJICAgIHdrOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSwNCgkgICAgd2tzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSwNCgkgICAgdzogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksDQoJICAgIGRheTogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSwNCgkgICAgZGF5czogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSwNCgkgICAgZDogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSwNCgkgICAgaG91cjogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksDQoJICAgIGhvdXJzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwNCgkgICAgaHI6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLA0KCSAgICBocnM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLA0KCSAgICBoOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBob3VyczogMSB9KSwNCgkgICAgbWludXRlOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLA0KCSAgICBtaW51dGVzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLA0KCSAgICBtaW46IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksDQoJICAgIG1pbnM6IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksDQoJICAgIG06IER1cmF0aW9uXzEuZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksDQoJICAgIHNlY29uZDogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSwNCgkgICAgc2Vjb25kczogRHVyYXRpb25fMS5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSwNCgkgICAgc2VjOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLA0KCSAgICBzZWNzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLA0KCSAgICBzOiBEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLA0KCX07DQoJLyoqIFNob3J0aGFuZCBmb3IgY29tbW9uIGRhdGVzIChyZWxhdGl2ZSB0byByaWdodCBub3cpLiAqLw0KCWNvbnN0IERBVEVfU0hPUlRIQU5EUyA9IHsNCgkgICAgbm93OiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCksDQoJICAgIHRvZGF5OiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuc3RhcnRPZigiZGF5IiksDQoJICAgIHllc3RlcmRheTogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpDQoJICAgICAgICAuc3RhcnRPZigiZGF5IikNCgkgICAgICAgIC5taW51cyhEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pKSwNCgkgICAgdG9tb3Jyb3c6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKQ0KCSAgICAgICAgLnN0YXJ0T2YoImRheSIpDQoJICAgICAgICAucGx1cyhEdXJhdGlvbl8xLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pKSwNCgkgICAgc293OiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuc3RhcnRPZigid2VlayIpLA0KCSAgICAic3RhcnQtb2Ytd2VlayI6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5zdGFydE9mKCJ3ZWVrIiksDQoJICAgIGVvdzogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLmVuZE9mKCJ3ZWVrIiksDQoJICAgICJlbmQtb2Ytd2VlayI6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5lbmRPZigid2VlayIpLA0KCSAgICBzb3k6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5zdGFydE9mKCJ5ZWFyIiksDQoJICAgICJzdGFydC1vZi15ZWFyIjogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLnN0YXJ0T2YoInllYXIiKSwNCgkgICAgZW95OiAoKSA9PiBEYXRlVGltZV8xLmxvY2FsKCkuZW5kT2YoInllYXIiKSwNCgkgICAgImVuZC1vZi15ZWFyIjogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLmVuZE9mKCJ5ZWFyIiksDQoJICAgIHNvbTogKCkgPT4gRGF0ZVRpbWVfMS5sb2NhbCgpLnN0YXJ0T2YoIm1vbnRoIiksDQoJICAgICJzdGFydC1vZi1tb250aCI6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5zdGFydE9mKCJtb250aCIpLA0KCSAgICBlb206ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5lbmRPZigibW9udGgiKSwNCgkgICAgImVuZC1vZi1tb250aCI6ICgpID0+IERhdGVUaW1lXzEubG9jYWwoKS5lbmRPZigibW9udGgiKSwNCgl9Ow0KCS8qKg0KCSAqIEtleXdvcmRzIHdoaWNoIGNhbm5vdCBiZSB1c2VkIGFzIHZhcmlhYmxlcyBkaXJlY3RseS4gVXNlIGByb3cuPHRoaW5nPmAgaWYgaXQgaXMgYSB2YXJpYWJsZSB5b3UgaGF2ZSBkZWZpbmVkIGFuZCB3YW50DQoJICogdG8gYWNjZXNzLg0KCSAqLw0KCWNvbnN0IEtFWVdPUkRTID0gWyJGUk9NIiwgIldIRVJFIiwgIkxJTUlUIiwgIkdST1VQIiwgIkZMQVRURU4iXTsNCgkvLy8vLy8vLy8vLy8vLy8NCgkvLyBVdGlsaXRpZXMgLy8NCgkvLy8vLy8vLy8vLy8vLy8NCgkvKiogU3BsaXQgb24gdW5lc2NhcGVkIHBpcGVzIGluIGFuIGlubmVyIGxpbmsuICovDQoJZnVuY3Rpb24gc3BsaXRPblVuZXNjYXBlZFBpcGUobGluaykgew0KCSAgICBsZXQgcGlwZSA9IC0xOw0KCSAgICB3aGlsZSAoKHBpcGUgPSBsaW5rLmluZGV4T2YoInwiLCBwaXBlICsgMSkpID49IDApIHsNCgkgICAgICAgIGlmIChwaXBlID4gMCAmJiBsaW5rW3BpcGUgLSAxXSA9PSAiXFwiKQ0KCSAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgcmV0dXJuIFtsaW5rLnN1YnN0cmluZygwLCBwaXBlKS5yZXBsYWNlKC9cXFx8L2csICJ8IiksIGxpbmsuc3Vic3RyaW5nKHBpcGUgKyAxKV07DQoJICAgIH0NCgkgICAgcmV0dXJuIFtsaW5rLnJlcGxhY2UoL1xcXHwvZywgInwiKSwgdW5kZWZpbmVkXTsNCgl9DQoJLyoqIEF0dGVtcHQgdG8gcGFyc2UgdGhlIGluc2lkZSBvZiBhIGxpbmsgdG8gcHVsbCBvdXQgZGlzcGxheSBuYW1lLCBzdWJwYXRoLCBldGMuICovDQoJZnVuY3Rpb24gcGFyc2VJbm5lckxpbmsocmF3bGluaykgew0KCSAgICBsZXQgW2xpbmssIGRpc3BsYXldID0gc3BsaXRPblVuZXNjYXBlZFBpcGUocmF3bGluayk7DQoJICAgIHJldHVybiBMaW5rLmluZmVyKGxpbmssIGZhbHNlLCBkaXNwbGF5KTsNCgl9DQoJLyoqIENyZWF0ZSBhIGxlZnQtYXNzb2NpYXRpdmUgYmluYXJ5IHBhcnNlciB3aGljaCBwYXJzZXMgdGhlIGdpdmVuIHN1Yi1lbGVtZW50IGFuZCBzZXBhcmF0b3IuIEhhbmRsZXMgd2hpdGVzcGFjZS4gKi8NCglmdW5jdGlvbiBjcmVhdGVCaW5hcnlQYXJzZXIoY2hpbGQsIHNlcCwgY29tYmluZSkgew0KCSAgICByZXR1cm4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAoY2hpbGQsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgc2VwLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIGNoaWxkKS5tYW55KCksIChmaXJzdCwgcmVzdCkgPT4gew0KCSAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09IDApDQoJICAgICAgICAgICAgcmV0dXJuIGZpcnN0Ow0KCSAgICAgICAgbGV0IG5vZGUgPSBjb21iaW5lKGZpcnN0LCByZXN0WzBdWzFdLCByZXN0WzBdWzNdKTsNCgkgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXN0Lmxlbmd0aDsgaW5kZXgrKykgew0KCSAgICAgICAgICAgIG5vZGUgPSBjb21iaW5lKG5vZGUsIHJlc3RbaW5kZXhdWzFdLCByZXN0W2luZGV4XVszXSk7DQoJICAgICAgICB9DQoJICAgICAgICByZXR1cm4gbm9kZTsNCgkgICAgfSk7DQoJfQ0KCWZ1bmN0aW9uIGNoYWluT3B0KGJhc2UsIC4uLmZ1bmNzKSB7DQoJICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmN1c3RvbSgoc3VjY2VzcywgZmFpbHVyZSkgPT4gew0KCSAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4gew0KCSAgICAgICAgICAgIGxldCByZXN1bHQgPSBiYXNlLl8oaW5wdXQsIGkpOw0KCSAgICAgICAgICAgIGlmICghcmVzdWx0LnN0YXR1cykNCgkgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1bmNzKSB7DQoJICAgICAgICAgICAgICAgIGxldCBuZXh0ID0gZnVuYyhyZXN1bHQudmFsdWUpLl8oaW5wdXQsIHJlc3VsdC5pbmRleCk7DQoJICAgICAgICAgICAgICAgIGlmICghbmV4dC5zdGF0dXMpDQoJICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0Ow0KCSAgICAgICAgICAgIH0NCgkgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgfTsNCgkgICAgfSk7DQoJfQ0KCWNvbnN0IEVYUFJFU1NJT04gPSBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmNyZWF0ZUxhbmd1YWdlKHsNCgkgICAgLy8gQSBmbG9hdGluZyBwb2ludCBudW1iZXI7IHRoZSBkZWNpbWFsIHBvaW50IGlzIG9wdGlvbmFsLg0KCSAgICBudW1iZXI6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoLy0/WzAtOV0rKFwuWzAtOV0rKT8vKQ0KCSAgICAgICAgLm1hcChzdHIgPT4gTnVtYmVyLnBhcnNlRmxvYXQoc3RyKSkNCgkgICAgICAgIC5kZXNjKCJudW1iZXIiKSwNCgkgICAgLy8gQSBxdW90ZS1zdXJyb3VuZGVkIHN0cmluZyB3aGljaCBzdXBwb3J0cyBlc2NhcGUgY2hhcmFjdGVycyAoJ1wnKS4NCgkgICAgc3RyaW5nOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCciJykNCgkgICAgICAgIC50aGVuKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHEuZXNjYXBlQ2hhcmFjdGVyLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm5vbmVPZignIlxcJykpDQoJICAgICAgICAuYXRMZWFzdCgwKQ0KCSAgICAgICAgLm1hcChjaGFycyA9PiBjaGFycy5qb2luKCIiKSkpDQoJICAgICAgICAuc2tpcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygnIicpKQ0KCSAgICAgICAgLmRlc2MoInN0cmluZyIpLA0KCSAgICBlc2NhcGVDaGFyYWN0ZXI6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIlxcIikNCgkgICAgICAgIC50aGVuKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYW55KQ0KCSAgICAgICAgLm1hcChlc2NhcGVkID0+IHsNCgkgICAgICAgIC8vIElmIHdlIGFyZSBlc2NhcGluZyBhIGJhY2tzbGFzaCBvciBhIHF1b3RlLCBwYXNzIGluIG9uIGluIGVzY2FwZWQgZm9ybQ0KCSAgICAgICAgaWYgKGVzY2FwZWQgPT09ICciJykNCgkgICAgICAgICAgICByZXR1cm4gJyInOw0KCSAgICAgICAgaWYgKGVzY2FwZWQgPT09ICJcXCIpDQoJICAgICAgICAgICAgcmV0dXJuICJcXCI7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgcmV0dXJuICJcXCIgKyBlc2NhcGVkOw0KCSAgICB9KSwNCgkgICAgLy8gQSBib29sZWFuIHRydWUvZmFsc2UgdmFsdWUuDQoJICAgIGJvb2w6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL3RydWV8ZmFsc2V8VHJ1ZXxGYWxzZS8pDQoJICAgICAgICAubWFwKHN0ciA9PiBzdHIudG9Mb3dlckNhc2UoKSA9PSAidHJ1ZSIpDQoJICAgICAgICAuZGVzYygiYm9vbGVhbiAoJ3RydWUnIG9yICdmYWxzZScpIiksDQoJICAgIC8vIEEgdGFnIG9mIHRoZSBmb3JtICcjc3R1ZmYvaGVsbG8tdGhlcmUnLg0KCSAgICB0YWc6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiMiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1tccHtMZXR0ZXJ9MC05Xy8tXS91KS5kZXNjKCJ0ZXh0IiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKEVNT0pJX1JFR0VYKS5kZXNjKCJ0ZXh0IikpLm1hbnkoKSwgKHN0YXJ0LCByZXN0KSA9PiBzdGFydCArIHJlc3Quam9pbigiIikpLmRlc2MoInRhZyAoJyNoZWxsby9zdHVmZicpIiksDQoJICAgIC8vIEEgdmFyaWFibGUgaWRlbnRpZmllciwgd2hpY2ggaXMgYWxwaGFudW1lcmljIGFuZCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IuLi4gZW1vamkuDQoJICAgIGlkZW50aWZpZXI6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1xwe0xldHRlcn0vdSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKEVNT0pJX1JFR0VYKS5kZXNjKCJ0ZXh0IikpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvWzAtOVxwe0xldHRlcn1fLV0vdSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKEVNT0pJX1JFR0VYKS5kZXNjKCJ0ZXh0IikpLm1hbnkoKSwgKGZpcnN0LCByZXN0KSA9PiBmaXJzdCArIHJlc3Quam9pbigiIikpLmRlc2MoInZhcmlhYmxlIGlkZW50aWZpZXIiKSwNCgkgICAgLy8gQW4gT2JzaWRpYW4gbGluayBvZiB0aGUgZm9ybSBbWzxsaW5rPl1dLg0KCSAgICBsaW5rOiBfID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cW1xbKFteXFtcXV0qPylcXVxdL3UsIDEpDQoJICAgICAgICAubWFwKGxpbmtJbm5lciA9PiBwYXJzZUlubmVyTGluayhsaW5rSW5uZXIpKQ0KCSAgICAgICAgLmRlc2MoImZpbGUgbGluayIpLA0KCSAgICAvLyBBbiBlbWJlZGRhYmxlIGxpbmsgd2hpY2ggY2FuIHN0YXJ0IHdpdGggJyEnLiBUaGlzIG92ZXJsYXBzIHdpdGggdGhlIG5vcm1hbCBuZWdhdGlvbiBvcGVyYXRvciwgc28gaXQgaXMgb25seQ0KCSAgICAvLyBwcm92aWRlZCBmb3IgbWV0YWRhdGEgcGFyc2luZy4NCgkgICAgZW1iZWRMaW5rOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIhIikuYXRNb3N0KDEpLCBxLmxpbmssIChwLCBsKSA9PiB7DQoJICAgICAgICBpZiAocC5sZW5ndGggPiAwKQ0KCSAgICAgICAgICAgIGwuZW1iZWQgPSB0cnVlOw0KCSAgICAgICAgcmV0dXJuIGw7DQoJICAgIH0pLmRlc2MoImZpbGUgbGluayIpLA0KCSAgICAvLyBCaW5hcnkgcGx1cyBvciBtaW51cyBvcGVyYXRvci4NCgkgICAgYmluYXJ5UGx1c01pbnVzOiBfID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cK3wtLykNCgkgICAgICAgIC5tYXAoc3RyID0+IHN0cikNCgkgICAgICAgIC5kZXNjKCInKycgb3IgJy0nIiksDQoJICAgIC8vIEJpbmFyeSB0aW1lcyBvciBkaXZpZGUgb3BlcmF0b3IuDQoJICAgIGJpbmFyeU11bERpdjogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXCp8XC98JS8pDQoJICAgICAgICAubWFwKHN0ciA9PiBzdHIpDQoJICAgICAgICAuZGVzYygiJyonIG9yICcvJyBvciAnJSciKSwNCgkgICAgLy8gQmluYXJ5IGNvbXBhcmlzb24gb3BlcmF0b3IuDQoJICAgIGJpbmFyeUNvbXBhcmVPcDogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvPj18PD18IT18Pnw8fD0vKQ0KCSAgICAgICAgLm1hcChzdHIgPT4gc3RyKQ0KCSAgICAgICAgLmRlc2MoIic+PScgb3IgJzw9JyBvciAnIT0nIG9yICc9JyBvciAnPicgb3IgJzwnIiksDQoJICAgIC8vIEJpbmFyeSBib29sZWFuIGNvbWJpbmF0aW9uIG9wZXJhdG9yLg0KCSAgICBiaW5hcnlCb29sZWFuT3A6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL2FuZHxvcnwmfFx8L2kpDQoJICAgICAgICAubWFwKHN0ciA9PiB7DQoJICAgICAgICBpZiAoc3RyLnRvTG93ZXJDYXNlKCkgPT0gImFuZCIpDQoJICAgICAgICAgICAgcmV0dXJuICImIjsNCgkgICAgICAgIGVsc2UgaWYgKHN0ci50b0xvd2VyQ2FzZSgpID09ICJvciIpDQoJICAgICAgICAgICAgcmV0dXJuICJ8IjsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICByZXR1cm4gc3RyOw0KCSAgICB9KQ0KCSAgICAgICAgLmRlc2MoIidhbmQnIG9yICdvciciKSwNCgkgICAgLy8gQSBkYXRlIHdoaWNoIGNhbiBiZSBZWVlZLU1NWy1ERFRISDptbTpzc10uDQoJICAgIHJvb3REYXRlOiBfID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHs0fS8pLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXGR7Mn0vKSwgKHllYXIsIF8sIG1vbnRoKSA9PiB7DQoJICAgICAgICByZXR1cm4gRGF0ZVRpbWVfMS5mcm9tT2JqZWN0KHsgeWVhcjogTnVtYmVyLnBhcnNlSW50KHllYXIpLCBtb250aDogTnVtYmVyLnBhcnNlSW50KG1vbnRoKSB9KTsNCgkgICAgfSkuZGVzYygiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdIiksDQoJICAgIGRhdGVTaG9ydGhhbmQ6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQoLi4uT2JqZWN0LmtleXMoREFURV9TSE9SVEhBTkRTKQ0KCSAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpDQoJICAgICAgICAubWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKSksDQoJICAgIGRhdGU6IHEgPT4gY2hhaW5PcHQocS5yb290RGF0ZSwgKHltKSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXGR7Mn0vKSwgKF8sIGRheSkgPT4geW0uc2V0KHsgZGF5OiBOdW1iZXIucGFyc2VJbnQoZGF5KSB9KSksICh5bWQpID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJUIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHsyfS8pLCAoXywgaG91cikgPT4geW1kLnNldCh7IGhvdXI6IE51bWJlci5wYXJzZUludChob3VyKSB9KSksICh5bWRoKSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiOiIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXGR7Mn0vKSwgKF8sIG1pbnV0ZSkgPT4geW1kaC5zZXQoeyBtaW51dGU6IE51bWJlci5wYXJzZUludChtaW51dGUpIH0pKSwgKHltZGhtKSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiOiIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXGR7Mn0vKSwgKF8sIHNlY29uZCkgPT4geW1kaG0uc2V0KHsgc2Vjb25kOiBOdW1iZXIucGFyc2VJbnQoc2Vjb25kKSB9KSksICh5bWRobXMpID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuYWx0KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIuIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9cZHszfS8pLCAoXywgbWlsbGlzZWNvbmQpID0+IHltZGhtcy5zZXQoeyBtaWxsaXNlY29uZDogTnVtYmVyLnBhcnNlSW50KG1pbGxpc2Vjb25kKSB9KSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3VjY2VlZCh5bWRobXMpIC8vIHBhc3MNCgkgICAgKSwgKGR0KSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKyIpLm9yKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCItIikpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvXGR7MSwyfSg6XGR7Mn0pPy8pLCAocG0sIGhyKSA9PiBkdC5zZXRab25lKCJVVEMiICsgcG0gKyBociwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIloiKSwgKCkgPT4gZHQuc2V0Wm9uZSgidXRjIiwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIlsiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAoL1swLTlBLVphLXorLVwvXSsvdSksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJdIiksIChfYSwgem9uZSwgX2IpID0+IGR0LnNldFpvbmUoem9uZSwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pKSkpDQoJICAgICAgICAuYXNzZXJ0KChkdCkgPT4gZHQuaXNWYWxpZCwgInZhbGlkIGRhdGUiKQ0KCSAgICAgICAgLmRlc2MoImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSIpLA0KCSAgICAvLyBBIGRhdGUsIHBsdXMgdmFyaW91cyBzaG9ydGhhbmQgdGltZXMgb2YgZGF5IGl0IGNvdWxkIGJlLg0KCSAgICBkYXRlUGx1czogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChxLmRhdGVTaG9ydGhhbmQubWFwKGQgPT4gREFURV9TSE9SVEhBTkRTW2RdKCkpLCBxLmRhdGUpLmRlc2MoImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSBvciBpbiBzaG9ydGhhbmQiKSwNCgkgICAgLy8gQSBkdXJhdGlvbiBvZiB0aW1lLg0KCSAgICBkdXJhdGlvblR5cGU6IF8gPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQoLi4uT2JqZWN0LmtleXMoRFVSQVRJT05fVFlQRVMpDQoJICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aCkNCgkgICAgICAgIC5tYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcpKSwNCgkgICAgZHVyYXRpb246IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocS5udW1iZXIsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5kdXJhdGlvblR5cGUsIChjb3VudCwgXywgdCkgPT4gRFVSQVRJT05fVFlQRVNbdF0ubWFwVW5pdHMoeCA9PiB4ICogY291bnQpKQ0KCSAgICAgICAgLnNlcEJ5MShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLCIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKS5vcihwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpKQ0KCSAgICAgICAgLm1hcChkdXJhdGlvbnMgPT4gZHVyYXRpb25zLnJlZHVjZSgocCwgYykgPT4gcC5wbHVzKGMpKSkNCgkgICAgICAgIC5kZXNjKCJkdXJhdGlvbiBsaWtlIDRocjJtaW4iKSwNCgkgICAgLy8gQSByYXcgbnVsbCB2YWx1ZS4NCgkgICAgcmF3TnVsbDogXyA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygibnVsbCIpLA0KCSAgICAvLyBTb3VyY2UgcGFyc2luZy4NCgkgICAgdGFnU291cmNlOiBxID0+IHEudGFnLm1hcCh0YWcgPT4gU291cmNlcy50YWcodGFnKSksDQoJICAgIGNzdlNvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiY3N2KCIpLnNraXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcS5zdHJpbmcsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChfMSwgcGF0aCwgXzIpID0+IFNvdXJjZXMuY3N2KHBhdGgpKSwNCgkgICAgbGlua0luY29taW5nU291cmNlOiBxID0+IHEubGluay5tYXAobGluayA9PiBTb3VyY2VzLmxpbmsobGluay5wYXRoLCB0cnVlKSksDQoJICAgIGxpbmtPdXRnb2luZ1NvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygib3V0Z29pbmcoIikuc2tpcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBxLmxpbmssIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChfMSwgbGluaywgXzIpID0+IFNvdXJjZXMubGluayhsaW5rLnBhdGgsIGZhbHNlKSksDQoJICAgIGZvbGRlclNvdXJjZTogcSA9PiBxLnN0cmluZy5tYXAoc3RyID0+IFNvdXJjZXMuZm9sZGVyKHN0cikpLA0KCSAgICBwYXJlbnNTb3VyY2U6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIigiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLnNvdXJjZSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKSIpLCAoXzEsIF8yLCBmaWVsZCwgXzMsIF80KSA9PiBmaWVsZCksDQoJICAgIG5lZ2F0ZVNvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLSIpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiISIpKSwgcS5hdG9tU291cmNlLCAoXywgc291cmNlKSA9PiBTb3VyY2VzLm5lZ2F0ZShzb3VyY2UpKSwNCgkgICAgYXRvbVNvdXJjZTogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChxLnBhcmVuc1NvdXJjZSwgcS5uZWdhdGVTb3VyY2UsIHEubGlua091dGdvaW5nU291cmNlLCBxLmxpbmtJbmNvbWluZ1NvdXJjZSwgcS5mb2xkZXJTb3VyY2UsIHEudGFnU291cmNlLCBxLmNzdlNvdXJjZSksDQoJICAgIGJpbmFyeU9wU291cmNlOiBxID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmF0b21Tb3VyY2UsIHEuYmluYXJ5Qm9vbGVhbk9wLm1hcChzID0+IHMpLCBTb3VyY2VzLmJpbmFyeU9wKSwNCgkgICAgc291cmNlOiBxID0+IHEuYmluYXJ5T3BTb3VyY2UsDQoJICAgIC8vIEZpZWxkIHBhcnNpbmcuDQoJICAgIHZhcmlhYmxlRmllbGQ6IHEgPT4gcS5pZGVudGlmaWVyDQoJICAgICAgICAuY2hhaW4ociA9PiB7DQoJICAgICAgICBpZiAoS0VZV09SRFMuaW5jbHVkZXMoci50b1VwcGVyQ2FzZSgpKSkgew0KCSAgICAgICAgICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmZhaWwoIlZhcmlhYmxlIGZpZWxkcyBjYW5ub3QgYmUgYSBrZXl3b3JkICgiICsgS0VZV09SRFMuam9pbigiIG9yICIpICsgIikiKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIHJldHVybiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN1Y2NlZWQoRmllbGRzLnZhcmlhYmxlKHIpKTsNCgkgICAgICAgIH0NCgkgICAgfSkNCgkgICAgICAgIC5kZXNjKCJ2YXJpYWJsZSIpLA0KCSAgICBudW1iZXJGaWVsZDogcSA9PiBxLm51bWJlci5tYXAodmFsID0+IEZpZWxkcy5saXRlcmFsKHZhbCkpLmRlc2MoIm51bWJlciIpLA0KCSAgICBzdHJpbmdGaWVsZDogcSA9PiBxLnN0cmluZy5tYXAodmFsID0+IEZpZWxkcy5saXRlcmFsKHZhbCkpLmRlc2MoInN0cmluZyIpLA0KCSAgICBib29sRmllbGQ6IHEgPT4gcS5ib29sLm1hcCh2YWwgPT4gRmllbGRzLmxpdGVyYWwodmFsKSkuZGVzYygiYm9vbGVhbiIpLA0KCSAgICBkYXRlRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoImRhdGUoIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5kYXRlUGx1cywgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKSIpLCAocHJlZml4LCBfMSwgZGF0ZSwgXzIsIHBvc3RmaXgpID0+IEZpZWxkcy5saXRlcmFsKGRhdGUpKS5kZXNjKCJkYXRlIiksDQoJICAgIGR1cmF0aW9uRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoImR1cigiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChwcmVmaXgsIF8xLCBkdXIsIF8yLCBwb3N0Zml4KSA9PiBGaWVsZHMubGl0ZXJhbChkdXIpKS5kZXNjKCJkdXJhdGlvbiIpLA0KCSAgICBudWxsRmllbGQ6IHEgPT4gcS5yYXdOdWxsLm1hcChfID0+IEZpZWxkcy5OVUxMKSwNCgkgICAgbGlua0ZpZWxkOiBxID0+IHEubGluay5tYXAoZiA9PiBGaWVsZHMubGl0ZXJhbChmKSksDQoJICAgIGxpc3RGaWVsZDogcSA9PiBxLmZpZWxkDQoJICAgICAgICAuc2VwQnkocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkpDQoJICAgICAgICAud3JhcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiWyIpLnNraXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLnRoZW4ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIl0iKSkpDQoJICAgICAgICAubWFwKGwgPT4gRmllbGRzLmxpc3QobCkpDQoJICAgICAgICAuZGVzYygibGlzdCAoJ1sxLCAyLCAzXScpIiksDQoJICAgIG9iamVjdEZpZWxkOiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHEuaWRlbnRpZmllci5vcihxLnN0cmluZyksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCI6IikudHJpbShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLCBxLmZpZWxkLCAobmFtZSwgX3NlcCwgdmFsdWUpID0+IHsNCgkgICAgICAgIHJldHVybiB7IG5hbWUsIHZhbHVlIH07DQoJICAgIH0pDQoJICAgICAgICAuc2VwQnkocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkpDQoJICAgICAgICAud3JhcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygieyIpLnNraXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLnRoZW4ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIn0iKSkpDQoJICAgICAgICAubWFwKHZhbHMgPT4gew0KCSAgICAgICAgbGV0IHJlcyA9IHt9Ow0KCSAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgdmFscykNCgkgICAgICAgICAgICByZXNbZW50cnkubmFtZV0gPSBlbnRyeS52YWx1ZTsNCgkgICAgICAgIHJldHVybiBGaWVsZHMub2JqZWN0KHJlcyk7DQoJICAgIH0pDQoJICAgICAgICAuZGVzYygib2JqZWN0ICgneyBhOiAxLCBiOiAyIH0nKSIpLA0KCSAgICBhdG9tSW5saW5lRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocS5kYXRlLCBxLmR1cmF0aW9uLm1hcChkID0+IG5vcm1hbGl6ZUR1cmF0aW9uKGQpKSwgcS5zdHJpbmcsIHEudGFnLCBxLmVtYmVkTGluaywgcS5ib29sLCBxLm51bWJlciwgcS5yYXdOdWxsKSwNCgkgICAgaW5saW5lRmllbGRMaXN0OiBxID0+IHEuYXRvbUlubGluZUZpZWxkLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpLmxvb2thaGVhZChxLmF0b21JbmxpbmVGaWVsZCkpLA0KCSAgICBpbmxpbmVGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChxLmF0b21JbmxpbmVGaWVsZCwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuaW5saW5lRmllbGRMaXN0LCAoZiwgX3MsIGwpID0+IFtmXS5jb25jYXQobCkpLCBxLmF0b21JbmxpbmVGaWVsZCksDQoJICAgIGF0b21GaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLmFsdCgNCgkgICAgLy8gUGxhY2UgZW1iZWQgbGlua3MgYWJvdmUgbmVnYXRlZCBmaWVsZHMgYXMgdGhleSBhcmUgdGhlIHNwZWNpYWwgcGFyc2VyIGNhc2UgJyFbW3RoaW5nXV0nIGFuZCBhcmUgZ2VuZXJhbGx5IHVuYW1iaWdpb3VzLg0KCSAgICBxLmVtYmVkTGluay5tYXAobCA9PiBGaWVsZHMubGl0ZXJhbChsKSksIHEubmVnYXRlZEZpZWxkLCBxLmxpbmtGaWVsZCwgcS5saXN0RmllbGQsIHEub2JqZWN0RmllbGQsIHEubGFtYmRhRmllbGQsIHEucGFyZW5zRmllbGQsIHEuYm9vbEZpZWxkLCBxLm51bWJlckZpZWxkLCBxLnN0cmluZ0ZpZWxkLCBxLmRhdGVGaWVsZCwgcS5kdXJhdGlvbkZpZWxkLCBxLm51bGxGaWVsZCwgcS52YXJpYWJsZUZpZWxkKSwNCgkgICAgaW5kZXhGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChxLmF0b21GaWVsZCwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocS5kb3RQb3N0Zml4LCBxLmluZGV4UG9zdGZpeCwgcS5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwgKG9iaiwgcG9zdGZpeGVzKSA9PiB7DQoJICAgICAgICBsZXQgcmVzdWx0ID0gb2JqOw0KCSAgICAgICAgZm9yIChsZXQgcG9zdCBvZiBwb3N0Zml4ZXMpIHsNCgkgICAgICAgICAgICBzd2l0Y2ggKHBvc3QudHlwZSkgew0KCSAgICAgICAgICAgICAgICBjYXNlICJkb3QiOg0KCSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRmllbGRzLmluZGV4KHJlc3VsdCwgRmllbGRzLmxpdGVyYWwocG9zdC5maWVsZCkpOw0KCSAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoJICAgICAgICAgICAgICAgIGNhc2UgImluZGV4IjoNCgkgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5pbmRleChyZXN1bHQsIHBvc3QuZmllbGQpOw0KCSAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoJICAgICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoNCgkgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZpZWxkcy5mdW5jKHJlc3VsdCwgcG9zdC5maWVsZHMpOw0KCSAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgfQ0KCSAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgfSksDQoJICAgIG5lZ2F0ZWRGaWVsZDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiISIpLCBxLmluZGV4RmllbGQsIChfLCBmaWVsZCkgPT4gRmllbGRzLm5lZ2F0ZShmaWVsZCkpLmRlc2MoIm5lZ2F0ZWQgZmllbGQiKSwNCgkgICAgcGFyZW5zRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIigiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmZpZWxkLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UsIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIpIiksIChfMSwgXzIsIGZpZWxkLCBfMywgXzQpID0+IGZpZWxkKSwNCgkgICAgbGFtYmRhRmllbGQ6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocS5pZGVudGlmaWVyDQoJICAgICAgICAuc2VwQnkocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIiwiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkpDQoJICAgICAgICAud3JhcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKCIpLnRyaW0ocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIikiKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSkpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiPT4iKS50cmltKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSksIHEuZmllbGQsIChpZGVudCwgX2lnbm9yZSwgdmFsdWUpID0+IHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJsYW1iZGEiLCBhcmd1bWVudHM6IGlkZW50LCB2YWx1ZSB9Ow0KCSAgICB9KSwNCgkgICAgZG90UG9zdGZpeDogcSA9PiBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnNlcU1hcChwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiLiIpLCBxLmlkZW50aWZpZXIsIChfLCBmaWVsZCkgPT4gew0KCSAgICAgICAgcmV0dXJuIHsgdHlwZTogImRvdCIsIGZpZWxkOiBmaWVsZCB9Ow0KCSAgICB9KSwNCgkgICAgaW5kZXhQb3N0Zml4OiBxID0+IHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc2VxTWFwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCJbIiksIHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMub3B0V2hpdGVzcGFjZSwgcS5maWVsZCwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiXSIpLCAoXywgXzIsIGZpZWxkLCBfMywgXzQpID0+IHsNCgkgICAgICAgIHJldHVybiB7IHR5cGU6ICJpbmRleCIsIGZpZWxkIH07DQoJICAgIH0pLA0KCSAgICBmdW5jdGlvblBvc3RmaXg6IHEgPT4gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zZXFNYXAocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5zdHJpbmcoIigiKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBxLmZpZWxkLnNlcEJ5KHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMuc3RyaW5nKCIsIikudHJpbShwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLm9wdFdoaXRlc3BhY2UpKSwgcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5vcHRXaGl0ZXNwYWNlLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnN0cmluZygiKSIpLCAoXywgXzEsIGZpZWxkcywgXzIsIF8zKSA9PiB7DQoJICAgICAgICByZXR1cm4geyB0eXBlOiAiZnVuY3Rpb24iLCBmaWVsZHMgfTsNCgkgICAgfSksDQoJICAgIC8vIFRoZSBwcmVjZWRlbmNlIGhpZXJhcmNoeSBvZiBvcGVyYXRvcnMgLSBtdWx0aXBseS9kaXZpZGUsIGFkZC9zdWJ0cmFjdCwgY29tcGFyZSwgYW5kIHRoZW4gYm9vbGVhbiBvcGVyYXRpb25zLg0KCSAgICBiaW5hcnlNdWxEaXZGaWVsZDogcSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5pbmRleEZpZWxkLCBxLmJpbmFyeU11bERpdiwgRmllbGRzLmJpbmFyeU9wKSwNCgkgICAgYmluYXJ5UGx1c01pbnVzRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5TXVsRGl2RmllbGQsIHEuYmluYXJ5UGx1c01pbnVzLCBGaWVsZHMuYmluYXJ5T3ApLA0KCSAgICBiaW5hcnlDb21wYXJlRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5UGx1c01pbnVzRmllbGQsIHEuYmluYXJ5Q29tcGFyZU9wLCBGaWVsZHMuYmluYXJ5T3ApLA0KCSAgICBiaW5hcnlCb29sZWFuRmllbGQ6IHEgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5Q29tcGFyZUZpZWxkLCBxLmJpbmFyeUJvb2xlYW5PcCwgRmllbGRzLmJpbmFyeU9wKSwNCgkgICAgYmluYXJ5T3BGaWVsZDogcSA9PiBxLmJpbmFyeUJvb2xlYW5GaWVsZCwNCgkgICAgZmllbGQ6IHEgPT4gcS5iaW5hcnlPcEZpZWxkLA0KCX0pOwoKCS8qKiBQYXJzZSBpbmxpbmUgZmllbGRzIGFuZCBvdGhlciBlbWJlZGRlZCBtZXRhZGF0YSBpbiBhIGxpbmUuICovDQoJLyoqIFRoZSB3cmFwcGVyIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWZpbmUgYW4gaW5saW5lIGZpZWxkLiAqLw0KCWNvbnN0IElOTElORV9GSUVMRF9XUkFQUEVSUyA9IE9iamVjdC5mcmVlemUoew0KCSAgICAiWyI6ICJdIiwNCgkgICAgIigiOiAiKSIsDQoJfSk7DQoJLyoqDQoJICogRmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgYnJhY2tldCB0aGF0IG9jY3VycyBhdCBvciBhZnRlciBgc3RhcnRgLCByZXNwZWN0aW5nIG5lc3RpbmcgYW5kIGVzY2FwZXMuIElmIGZvdW5kLA0KCSAqIHJldHVybnMgdGhlIHZhbHVlIGNvbnRhaW5lZCB3aXRoaW4gYW5kIHRoZSBzdHJpbmcgaW5kZXggYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgdmFsdWUuDQoJICovDQoJZnVuY3Rpb24gZmluZENsb3NpbmcobGluZSwgc3RhcnQsIG9wZW4sIGNsb3NlKSB7DQoJICAgIGxldCBuZXN0aW5nID0gMDsNCgkgICAgbGV0IGVzY2FwZWQgPSBmYWxzZTsNCgkgICAgZm9yIChsZXQgaW5kZXggPSBzdGFydDsgaW5kZXggPCBsaW5lLmxlbmd0aDsgaW5kZXgrKykgew0KCSAgICAgICAgbGV0IGNoYXIgPSBsaW5lLmNoYXJBdChpbmRleCk7DQoJICAgICAgICAvLyBBbGxvd3MgZm9yIGRvdWJsZSBlc2NhcGVzIGxpa2UgJ1xcJyB0byBiZSByZW5kZXJlZCBub3JtYWxseS4NCgkgICAgICAgIGlmIChjaGFyID09ICJcXCIpIHsNCgkgICAgICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWQ7DQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICB9DQoJICAgICAgICAvLyBJZiBlc2NhcGVkLCBpZ25vcmUgdGhlIG5leHQgY2hhcmFjdGVyIGZvciBjb21wdXRpbmcgbmVzdGluZywgcmVnYXJkbGVzcyBvZiB3aGF0IGl0IGlzLg0KCSAgICAgICAgaWYgKGVzY2FwZWQpIHsNCgkgICAgICAgICAgICBlc2NhcGVkID0gZmFsc2U7DQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICB9DQoJICAgICAgICBpZiAoY2hhciA9PSBvcGVuKQ0KCSAgICAgICAgICAgIG5lc3RpbmcrKzsNCgkgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gY2xvc2UpDQoJICAgICAgICAgICAgbmVzdGluZy0tOw0KCSAgICAgICAgLy8gT25seSBvY2N1cnMgaWYgd2UgYXJlIG9uIGEgY2xvc2UgY2hhcmFjdGVyIGFuZCB0cmhlcmUgaXMgbm8gbW9yZSBuZXN0aW5nLg0KCSAgICAgICAgaWYgKG5lc3RpbmcgPCAwKQ0KCSAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBsaW5lLnN1YnN0cmluZyhzdGFydCwgaW5kZXgpLnRyaW0oKSwgZW5kSW5kZXg6IGluZGV4ICsgMSB9Ow0KCSAgICAgICAgZXNjYXBlZCA9IGZhbHNlOw0KCSAgICB9DQoJICAgIHJldHVybiB1bmRlZmluZWQ7DQoJfQ0KCS8qKiBGaW5kIHRoZSAnOjonIHNlcGFyYXRvciBpbiBhbiBpbmxpbmUgZmllbGQuICovDQoJZnVuY3Rpb24gZmluZFNlcGFyYXRvcihsaW5lLCBzdGFydCkgew0KCSAgICBsZXQgc2VwID0gbGluZS5pbmRleE9mKCI6OiIsIHN0YXJ0KTsNCgkgICAgaWYgKHNlcCA8IDApDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICByZXR1cm4geyBrZXk6IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBzZXApLnRyaW0oKSwgdmFsdWVJbmRleDogc2VwICsgMiB9Ow0KCX0NCgkvKiogVHJ5IHRvIGNvbXBsZXRlbHkgcGFyc2UgYW4gaW5saW5lIGZpZWxkIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4gQXNzdWVtcyBgc3RhcnRgIGlzIG9uIGEgd3JhcHBpbmcgY2hhcmFjdGVyLiAqLw0KCWZ1bmN0aW9uIGZpbmRTcGVjaWZpY0lubGluZUZpZWxkKGxpbmUsIHN0YXJ0KSB7DQoJICAgIGxldCBvcGVuID0gbGluZS5jaGFyQXQoc3RhcnQpOw0KCSAgICBsZXQga2V5ID0gZmluZFNlcGFyYXRvcihsaW5lLCBzdGFydCArIDEpOw0KCSAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICAvLyBGYWlsIHRoZSBtYXRjaCBpZiB3ZSBmaW5kIGFueSBzZXBhcmF0b3IgY2hhcmFjdGVycyAobm90IGFsbG93ZWQgaW4ga2V5cykuDQoJICAgIGZvciAobGV0IHNlcCBvZiBPYmplY3Qua2V5cyhJTkxJTkVfRklFTERfV1JBUFBFUlMpLmNvbmNhdChPYmplY3QudmFsdWVzKElOTElORV9GSUVMRF9XUkFQUEVSUykpKSB7DQoJICAgICAgICBpZiAoa2V5LmtleS5pbmNsdWRlcyhzZXApKQ0KCSAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIH0NCgkgICAgbGV0IHZhbHVlID0gZmluZENsb3NpbmcobGluZSwga2V5LnZhbHVlSW5kZXgsIG9wZW4sIElOTElORV9GSUVMRF9XUkFQUEVSU1tvcGVuXSk7DQoJICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQ0KCSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgkgICAgcmV0dXJuIHsNCgkgICAgICAgIGtleToga2V5LmtleSwNCgkgICAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSwNCgkgICAgICAgIHN0YXJ0OiBzdGFydCwNCgkgICAgICAgIHN0YXJ0VmFsdWU6IGtleS52YWx1ZUluZGV4LA0KCSAgICAgICAgZW5kOiB2YWx1ZS5lbmRJbmRleCwNCgkgICAgICAgIHdyYXBwaW5nOiBvcGVuLA0KCSAgICB9Ow0KCX0NCgkvKiogUGFyc2UgYSB0ZXh0dWFsIGlubGluZSBmaWVsZCB2YWx1ZSBpbnRvIHNvbWV0aGluZyB3ZSBjYW4gd29yayB3aXRoLiAqLw0KCWZ1bmN0aW9uIHBhcnNlSW5saW5lVmFsdWUodmFsdWUpIHsNCgkgICAgLy8gRW1wdHkgaW5saW5lIHZhbHVlcyAoaS5lLiwgbm8gdGV4dCkgc2hvdWxkIG1hcCB0byBudWxsIHRvIG1hdGNoIGxvbmctdGVybSBEYXRhdmlldyBzZW1hbnRpY3MuDQoJICAgIC8vIE51bGwgaXMgYWxzbyBhIG1vcmUgdW5pdmVyc2FsIHR5cGUgdG8gZGVhbCB3aXRoIHRoYW4gc3RyaW5ncywgc2luY2UgYWxsIGZ1bmN0aW9ucyBhY2NlcHQgbnVsbHMuDQoJICAgIGlmICh2YWx1ZS50cmltKCkgPT0gIiIpDQoJICAgICAgICByZXR1cm4gbnVsbDsNCgkgICAgLy8gVGhlIHN0cmlwcGVkIGxpdGVyYWwgZmllbGQgcGFyc2VyIHVuZGVyc3RhbmRzIGFsbCBvZiB0aGUgbm9uLWFycmF5L25vbi1vYmplY3QgZmllbGRzIGFuZCBjYW4gcGFyc2UgdGhlbSBmb3IgdXMuDQoJICAgIC8vIElubGluZSBmaWVsZCBvYmplY3RzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZDsgaW5saW5lIGFycmF5IG9iamVjdHMgaGF2ZSB0byBiZSBoYW5kbGVkIGJ5IHRoZSBwYXJzZXINCgkgICAgLy8gc2VwYXJhdGVseS4NCgkgICAgbGV0IGlubGluZSA9IEVYUFJFU1NJT04uaW5saW5lRmllbGQucGFyc2UodmFsdWUpOw0KCSAgICBpZiAoaW5saW5lLnN0YXR1cykNCgkgICAgICAgIHJldHVybiBpbmxpbmUudmFsdWU7DQoJICAgIGVsc2UNCgkgICAgICAgIHJldHVybiB2YWx1ZTsNCgl9DQoJLyoqIEV4dHJhY3RzIGlubGluZSBmaWVsZHMgb2YgdGhlIGZvcm0gJ1trZXk6OiB2YWx1ZV0nIGZyb20gYSBsaW5lIG9mIHRleHQuIFRoaXMgaXMgZG9uZSBpbiBhIHJlbGF0aXZlbHkNCgkgKiAicm9idXN0IiB3YXkgdG8gYXZvaWQgZmFpbGluZyBkdWUgdG8gYmFkIG5lc3Rpbmcgb3Igb3RoZXIgaW50ZXJmZXJpbmcgTWFya2Rvd24gc3ltYm9sczoNCgkgKg0KCSAqIC0gTG9vayBmb3IgYW55IHdyYXBwZXJzICgnWycgYW5kICcoJykgaW4gdGhlIGxpbmUsIHRyeWluZyB0byBwYXJzZSB3aGF0ZXZlciBjb21lcyBhZnRlciBpdCBhcyBhbiBpbmxpbmUga2V5OjouDQoJICogLSBJZiBzdWNjZXNzZnVsLCBzY2FuIHVudGlsIHlvdSBmaW5kIGEgbWF0Y2hpbmcgZW5kIGJyYWNrZXQsIGFuZCBwYXJzZSB3aGF0ZXZlciByZW1haW5zIGFzIGFuIGlubGluZSB2YWx1ZS4NCgkgKi8NCglmdW5jdGlvbiBleHRyYWN0SW5saW5lRmllbGRzKGxpbmUsIGluY2x1ZGVUYXNrRmllbGRzID0gZmFsc2UpIHsNCgkgICAgbGV0IGZpZWxkcyA9IFtdOw0KCSAgICBmb3IgKGxldCB3cmFwcGVyIG9mIE9iamVjdC5rZXlzKElOTElORV9GSUVMRF9XUkFQUEVSUykpIHsNCgkgICAgICAgIGxldCBmb3VuZEluZGV4ID0gbGluZS5pbmRleE9mKHdyYXBwZXIpOw0KCSAgICAgICAgd2hpbGUgKGZvdW5kSW5kZXggPj0gMCkgew0KCSAgICAgICAgICAgIGxldCBwYXJzZWRGaWVsZCA9IGZpbmRTcGVjaWZpY0lubGluZUZpZWxkKGxpbmUsIGZvdW5kSW5kZXgpOw0KCSAgICAgICAgICAgIGlmICghcGFyc2VkRmllbGQpIHsNCgkgICAgICAgICAgICAgICAgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyLCBmb3VuZEluZGV4ICsgMSk7DQoJICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgICAgIH0NCgkgICAgICAgICAgICBmaWVsZHMucHVzaChwYXJzZWRGaWVsZCk7DQoJICAgICAgICAgICAgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyLCBwYXJzZWRGaWVsZC5lbmQpOw0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIGlmIChpbmNsdWRlVGFza0ZpZWxkcykNCgkgICAgICAgIGZpZWxkcyA9IGZpZWxkcy5jb25jYXQoZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmUpKTsNCgkgICAgZmllbGRzLnNvcnQoKGEsIGIpID0+IGEuc3RhcnQgLSBiLnN0YXJ0KTsNCgkgICAgbGV0IGZpbHRlcmVkRmllbGRzID0gW107DQoJICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7DQoJICAgICAgICBpZiAoaSA9PSAwIHx8IGZpbHRlcmVkRmllbGRzW2ZpbHRlcmVkRmllbGRzLmxlbmd0aCAtIDFdLmVuZCA8IGZpZWxkc1tpXS5zdGFydCkgew0KCSAgICAgICAgICAgIGZpbHRlcmVkRmllbGRzLnB1c2goZmllbGRzW2ldKTsNCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICByZXR1cm4gZmlsdGVyZWRGaWVsZHM7DQoJfQ0KCS8qKiBWYWxpZGF0ZXMgdGhhdCBhIHJhdyBmaWVsZCBuYW1lIGhhcyBhIHZhbGlkIGZvcm0uICovDQoJY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJUID0gcGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5hbHQocGFyc2ltbW9uX3VtZF9taW4uZXhwb3J0cy5yZWdleHAobmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksICJ1IikpLCBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvWzAtOVxwe0xldHRlcn1cd1xzXy8tXSsvdSkpDQoJICAgIC5tYW55KCkNCgkgICAgLm1hcChwYXJ0cyA9PiBwYXJ0cy5qb2luKCIiKSk7DQoJY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJTRVIgPSBwYXJzaW1tb25fdW1kX21pbi5leHBvcnRzLnJlZ2V4cCgvW14wLTlcd1xwe0xldHRlcn1dKi91KQ0KCSAgICAudGhlbihGVUxMX0xJTkVfS0VZX1BBUlQpDQoJICAgIC5za2lwKHBhcnNpbW1vbl91bWRfbWluLmV4cG9ydHMucmVnZXhwKC9bX1wqfmBdKi91KSk7DQoJLyoqIEF0dGVtcHQgdG8gZXh0cmFjdCBhIGZ1bGwtbGluZSBmaWVsZCAoS2V5OjogVmFsdWUgY29uc3VtaW5nIHRoZSBlbnRpcmUgY29udGVudCBsaW5lKS4gKi8NCglmdW5jdGlvbiBleHRyYWN0RnVsbExpbmVGaWVsZCh0ZXh0KSB7DQoJICAgIGxldCBzZXAgPSBmaW5kU2VwYXJhdG9yKHRleHQsIDApOw0KCSAgICBpZiAoIXNlcCkNCgkgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIC8vIFdlIG5lZWQgdG8gcG9zdC1wcm9jZXNzIHRoZSBrZXkgdG8gZHJvcCB1bm5lY2Vzc2FyeSBvcGVuaW5nIGFubm90YXRpb25zIGFzIHdlbGwgYXMNCgkgICAgLy8gZHJvcCBzdXJyb3VuZGluZyBNYXJrZG93bi4NCgkgICAgbGV0IHJlYWxLZXkgPSBGVUxMX0xJTkVfS0VZX1BBUlNFUi5wYXJzZShzZXAua2V5KTsNCgkgICAgaWYgKCFyZWFsS2V5LnN0YXR1cykNCgkgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgIHJldHVybiB7DQoJICAgICAgICBrZXk6IHJlYWxLZXkudmFsdWUsDQoJICAgICAgICB2YWx1ZTogdGV4dC5zdWJzdHJpbmcoc2VwLnZhbHVlSW5kZXgpLnRyaW0oKSwNCgkgICAgICAgIHN0YXJ0OiAwLA0KCSAgICAgICAgc3RhcnRWYWx1ZTogc2VwLnZhbHVlSW5kZXgsDQoJICAgICAgICBlbmQ6IHRleHQubGVuZ3RoLA0KCSAgICB9Ow0KCX0NCgljb25zdCBDUkVBVEVEX0RBVEVfUkVHRVggPSAvXHV7Mjc5NX1ccyooXGR7NH0tXGR7Mn0tXGR7Mn0pL3U7DQoJY29uc3QgRFVFX0RBVEVfUkVHRVggPSAvKD86XHV7MUY0QzV9fFx1ezFGNEM2fXxcdXsxRjVEM31cdXtGRTBGfT8pXHMqKFxkezR9LVxkezJ9LVxkezJ9KS91Ow0KCWNvbnN0IERPTkVfREFURV9SRUdFWCA9IC9cdXsyNzA1fVxzKihcZHs0fS1cZHsyfS1cZHsyfSkvdTsNCgljb25zdCBTQ0hFRFVMRURfREFURV9SRUdFWCA9IC9bXHV7MjNGM31cdXsyMzFCfV1ccyooXGR7NH0tXGR7Mn0tXGR7Mn0pL3U7DQoJY29uc3QgU1RBUlRfREFURV9SRUdFWCA9IC9cdXsxRjZFQn1ccyooXGR7NH0tXGR7Mn0tXGR7Mn0pL3U7DQoJY29uc3QgRU1PSklfUkVHRVhFUyA9IFsNCgkgICAgeyByZWdleDogQ1JFQVRFRF9EQVRFX1JFR0VYLCBrZXk6ICJjcmVhdGVkIiB9LA0KCSAgICB7IHJlZ2V4OiBTVEFSVF9EQVRFX1JFR0VYLCBrZXk6ICJzdGFydCIgfSwNCgkgICAgeyByZWdleDogU0NIRURVTEVEX0RBVEVfUkVHRVgsIGtleTogInNjaGVkdWxlZCIgfSwNCgkgICAgeyByZWdleDogRFVFX0RBVEVfUkVHRVgsIGtleTogImR1ZSIgfSwNCgkgICAgeyByZWdleDogRE9ORV9EQVRFX1JFR0VYLCBrZXk6ICJjb21wbGV0aW9uIiB9LA0KCV07DQoJLyoqIFBhcnNlIHNwZWNpYWwgY29tcGxldGVkL2R1ZS9kb25lIHRhc2sgZmllbGRzIHdoaWNoIGFyZSBtYXJrZWQgdmlhIGVtb2ppLiAqLw0KCWZ1bmN0aW9uIGV4dHJhY3RTcGVjaWFsVGFza0ZpZWxkcyhsaW5lKSB7DQoJICAgIGxldCByZXN1bHRzID0gW107DQoJICAgIGZvciAobGV0IHsgcmVnZXgsIGtleSB9IG9mIEVNT0pJX1JFR0VYRVMpIHsNCgkgICAgICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhsaW5lKTsNCgkgICAgICAgIGlmICghbWF0Y2gpDQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICByZXN1bHRzLnB1c2goew0KCSAgICAgICAgICAgIGtleSwNCgkgICAgICAgICAgICB2YWx1ZTogbWF0Y2hbMV0sDQoJICAgICAgICAgICAgc3RhcnQ6IG1hdGNoLmluZGV4LA0KCSAgICAgICAgICAgIHN0YXJ0VmFsdWU6IG1hdGNoLmluZGV4ICsgMSwNCgkgICAgICAgICAgICBlbmQ6IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoLA0KCSAgICAgICAgICAgIHdyYXBwaW5nOiAiZW1vamktc2hvcnRoYW5kIiwNCgkgICAgICAgIH0pOw0KCSAgICB9DQoJICAgIHJldHVybiByZXN1bHRzOw0KCX0KCgkvKiogQWxsIGV4dHJhY3RlZCBtYXJrZG93biBmaWxlIG1ldGFkYXRhIG9idGFpbmVkIGZyb20gYSBmaWxlLiAqLw0KCWNsYXNzIFBhZ2VNZXRhZGF0YSB7DQoJICAgIGNvbnN0cnVjdG9yKHBhdGgsIGluaXQpIHsNCgkgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7DQoJICAgICAgICB0aGlzLmZpZWxkcyA9IG5ldyBNYXAoKTsNCgkgICAgICAgIHRoaXMuZnJvbnRtYXR0ZXIgPSB7fTsNCgkgICAgICAgIHRoaXMudGFncyA9IG5ldyBTZXQoKTsNCgkgICAgICAgIHRoaXMuYWxpYXNlcyA9IG5ldyBTZXQoKTsNCgkgICAgICAgIHRoaXMubGlua3MgPSBbXTsNCgkgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7DQoJICAgICAgICB0aGlzLmxpc3RzID0gKHRoaXMubGlzdHMgfHwgW10pLm1hcChsID0+IG5ldyBMaXN0SXRlbShsKSk7DQoJICAgIH0NCgkgICAgLyoqIENhbm9uaWNhbGl6ZSByYXcgbGlua3MgYW5kIG90aGVyIGRhdGEgaW4gcGFydGlhbCBkYXRhIHdpdGggbm9ybWFsaXplcnMsIHJldHVybmluZyBhIGNvbXBsZXRlZCBvYmplY3QuICovDQoJICAgIHN0YXRpYyBjYW5vbmljYWxpemUoZGF0YSwgbGlua05vcm1hbGl6ZXIpIHsNCgkgICAgICAgIC8vIE11dGF0ZSB0aGUgZGF0YSBmb3Igbm93LCB3aGljaCBpcyBwcm9iYWJseSBhIGJhZCBpZGVhIGJ1dC4uLiBhbGwgd2VsbC4NCgkgICAgICAgIGlmIChkYXRhLmZyb250bWF0dGVyKSB7DQoJICAgICAgICAgICAgZGF0YS5mcm9udG1hdHRlciA9IFZhbHVlcy5tYXBMZWF2ZXMoZGF0YS5mcm9udG1hdHRlciwgdCA9PiBWYWx1ZXMuaXNMaW5rKHQpID8gbGlua05vcm1hbGl6ZXIodCkgOiB0KTsNCgkgICAgICAgIH0NCgkgICAgICAgIGlmIChkYXRhLmZpZWxkcykgew0KCSAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBkYXRhLmZpZWxkcy5lbnRyaWVzKCkpIHsNCgkgICAgICAgICAgICAgICAgZGF0YS5maWVsZHMuc2V0KGtleSwgVmFsdWVzLm1hcExlYXZlcyh2YWx1ZSwgdCA9PiAoVmFsdWVzLmlzTGluayh0KSA/IGxpbmtOb3JtYWxpemVyKHQpIDogdCkpKTsNCgkgICAgICAgICAgICB9DQoJICAgICAgICB9DQoJICAgICAgICBpZiAoZGF0YS5saXN0cykgew0KCSAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGF0YS5saXN0cykgew0KCSAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgaXRlbS5maWVsZHMuZW50cmllcygpKSB7DQoJICAgICAgICAgICAgICAgICAgICBpdGVtLmZpZWxkcy5zZXQoa2V5LCB2YWx1ZS5tYXAoeCA9PiBWYWx1ZXMubWFwTGVhdmVzKHgsIHQgPT4gKFZhbHVlcy5pc0xpbmsodCkgPyBsaW5rTm9ybWFsaXplcih0KSA6IHQpKSkpOw0KCSAgICAgICAgICAgICAgICB9DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgfQ0KCSAgICAgICAgaWYgKGRhdGEubGlua3MpIHsNCgkgICAgICAgICAgICBkYXRhLmxpbmtzID0gZGF0YS5saW5rcy5tYXAobCA9PiBsaW5rTm9ybWFsaXplcihsKSk7DQoJICAgICAgICB9DQoJICAgICAgICAvLyBUaGlzIGlzIHByZXR0eSB1Z2x5LCBidXQgaXQncyBub3QgcG9zc2libGUgdG8gbm9ybWFsaXplIG9uIHRoZSB3b3JrZXIgdGhyZWFkIHRoYXQgZG9lcyBwYXJzaW5nLg0KCSAgICAgICAgLy8gVGhlIGJlc3Qgd2F5IHRvIGltcHJvdmUgdGhpcyBpcyB0byBpbnN0ZWFkIGp1c3QgY2Fub25pY2FsaXplIHRoZSBlbnRpcmUgZGF0YSBvYmplY3Q7IEkgY2FuIHRyeSB0bw0KCSAgICAgICAgLy8gb3B0aW1pemUgYFZhbHVlcy5tYXBMZWF2ZXNgIHRvIG9ubHkgbXV0YXRlIGlmIGl0IGFjdHVhbGx5IGNoYW5nZXMgdGhpbmdzLg0KCSAgICAgICAgcmV0dXJuIG5ldyBQYWdlTWV0YWRhdGEoZGF0YS5wYXRoLCBkYXRhKTsNCgkgICAgfQ0KCSAgICAvKiogVGhlIG5hbWUgKGJhc2VkIG9uIHBhdGgpIG9mIHRoaXMgZmlsZS4gKi8NCgkgICAgbmFtZSgpIHsNCgkgICAgICAgIHJldHVybiBnZXRGaWxlVGl0bGUodGhpcy5wYXRoKTsNCgkgICAgfQ0KCSAgICAvKiogVGhlIGNvbnRhaW5pbmcgZm9sZGVyIChiYXNlZCBvbiBwYXRoKSBvZiB0aGlzIGZpbGUuICovDQoJICAgIGZvbGRlcigpIHsNCgkgICAgICAgIHJldHVybiBnZXRQYXJlbnRGb2xkZXIodGhpcy5wYXRoKTsNCgkgICAgfQ0KCSAgICAvKiogVGhlIGV4dGVuc2lvbiBvZiB0aGlzIGZpbGUgKGxpa2VseSAnbWQnKS4gKi8NCgkgICAgZXh0ZW5zaW9uKCkgew0KCSAgICAgICAgcmV0dXJuIGdldEV4dGVuc2lvbih0aGlzLnBhdGgpOw0KCSAgICB9DQoJICAgIC8qKiBSZXR1cm4gYSBzZXQgb2YgdGFncyBBTkQgYWxsIG9mIHRoZWlyIHBhcmVudCB0YWdzIChzbyAjaGVsbG8veWVzIHdvdWxkIGJlY29tZSAjaGVsbG8sICNoZWxsby95ZXMpLiAqLw0KCSAgICBmdWxsVGFncygpIHsNCgkgICAgICAgIGxldCByZXN1bHQgPSBuZXcgU2V0KCk7DQoJICAgICAgICBmb3IgKGxldCB0YWcgb2YgdGhpcy50YWdzKSB7DQoJICAgICAgICAgICAgZm9yIChsZXQgc3VidGFnIG9mIGV4dHJhY3RTdWJ0YWdzKHRhZykpDQoJICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc3VidGFnKTsNCgkgICAgICAgIH0NCgkgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgIH0NCgkgICAgLyoqIENvbnZlcnQgYWxsIGxpbmtzIGluIHRoaXMgZmlsZSB0byBmaWxlIGxpbmtzLiAqLw0KCSAgICBmaWxlTGlua3MoKSB7DQoJICAgICAgICBsZXQgZGlzdGluY3RQYXRocyA9IG5ldyBTZXQodGhpcy5saW5rcy5tYXAobCA9PiBsLnBhdGgpKTsNCgkgICAgICAgIHJldHVybiBBcnJheS5mcm9tKGRpc3RpbmN0UGF0aHMpLm1hcChsID0+IExpbmsuZmlsZShsKSk7DQoJICAgIH0NCgkgICAgLyoqIE1hcCB0aGlzIG1ldGFkYXRhIHRvIGEgZnVsbCBvYmplY3Q7IHVzZXMgdGhlIGluZGV4IGZvciBhZGRpdGlvbmFsIGRhdGEgbG9va3Vwcy4gICovDQoJICAgIHNlcmlhbGl6ZShpbmRleCwgY2FjaGUpIHsNCgkgICAgICAgIC8vIENvbnZlcnQgbGlzdCBpdGVtcyB2aWEgdGhlIGNhbm9uaWNhbGl6YXRpb24gY2FjaGUuDQoJICAgICAgICBsZXQgcmVhbENhY2hlID0gY2FjaGUgIT09IG51bGwgJiYgY2FjaGUgIT09IHZvaWQgMCA/IGNhY2hlIDogbmV3IExpc3RTZXJpYWxpemF0aW9uQ2FjaGUodGhpcy5saXN0cyk7DQoJICAgICAgICBsZXQgcmVzdWx0ID0gew0KCSAgICAgICAgICAgIGZpbGU6IHsNCgkgICAgICAgICAgICAgICAgcGF0aDogdGhpcy5wYXRoLA0KCSAgICAgICAgICAgICAgICBmb2xkZXI6IHRoaXMuZm9sZGVyKCksDQoJICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSgpLA0KCSAgICAgICAgICAgICAgICBsaW5rOiBMaW5rLmZpbGUodGhpcy5wYXRoKSwNCgkgICAgICAgICAgICAgICAgb3V0bGlua3M6IHRoaXMuZmlsZUxpbmtzKCksDQoJICAgICAgICAgICAgICAgIGlubGlua3M6IEFycmF5LmZyb20oaW5kZXgubGlua3MuZ2V0SW52ZXJzZSh0aGlzLnBhdGgpKS5tYXAobCA9PiBMaW5rLmZpbGUobCkpLA0KCSAgICAgICAgICAgICAgICBldGFnczogQXJyYXkuZnJvbSh0aGlzLnRhZ3MpLA0KCSAgICAgICAgICAgICAgICB0YWdzOiBBcnJheS5mcm9tKHRoaXMuZnVsbFRhZ3MoKSksDQoJICAgICAgICAgICAgICAgIGFsaWFzZXM6IEFycmF5LmZyb20odGhpcy5hbGlhc2VzKSwNCgkgICAgICAgICAgICAgICAgbGlzdHM6IHRoaXMubGlzdHMubWFwKGwgPT4gcmVhbENhY2hlLmdldChsLmxpbmUpKSwNCgkgICAgICAgICAgICAgICAgdGFza3M6IHRoaXMubGlzdHMuZmlsdGVyKGwgPT4gISFsLnRhc2spLm1hcChsID0+IHJlYWxDYWNoZS5nZXQobC5saW5lKSksDQoJICAgICAgICAgICAgICAgIGN0aW1lOiB0aGlzLmN0aW1lLA0KCSAgICAgICAgICAgICAgICBjZGF5OiBzdHJpcFRpbWUodGhpcy5jdGltZSksDQoJICAgICAgICAgICAgICAgIG10aW1lOiB0aGlzLm10aW1lLA0KCSAgICAgICAgICAgICAgICBtZGF5OiBzdHJpcFRpbWUodGhpcy5tdGltZSksDQoJICAgICAgICAgICAgICAgIHNpemU6IHRoaXMuc2l6ZSwNCgkgICAgICAgICAgICAgICAgc3RhcnJlZDogaW5kZXguc3RhcnJlZC5zdGFycmVkKHRoaXMucGF0aCksDQoJICAgICAgICAgICAgICAgIGZyb250bWF0dGVyOiBWYWx1ZXMuZGVlcENvcHkodGhpcy5mcm9udG1hdHRlciksDQoJICAgICAgICAgICAgICAgIGV4dDogdGhpcy5leHRlbnNpb24oKSwNCgkgICAgICAgICAgICB9LA0KCSAgICAgICAgfTsNCgkgICAgICAgIC8vIEFkZCB0aGUgY3VycmVudCBkYXkgaWYgcHJlc2VudC4NCgkgICAgICAgIGlmICh0aGlzLmRheSkNCgkgICAgICAgICAgICByZXN1bHQuZmlsZS5kYXkgPSB0aGlzLmRheTsNCgkgICAgICAgIC8vIFRoZW4gYXBwZW5kIHRoZSBjb21wdXRlZCBmaWVsZHMuDQoJICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5maWVsZHMuZW50cmllcygpKSB7DQoJICAgICAgICAgICAgaWYgKGtleSBpbiByZXN1bHQpDQoJICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBEb24ndCBhbGxvdyBmaWVsZHMgdG8gb3ZlcnJpZGUgZXhpc3Rpbmcga2V5cy4NCgkgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlOw0KCSAgICAgICAgfQ0KCSAgICAgICAgcmV0dXJuIHJlc3VsdDsNCgkgICAgfQ0KCX0NCgkvKiogQSBsaXN0IGl0ZW0gaW5zaWRlIG9mIGEgbGlzdC4gKi8NCgljbGFzcyBMaXN0SXRlbSB7DQoJICAgIGNvbnN0cnVjdG9yKGluaXQpIHsNCgkgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7DQoJICAgICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzIHx8IG5ldyBNYXAoKTsNCgkgICAgICAgIHRoaXMudGFncyA9IHRoaXMudGFncyB8fCBuZXcgU2V0KCk7DQoJICAgICAgICB0aGlzLmNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiB8fCBbXTsNCgkgICAgICAgIHRoaXMubGlua3MgPSB0aGlzLmxpbmtzIHx8IFtdOw0KCSAgICB9DQoJICAgIGlkKCkgew0KCSAgICAgICAgcmV0dXJuIGAke3RoaXMuZmlsZSgpLnBhdGh9LSR7dGhpcy5saW5lfWA7DQoJICAgIH0NCgkgICAgZmlsZSgpIHsNCgkgICAgICAgIHJldHVybiB0aGlzLmxpbmsudG9GaWxlKCk7DQoJICAgIH0NCgkgICAgbWFya2Rvd24oKSB7DQoJICAgICAgICBpZiAodGhpcy50YXNrKQ0KCSAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnN5bWJvbH0gWyR7dGhpcy50YXNrLmNvbXBsZXRlZCA/ICJ4IiA6ICIgIn1dICR7dGhpcy50ZXh0fWA7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuc3ltYm9sfSAke3RoaXMudGV4dH1gOw0KCSAgICB9DQoJICAgIGNyZWF0ZWQoKSB7DQoJICAgICAgICB2YXIgX2EsIF9iLCBfYzsNCgkgICAgICAgIHJldHVybiAoX2MgPSAoKF9iID0gKF9hID0gdGhpcy5maWVsZHMuZ2V0KCJjcmVhdGVkIikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuZmllbGRzLmdldCgiY3RpbWUiKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdGhpcy5maWVsZHMuZ2V0KCJjZGF5IikpKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NbMF07DQoJICAgIH0NCgkgICAgZHVlKCkgew0KCSAgICAgICAgdmFyIF9hLCBfYiwgX2M7DQoJICAgICAgICByZXR1cm4gKF9jID0gKChfYiA9IChfYSA9IHRoaXMuZmllbGRzLmdldCgiZHVlIikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuZmllbGRzLmdldCgiZHVldGltZSIpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0aGlzLmZpZWxkcy5nZXQoImR1ZWRheSIpKSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jWzBdOw0KCSAgICB9DQoJICAgIGNvbXBsZXRlZCgpIHsNCgkgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDsNCgkgICAgICAgIHJldHVybiAoX2QgPSAoKF9jID0gKF9iID0gKF9hID0gdGhpcy5maWVsZHMuZ2V0KCJjb21wbGV0ZWQiKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5maWVsZHMuZ2V0KCJjb21wbGV0aW9uIikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuZmllbGRzLmdldCgiY29tcHRpbWUiKSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogdGhpcy5maWVsZHMuZ2V0KCJjb21wZGF5IikpKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RbMF07DQoJICAgIH0NCgkgICAgc3RhcnQoKSB7DQoJICAgICAgICB2YXIgX2E7DQoJICAgICAgICByZXR1cm4gKF9hID0gdGhpcy5maWVsZHMuZ2V0KCJzdGFydCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF07DQoJICAgIH0NCgkgICAgc2NoZWR1bGVkKCkgew0KCSAgICAgICAgdmFyIF9hOw0KCSAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuZmllbGRzLmdldCgic2NoZWR1bGVkIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVswXTsNCgkgICAgfQ0KCSAgICAvKiogQ3JlYXRlIGFuIEFQSS1mcmllbmRseSBjb3B5IG9mIHRoaXMgbGlzdCBpdGVtLiBEZS1kdXBsaWNhdGlvbiBpcyBkb25lIHZpYSB0aGUgcHJvdmlkZWQgY2FjaGUuICovDQoJICAgIHNlcmlhbGl6ZShjYWNoZSkgew0KCSAgICAgICAgLy8gTWFwIGNoaWxkcmVuIHRvIHRoZWlyIHNlcmlhbGl6ZWQvZGUtZHVwbGljYXRlZCBlcXVpdmFsZW50cyByaWdodCBhd2F5Lg0KCSAgICAgICAgbGV0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5tYXAobCA9PiBjYWNoZS5nZXQobCkpLmZpbHRlcigobCkgPT4gbCAhPT0gdW5kZWZpbmVkKTsNCgkgICAgICAgIGxldCByZXN1bHQgPSB7DQoJICAgICAgICAgICAgc3ltYm9sOiB0aGlzLnN5bWJvbCwNCgkgICAgICAgICAgICBsaW5rOiB0aGlzLmxpbmssDQoJICAgICAgICAgICAgc2VjdGlvbjogdGhpcy5zZWN0aW9uLA0KCSAgICAgICAgICAgIHRleHQ6IHRoaXMudGV4dCwNCgkgICAgICAgICAgICB0YWdzOiBBcnJheS5mcm9tKHRoaXMudGFncyksDQoJICAgICAgICAgICAgbGluZTogdGhpcy5saW5lLA0KCSAgICAgICAgICAgIGxpbmVDb3VudDogdGhpcy5saW5lQ291bnQsDQoJICAgICAgICAgICAgbGlzdDogdGhpcy5saXN0LA0KCSAgICAgICAgICAgIG91dGxpbmtzOiBBcnJheS5mcm9tKHRoaXMubGlua3MpLA0KCSAgICAgICAgICAgIHBhdGg6IHRoaXMubGluay5wYXRoLA0KCSAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbiwNCgkgICAgICAgICAgICB0YXNrOiAhIXRoaXMudGFzaywNCgkgICAgICAgICAgICBhbm5vdGF0ZWQ6IHRoaXMuZmllbGRzLnNpemUgPiAwLA0KCSAgICAgICAgICAgIHBvc2l0aW9uOiBWYWx1ZXMuZGVlcENvcHkodGhpcy5wb3NpdGlvbiksDQoJICAgICAgICAgICAgc3VidGFza3M6IGNoaWxkcmVuLA0KCSAgICAgICAgICAgIHJlYWw6ICEhdGhpcy50YXNrLA0KCSAgICAgICAgICAgIGhlYWRlcjogdGhpcy5zZWN0aW9uLCAvLyBAZGVwcmVjYXRlZCwgdXNlICdpdGVtLnNlY3Rpb24nIGluc3RlYWQuDQoJICAgICAgICB9Ow0KCSAgICAgICAgaWYgKHRoaXMucGFyZW50KQ0KCSAgICAgICAgICAgIHJlc3VsdC5wYXJlbnQgPSB0aGlzLnBhcmVudDsNCgkgICAgICAgIGlmICh0aGlzLmJsb2NrSWQpDQoJICAgICAgICAgICAgcmVzdWx0LmJsb2NrSWQgPSB0aGlzLmJsb2NrSWQ7DQoJICAgICAgICBhZGRGaWVsZHModGhpcy5maWVsZHMsIHJlc3VsdCk7DQoJICAgICAgICBpZiAodGhpcy50YXNrKSB7DQoJICAgICAgICAgICAgcmVzdWx0LnN0YXR1cyA9IHRoaXMudGFzay5zdGF0dXM7DQoJICAgICAgICAgICAgcmVzdWx0LmNoZWNrZWQgPSB0aGlzLnRhc2suY2hlY2tlZDsNCgkgICAgICAgICAgICByZXN1bHQuY29tcGxldGVkID0gdGhpcy50YXNrLmNvbXBsZXRlZDsNCgkgICAgICAgICAgICByZXN1bHQuZnVsbHlDb21wbGV0ZWQgPSB0aGlzLnRhc2suZnVsbHlDb21wbGV0ZWQ7DQoJICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSB0aGlzLmNyZWF0ZWQoKSwgZHVlID0gdGhpcy5kdWUoKSwgY29tcGxldGVkID0gdGhpcy5jb21wbGV0ZWQoKSwgc3RhcnQgPSB0aGlzLnN0YXJ0KCksIHNjaGVkdWxlZCA9IHRoaXMuc2NoZWR1bGVkKCk7DQoJICAgICAgICAgICAgaWYgKGNyZWF0ZWQpDQoJICAgICAgICAgICAgICAgIHJlc3VsdC5jcmVhdGVkID0gVmFsdWVzLmRlZXBDb3B5KGNyZWF0ZWQpOw0KCSAgICAgICAgICAgIGlmIChkdWUpDQoJICAgICAgICAgICAgICAgIHJlc3VsdC5kdWUgPSBWYWx1ZXMuZGVlcENvcHkoZHVlKTsNCgkgICAgICAgICAgICBpZiAoY29tcGxldGVkKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQuY29tcGxldGlvbiA9IFZhbHVlcy5kZWVwQ29weShjb21wbGV0ZWQpOw0KCSAgICAgICAgICAgIGlmIChzdGFydCkNCgkgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXJ0ID0gVmFsdWVzLmRlZXBDb3B5KHN0YXJ0KTsNCgkgICAgICAgICAgICBpZiAoc2NoZWR1bGVkKQ0KCSAgICAgICAgICAgICAgICByZXN1bHQuc2NoZWR1bGVkID0gVmFsdWVzLmRlZXBDb3B5KHNjaGVkdWxlZCk7DQoJICAgICAgICB9DQoJICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICB9DQoJfQ0KCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KCS8vIENvbnZlcnNpb24gLyBTZXJpYWxpemF0aW9uIFV0aWxpdGllcyAvLw0KCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KCS8qKiBEZS1kdXBsaWNhdGVzIGxpc3QgaXRlbXMgYWNyb3NzIHNlY3Rpb24gbWV0YWRhdGEgYW5kIHBhZ2UgbWV0YWRhdGEuICovDQoJY2xhc3MgTGlzdFNlcmlhbGl6YXRpb25DYWNoZSB7DQoJICAgIGNvbnN0cnVjdG9yKGxpc3RJdGVtcykgew0KCSAgICAgICAgdGhpcy5saXN0SXRlbXMgPSB7fTsNCgkgICAgICAgIHRoaXMuY2FjaGUgPSB7fTsNCgkgICAgICAgIHRoaXMuc2VlbiA9IG5ldyBTZXQoKTsNCgkgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgbGlzdEl0ZW1zKQ0KCSAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zW2l0ZW0ubGluZV0gPSBpdGVtOw0KCSAgICB9DQoJICAgIGdldChsaW5lbm8pIHsNCgkgICAgICAgIGlmIChsaW5lbm8gaW4gdGhpcy5jYWNoZSkNCgkgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZVtsaW5lbm9dOw0KCSAgICAgICAgZWxzZSBpZiAodGhpcy5zZWVuLmhhcyhsaW5lbm8pKSB7DQoJICAgICAgICAgICAgY29uc29sZS5sb2coYERhdGF2aWV3OiBFbmNvdW50ZXJlZCBhIGNpcmN1bGFyIGxpc3QgKGxpbmUgbnVtYmVyICR7bGluZW5vfTsgY2hpbGRyZW4gJHt0aGlzLmxpc3RJdGVtc1tsaW5lbm9dLmNoaWxkcmVuLmpvaW4oIiwgIil9KWApOw0KCSAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgICAgICB9DQoJICAgICAgICB0aGlzLnNlZW4uYWRkKGxpbmVubyk7DQoJICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5saXN0SXRlbXNbbGluZW5vXS5zZXJpYWxpemUodGhpcyk7DQoJICAgICAgICB0aGlzLmNhY2hlW2xpbmVub10gPSByZXN1bHQ7DQoJICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICB9DQoJfQ0KCWZ1bmN0aW9uIGFkZEZpZWxkcyhmaWVsZHMsIHRhcmdldCkgew0KCSAgICBmb3IgKGxldCBba2V5LCB2YWx1ZXNdIG9mIGZpZWxkcy5lbnRyaWVzKCkpIHsNCgkgICAgICAgIGlmIChrZXkgaW4gdGFyZ2V0KQ0KCSAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZXMubGVuZ3RoID09IDEgPyB2YWx1ZXNbMF0gOiB2YWx1ZXM7DQoJICAgIH0NCgkgICAgcmV0dXJuIHRhcmdldDsNCgl9CgoJLyoqIENvbW1vbiB1dGlsaXRpZXMgZm9yIGV4dHJhY3RpbmcgdGFncywgbGlua3MsIGFuZCBvdGhlciBidXNpbmVzcyBmcm9tIG1ldGFkYXRhLiAqLw0KCWNvbnN0IFBPVEVOVElBTF9UQUdfTUFUQ0hFUiA9IC8jW15ccyw7XC46IVw/JyJgKClcW1xdXHtcfV0rL2dpdTsNCgkvKiogRXh0cmFjdCBhbGwgdGFncyBmcm9tIHRoZSBnaXZlbiBzb3VyY2Ugc3RyaW5nLiAqLw0KCWZ1bmN0aW9uIGV4dHJhY3RUYWdzJDEoc291cmNlKSB7DQoJICAgIGxldCByZXN1bHQgPSBuZXcgU2V0KCk7DQoJICAgIGxldCBtYXRjaGVzID0gc291cmNlLm1hdGNoQWxsKFBPVEVOVElBTF9UQUdfTUFUQ0hFUik7DQoJICAgIGZvciAobGV0IG1hdGNoIG9mIG1hdGNoZXMpIHsNCgkgICAgICAgIGxldCBwYXJzZWQgPSBFWFBSRVNTSU9OLnRhZy5wYXJzZShtYXRjaFswXSk7DQoJICAgICAgICBpZiAocGFyc2VkLnN0YXR1cykNCgkgICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlZC52YWx1ZSk7DQoJICAgIH0NCgkgICAgcmV0dXJuIHJlc3VsdDsNCgl9CgoJLyoqIEltcG9ydGVyIGZvciBtYXJrZG93biBkb2N1bWVudHMuICovDQoJLyoqIEV4dHJhY3QgbWFya2Rvd24gbWV0YWRhdGEgZnJvbSB0aGUgZ2l2ZW4gT2JzaWRpYW4gbWFya2Rvd24gZmlsZS4gKi8NCglmdW5jdGlvbiBwYXJzZVBhZ2UocGF0aCwgY29udGVudHMsIHN0YXQsIG1ldGFkYXRhKSB7DQoJICAgIGxldCB0YWdzID0gbmV3IFNldCgpOw0KCSAgICBsZXQgYWxpYXNlcyA9IG5ldyBTZXQoKTsNCgkgICAgbGV0IGZpZWxkcyA9IG5ldyBNYXAoKTsNCgkgICAgbGV0IGxpbmtzID0gW107DQoJICAgIC8vIEZpbGUgdGFncywgaW5jbHVkaW5nIGZyb250LW1hdHRlciBhbmQgaW4tZmlsZSB0YWdzLg0KCSAgICAobWV0YWRhdGEudGFncyB8fCBbXSkuZm9yRWFjaCh0ID0+IHRhZ3MuYWRkKHQudGFnLnN0YXJ0c1dpdGgoIiMiKSA/IHQudGFnIDogIiMiICsgdC50YWcpKTsNCgkgICAgLy8gRnJvbnQtbWF0dGVyIGZpbGUgdGFncywgYWxpYXNlcywgQU5EIGZyb250bWF0dGVyIHByb3BlcnRpZXMuDQoJICAgIGlmIChtZXRhZGF0YS5mcm9udG1hdHRlcikgew0KCSAgICAgICAgZm9yIChsZXQgdGFnIG9mIGV4dHJhY3RUYWdzKG1ldGFkYXRhLmZyb250bWF0dGVyKSkgew0KCSAgICAgICAgICAgIGlmICghdGFnLnN0YXJ0c1dpdGgoIiMiKSkNCgkgICAgICAgICAgICAgICAgdGFnID0gIiMiICsgdGFnOw0KCSAgICAgICAgICAgIHRhZ3MuYWRkKHRhZyk7DQoJICAgICAgICB9DQoJICAgICAgICBmb3IgKGxldCBhbGlhcyBvZiBleHRyYWN0QWxpYXNlcyhtZXRhZGF0YS5mcm9udG1hdHRlcikgfHwgW10pDQoJICAgICAgICAgICAgYWxpYXNlcy5hZGQoYWxpYXMpOw0KCSAgICAgICAgbGV0IGZyb250RmllbGRzID0gcGFyc2VGcm9udG1hdHRlcihtZXRhZGF0YS5mcm9udG1hdHRlcik7DQoJICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZnJvbnRGaWVsZHMpKSB7DQoJICAgICAgICAgICAgaWYgKGtleSA9PSAicG9zaXRpb24iKQ0KCSAgICAgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgICAgICBhZGRJbmxpbmVGaWVsZChrZXksIHZhbHVlLCBmaWVsZHMpOw0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIC8vIExpbmtzIGluIG1ldGFkYXRhLg0KCSAgICBjb25zdCBsaW5rc0J5TGluZSA9IHt9Ow0KCSAgICBmb3IgKGxldCByYXdMaW5rIG9mIG1ldGFkYXRhLmxpbmtzIHx8IFtdKSB7DQoJICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihyYXdMaW5rLmxpbmssIGZhbHNlLCByYXdMaW5rLmRpc3BsYXlUZXh0KTsNCgkgICAgICAgIGNvbnN0IGxpbmUgPSByYXdMaW5rLnBvc2l0aW9uLnN0YXJ0LmxpbmU7DQoJICAgICAgICBsaW5rcy5wdXNoKGxpbmspOw0KCSAgICAgICAgaWYgKCEobGluZSBpbiBsaW5rc0J5TGluZSkpDQoJICAgICAgICAgICAgbGlua3NCeUxpbmVbbGluZV0gPSBbbGlua107DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgbGlua3NCeUxpbmVbbGluZV0ucHVzaChsaW5rKTsNCgkgICAgfQ0KCSAgICAvLyBFbWJlZCBMaW5rcyBpbiBtZXRhZGF0YS4NCgkgICAgZm9yIChsZXQgcmF3RW1iZWQgb2YgbWV0YWRhdGEuZW1iZWRzIHx8IFtdKSB7DQoJICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihyYXdFbWJlZC5saW5rLCB0cnVlLCByYXdFbWJlZC5kaXNwbGF5VGV4dCk7DQoJICAgICAgICBjb25zdCBsaW5lID0gcmF3RW1iZWQucG9zaXRpb24uc3RhcnQubGluZTsNCgkgICAgICAgIGxpbmtzLnB1c2gobGluayk7DQoJICAgICAgICBpZiAoIShsaW5lIGluIGxpbmtzQnlMaW5lKSkNCgkgICAgICAgICAgICBsaW5rc0J5TGluZVtsaW5lXSA9IFtsaW5rXTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICBsaW5rc0J5TGluZVtsaW5lXS5wdXNoKGxpbmspOw0KCSAgICB9DQoJICAgIC8vIE1lcmdlIGZyb250bWF0dGVyIGZpZWxkcyB3aXRoIHBhcnNlZCBmaWVsZHMuDQoJICAgIGxldCBtYXJrZG93bkRhdGEgPSBwYXJzZU1hcmtkb3duKHBhdGgsIGNvbnRlbnRzLnNwbGl0KCJcbiIpLCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpOw0KCSAgICBtZXJnZUZpZWxkR3JvdXBzKGZpZWxkcywgbWFya2Rvd25EYXRhLmZpZWxkcyk7DQoJICAgIC8vIFN0cmlwICJwb3NpdGlvbiIgZnJvbSBmcm9udG1hdHRlciBzaW5jZSBpdCBpcyBPYnNpZGlhbiBkZXRlcm1pbmVkLg0KCSAgICBjb25zdCBmcm9udG1hdHRlciA9IG1ldGFkYXRhLmZyb250bWF0dGVyIHx8IHt9Ow0KCSAgICBpZiAoZnJvbnRtYXR0ZXIgJiYgInBvc2l0aW9uIiBpbiBmcm9udG1hdHRlcikNCgkgICAgICAgIGRlbGV0ZSBmcm9udG1hdHRlclsicG9zaXRpb24iXTsNCgkgICAgcmV0dXJuIG5ldyBQYWdlTWV0YWRhdGEocGF0aCwgew0KCSAgICAgICAgdGFncywNCgkgICAgICAgIGFsaWFzZXMsDQoJICAgICAgICBsaW5rcywNCgkgICAgICAgIGxpc3RzOiBtYXJrZG93bkRhdGEubGlzdHMsDQoJICAgICAgICBmaWVsZHM6IGZpbmFsaXplSW5saW5lRmllbGRzKGZpZWxkcyksDQoJICAgICAgICBmcm9udG1hdHRlcjogZnJvbnRtYXR0ZXIsDQoJICAgICAgICBjdGltZTogRGF0ZVRpbWVfMS5mcm9tTWlsbGlzKHN0YXQuY3RpbWUpLA0KCSAgICAgICAgbXRpbWU6IERhdGVUaW1lXzEuZnJvbU1pbGxpcyhzdGF0Lm10aW1lKSwNCgkgICAgICAgIHNpemU6IHN0YXQuc2l6ZSwNCgkgICAgICAgIGRheTogZmluZERhdGUocGF0aCwgZmllbGRzKSwNCgkgICAgfSk7DQoJfQ0KCS8qKiBFeHRyYWN0IHRhZ3MgaW50ZWxsaWdlbnRseSBmcm9tIGZyb250bWF0dGVyLiBIYW5kbGVzIGFycmF5cywgbnVtYmVycywgYW5kIHN0cmluZ3MuICovDQoJZnVuY3Rpb24gZXh0cmFjdFRhZ3MobWV0YWRhdGEpIHsNCgkgICAgbGV0IHRhZ0tleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSkuZmlsdGVyKHQgPT4gdC50b0xvd2VyQ2FzZSgpID09ICJ0YWdzIiB8fCB0LnRvTG93ZXJDYXNlKCkgPT0gInRhZyIpOw0KCSAgICByZXR1cm4gdGFnS2V5cw0KCSAgICAgICAgLm1hcChrID0+IHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKG1ldGFkYXRhW2tdLCAvWyxcc10rLykpDQoJICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBwLmNvbmNhdChjKSwgW10pDQoJICAgICAgICAubWFwKHN0ciA9PiAoc3RyLnN0YXJ0c1dpdGgoIiMiKSA/IHN0ciA6ICIjIiArIHN0cikpOw0KCX0NCgkvKiogRXh0cmFjdCBhbGlhc2VzIGludGVsbGlnZW50bHkgZnJvbSBmcm9udG1hdHRlci4gSGFuZGxlcyBhcnJheXMsIG51bWJlcnMsIGFuZCBzdHJpbmdzLiAgKi8NCglmdW5jdGlvbiBleHRyYWN0QWxpYXNlcyhtZXRhZGF0YSkgew0KCSAgICBsZXQgYWxpYXNLZXlzID0gT2JqZWN0LmtleXMobWV0YWRhdGEpLmZpbHRlcih0ID0+IHQudG9Mb3dlckNhc2UoKSA9PSAiYWxpYXMiIHx8IHQudG9Mb3dlckNhc2UoKSA9PSAiYWxpYXNlcyIpOw0KCSAgICBjb25zdCByZXN1bHQgPSBbXTsNCgkgICAgZm9yIChsZXQga2V5IG9mIGFsaWFzS2V5cykgew0KCSAgICAgICAgY29uc3QgdmFsdWUgPSBtZXRhZGF0YVtrZXldOw0KCSAgICAgICAgaWYgKCF2YWx1ZSkNCgkgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkNCgkgICAgICAgICAgICByZXN1bHQucHVzaCguLi52YWx1ZS5tYXAodiA9PiAoIiIgKyB2KS50cmltKCkpKTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICByZXN1bHQucHVzaCguLi5zcGxpdEZyb250bWF0dGVyVGFnT3JBbGlhcyh2YWx1ZSwgLywvKSk7DQoJICAgIH0NCgkgICAgcmV0dXJuIHJlc3VsdDsNCgl9DQoJLyoqIFNwbGl0IGEgZnJvbnRtYXR0ZXIgbGlzdCBpbnRvIHNlcGFyYXRlIGVsZW1lbnRzOyBoYW5kbGVzIGFjdHVhbCBsaXN0cywgY29tbWEgc2VwYXJhdGVkIGxpc3RzLCBhbmQgc2luZ2xlIGVsZW1lbnRzLiAqLw0KCWZ1bmN0aW9uIHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKGRhdGEsIG9uKSB7DQoJICAgIGlmIChkYXRhID09IG51bGwgfHwgZGF0YSA9PSB1bmRlZmluZWQpDQoJICAgICAgICByZXR1cm4gW107DQoJICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7DQoJICAgICAgICByZXR1cm4gZGF0YQ0KCSAgICAgICAgICAgIC5maWx0ZXIocyA9PiAhIXMpDQoJICAgICAgICAgICAgLm1hcChzID0+IHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKHMsIG9uKSkNCgkgICAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBwLmNvbmNhdChjKSwgW10pOw0KCSAgICB9DQoJICAgIC8vIEZvcmNlIHRvIGEgc3RyaW5nIHRvIGhhbmRsZSBudW1iZXJzIGFuZCBzbyBvbi4NCgkgICAgcmV0dXJuICgiIiArIGRhdGEpDQoJICAgICAgICAuc3BsaXQob24pDQoJICAgICAgICAuZmlsdGVyKHQgPT4gISF0KQ0KCSAgICAgICAgLm1hcCh0ID0+IHQudHJpbSgpKQ0KCSAgICAgICAgLmZpbHRlcih0ID0+IHQubGVuZ3RoID4gMCk7DQoJfQ0KCS8qKiBQYXJzZSByYXcgKG5ld2xpbmUtZGVsaW1pdGVkKSBtYXJrZG93biwgcmV0dXJuaW5nIGlubGluZSBmaWVsZHMsIGxpc3QgaXRlbXMsIGFuZCBvdGhlciBtZXRhZGF0YS4gKi8NCglmdW5jdGlvbiBwYXJzZU1hcmtkb3duKHBhdGgsIGNvbnRlbnRzLCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpIHsNCgkgICAgbGV0IGZpZWxkcyA9IG5ldyBNYXAoKTsNCgkgICAgLy8gRXh0cmFjdCB0YXNrIGRhdGEgYW5kIGFwcGVuZCB0aGUgZ2xvYmFsIGRhdGEgZXh0cmFjdGVkIGZyb20gdGhlbSB0byBvdXIgZmllbGRzLg0KCSAgICBsZXQgW2xpc3RzLCBleHRyYURhdGFdID0gcGFyc2VMaXN0cyhwYXRoLCBjb250ZW50cywgbWV0YWRhdGEsIGxpbmtzQnlMaW5lKTsNCgkgICAgZm9yIChsZXQgW2tleSwgdmFsdWVzXSBvZiBleHRyYURhdGEuZW50cmllcygpKSB7DQoJICAgICAgICBpZiAoIWZpZWxkcy5oYXMoa2V5KSkNCgkgICAgICAgICAgICBmaWVsZHMuc2V0KGtleSwgdmFsdWVzKTsNCgkgICAgICAgIGVsc2UNCgkgICAgICAgICAgICBmaWVsZHMuc2V0KGtleSwgZmllbGRzLmdldChrZXkpLmNvbmNhdCh2YWx1ZXMpKTsNCgkgICAgfQ0KCSAgICAvLyBUaGUgT2JzaWRpYW4gbWV0YWRhdGEgY2FjaGUgd2lsbCB0cmFjayBsaXN0IGVsZW1lbnRzIGluc2lkZSBvZiBvdGhlciBlbGVtZW50IGdyb3VwcyAobGlrZSBhbm5vdGF0aW9ucyBhbmQNCgkgICAgLy8gY2FsbG91dHMpLi4uIHRoaXMgbWVhbnMgd2UgbWlnaHQgc2VlIG1ldGFkYXRhIHR3aWNlLCBzbyBza2lwIHRoZW0gbm93LiBWZXJ5IGFubm95aW5nLg0KCSAgICBjb25zdCBsaXN0TGluZXNUb1NraXAgPSBuZXcgU2V0KCk7DQoJICAgIGZvciAoY29uc3QgbGluZSBvZiBsaXN0cykgew0KCSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lLmxpbmVDb3VudDsgaSsrKQ0KCSAgICAgICAgICAgIGxpc3RMaW5lc1RvU2tpcC5hZGQobGluZS5saW5lICsgaSk7DQoJICAgIH0NCgkgICAgLy8gT25seSBwYXJzZSBoZWFkaW5nIGFuZCBwYXJhZ3JhcGggZWxlbWVudHMgZm9yIGlubGluZSBmaWVsZHM7IHdlIHdpbGwgcGFyc2UgbGlzdCBtZXRhZGF0YSBzZXBhcmF0ZWx5Lg0KCSAgICBmb3IgKGxldCBzZWN0aW9uIG9mIG1ldGFkYXRhLnNlY3Rpb25zIHx8IFtdKSB7DQoJICAgICAgICBpZiAoc2VjdGlvbi50eXBlID09ICJsaXN0IiB8fCBzZWN0aW9uLnR5cGUgPT0gInJ1bGluZyIpDQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICBmb3IgKGxldCBsaW5lbm8gPSBzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmU7IGxpbmVubyA8PSBzZWN0aW9uLnBvc2l0aW9uLmVuZC5saW5lOyBsaW5lbm8rKykgew0KCSAgICAgICAgICAgIGxldCBsaW5lID0gY29udGVudHNbbGluZW5vXTsNCgkgICAgICAgICAgICBpZiAobGluZSA9PSB1bmRlZmluZWQgfHwgbGluZSA9PSBudWxsKQ0KCSAgICAgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgICAgICBpZiAobGlzdExpbmVzVG9Ta2lwLmhhcyhsaW5lbm8pKQ0KCSAgICAgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgICAgICAvLyBGYXN0IGJhaWwtb3V0IGZvciBsaW5lcyB0aGF0IGFyZSB0b28gbG9uZyBvciBkbyBub3QgY29udGFpbiAnOjonLg0KCSAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCA+IDMyNzY4IHx8ICFsaW5lLmluY2x1ZGVzKCI6OiIpKQ0KCSAgICAgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7DQoJICAgICAgICAgICAgbGV0IGlubGluZUZpZWxkcyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMobGluZSk7DQoJICAgICAgICAgICAgaWYgKGlubGluZUZpZWxkcy5sZW5ndGggPiAwKSB7DQoJICAgICAgICAgICAgICAgIGZvciAobGV0IGlmaWVsZCBvZiBpbmxpbmVGaWVsZHMpDQoJICAgICAgICAgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChpZmllbGQsIGZpZWxkcyk7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgICAgICBsZXQgZnVsbExpbmUgPSBleHRyYWN0RnVsbExpbmVGaWVsZChsaW5lKTsNCgkgICAgICAgICAgICAgICAgaWYgKGZ1bGxMaW5lKQ0KCSAgICAgICAgICAgICAgICAgICAgYWRkUmF3SW5saW5lRmllbGQoZnVsbExpbmUsIGZpZWxkcyk7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgfQ0KCSAgICB9DQoJICAgIHJldHVybiB7IGZpZWxkcywgbGlzdHMgfTsNCgl9DQoJLy8gVE9ETzogQ29uc2lkZXIgdXNpbmcgYW4gYWN0dWFsIHBhcnNlciBpbiBsZWl1IG9mIGEgbW9yZSBleHBlbnNpdmUgcmVnZXguDQoJY29uc3QgTElTVF9JVEVNX1JFR0VYID0gL15bXHM+XSooXGQrXC58XGQrXCl8XCp8LXxcKylccyooXFsuezAsMX1cXSk/XHMqKC4qKSQvbXU7DQoJLyoqDQoJICogUGFyc2UgbGlzdCBpdGVtcyBmcm9tIHRoZSBwYWdlICsgbWV0YWRhdGEuIFRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIHBhcnNpbmcgYWJvdmUgd2hhdGV2ZXIgT2JzaWRpYW4gcHJvdmlkZXMsDQoJICogc2luY2UgT2JzaWRpYW4gb25seSBnaXZlcyBsaW5lIG51bWJlcnMuDQoJICovDQoJZnVuY3Rpb24gcGFyc2VMaXN0cyhwYXRoLCBjb250ZW50LCBtZXRhZGF0YSwgbGlua3NCeUxpbmUpIHsNCgkgICAgdmFyIF9hOw0KCSAgICBsZXQgY2FjaGUgPSB7fTsNCgkgICAgLy8gUGxhY2UgYWxsIG9mIHRoZSB2YWx1ZXMgaW4gdGhlIGNhY2hlIGJlZm9yZSByZXNvbHZpbmcgY2hpbGRyZW4gJiBtZXRhZGF0YSByZWxhdGlvbnNoaXBzLg0KCSAgICBmb3IgKGxldCByYXdFbGVtZW50IG9mIG1ldGFkYXRhLmxpc3RJdGVtcyB8fCBbXSkgew0KCSAgICAgICAgLy8gTWF0Y2ggb24gdGhlIGZpcnN0IGxpbmUgdG8gZ2V0IHRoZSBzeW1ib2wgYW5kIGZpcnN0IGxpbmUgb2YgdGV4dC4NCgkgICAgICAgIGxldCByYXdNYXRjaCA9IExJU1RfSVRFTV9SRUdFWC5leGVjKGNvbnRlbnRbcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lXSk7DQoJICAgICAgICBpZiAoIXJhd01hdGNoKQ0KCSAgICAgICAgICAgIGNvbnRpbnVlOw0KCSAgICAgICAgLy8gQW5kIHRoZW4gc3RyaXAgdW5uZWNlc3Nhcnkgc3BhY2luZyBmcm9tIHRoZSByZW1haW5pbmcgbGluZXMuDQoJICAgICAgICBsZXQgdGV4dFBhcnRzID0gW3Jhd01hdGNoWzNdXQ0KCSAgICAgICAgICAgIC5jb25jYXQoY29udGVudC5zbGljZShyYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUgKyAxLCByYXdFbGVtZW50LnBvc2l0aW9uLmVuZC5saW5lICsgMSkpDQoJICAgICAgICAgICAgLm1hcCh0ID0+IHQudHJpbSgpKTsNCgkgICAgICAgIGxldCB0ZXh0V2l0aE5ld2xpbmUgPSB0ZXh0UGFydHMuam9pbigiXG4iKTsNCgkgICAgICAgIGxldCB0ZXh0Tm9OZXdsaW5lID0gdGV4dFBhcnRzLmpvaW4oIiAiKTsNCgkgICAgICAgIC8vIEZpbmQgdGhlIGxpc3QgdGhhdCB3ZSBhcmUgYSBwYXJ0IG9mIGJ5IGxpbmUuDQoJICAgICAgICBsZXQgY29udGFpbmluZ0xpc3RJZCA9IChtZXRhZGF0YS5zZWN0aW9ucyB8fCBbXSkuZmluZEluZGV4KHMgPT4gcy50eXBlID09ICJsaXN0IiAmJg0KCSAgICAgICAgICAgIHMucG9zaXRpb24uc3RhcnQubGluZSA8PSByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUgJiYNCgkgICAgICAgICAgICBzLnBvc2l0aW9uLmVuZC5saW5lID49IHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSk7DQoJICAgICAgICAvLyBGaW5kIHRoZSBzZWN0aW9uIHdlIGJlbG9uZyB0byBhcyB3ZWxsLg0KCSAgICAgICAgbGV0IHNlY3Rpb25OYW1lID0gZmluZFByZXZpb3VzSGVhZGVyKHJhd0VsZW1lbnQucG9zaXRpb24uc3RhcnQubGluZSwgbWV0YWRhdGEuaGVhZGluZ3MgfHwgW10pOw0KCSAgICAgICAgbGV0IHNlY3Rpb25MaW5rID0gc2VjdGlvbk5hbWUgPT09IHVuZGVmaW5lZCA/IExpbmsuZmlsZShwYXRoKSA6IExpbmsuaGVhZGVyKHBhdGgsIHNlY3Rpb25OYW1lKTsNCgkgICAgICAgIGxldCBjbG9zZXN0TGluayA9IHJhd0VsZW1lbnQuaWQgPT09IHVuZGVmaW5lZCA/IHNlY3Rpb25MaW5rIDogTGluay5ibG9jayhwYXRoLCByYXdFbGVtZW50LmlkKTsNCgkgICAgICAgIC8vIEdhdGhlciBhbnkgbGlua3MgdGhhdCBvY2N1ciBvbiB0aGUgc2FtZSBsaW5lcyBhcyB0aGUgdGFzay4NCgkgICAgICAgIGNvbnN0IGxpbmtzID0gW107DQoJICAgICAgICBmb3IgKGxldCBsaW5lID0gcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lOyBsaW5lIDw9IHJhd0VsZW1lbnQucG9zaXRpb24uZW5kLmxpbmU7IGxpbmUrKykgew0KCSAgICAgICAgICAgIGlmIChsaW5rc0J5TGluZVtsaW5lXSkNCgkgICAgICAgICAgICAgICAgbGlua3MucHVzaCguLi5saW5rc0J5TGluZVtsaW5lXSk7DQoJICAgICAgICB9DQoJICAgICAgICAvLyBDb25zdHJ1Y3QgdW5pdmVyc2FsIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZWxlbWVudCAoYmVmb3JlIHRhc2tzKS4NCgkgICAgICAgIGxldCBpdGVtID0gbmV3IExpc3RJdGVtKHsNCgkgICAgICAgICAgICBzeW1ib2w6IHJhd01hdGNoWzFdLA0KCSAgICAgICAgICAgIGxpbms6IGNsb3Nlc3RMaW5rLA0KCSAgICAgICAgICAgIGxpbmtzOiBsaW5rcywNCgkgICAgICAgICAgICBzZWN0aW9uOiBzZWN0aW9uTGluaywNCgkgICAgICAgICAgICB0ZXh0OiB0ZXh0V2l0aE5ld2xpbmUsDQoJICAgICAgICAgICAgdGFnczogZXh0cmFjdFRhZ3MkMSh0ZXh0Tm9OZXdsaW5lKSwNCgkgICAgICAgICAgICBsaW5lOiByYXdFbGVtZW50LnBvc2l0aW9uLnN0YXJ0LmxpbmUsDQoJICAgICAgICAgICAgbGluZUNvdW50OiByYXdFbGVtZW50LnBvc2l0aW9uLmVuZC5saW5lIC0gcmF3RWxlbWVudC5wb3NpdGlvbi5zdGFydC5saW5lICsgMSwNCgkgICAgICAgICAgICBsaXN0OiBjb250YWluaW5nTGlzdElkID09IC0xID8gLTEgOiAobWV0YWRhdGEuc2VjdGlvbnMgfHwgW10pW2NvbnRhaW5pbmdMaXN0SWRdLnBvc2l0aW9uLnN0YXJ0LmxpbmUsDQoJICAgICAgICAgICAgcG9zaXRpb246IHJhd0VsZW1lbnQucG9zaXRpb24sDQoJICAgICAgICAgICAgY2hpbGRyZW46IFtdLA0KCSAgICAgICAgICAgIGJsb2NrSWQ6IHJhd0VsZW1lbnQuaWQsDQoJICAgICAgICB9KTsNCgkgICAgICAgIGlmIChyYXdFbGVtZW50LnBhcmVudCA+PSAwICYmIHJhd0VsZW1lbnQucGFyZW50ICE9IGl0ZW0ubGluZSkNCgkgICAgICAgICAgICBpdGVtLnBhcmVudCA9IHJhd0VsZW1lbnQucGFyZW50Ow0KCSAgICAgICAgLy8gU2V0IHVwIHRoZSBiYXNpYyB0YXNrIGluZm9ybWF0aW9uIGZvciBub3csIHRob3VnaCB3ZSBoYXZlIHRvIHJlY29tcHV0ZSBgZnVsbHlDb21wdXRlZGAgbGF0ZXIuDQoJICAgICAgICBpZiAocmF3RWxlbWVudC50YXNrKSB7DQoJICAgICAgICAgICAgaXRlbS50YXNrID0gew0KCSAgICAgICAgICAgICAgICBzdGF0dXM6IHJhd0VsZW1lbnQudGFzaywNCgkgICAgICAgICAgICAgICAgY2hlY2tlZDogcmF3RWxlbWVudC50YXNrICE9ICIiICYmIHJhd0VsZW1lbnQudGFzayAhPSAiICIsDQoJICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogcmF3RWxlbWVudC50YXNrID09ICJYIiB8fCByYXdFbGVtZW50LnRhc2sgPT0gIngiLA0KCSAgICAgICAgICAgICAgICBmdWxseUNvbXBsZXRlZDogcmF3RWxlbWVudC50YXNrID09ICJYIiB8fCByYXdFbGVtZW50LnRhc2sgPT0gIngiLA0KCSAgICAgICAgICAgIH07DQoJICAgICAgICB9DQoJICAgICAgICAvLyBFeHRyYWN0IGlubGluZSBmaWVsZHM7IGV4dHJhY3QgZnVsbC1saW5lIGZpZWxkcyBvbmx5IGlmIHdlIGFyZSBOT1QgYSB0YXNrLg0KCSAgICAgICAgaXRlbS5maWVsZHMgPSBuZXcgTWFwKCk7DQoJICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGV4dHJhY3RJbmxpbmVGaWVsZHModGV4dE5vTmV3bGluZSwgdHJ1ZSkpDQoJICAgICAgICAgICAgYWRkUmF3SW5saW5lRmllbGQoZWxlbWVudCwgaXRlbS5maWVsZHMpOw0KCSAgICAgICAgaWYgKCFyYXdFbGVtZW50LnRhc2sgJiYgaXRlbS5maWVsZHMuc2l6ZSA9PSAwKSB7DQoJICAgICAgICAgICAgbGV0IGZ1bGxMaW5lID0gZXh0cmFjdEZ1bGxMaW5lRmllbGQodGV4dE5vTmV3bGluZSk7DQoJICAgICAgICAgICAgaWYgKGZ1bGxMaW5lKQ0KCSAgICAgICAgICAgICAgICBhZGRSYXdJbmxpbmVGaWVsZChmdWxsTGluZSwgaXRlbS5maWVsZHMpOw0KCSAgICAgICAgfQ0KCSAgICAgICAgY2FjaGVbaXRlbS5saW5lXSA9IGl0ZW07DQoJICAgIH0NCgkgICAgLy8gVHJlZSB1cGRhdGluZyBwYXNzZXMuIFVwZGF0ZSBjaGlsZCBsaXN0cy4gUHJvcG9nYXRlIG1ldGFkYXRhIHVwIHRvIHBhcmVudCB0YXNrcy4gVXBkYXRlIHRhc2sgYGZ1bGx5Q29tcGxldGVkYC4NCgkgICAgbGV0IGxpdGVyYWxzID0gbmV3IE1hcCgpOw0KCSAgICBmb3IgKGxldCBsaXN0SXRlbSBvZiBPYmplY3QudmFsdWVzKGNhY2hlKSkgew0KCSAgICAgICAgLy8gUGFzcyAxOiBVcGRhdGUgY2hpbGQgbGlzdHMuDQoJICAgICAgICBpZiAobGlzdEl0ZW0ucGFyZW50ICE9PSB1bmRlZmluZWQgJiYgbGlzdEl0ZW0ucGFyZW50IGluIGNhY2hlKSB7DQoJICAgICAgICAgICAgbGV0IHBhcmVudCA9IGNhY2hlW2xpc3RJdGVtLnBhcmVudF07DQoJICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobGlzdEl0ZW0ubGluZSk7DQoJICAgICAgICB9DQoJICAgICAgICAvLyBQYXNzIDI6IFByb3BvZ2F0ZSBtZXRhZGF0YSB1cCB0byB0aGUgcGFyZW50IHRhc2sgb3Igcm9vdCBlbGVtZW50Lg0KCSAgICAgICAgaWYgKCFsaXN0SXRlbS50YXNrKSB7DQoJICAgICAgICAgICAgbWVyZ2VGaWVsZEdyb3VwcyhsaXRlcmFscywgbGlzdEl0ZW0uZmllbGRzKTsNCgkgICAgICAgICAgICAvLyBUT0RPIChibGFja3NtaXRoZ3UpOiBUaGUgYmVsb3cgY29kZSBwcm9wZXJseSBwcm9wb2dhdGVzIG1ldGFkYXRhIHVwIHRvIHRoZSBuZWFyZXN0IHRhc2ssIHdoaWNoIGlzIHRoZQ0KCSAgICAgICAgICAgIC8vIG1vcmUgaW50dWl0aXZlIGJlaGF2aW9yLiBGb3Igbm93LCB0aG91Z2gsIHdlIHdpbGwga2VlcCB0aGUgZXhpc3RpbmcgbG9naWMuDQoJICAgICAgICAgICAgLyoNCgkgICAgICAgICAgICBsZXQgcm9vdDogTGlzdEl0ZW0gfCB1bmRlZmluZWQgPSBsaXN0SXRlbTsNCgkgICAgICAgICAgICB3aGlsZSAoISFyb290ICYmICFyb290LnRhc2spIHJvb3QgPSBjYWNoZVtyb290LnBhcmVudCA/PyAtMV07DQoKCSAgICAgICAgICAgIC8vIElmIHRoZSByb290IGlzIG51bGwsIGFwcGVuZCB0aGlzIG1ldGFkYXRhIHRvIHRoZSByb290OyBvdGhlcndpc2UsIGFwcGVuZCB0byB0aGUgdGFzay4NCgkgICAgICAgICAgICBtZXJnZUZpZWxkR3JvdXBzKHJvb3QgPT09IHVuZGVmaW5lZCB8fCByb290ID09IG51bGwgPyBsaXRlcmFscyA6IHJvb3QuZmllbGRzLCBsaXN0SXRlbS5maWVsZHMpOw0KCSAgICAgICAgICAgICovDQoJICAgICAgICB9DQoJICAgICAgICAvLyBQYXNzIDM6IFByb3BvZ2F0ZSBgZnVsbHlDb21wbGV0ZWRgIHVwIHRoZSB0YXNrIHRyZWUuIFRoaXMgaXMgYSBsaXR0bGUgbGVzcyBlZmZpY2llbnQgdGhhbiBqdXN0IGRvaW5nIGEgc2ltcGxlDQoJICAgICAgICAvLyBERlMgdXNpbmcgdGhlIGNoaWxkcmVuIElEcywgYnV0IGl0J3MgcHJvYmFibHkgZmluZS4NCgkgICAgICAgIGlmIChsaXN0SXRlbS50YXNrKSB7DQoJICAgICAgICAgICAgbGV0IGN1cnIgPSBsaXN0SXRlbTsNCgkgICAgICAgICAgICB3aGlsZSAoISFjdXJyKSB7DQoJICAgICAgICAgICAgICAgIGlmIChjdXJyLnRhc2spDQoJICAgICAgICAgICAgICAgICAgICBjdXJyLnRhc2suZnVsbHlDb21wbGV0ZWQgPSBjdXJyLnRhc2suZnVsbHlDb21wbGV0ZWQgJiYgbGlzdEl0ZW0udGFzay5jb21wbGV0ZWQ7DQoJICAgICAgICAgICAgICAgIGN1cnIgPSBjYWNoZVsoX2EgPSBjdXJyLnBhcmVudCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogLTFdOw0KCSAgICAgICAgICAgIH0NCgkgICAgICAgIH0NCgkgICAgfQ0KCSAgICByZXR1cm4gW09iamVjdC52YWx1ZXMoY2FjaGUpLCBsaXRlcmFsc107DQoJfQ0KCS8qKiBBdHRlbXB0IHRvIGZpbmQgYSBkYXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcGFnZSBmcm9tIG1ldGFkYXRhIG9yIGZpbGVuYW1lcy4gKi8NCglmdW5jdGlvbiBmaW5kRGF0ZShmaWxlLCBmaWVsZHMpIHsNCgkgICAgdmFyIF9hLCBfYiwgX2MsIF9kOw0KCSAgICBmb3IgKGxldCBrZXkgb2YgZmllbGRzLmtleXMoKSkgew0KCSAgICAgICAgaWYgKCEoa2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gImRhdGUiIHx8IGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09ICJkYXkiKSkNCgkgICAgICAgICAgICBjb250aW51ZTsNCgkgICAgICAgIGxldCB2YWx1ZSA9IGZpZWxkcy5nZXQoa2V5KTsNCgkgICAgICAgIGlmIChWYWx1ZXMuaXNEYXRlKHZhbHVlKSkgew0KCSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKFZhbHVlcy5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwICYmIFZhbHVlcy5pc0RhdGUodmFsdWVbMF0pKSB7DQoJICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAoVmFsdWVzLmlzTGluayh2YWx1ZSkpIHsNCgkgICAgICAgICAgICBsZXQgZGF0ZSA9IChfYyA9IChfYSA9IGV4dHJhY3REYXRlKHZhbHVlLnBhdGgpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBleHRyYWN0RGF0ZSgoX2IgPSB2YWx1ZS5zdWJwYXRoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAiIikpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGV4dHJhY3REYXRlKChfZCA9IHZhbHVlLmRpc3BsYXkpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICIiKTsNCgkgICAgICAgICAgICBpZiAoZGF0ZSkNCgkgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGU7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgcmV0dXJuIGV4dHJhY3REYXRlKGdldEZpbGVUaXRsZShmaWxlKSk7DQoJfQ0KCS8qKiBSZWN1cnNpdmVseSBjb252ZXJ0IGZyb250bWF0dGVyIGludG8gZmllbGRzLiBXZSBoYXZlIHRvIGRhbmNlIGFyb3VuZCBZQU1MIHN0cnVjdHVyZS4gKi8NCglmdW5jdGlvbiBwYXJzZUZyb250bWF0dGVyKHZhbHVlKSB7DQoJICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7DQoJICAgICAgICByZXR1cm4gbnVsbDsNCgkgICAgfQ0KCSAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiKSB7DQoJICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHsNCgkgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107DQoJICAgICAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdmFsdWUpIHsNCgkgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VGcm9udG1hdHRlcihjaGlsZCkpOw0KCSAgICAgICAgICAgIH0NCgkgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSB7DQoJICAgICAgICAgICAgbGV0IG9iamVjdCA9IHZhbHVlOw0KCSAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsNCgkgICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gb2JqZWN0KSB7DQoJICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gcGFyc2VGcm9udG1hdHRlcihvYmplY3Rba2V5XSk7DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAibnVtYmVyIikgew0KCSAgICAgICAgcmV0dXJuIHZhbHVlOw0KCSAgICB9DQoJICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gImJvb2xlYW4iKSB7DQoJICAgICAgICByZXR1cm4gdmFsdWU7DQoJICAgIH0NCgkgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAic3RyaW5nIikgew0KCSAgICAgICAgbGV0IGRhdGVQYXJzZSA9IEVYUFJFU1NJT04uZGF0ZS5wYXJzZSh2YWx1ZSk7DQoJICAgICAgICBpZiAoZGF0ZVBhcnNlLnN0YXR1cykNCgkgICAgICAgICAgICByZXR1cm4gZGF0ZVBhcnNlLnZhbHVlOw0KCSAgICAgICAgbGV0IGR1cmF0aW9uUGFyc2UgPSBFWFBSRVNTSU9OLmR1cmF0aW9uLnBhcnNlKHZhbHVlKTsNCgkgICAgICAgIGlmIChkdXJhdGlvblBhcnNlLnN0YXR1cykNCgkgICAgICAgICAgICByZXR1cm4gZHVyYXRpb25QYXJzZS52YWx1ZTsNCgkgICAgICAgIGxldCBsaW5rUGFyc2UgPSBFWFBSRVNTSU9OLmVtYmVkTGluay5wYXJzZSh2YWx1ZSk7DQoJICAgICAgICBpZiAobGlua1BhcnNlLnN0YXR1cykNCgkgICAgICAgICAgICByZXR1cm4gbGlua1BhcnNlLnZhbHVlOw0KCSAgICAgICAgcmV0dXJuIHZhbHVlOw0KCSAgICB9DQoJICAgIC8vIEJhY2t1cCBpZiB3ZSBkb24ndCB1bmRlcnN0YW5kIHRoZSB0eXBlLg0KCSAgICByZXR1cm4gbnVsbDsNCgl9DQoJLyoqIEFkZCBhIHBhcnNlZCBpbmxpbmUgZmllbGQgdG8gdGhlIG91dHB1dCBtYXAuICovDQoJZnVuY3Rpb24gYWRkUmF3SW5saW5lRmllbGQoZmllbGQsIG91dHB1dCkgew0KCSAgICBhZGRJbmxpbmVGaWVsZChmaWVsZC5rZXksIHBhcnNlSW5saW5lVmFsdWUoZmllbGQudmFsdWUpLCBvdXRwdXQpOw0KCX0NCgkvKiogQWRkIGEgcmF3IGlubGluZSBmaWVsZCB0byBhbiBvdXRwdXQgbWFwLCBjYW5vbmljYWxpemluZyBhcyBuZWVkZWQuICovDQoJZnVuY3Rpb24gYWRkSW5saW5lRmllbGQoa2V5LCB2YWx1ZSwgb3V0cHV0KSB7DQoJICAgIHZhciBfYTsNCgkgICAgaWYgKCFvdXRwdXQuaGFzKGtleSkpDQoJICAgICAgICBvdXRwdXQuc2V0KGtleSwgW3ZhbHVlXSk7DQoJICAgIGVsc2UNCgkgICAgICAgIChfYSA9IG91dHB1dC5nZXQoa2V5KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnB1c2godmFsdWUpOw0KCX0NCgkvKiogR2l2ZW4gYSByYXcgbGlzdCBvZiBpbmxpbmUgZmllbGQgdmFsdWVzLCBhZGQgbm9ybWFsaXplZCBrZXlzIGFuZCBzcXVhc2ggdGhlbS4gKi8NCglmdW5jdGlvbiBmaW5hbGl6ZUlubGluZUZpZWxkcyhmaWVsZHMpIHsNCgkgICAgLy8gQ29tcHV0ZSB1bmlxdWUgbm9ybWFsaXplZCBrZXlzICh0aGF0IGRvIG5vdCBvdmVybGFwIHcvIHRoZSBmaWVsZHMpLg0KCSAgICBsZXQgbm9ybWFsaXplZCA9IG5ldyBNYXAoKTsNCgkgICAgZm9yIChsZXQgW2tleSwgdmFsdWVzXSBvZiBmaWVsZHMuZW50cmllcygpKSB7DQoJICAgICAgICBsZXQgbm9ybUtleSA9IGNhbm9uaWNhbGl6ZVZhck5hbWUoa2V5KTsNCgkgICAgICAgIGlmIChub3JtS2V5ID09ICIiIHx8IGZpZWxkcy5oYXMobm9ybUtleSkpDQoJICAgICAgICAgICAgY29udGludWU7DQoJICAgICAgICBpZiAoIW5vcm1hbGl6ZWQuaGFzKG5vcm1LZXkpKQ0KCSAgICAgICAgICAgIG5vcm1hbGl6ZWQuc2V0KG5vcm1LZXksIHZhbHVlcyk7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgbm9ybWFsaXplZC5zZXQobm9ybUtleSwgbm9ybWFsaXplZC5nZXQobm9ybUtleSkuY29uY2F0KHZhbHVlcykpOw0KCSAgICB9DQoJICAgIC8vIENvbWJpbmUgbm9ybWFsaXplZCArIG5vcm1hbCBrZXlzLg0KCSAgICBsZXQgaW50ZXJpbSA9IG5ldyBNYXAoKTsNCgkgICAgbWVyZ2VGaWVsZEdyb3VwcyhpbnRlcmltLCBmaWVsZHMpOw0KCSAgICBtZXJnZUZpZWxkR3JvdXBzKGludGVyaW0sIG5vcm1hbGl6ZWQpOw0KCSAgICAvLyBBbmQgdGhlbiBmbGF0dGVuIHRoZW0uDQoJICAgIGxldCByZXN1bHQgPSBuZXcgTWFwKCk7DQoJICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBpbnRlcmltLmVudHJpZXMoKSkgew0KCSAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAxKQ0KCSAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCB2YWx1ZVswXSk7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgcmVzdWx0LnNldChrZXksIHZhbHVlKTsNCgkgICAgfQ0KCSAgICByZXR1cm4gcmVzdWx0Ow0KCX0NCgkvKiogQ29weSBhbGwgZmllbGRzIG9mICdzb3VyY2UnIGludG8gJ3RhcmdldCcuICovDQoJZnVuY3Rpb24gbWVyZ2VGaWVsZEdyb3Vwcyh0YXJnZXQsIHNvdXJjZSkgew0KCSAgICBmb3IgKGxldCBrZXkgb2Ygc291cmNlLmtleXMoKSkgew0KCSAgICAgICAgaWYgKCF0YXJnZXQuaGFzKGtleSkpDQoJICAgICAgICAgICAgdGFyZ2V0LnNldChrZXksIHNvdXJjZS5nZXQoa2V5KSk7DQoJICAgICAgICBlbHNlDQoJICAgICAgICAgICAgdGFyZ2V0LnNldChrZXksIHRhcmdldC5nZXQoa2V5KS5jb25jYXQoc291cmNlLmdldChrZXkpKSk7DQoJICAgIH0NCgl9DQoJLyoqIEZpbmQgdGhlIGhlYWRlciB0aGF0IGlzIG1vc3QgaW1tZWRpYXRlbHkgYWJvdmUgdGhlIGdpdmVuIGxpbmUgbnVtYmVyLiAqLw0KCWZ1bmN0aW9uIGZpbmRQcmV2aW91c0hlYWRlcihsaW5lLCBoZWFkZXJzKSB7DQoJICAgIGlmIChoZWFkZXJzLmxlbmd0aCA9PSAwKQ0KCSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsNCgkgICAgaWYgKGhlYWRlcnNbMF0ucG9zaXRpb24uc3RhcnQubGluZSA+IGxpbmUpDQoJICAgICAgICByZXR1cm4gdW5kZWZpbmVkOw0KCSAgICBsZXQgaW5kZXggPSBoZWFkZXJzLmxlbmd0aCAtIDE7DQoJICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGhlYWRlcnNbaW5kZXhdLnBvc2l0aW9uLnN0YXJ0LmxpbmUgPiBsaW5lKQ0KCSAgICAgICAgaW5kZXgtLTsNCgkgICAgcmV0dXJuIGhlYWRlcnNbaW5kZXhdLmhlYWRpbmc7DQoJfQoKCS8qKiBBY3R1YWwgaW1wb3J0IGltcGxlbWVudGF0aW9uIGJhY2tlbmQuIFRoaXMgbXVzdCByZW1haW4gc2VwYXJhdGUgZnJvbSBgaW1wb3J0LWVudHJ5YCBzaW5jZSBpdCBpcyB1c2VkIHdpdGhvdXQgd2ViIHdvcmtlcnMuICovDQoJZnVuY3Rpb24gcnVuSW1wb3J0KHBhdGgsIGNvbnRlbnRzLCBzdGF0cywgbWV0YWRhdGEpIHsNCgkgICAgcmV0dXJuIHBhcnNlUGFnZShwYXRoLCBjb250ZW50cywgc3RhdHMsIG1ldGFkYXRhKTsNCgl9CgoJLyoqIFNpbXBsaWZpZXMgcGFzc2luZyBkYXRhdmlldyB2YWx1ZXMgYWNyb3NzIHRoZSBKUyB3ZWIgd29ya2VyIGJhcnJpZXIuICovDQoJdmFyIFRyYW5zZmVyYWJsZTsNCgkoZnVuY3Rpb24gKFRyYW5zZmVyYWJsZSkgew0KCSAgICAvKiogQ29udmVydCBhIGxpdGVyYWwgdmFsdWUgdG8gYSBzZXJpYWxpemVyLWZyaWVuZGx5IHRyYW5zZmVyYWJsZSB2YWx1ZS4gKi8NCgkgICAgZnVuY3Rpb24gdHJhbnNmZXJhYmxlKHZhbHVlKSB7DQoJICAgICAgICAvLyBIYW5kbGUgc2ltcGxlIHVuaXZlcnNhbCB0eXBlcyBmaXJzdC4NCgkgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkgew0KCSAgICAgICAgICAgIGxldCBjb3BpZWQgPSBuZXcgTWFwKCk7DQoJICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsXSBvZiB2YWx1ZS5lbnRyaWVzKCkpDQoJICAgICAgICAgICAgICAgIGNvcGllZC5zZXQodHJhbnNmZXJhYmxlKGtleSksIHRyYW5zZmVyYWJsZSh2YWwpKTsNCgkgICAgICAgICAgICByZXR1cm4gY29waWVkOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHsNCgkgICAgICAgICAgICBsZXQgY29waWVkID0gbmV3IFNldCgpOw0KCSAgICAgICAgICAgIGZvciAobGV0IHZhbCBvZiB2YWx1ZSkNCgkgICAgICAgICAgICAgICAgY29waWVkLmFkZCh0cmFuc2ZlcmFibGUodmFsKSk7DQoJICAgICAgICAgICAgcmV0dXJuIGNvcGllZDsNCgkgICAgICAgIH0NCgkgICAgICAgIGxldCB3cmFwcGVkID0gVmFsdWVzLndyYXBWYWx1ZSh2YWx1ZSk7DQoJICAgICAgICBpZiAod3JhcHBlZCA9PT0gdW5kZWZpbmVkKQ0KCSAgICAgICAgICAgIHRocm93IEVycm9yKCJVbnJlY29nbml6ZWQgdHJhbnNmZXJhYmxlIHZhbHVlOiAiICsgdmFsdWUpOw0KCSAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHsNCgkgICAgICAgICAgICBjYXNlICJudWxsIjoNCgkgICAgICAgICAgICBjYXNlICJudW1iZXIiOg0KCSAgICAgICAgICAgIGNhc2UgInN0cmluZyI6DQoJICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlOw0KCSAgICAgICAgICAgIGNhc2UgImRhdGUiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gew0KCSAgICAgICAgICAgICAgICAgICAgIl9fX3RyYW5zZmVyLXR5cGUiOiAiZGF0ZSIsDQoJICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJhbnNmZXJhYmxlKHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSksDQoJICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IHpvbmU6IHdyYXBwZWQudmFsdWUuem9uZU5hbWUgfSwNCgkgICAgICAgICAgICAgICAgfTsNCgkgICAgICAgICAgICBjYXNlICJkdXJhdGlvbiI6DQoJICAgICAgICAgICAgICAgIHJldHVybiB7ICJfX190cmFuc2Zlci10eXBlIjogImR1cmF0aW9uIiwgdmFsdWU6IHRyYW5zZmVyYWJsZSh3cmFwcGVkLnZhbHVlLnRvT2JqZWN0KCkpIH07DQoJICAgICAgICAgICAgY2FzZSAiYXJyYXkiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXAodiA9PiB0cmFuc2ZlcmFibGUodikpOw0KCSAgICAgICAgICAgIGNhc2UgImxpbmsiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4geyAiX19fdHJhbnNmZXItdHlwZSI6ICJsaW5rIiwgdmFsdWU6IHRyYW5zZmVyYWJsZSh3cmFwcGVkLnZhbHVlLnRvT2JqZWN0KCkpIH07DQoJICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoNCgkgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt9Ow0KCSAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSkpDQoJICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZmVyYWJsZSh2YWx1ZSk7DQoJICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQoJICAgICAgICB9DQoJICAgIH0NCgkgICAgVHJhbnNmZXJhYmxlLnRyYW5zZmVyYWJsZSA9IHRyYW5zZmVyYWJsZTsNCgkgICAgLyoqIENvbnZlcnQgYSB0cmFuc2ZlcmFibGUgdmFsdWUgYmFjayB0byBhIGxpdGVyYWwgdmFsdWUgd2UgY2FuIHdvcmsgd2l0aC4gKi8NCgkgICAgZnVuY3Rpb24gdmFsdWUodHJhbnNmZXJhYmxlKSB7DQoJICAgICAgICBpZiAodHJhbnNmZXJhYmxlID09PSBudWxsKSB7DQoJICAgICAgICAgICAgcmV0dXJuIG51bGw7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmICh0cmFuc2ZlcmFibGUgPT09IHVuZGVmaW5lZCkgew0KCSAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmICh0cmFuc2ZlcmFibGUgaW5zdGFuY2VvZiBNYXApIHsNCgkgICAgICAgICAgICBsZXQgcmVhbCA9IG5ldyBNYXAoKTsNCgkgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWxdIG9mIHRyYW5zZmVyYWJsZS5lbnRyaWVzKCkpDQoJICAgICAgICAgICAgICAgIHJlYWwuc2V0KHZhbHVlKGtleSksIHZhbHVlKHZhbCkpOw0KCSAgICAgICAgICAgIHJldHVybiByZWFsOw0KCSAgICAgICAgfQ0KCSAgICAgICAgZWxzZSBpZiAodHJhbnNmZXJhYmxlIGluc3RhbmNlb2YgU2V0KSB7DQoJICAgICAgICAgICAgbGV0IHJlYWwgPSBuZXcgU2V0KCk7DQoJICAgICAgICAgICAgZm9yIChsZXQgdmFsIG9mIHRyYW5zZmVyYWJsZSkNCgkgICAgICAgICAgICAgICAgcmVhbC5hZGQodmFsdWUodmFsKSk7DQoJICAgICAgICAgICAgcmV0dXJuIHJlYWw7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRyYW5zZmVyYWJsZSkpIHsNCgkgICAgICAgICAgICByZXR1cm4gdHJhbnNmZXJhYmxlLm1hcCh2ID0+IHZhbHVlKHYpKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0cmFuc2ZlcmFibGUgPT09ICJvYmplY3QiKSB7DQoJICAgICAgICAgICAgaWYgKCJfX190cmFuc2Zlci10eXBlIiBpbiB0cmFuc2ZlcmFibGUpIHsNCgkgICAgICAgICAgICAgICAgc3dpdGNoICh0cmFuc2ZlcmFibGVbIl9fX3RyYW5zZmVyLXR5cGUiXSkgew0KCSAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGF0ZSI6DQoJICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGVPcHRzID0gdmFsdWUodHJhbnNmZXJhYmxlLm9wdGlvbnMpOw0KCSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRlRGF0YSA9IHZhbHVlKHRyYW5zZmVyYWJsZS52YWx1ZSk7DQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lXzEuZnJvbU9iamVjdChkYXRlRGF0YSwgeyB6b25lOiBkYXRlT3B0cy56b25lIH0pOw0KCSAgICAgICAgICAgICAgICAgICAgY2FzZSAiZHVyYXRpb24iOg0KCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBEdXJhdGlvbl8xLmZyb21PYmplY3QodmFsdWUodHJhbnNmZXJhYmxlLnZhbHVlKSk7DQoJICAgICAgICAgICAgICAgICAgICBjYXNlICJsaW5rIjoNCgkgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGluay5mcm9tT2JqZWN0KHZhbHVlKHRyYW5zZmVyYWJsZS52YWx1ZSkpOw0KCSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCgkgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgVW5yZWNvZ25pemVkIHRyYW5zZmVyIHR5cGUgJyR7dHJhbnNmZXJhYmxlWyJfX190cmFuc2Zlci10eXBlIl19J2ApOw0KCSAgICAgICAgICAgICAgICB9DQoJICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgIGxldCByZXN1bHQgPSB7fTsNCgkgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKHRyYW5zZmVyYWJsZSkpDQoJICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWUodmFsKTsNCgkgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KCSAgICAgICAgfQ0KCSAgICAgICAgcmV0dXJuIHRyYW5zZmVyYWJsZTsNCgkgICAgfQ0KCSAgICBUcmFuc2ZlcmFibGUudmFsdWUgPSB2YWx1ZTsNCgl9KShUcmFuc2ZlcmFibGUgfHwgKFRyYW5zZmVyYWJsZSA9IHt9KSk7CgoJLyoqIEVudHJ5LXBvaW50IHNjcmlwdCB1c2VkIGJ5IHRoZSBpbmRleCBhcyBhIHdlYiB3b3JrZXIuICovDQoJLyoqIEFuIGltcG9ydCB3aGljaCBjYW4gZmFpbCBhbmQgcmFpc2UgYW4gZXhjZXB0aW9uLCB3aGljaCB3aWxsIGJlIGNhdWdodCBieSB0aGUgaGFuZGxlci4gKi8NCglmdW5jdGlvbiBmYWlsYWJsZUltcG9ydChwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpIHsNCgkgICAgaWYgKG1ldGFkYXRhID09PSB1bmRlZmluZWQgfHwgbWV0YWRhdGEgPT09IG51bGwpIHsNCgkgICAgICAgIHRocm93IEVycm9yKGBDYW5ub3QgaW5kZXggZmlsZSwgc2luY2UgaXQgaGFzIG5vIE9ic2lkaWFuIGZpbGUgbWV0YWRhdGEuYCk7DQoJICAgIH0NCgkgICAgcmV0dXJuIHJ1bkltcG9ydChwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEpOw0KCX0NCglvbm1lc3NhZ2UgPSBhc3luYyAoZXZ0KSA9PiB7DQoJICAgIHRyeSB7DQoJICAgICAgICBsZXQgeyBwYXRoLCBjb250ZW50cywgc3RhdCwgbWV0YWRhdGEgfSA9IGV2dC5kYXRhOw0KCSAgICAgICAgbGV0IHJlc3VsdCA9IGZhaWxhYmxlSW1wb3J0KHBhdGgsIGNvbnRlbnRzLCBzdGF0LCBtZXRhZGF0YSk7DQoJICAgICAgICBwb3N0TWVzc2FnZSh7IHBhdGg6IGV2dC5kYXRhLnBhdGgsIHJlc3VsdDogVHJhbnNmZXJhYmxlLnRyYW5zZmVyYWJsZShyZXN1bHQpIH0pOw0KCSAgICB9DQoJICAgIGNhdGNoIChlcnJvcikgew0KCSAgICAgICAgY29uc29sZS5sb2coZXJyb3IpOw0KCSAgICAgICAgcG9zdE1lc3NhZ2Uoew0KCSAgICAgICAgICAgIHBhdGg6IGV2dC5kYXRhLnBhdGgsDQoJICAgICAgICAgICAgcmVzdWx0OiB7DQoJICAgICAgICAgICAgICAgICRlcnJvcjogYEZhaWxlZCB0byBpbmRleCBmaWxlOiAke2V2dC5kYXRhLnBhdGh9OiAke2Vycm9yfWAsDQoJICAgICAgICAgICAgfSwNCgkgICAgICAgIH0pOw0KCSAgICB9DQoJfTsKCn0pKCk7Cgo=', null, false); /* eslint-enable */ /** Controls and creates Dataview file importers, allowing for asynchronous loading and parsing of files. */ @@ -13840,12 +13871,13 @@ class FullIndex extends obsidian.Component { this.initialized = false; this.vault = app.vault; this.metadataCache = app.metadataCache; - this.persister = new LocalStorageCache(app.appId || "shared", indexVersion); this.pages = new Map(); - this.tags = new IndexMap(); - this.etags = new IndexMap(); + this.tags = new ValueCaseInsensitiveIndexMap(); + this.etags = new ValueCaseInsensitiveIndexMap(); this.links = new IndexMap(); this.revision = 0; + // Caches metadata via durable storage to speed up cache initialization when Obsidian restarts. + this.persister = new LocalStorageCache(app.appId || "shared", indexVersion); // Handles asynchronous reloading of files on web workers. this.addChild((this.importer = new FileImporter(2, this.vault, this.metadataCache))); // Prefix listens to file creation/deletion/rename, and not modifies, so we let it set up it's own listeners. @@ -14166,7 +14198,7 @@ class IndexMap { this.map = new Map(); this.invMap = new Map(); } - /** Returns all values for the given key. (This is unused except for tests - does it really need to be here?) */ + /** Returns all values for the given key. */ get(key) { let result = this.map.get(key); if (result) { @@ -14232,7 +14264,39 @@ class IndexMap { this.invMap.clear(); } } -IndexMap.EMPTY_SET = Object.freeze(new Set()); +IndexMap.EMPTY_SET = Object.freeze(new Set()); +/** Index map wrapper which is case-insensitive in the key. */ +class ValueCaseInsensitiveIndexMap { + /** Create a new, empty case insensitive index map. */ + constructor(delegate = new IndexMap()) { + this.delegate = delegate; + } + /** Returns all values for the given key. */ + get(key) { + return this.delegate.get(key); + } + /** Returns all keys that reference the given value. Mutating the returned set is not allowed. */ + getInverse(value) { + return this.delegate.getInverse(value.toLocaleLowerCase()); + } + /** Sets the key to the given values; this will delete the old mapping for the key if one was present. */ + set(key, values) { + this.delegate.set(key, new Set(Array.from(values).map(v => v.toLocaleLowerCase()))); + return this; + } + /** Clears all values for the given key so they can be re-added. */ + delete(key) { + return this.delegate.delete(key); + } + /** Rename all references to the given key to a new value. */ + rename(oldKey, newKey) { + return this.delegate.rename(oldKey, newKey); + } + /** Clear the entire index. */ + clear() { + this.delegate.clear(); + } +} /** Collect data matching a source query. */ /** Find source paths which match the given source. */ @@ -14744,7 +14808,7 @@ var DefaultFunctions; } return result; }; - // Reverse aan array or string. + // Reverse an array or string. DefaultFunctions.reverse = new FunctionBuilder("reverse") .add1("array", l => { let result = []; @@ -15633,7 +15697,7 @@ async function executeTable(query, index, origin, settings) { fields[field.name] = field.field; return executeCoreExtract(fileset.value, rootContext, query.operations, fields).map(core => { if (showId) { - const idName = core.idMeaning.type === "group" ? settings.tableGroupColumnName : settings.tableIdColumnName; + const idName = core.idMeaning.type === "group" ? core.idMeaning.name : settings.tableIdColumnName; let names = [idName].concat(targetFields.map(f => f.name)); let data = core.data.map(p => [p.id].concat(targetFields.map(f => p.data[f.name]))); return { core, names, data, idMeaning: core.idMeaning }; @@ -16146,7 +16210,8 @@ function TaskItem({ item }) { line: item.line, }, }; - context.app.workspace.openLinkText(item.link.toFile().obsidianLink(), item.path, evt.ctrlKey, selectionState); + // MacOS interprets the Command key as Meta. + context.app.workspace.openLinkText(item.link.toFile().obsidianLink(), item.path, evt.ctrlKey || (evt.metaKey && obsidian.Platform.isMacOS), selectionState); }; // Check/uncheck trhe task in the original file. const onChecked = (evt) => { @@ -16158,7 +16223,7 @@ function TaskItem({ item }) { parent === null || parent === void 0 ? void 0 : parent.setAttribute("data-task", status); let updatedText = undefined; if (context.settings.taskCompletionTracking) - updatedText = setTaskCompletion(item.text, context.settings.taskCompletionText, completed); + updatedText = setTaskCompletion(item.text, context.settings.taskCompletionUseEmojiShorthand, context.settings.taskCompletionText, context.settings.taskCompletionDateFormat, completed); rewriteTask(context.app.vault, item, status, updatedText); }; const checked = item.status !== " "; @@ -16298,11 +16363,16 @@ function trimEndingLines(text) { return parts.join("\n"); } /** Set the task completion key on check. */ -function setTaskCompletion(originalText, completionKey, complete) { - if (!complete) - return trimEndingLines(setInlineField(originalText, completionKey, undefined)); +function setTaskCompletion(originalText, useEmojiShorthand, completionKey, completionDateFormat, complete) { + if (!complete && !useEmojiShorthand) + return trimEndingLines(setInlineField(originalText, completionKey)); let parts = originalText.split(/\r?\n/u); - parts[parts.length - 1] = setInlineField(parts[parts.length - 1], completionKey, DateTime_1.now().toISODate()); + if (useEmojiShorthand) { + parts[parts.length - 1] = setEmojiShorthandCompletionField(parts[parts.length - 1], complete ? DateTime_1.now().toFormat("yyyy-MM-dd") : ""); + } + else { + parts[parts.length - 1] = setInlineField(parts[parts.length - 1], completionKey, DateTime_1.now().toFormat(completionDateFormat)); + } return parts.join("\n"); } /** Rewrite a task with the given completion status and new text. */ @@ -20289,6 +20359,251 @@ async function replaceInlineFields(ctx, init) { } } +/* + * inspired and adapted from https://github.com/artisticat1/obsidian-latex-suite/blob/main/src/conceal.ts + * + * The original work is MIT-licensed. + * + * MIT License + * + * Copyright (c) 2022 artisticat1 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * */ +function selectionAndRangeOverlap(selection, rangeFrom, rangeTo) { + for (const range of selection.ranges) { + if (range.from <= rangeTo && range.to >= rangeFrom) { + return true; + } + } + return false; +} +class InlineWidget extends view.WidgetType { + constructor(cssClasses, rawQuery, el, view) { + super(); + this.cssClasses = cssClasses; + this.rawQuery = rawQuery; + this.el = el; + this.view = view; + } + // Widgets only get updated when the raw query changes/the element gets focus and loses it + // to prevent redraws when the editor updates. + eq(other) { + if (other.rawQuery === this.rawQuery) { + // change CSS classes without redrawing the element + for (let value of other.cssClasses) { + if (!this.cssClasses.includes(value)) { + this.el.removeClass(value); + } + else { + this.el.addClass(value); + } + } + return true; + } + return false; + } + // Add CSS classes and return HTML element. + // In "complex" cases it will get filled with the correct text/child elements later. + toDOM(view) { + this.el.addClasses(this.cssClasses); + return this.el; + } + /* Make queries only editable when shift is pressed (or navigated inside with the keyboard + * or the mouse is placed at the end, but that is always possible regardless of this method). + * Mostly useful for links, and makes results selectable. + * If the widgets should always be expandable, make this always return false. + */ + ignoreEvent(event) { + // instanceof check does not work in pop-out windows, so check it like this + if (event.type === "mousedown") { + const currentPos = this.view.posAtCoords({ x: event.x, y: event.y }); + if (event.shiftKey) { + // Set the cursor after the element so that it doesn't select starting from the last cursor position. + if (currentPos) { + //@ts-ignore + const { editor } = this.view.state.field(obsidian.editorEditorField).state.field(obsidian.editorViewField); + editor.setCursor(editor.offsetToPos(currentPos)); + } + return false; + } + } + return true; + } +} +function getCssClasses(nodeName) { + const classes = []; + if (nodeName.includes("strong")) { + classes.push("cm-strong"); + } + if (nodeName.includes("em")) { + classes.push("cm-em"); + } + if (nodeName.includes("highlight")) { + classes.push("cm-highlight"); + } + if (nodeName.includes("strikethrough")) { + classes.push("cm-strikethrough"); + } + if (nodeName.includes("comment")) { + classes.push("cm-comment"); + } + return classes; +} +function inlineRender(view$1, index, dvSettings, api) { + // still doesn't work as expected for tables and callouts + if (!index.initialized) + return; + const currentFile = app.workspace.getActiveFile(); + if (!currentFile) + return; + const widgets = []; + const selection = view$1.state.selection; + /* before: + * em for italics + * highlight for highlight + * after: + * strong for bold + * strikethrough for strikethrough + */ + const regex = new RegExp(".*?_?inline-code_?.*"); + const PREAMBLE = "const dataview=this;const dv=this;"; + for (const { from, to } of view$1.visibleRanges) { + language.syntaxTree(view$1.state).iterate({ + from, + to, + enter: ({ node }) => { + const type = node.type; + // markdown formatting symbols + if (type.name.includes("formatting")) + return; + // current node is not inline code + if (!regex.test(type.name)) + return; + // contains the position of inline code + const start = node.from; + const end = node.to; + // don't continue if current cursor position and inline code node (including formatting + // symbols) overlap + if (selectionAndRangeOverlap(selection, start - 1, end + 1)) + return; + const text = view$1.state.doc.sliceString(start, end); + let code = ""; + let result = ""; + const el = createSpan({ + cls: ["dataview", "dataview-inline"], + }); + /* If the query result is predefined text (e.g. in the case of errors), set innerText to it. + * Otherwise, pass on an empty element and fill it in later. + * This is necessary because {@link InlineWidget.toDOM} is synchronous but some rendering + * asynchronous. + */ + if (dvSettings.inlineQueryPrefix.length > 0 && text.startsWith(dvSettings.inlineQueryPrefix)) { + code = text.substring(dvSettings.inlineQueryPrefix.length).trim(); + const field = tryOrPropogate(() => parseField(code)); + if (!field.successful) { + result = `Dataview (inline field '${code}'): ${field.error}`; + el.innerText = result; + } + else { + const fieldValue = field.value; + const intermediateResult = tryOrPropogate(() => executeInline(fieldValue, currentFile.path, index, dvSettings)); + if (!intermediateResult.successful) { + result = `Dataview (for inline query '${fieldValue}'): ${intermediateResult.error}`; + el.innerText = result; + } + else { + const { value } = intermediateResult; + result = value; + renderValue(result, el, currentFile.path, null, dvSettings); + } + } + } + else if (dvSettings.inlineJsQueryPrefix.length > 0 && + text.startsWith(dvSettings.inlineJsQueryPrefix)) { + if (dvSettings.enableInlineDataviewJs) { + code = text.substring(dvSettings.inlineJsQueryPrefix.length).trim(); + try { + // for setting the correct context for dv/dataview + const myEl = createDiv(); + const dvInlineApi = new DataviewInlineApi(api, null, myEl, currentFile.path); + if (code.includes("await")) { + evalInContext("(async () => { " + PREAMBLE + code + " })()").then((result) => { + renderValue(result, el, currentFile.path, null, dvSettings); + }); + } + else { + result = evalInContext(PREAMBLE + code); + renderValue(result, el, currentFile.path, null, dvSettings); + } + function evalInContext(script) { + return function () { + return eval(script); + }.call(dvInlineApi); + } + } + catch (e) { + result = `Dataview (for inline JS query '${code}'): ${e}`; + el.innerText = result; + } + } + else { + result = "(disabled; enable in settings)"; + el.innerText = result; + } + } + else { + return; + } + const classes = getCssClasses(type.name); + widgets.push(view.Decoration.replace({ + widget: new InlineWidget(classes, code, el, view$1), + inclusive: false, + block: false, + }).range(start - 1, end + 1)); + }, + }); + } + return view.Decoration.set(widgets, true); +} +function inlinePlugin(index, settings, api) { + return view.ViewPlugin.fromClass(class { + constructor(view$1) { + var _a; + this.decorations = (_a = inlineRender(view$1, index, settings, api)) !== null && _a !== void 0 ? _a : view.Decoration.none; + } + update(update) { + var _a; + // only activate in LP and not source mode + //@ts-ignore + if (!update.state.field(obsidian.editorLivePreviewField)) { + this.decorations = view.Decoration.none; + return; + } + if (update.docChanged || update.viewportChanged || update.selectionSet) { + this.decorations = (_a = inlineRender(update.view, index, settings, api)) !== null && _a !== void 0 ? _a : view.Decoration.none; + } + } + }, { decorations: v => v.decorations }); +} + class DataviewPlugin extends obsidian.Plugin { constructor() { super(...arguments); @@ -20333,6 +20648,9 @@ class DataviewPlugin extends obsidian.Plugin { await replaceInlineFields(ctx, init); } }); + // editor extension for inline queries + this.cmExtension = [inlinePlugin(this.index, this.settings, this.api)]; + this.registerEditorExtension(this.cmExtension); // Dataview "force refresh" operation. this.addCommand({ id: "dataview-force-refresh-views", @@ -20363,7 +20681,9 @@ class DataviewPlugin extends obsidian.Plugin { updateRefreshSettings() { this.debouncedRefresh = obsidian.debounce(() => this.app.workspace.trigger("dataview:refresh-views"), this.settings.refreshInterval, true); } - onunload() { } + onunload() { + console.log(`Dataview: version ${this.manifest.version} unloaded.`); + } /** Register a markdown post processor with the given priority. */ registerPriorityMarkdownPostProcessor(priority, processor) { let registered = this.registerMarkdownPostProcessor(processor); @@ -20588,20 +20908,97 @@ class GeneralSettingsTab extends obsidian.PluginSettingTab { this.plugin.index.touch(); })); this.containerEl.createEl("h3", { text: "Task Settings" }); + let taskCompletionSubsettingsEnabled = this.plugin.settings.taskCompletionTracking; + let taskCompletionInlineSubsettingsEnabled = taskCompletionSubsettingsEnabled && !this.plugin.settings.taskCompletionUseEmojiShorthand; new obsidian.Setting(this.containerEl) .setName("Automatic Task Completion Tracking") - .setDesc("If enabled, Dataview will automatically append tasks with their completion date when they are checked in Dataview views.") + .setDesc(createFragment(el => { + el.appendText("If enabled, Dataview will automatically append tasks with their completion date when they are checked in Dataview views."); + el.createEl("br"); + el.appendText("Example with default field name and date format: - [x] my task [completion:: 2022-01-01]"); + })) .addToggle(toggle => toggle.setValue(this.plugin.settings.taskCompletionTracking).onChange(async (value) => { await this.plugin.updateSettings({ taskCompletionTracking: value }); + taskCompletionSubsettingsEnabled = value; + this.display(); })); - new obsidian.Setting(this.containerEl) - .setName("Automatic Task Completion Field") - .setDesc("Text used as inline field key to track task completion date when toggling a task's checkbox in a dataview view.") - .addText(text => text.setValue(this.plugin.settings.taskCompletionText).onChange(async (value) => { - await this.plugin.updateSettings({ taskCompletionText: value.trim() }); - })); + let taskEmojiShorthand = new obsidian.Setting(this.containerEl) + .setName("Use Emoji Shorthand for Completion") + .setDisabled(!taskCompletionSubsettingsEnabled); + if (taskCompletionSubsettingsEnabled) + taskEmojiShorthand + .setDesc(createFragment(el => { + el.appendText('If enabled, will use emoji shorthand instead of inline field formatting to fill out implicit task field "completion".'); + el.createEl("br"); + el.appendText("Example: - [x] my task ✅ 2022-01-01"); + el.createEl("br"); + el.appendText("Disable this to customize the completion date format or field name, or to use Dataview inline field formatting."); + el.createEl("br"); + el.appendText('Only available when "Automatic Task Completion Tracking" is enabled.'); + })) + .addToggle(toggle => toggle.setValue(this.plugin.settings.taskCompletionUseEmojiShorthand).onChange(async (value) => { + await this.plugin.updateSettings({ taskCompletionUseEmojiShorthand: value }); + taskCompletionInlineSubsettingsEnabled = taskCompletionSubsettingsEnabled && !value; + this.display(); + })); + else + taskEmojiShorthand.setDesc('Only available when "Automatic Task Completion Tracking" is enabled.'); + let taskFieldName = new obsidian.Setting(this.containerEl) + .setName("Completion Field Name") + .setDisabled(!taskCompletionInlineSubsettingsEnabled); + if (taskCompletionInlineSubsettingsEnabled) + taskFieldName + .setDesc(createFragment(el => { + el.appendText("Text used as inline field key for task completion date when toggling a task's checkbox in a dataview view."); + el.createEl("br"); + el.appendText('Only available when "Automatic Task Completion Tracking" is enabled and "Use Emoji Shorthand for Completion" is disabled.'); + })) + .addText(text => text.setValue(this.plugin.settings.taskCompletionText).onChange(async (value) => { + await this.plugin.updateSettings({ taskCompletionText: value.trim() }); + })); + else + taskFieldName.setDesc('Only available when "Automatic Task Completion Tracking" is enabled and "Use Emoji Shorthand for Completion" is disabled.'); + let taskDtFormat = new obsidian.Setting(this.containerEl) + .setName("Completion Date Format") + .setDisabled(!taskCompletionInlineSubsettingsEnabled); + if (taskCompletionInlineSubsettingsEnabled) { + let descTextLines = [ + "Date-time format for task completion date when toggling a task's checkbox in a dataview view (see Luxon date format options).", + 'Only available when "Automatic Task Completion Tracking" is enabled and "Use Emoji Shorthand for Completion" is disabled.', + "Currently: ", + ]; + taskDtFormat + .setDesc(createFragment(el => { + el.appendText(descTextLines[0]); + el.createEl("br"); + el.appendText(descTextLines[1]); + el.createEl("br"); + el.appendText(descTextLines[2] + + DateTime_1.now().toFormat(this.plugin.settings.taskCompletionDateFormat, { + locale: currentLocale(), + })); + })) + .addText(text => text + .setPlaceholder(DEFAULT_SETTINGS.taskCompletionDateFormat) + .setValue(this.plugin.settings.taskCompletionDateFormat) + .onChange(async (value) => { + taskDtFormat.setDesc(createFragment(el => { + el.appendText(descTextLines[0]); + el.createEl("br"); + el.appendText(descTextLines[1]); + el.createEl("br"); + el.appendText(descTextLines[2] + + DateTime_1.now().toFormat(value.trim(), { locale: currentLocale() })); + })); + await this.plugin.updateSettings({ taskCompletionDateFormat: value.trim() }); + this.plugin.index.touch(); + })); + } + else { + taskDtFormat.setDesc('Only available when "Automatic Task Completion Tracking" is enabled and "Use Emoji Shorthand for Completion" is disabled.'); + } } } module.exports = DataviewPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vbm9kZV9tb2R1bGVzL2x1eG9uL2J1aWxkL2Nqcy1icm93c2VyL2x1eG9uLmpzIiwiLi4vc3JjL3NldHRpbmdzLnRzIiwiLi4vc3JjL2FwaS9yZXN1bHQudHMiLCIuLi9ub2RlX21vZHVsZXMvcGFyc2ltbW9uL2J1aWxkL3BhcnNpbW1vbi51bWQubWluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4L2luZGV4LmpzIiwiLi4vc3JjL3V0aWwvbm9ybWFsaXplLnRzIiwiLi4vc3JjL2RhdGEtbW9kZWwvdmFsdWUudHMiLCIuLi9zcmMvYXBpL2RhdGEtYXJyYXkudHMiLCIuLi9zcmMvdXRpbC9sb2NhbGUudHMiLCIuLi9zcmMvdWkvcmVuZGVyLnRzIiwiLi4vbm9kZV9tb2R1bGVzL3BhcGFwYXJzZS9wYXBhcGFyc2UubWluLmpzIiwiLi4vc3JjL2V4cHJlc3Npb24vZmllbGQudHMiLCIuLi9zcmMvZGF0YS1pbmRleC9zb3VyY2UudHMiLCIuLi9zcmMvZXhwcmVzc2lvbi9wYXJzZS50cyIsIi4uL3NyYy9kYXRhLWltcG9ydC9pbmxpbmUtZmllbGQudHMiLCIuLi9zcmMvZGF0YS1tb2RlbC9tYXJrZG93bi50cyIsIi4uL3NyYy9kYXRhLWltcG9ydC9tYXJrZG93bi1maWxlLnRzIiwiLi4vc3JjL2RhdGEtaW1wb3J0L2Nzdi50cyIsIi4uL3NyYy9kYXRhLW1vZGVsL3RyYW5zZmVyYWJsZS50cyIsIi4uL25vZGVfbW9kdWxlcy9sb2NhbGZvcmFnZS9kaXN0L2xvY2FsZm9yYWdlLmpzIiwiLi4vc3JjL2RhdGEtaW1wb3J0L3BlcnNpc3Rlci50cyIsIi4uL3NyYy9kYXRhLWltcG9ydC93ZWItd29ya2VyL2ltcG9ydC1tYW5hZ2VyLnRzIiwiLi4vc3JjL2RhdGEtaW5kZXgvaW5kZXgudHMiLCIuLi9zcmMvZGF0YS1pbmRleC9yZXNvbHZlci50cyIsIi4uL3NyYy9leHByZXNzaW9uL2Z1bmN0aW9ucy50cyIsIi4uL3NyYy9leHByZXNzaW9uL2JpbmFyeW9wLnRzIiwiLi4vc3JjL2V4cHJlc3Npb24vY29udGV4dC50cyIsIi4uL3NyYy9xdWVyeS9lbmdpbmUudHMiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFyZS12ZXJzaW9ucy9pbmRleC5tanMiLCIuLi9ub2RlX21vZHVsZXMvcHJlYWN0L2Rpc3QvcHJlYWN0Lm1vZHVsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9wcmVhY3QvaG9va3MvZGlzdC9ob29rcy5tb2R1bGUuanMiLCIuLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanMiLCIuLi9zcmMvdXRpbC9tZWRpYS50cyIsIi4uL3NyYy91aS9tYXJrZG93bi50c3giLCIuLi9zcmMvdWkvdmlld3MvdGFzay12aWV3LnRzeCIsIi4uL3NyYy91aS92aWV3cy9saXN0LXZpZXcudHN4IiwiLi4vc3JjL3VpL3ZpZXdzL3RhYmxlLXZpZXcudHN4IiwiLi4vc3JjL3F1ZXJ5L3F1ZXJ5LnRzIiwiLi4vc3JjL3F1ZXJ5L3BhcnNlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL29ic2lkaWFuLWNhbGVuZGFyLXVpL2Rpc3QvaW5kZXgubWpzIiwiLi4vc3JjL3VpL3JlZnJlc2hhYmxlLXZpZXcudHMiLCIuLi9zcmMvdWkvdmlld3MvY2FsZW5kYXItdmlldy50cyIsIi4uL3NyYy9hcGkvaW5saW5lLWFwaS50cyIsIi4uL3NyYy91aS92aWV3cy9qcy12aWV3LnRzIiwiLi4vc3JjL3VpL2V4cG9ydC9tYXJrZG93bi50cyIsIi4uL3NyYy9hcGkvcGx1Z2luLWFwaS50cyIsIi4uL3NyYy91aS92aWV3cy9pbmxpbmUtdmlldy50cyIsIi4uL3NyYy91aS92aWV3cy9pbmxpbmUtZmllbGQudHN4IiwiLi4vc3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIm4iLCJzIiwibCIsInRoaXMiLCJEYXRlVGltZSIsIlAuYWx0IiwiUC5yZWdleCIsIlAud2hpdGVzcGFjZSIsIlAuYW55IiwiRHVyYXRpb24iLCJNYXJrZG93blJlbmRlcmVyIiwiUC5zZXFNYXAiLCJQLnNlcSIsIlAub3B0V2hpdGVzcGFjZSIsIlAuY3VzdG9tIiwiUC5jcmVhdGVMYW5ndWFnZSIsIlAucmVnZXhwIiwiUC5zdHJpbmciLCJQLm5vbmVPZiIsIlAuc3VjY2VlZCIsIlAuZmFpbCIsIkxpc3RJdGVtIiwiUGFwYS5wYXJzZSIsInJlcXVpcmUiLCJnbG9iYWwiLCJDb21wb25lbnQiLCJEYXRhdmlld0ltcG9ydFdvcmtlciIsIlRGaWxlIiwiVEZvbGRlciIsInUiLCJ0IiwibyIsInIiLCJmIiwiZSIsImMiLCJhIiwiaCIsInYiLCJ5IiwicCIsImQiLCJfIiwiayIsImIiLCJtIiwiZyIsImoiLCJ6IiwidyIsIngiLCJQIiwiTiIsIk0iLCJBIiwiQyIsIkgiLCIkIiwiVCIsIkkiLCJPIiwiTCIsIlMiLCJxIiwiQiIsIkQiLCJGIiwiaSIsImNyZWF0ZUNvbnRleHQiLCJ1c2VSZWYiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwiRnJhZ21lbnQiLCJ1c2VTdGF0ZSIsIk1hcmtkb3duUmVuZGVyQ2hpbGQiLCJyZW5kZXIiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiUC5zZXBCeSIsIlBsdWdpbiIsImRlYm91bmNlIiwiUGx1Z2luU2V0dGluZ1RhYiIsIlNldHRpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzlEO0FBQ0EsU0FBUyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFO0FBQzFDLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDekMsSUFBSSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsSUFBSSxV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LE1BQU0sS0FBSyxFQUFFLEVBQUU7QUFDL0QsSUFBSSxPQUFPLFNBQVMsQ0FBQztBQUNyQixHQUFHLE1BQU07QUFDVCxJQUFJLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLEdBQUc7QUFDSCxDQUFDO0FBQ0QsU0FBUyxXQUFXLENBQUMsUUFBUSxFQUFFO0FBQy9CO0FBQ0EsRUFBRSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUU7QUFDckUsSUFBSSxPQUFPLFNBQVMsQ0FBQztBQUNyQixHQUFHLE1BQU07QUFDVCxJQUFJLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQy9DLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLEdBQUc7QUFDSCxDQUFDO0FBQ0QsU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7QUFDN0MsRUFBRSxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRTtBQUM3QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFDdkIsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUNyRCxFQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDM0MsQ0FBQztBQUNEO0FBQ0EsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFO0FBQzFCLEVBQUUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFDRCxTQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUU7QUFDMUIsRUFBRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3RDLENBQUM7QUFDRCxTQUFTLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO0FBQ2xDLEVBQUUsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztBQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQztBQUNBLEVBQUUsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFO0FBQ3RCLElBQUksT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUN6QyxHQUFHLE1BQU07QUFDVCxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RSxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxZQUFZLENBQUMsR0FBRyxFQUFFO0FBQzNCLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3hHO0FBQ0EsRUFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO0FBQ3ZDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDaEQsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQztBQUNELFNBQVMsZUFBZSxDQUFDLFFBQVEsRUFBRTtBQUNuQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDOUcsTUFBTSxJQUFJLEdBQUcsUUFBUSxHQUFHLENBQUM7QUFDekIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9GLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBQ0QsU0FBUyxjQUFjLENBQUMsSUFBSSxFQUFFO0FBQzlCLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFO0FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUM7QUFDaEIsR0FBRyxNQUFNLE9BQU8sSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDdEQsQ0FBQztBQUNEO0FBQ0EsU0FBUyxhQUFhLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQzNELEVBQUUsSUFBSSxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDM0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sUUFBUSxHQUFHO0FBQ2pCLElBQUksU0FBUyxFQUFFLEtBQUs7QUFDcEIsSUFBSSxJQUFJLEVBQUUsU0FBUztBQUNuQixJQUFJLEtBQUssRUFBRSxTQUFTO0FBQ3BCLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxJQUFJLEVBQUUsU0FBUztBQUNuQixJQUFJLE1BQU0sRUFBRSxTQUFTO0FBQ3JCLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxJQUFJLFFBQVEsRUFBRTtBQUNoQixJQUFJLFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ2pDLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzFCLElBQUksWUFBWSxFQUFFLFlBQVk7QUFDOUIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2Y7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUMvRixJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxjQUFjLENBQUM7QUFDbkQsR0FBRyxDQUFDLENBQUM7QUFDTCxFQUFFLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLENBQUM7QUFDRDtBQUNBLFNBQVMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUU7QUFDaEQsRUFBRSxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsRUFBRSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDN0IsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQzlDLE1BQU0sWUFBWSxHQUFHLE9BQU8sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDOUUsRUFBRSxPQUFPLE9BQU8sR0FBRyxFQUFFLEdBQUcsWUFBWSxDQUFDO0FBQ3JDLENBQUM7QUFDRDtBQUNBLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUN6QixFQUFFLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxFQUFFLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLElBQUksb0JBQW9CLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDOUksRUFBRSxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBQ0QsU0FBUyxlQUFlLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRTtBQUMxQyxFQUFFLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN0QjtBQUNBLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUU7QUFDckIsSUFBSSxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEMsTUFBTSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckIsTUFBTSxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxTQUFTO0FBQ2xELE1BQU0sVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBQ0QsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUN0QyxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNqRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDckM7QUFDQSxFQUFFLFFBQVEsTUFBTTtBQUNoQixJQUFJLEtBQUssT0FBTztBQUNoQixNQUFNLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pFO0FBQ0EsSUFBSSxLQUFLLFFBQVE7QUFDakIsTUFBTSxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNwRTtBQUNBLElBQUksS0FBSyxRQUFRO0FBQ2pCLE1BQU0sT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRTtBQUNBLElBQUk7QUFDSixNQUFNLE1BQU0sSUFBSSxVQUFVLENBQUMsZUFBZSxHQUFHLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxDQUFDO0FBQzlGLEdBQUc7QUFDSCxDQUFDO0FBQ0QsU0FBUyxVQUFVLENBQUMsR0FBRyxFQUFFO0FBQ3pCLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBQ0QsSUFBSSxTQUFTLEdBQUcsOEVBQThFLENBQUM7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxVQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVJLElBQUksV0FBVyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDaEYsU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQ3hCLEVBQUUsUUFBUSxNQUFNO0FBQ2hCLElBQUksS0FBSyxRQUFRO0FBQ2pCLE1BQU0sT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3JDO0FBQ0EsSUFBSSxLQUFLLE9BQU87QUFDaEIsTUFBTSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEM7QUFDQSxJQUFJLEtBQUssTUFBTTtBQUNmLE1BQU0sT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ25DO0FBQ0EsSUFBSSxLQUFLLFNBQVM7QUFDbEIsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3RTtBQUNBLElBQUksS0FBSyxTQUFTO0FBQ2xCLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEY7QUFDQSxJQUFJO0FBQ0osTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixHQUFHO0FBQ0gsQ0FBQztBQUNELElBQUksWUFBWSxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDbEcsSUFBSSxhQUFhLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RSxJQUFJLGNBQWMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3pELFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUMxQixFQUFFLFFBQVEsTUFBTTtBQUNoQixJQUFJLEtBQUssUUFBUTtBQUNqQixNQUFNLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN2QztBQUNBLElBQUksS0FBSyxPQUFPO0FBQ2hCLE1BQU0sT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3RDO0FBQ0EsSUFBSSxLQUFLLE1BQU07QUFDZixNQUFNLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNyQztBQUNBLElBQUksS0FBSyxTQUFTO0FBQ2xCLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2pEO0FBQ0EsSUFBSTtBQUNKLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsR0FBRztBQUNILENBQUM7QUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QixJQUFJLFFBQVEsR0FBRyxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNoRCxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QixJQUFJLFVBQVUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QixTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDdEIsRUFBRSxRQUFRLE1BQU07QUFDaEIsSUFBSSxLQUFLLFFBQVE7QUFDakIsTUFBTSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkM7QUFDQSxJQUFJLEtBQUssT0FBTztBQUNoQixNQUFNLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsQztBQUNBLElBQUksS0FBSyxNQUFNO0FBQ2YsTUFBTSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakM7QUFDQSxJQUFJO0FBQ0osTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixHQUFHO0FBQ0gsQ0FBQztBQUNELFNBQVMsbUJBQW1CLENBQUMsRUFBRSxFQUFFO0FBQ2pDLEVBQUUsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFDRCxTQUFTLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDeEMsRUFBRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDdEMsRUFBRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFDRCxTQUFTLGNBQWMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFO0FBQ3BDLEVBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFDRCxTQUFTLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMxRCxFQUFFLElBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzFCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUN2QixHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztBQUNuQixHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksS0FBSyxHQUFHO0FBQ2QsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBQzFCLElBQUksUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztBQUNqQyxJQUFJLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7QUFDNUIsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBQzFCLElBQUksSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7QUFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBQzFCLElBQUksT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztBQUMvQixJQUFJLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7QUFDL0IsR0FBRyxDQUFDO0FBQ0osRUFBRSxJQUFJLFFBQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3RFO0FBQ0EsRUFBRSxJQUFJLE9BQU8sS0FBSyxNQUFNLElBQUksUUFBUSxFQUFFO0FBQ3RDLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUNoQztBQUNBLElBQUksUUFBUSxLQUFLO0FBQ2pCLE1BQU0sS0FBSyxDQUFDO0FBQ1osUUFBUSxPQUFPLEtBQUssR0FBRyxVQUFVLEdBQUcsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RDtBQUNBLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDYixRQUFRLE9BQU8sS0FBSyxHQUFHLFdBQVcsR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlEO0FBQ0EsTUFBTSxLQUFLLENBQUM7QUFDWixRQUFRLE9BQU8sS0FBSyxHQUFHLE9BQU8sR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFEO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQztBQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNoQyxNQUFNLFFBQVEsR0FBRyxRQUFRLEtBQUssQ0FBQztBQUMvQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDaEgsRUFBRSxPQUFPLFFBQVEsR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxNQUFNLEdBQUcsS0FBSyxHQUFHLFFBQVEsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDO0FBQ3pGLENBQUM7QUFDRDtBQUNBLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUU7QUFDaEQsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDYjtBQUNBLEVBQUUsS0FBSyxJQUFJLFNBQVMsR0FBRywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDckcsSUFBSSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQzVCO0FBQ0EsSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDdkIsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQztBQUNyQixLQUFLLE1BQU07QUFDWCxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUNEO0FBQ0EsSUFBSSx1QkFBdUIsR0FBRztBQUM5QixFQUFFLENBQUMsRUFBRSxVQUFVO0FBQ2YsRUFBRSxFQUFFLEVBQUUsUUFBUTtBQUNkLEVBQUUsR0FBRyxFQUFFLFNBQVM7QUFDaEIsRUFBRSxJQUFJLEVBQUUsU0FBUztBQUNqQixFQUFFLENBQUMsRUFBRSxXQUFXO0FBQ2hCLEVBQUUsRUFBRSxFQUFFLGlCQUFpQjtBQUN2QixFQUFFLEdBQUcsRUFBRSxzQkFBc0I7QUFDN0IsRUFBRSxJQUFJLEVBQUUscUJBQXFCO0FBQzdCLEVBQUUsQ0FBQyxFQUFFLGNBQWM7QUFDbkIsRUFBRSxFQUFFLEVBQUUsb0JBQW9CO0FBQzFCLEVBQUUsR0FBRyxFQUFFLHlCQUF5QjtBQUNoQyxFQUFFLElBQUksRUFBRSx3QkFBd0I7QUFDaEMsRUFBRSxDQUFDLEVBQUUsY0FBYztBQUNuQixFQUFFLEVBQUUsRUFBRSxZQUFZO0FBQ2xCLEVBQUUsR0FBRyxFQUFFLGFBQWE7QUFDcEIsRUFBRSxJQUFJLEVBQUUsYUFBYTtBQUNyQixFQUFFLENBQUMsRUFBRSwyQkFBMkI7QUFDaEMsRUFBRSxFQUFFLEVBQUUseUJBQXlCO0FBQy9CLEVBQUUsR0FBRyxFQUFFLDBCQUEwQjtBQUNqQyxFQUFFLElBQUksRUFBRSwwQkFBMEI7QUFDbEMsQ0FBQyxDQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsZ0JBQWdCLFlBQVk7QUFDekMsRUFBRSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDbkQsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2QyxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDcEQsSUFBSSxJQUFJLE9BQU8sR0FBRyxJQUFJO0FBQ3RCLFFBQVEsV0FBVyxHQUFHLEVBQUU7QUFDeEIsUUFBUSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQzFCLElBQUksSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3BCO0FBQ0EsSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUI7QUFDQSxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUNyQixRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDcEMsVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3RCLFlBQVksT0FBTyxFQUFFLFNBQVM7QUFDOUIsWUFBWSxHQUFHLEVBQUUsV0FBVztBQUM1QixXQUFXLENBQUMsQ0FBQztBQUNiLFNBQVM7QUFDVDtBQUNBLFFBQVEsT0FBTyxHQUFHLElBQUksQ0FBQztBQUN2QixRQUFRLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDekIsUUFBUSxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUM7QUFDL0IsT0FBTyxNQUFNLElBQUksU0FBUyxFQUFFO0FBQzVCLFFBQVEsV0FBVyxJQUFJLENBQUMsQ0FBQztBQUN6QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssT0FBTyxFQUFFO0FBQ2hDLFFBQVEsV0FBVyxJQUFJLENBQUMsQ0FBQztBQUN6QixPQUFPLE1BQU07QUFDYixRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDcEMsVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3RCLFlBQVksT0FBTyxFQUFFLEtBQUs7QUFDMUIsWUFBWSxHQUFHLEVBQUUsV0FBVztBQUM1QixXQUFXLENBQUMsQ0FBQztBQUNiLFNBQVM7QUFDVDtBQUNBLFFBQVEsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUN4QixRQUFRLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDcEIsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNoQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDbEIsUUFBUSxPQUFPLEVBQUUsU0FBUztBQUMxQixRQUFRLEdBQUcsRUFBRSxXQUFXO0FBQ3hCLE9BQU8sQ0FBQyxDQUFDO0FBQ1QsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLE1BQU0sQ0FBQztBQUNsQixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsU0FBUyxDQUFDLHNCQUFzQixHQUFHLFNBQVMsc0JBQXNCLENBQUMsS0FBSyxFQUFFO0FBQzVFLElBQUksT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQyxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtBQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO0FBQzNCLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7QUFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztBQUMxQixHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDbkM7QUFDQSxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDOUUsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO0FBQ2pDLE1BQU0sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7QUFDcEQsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDM0UsSUFBSSxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN2QixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFO0FBQzVELElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLElBQUksT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkIsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDdEUsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckUsSUFBSSxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUM5QixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsTUFBTSxDQUFDLGVBQWUsR0FBRyxTQUFTLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFO0FBQzlELElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLElBQUksT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDaEMsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3RCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNaLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQy9CLE1BQU0sT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkM7QUFDQSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNmLE1BQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDckIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixHQUFHLFNBQVMsd0JBQXdCLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtBQUMvRSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUNyQjtBQUNBLElBQUksSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJO0FBQ3RELFFBQVEsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEtBQUssU0FBUztBQUMvRixRQUFRLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ2hELE1BQU0sT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELEtBQUs7QUFDTCxRQUFRLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUU7QUFDbkQsTUFBTSxJQUFJLEVBQUUsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUM5RCxRQUFRLE9BQU8sR0FBRyxDQUFDO0FBQ25CLE9BQU87QUFDUDtBQUNBLE1BQU0sT0FBTyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN4RSxLQUFLO0FBQ0wsUUFBUSxRQUFRLEdBQUcsU0FBUyxRQUFRLEdBQUc7QUFDdkMsTUFBTSxPQUFPLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDN0QsUUFBUSxJQUFJLEVBQUUsU0FBUztBQUN2QixRQUFRLFNBQVMsRUFBRSxLQUFLO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN0QixLQUFLO0FBQ0wsUUFBUSxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtBQUNuRCxNQUFNLE9BQU8sWUFBWSxHQUFHLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHO0FBQy9FLFFBQVEsS0FBSyxFQUFFLE1BQU07QUFDckIsT0FBTyxHQUFHO0FBQ1YsUUFBUSxLQUFLLEVBQUUsTUFBTTtBQUNyQixRQUFRLEdBQUcsRUFBRSxTQUFTO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsQixLQUFLO0FBQ0wsUUFBUSxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtBQUN2RCxNQUFNLE9BQU8sWUFBWSxHQUFHLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHO0FBQ2pGLFFBQVEsT0FBTyxFQUFFLE1BQU07QUFDdkIsT0FBTyxHQUFHO0FBQ1YsUUFBUSxPQUFPLEVBQUUsTUFBTTtBQUN2QixRQUFRLEtBQUssRUFBRSxNQUFNO0FBQ3JCLFFBQVEsR0FBRyxFQUFFLFNBQVM7QUFDdEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUs7QUFDTCxRQUFRLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUU7QUFDaEQsTUFBTSxJQUFJLFVBQVUsR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0Q7QUFDQSxNQUFNLElBQUksVUFBVSxFQUFFO0FBQ3RCLFFBQVEsT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzdELE9BQU8sTUFBTTtBQUNiLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFDckIsT0FBTztBQUNQLEtBQUs7QUFDTCxRQUFRLEdBQUcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUU7QUFDbkMsTUFBTSxPQUFPLFlBQVksR0FBRyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNoRSxRQUFRLEdBQUcsRUFBRSxNQUFNO0FBQ25CLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNoQixLQUFLO0FBQ0wsUUFBUSxhQUFhLEdBQUcsU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFO0FBQ3REO0FBQ0EsTUFBTSxRQUFRLEtBQUs7QUFDbkI7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDM0M7QUFDQSxRQUFRLEtBQUssR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsUUFBUSxLQUFLLEtBQUs7QUFDbEIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM5QztBQUNBO0FBQ0EsUUFBUSxLQUFLLEdBQUc7QUFDaEIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDO0FBQ0EsUUFBUSxLQUFLLElBQUk7QUFDakIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6QztBQUNBO0FBQ0EsUUFBUSxLQUFLLElBQUk7QUFDakIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9EO0FBQ0EsUUFBUSxLQUFLLEtBQUs7QUFDbEIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QztBQUNBLFFBQVEsS0FBSyxJQUFJO0FBQ2pCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekM7QUFDQTtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNuRTtBQUNBLFFBQVEsS0FBSyxJQUFJO0FBQ2pCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEU7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEM7QUFDQSxRQUFRLEtBQUssSUFBSTtBQUNqQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0E7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQjtBQUNBLFVBQVUsT0FBTyxZQUFZLENBQUM7QUFDOUIsWUFBWSxNQUFNLEVBQUUsUUFBUTtBQUM1QixZQUFZLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU07QUFDckMsV0FBVyxDQUFDLENBQUM7QUFDYjtBQUNBLFFBQVEsS0FBSyxJQUFJO0FBQ2pCO0FBQ0EsVUFBVSxPQUFPLFlBQVksQ0FBQztBQUM5QixZQUFZLE1BQU0sRUFBRSxPQUFPO0FBQzNCLFlBQVksTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTTtBQUNyQyxXQUFXLENBQUMsQ0FBQztBQUNiO0FBQ0EsUUFBUSxLQUFLLEtBQUs7QUFDbEI7QUFDQSxVQUFVLE9BQU8sWUFBWSxDQUFDO0FBQzlCLFlBQVksTUFBTSxFQUFFLFFBQVE7QUFDNUIsWUFBWSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNO0FBQ3JDLFdBQVcsQ0FBQyxDQUFDO0FBQ2I7QUFDQSxRQUFRLEtBQUssTUFBTTtBQUNuQjtBQUNBLFVBQVUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzNDLFlBQVksTUFBTSxFQUFFLE9BQU87QUFDM0IsWUFBWSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO0FBQ3BDLFdBQVcsQ0FBQyxDQUFDO0FBQ2I7QUFDQSxRQUFRLEtBQUssT0FBTztBQUNwQjtBQUNBLFVBQVUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzNDLFlBQVksTUFBTSxFQUFFLE1BQU07QUFDMUIsWUFBWSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO0FBQ3BDLFdBQVcsQ0FBQyxDQUFDO0FBQ2I7QUFDQTtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCO0FBQ0EsVUFBVSxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7QUFDN0I7QUFDQTtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxRQUFRLEVBQUUsQ0FBQztBQUM1QjtBQUNBO0FBQ0EsUUFBUSxLQUFLLEdBQUc7QUFDaEIsVUFBVSxPQUFPLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztBQUMvQyxZQUFZLEdBQUcsRUFBRSxTQUFTO0FBQzFCLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4QztBQUNBLFFBQVEsS0FBSyxJQUFJO0FBQ2pCLFVBQVUsT0FBTyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDL0MsWUFBWSxHQUFHLEVBQUUsU0FBUztBQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNDO0FBQ0E7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQjtBQUNBLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QztBQUNBLFFBQVEsS0FBSyxLQUFLO0FBQ2xCO0FBQ0EsVUFBVSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEM7QUFDQSxRQUFRLEtBQUssTUFBTTtBQUNuQjtBQUNBLFVBQVUsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0EsUUFBUSxLQUFLLE9BQU87QUFDcEI7QUFDQSxVQUFVLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6QztBQUNBO0FBQ0EsUUFBUSxLQUFLLEdBQUc7QUFDaEI7QUFDQSxVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkM7QUFDQSxRQUFRLEtBQUssS0FBSztBQUNsQjtBQUNBLFVBQVUsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsUUFBUSxLQUFLLE1BQU07QUFDbkI7QUFDQSxVQUFVLE9BQU8sT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QztBQUNBLFFBQVEsS0FBSyxPQUFPO0FBQ3BCO0FBQ0EsVUFBVSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUM7QUFDQTtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCO0FBQ0EsVUFBVSxPQUFPLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztBQUMvQyxZQUFZLEtBQUssRUFBRSxTQUFTO0FBQzVCLFlBQVksR0FBRyxFQUFFLFNBQVM7QUFDMUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVDO0FBQ0EsUUFBUSxLQUFLLElBQUk7QUFDakI7QUFDQSxVQUFVLE9BQU8sb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0FBQy9DLFlBQVksS0FBSyxFQUFFLFNBQVM7QUFDNUIsWUFBWSxHQUFHLEVBQUUsU0FBUztBQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DO0FBQ0EsUUFBUSxLQUFLLEtBQUs7QUFDbEI7QUFDQSxVQUFVLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0QztBQUNBLFFBQVEsS0FBSyxNQUFNO0FBQ25CO0FBQ0EsVUFBVSxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckM7QUFDQSxRQUFRLEtBQUssT0FBTztBQUNwQjtBQUNBLFVBQVUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0E7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQjtBQUNBLFVBQVUsT0FBTyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDL0MsWUFBWSxLQUFLLEVBQUUsU0FBUztBQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUM7QUFDQSxRQUFRLEtBQUssSUFBSTtBQUNqQjtBQUNBLFVBQVUsT0FBTyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDL0MsWUFBWSxLQUFLLEVBQUUsU0FBUztBQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DO0FBQ0EsUUFBUSxLQUFLLEtBQUs7QUFDbEI7QUFDQSxVQUFVLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2QztBQUNBLFFBQVEsS0FBSyxNQUFNO0FBQ25CO0FBQ0EsVUFBVSxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEM7QUFDQSxRQUFRLEtBQUssT0FBTztBQUNwQjtBQUNBLFVBQVUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDO0FBQ0E7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQjtBQUNBLFVBQVUsT0FBTyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDL0MsWUFBWSxJQUFJLEVBQUUsU0FBUztBQUMzQixXQUFXLEVBQUUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUM7QUFDQSxRQUFRLEtBQUssSUFBSTtBQUNqQjtBQUNBLFVBQVUsT0FBTyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDL0MsWUFBWSxJQUFJLEVBQUUsU0FBUztBQUMzQixXQUFXLEVBQUUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xFO0FBQ0EsUUFBUSxLQUFLLE1BQU07QUFDbkI7QUFDQSxVQUFVLE9BQU8sb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0FBQy9DLFlBQVksSUFBSSxFQUFFLFNBQVM7QUFDM0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QztBQUNBLFFBQVEsS0FBSyxRQUFRO0FBQ3JCO0FBQ0EsVUFBVSxPQUFPLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztBQUMvQyxZQUFZLElBQUksRUFBRSxTQUFTO0FBQzNCLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0M7QUFDQTtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCO0FBQ0EsVUFBVSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QjtBQUNBLFFBQVEsS0FBSyxJQUFJO0FBQ2pCO0FBQ0EsVUFBVSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3QjtBQUNBLFFBQVEsS0FBSyxPQUFPO0FBQ3BCLFVBQVUsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDL0I7QUFDQSxRQUFRLEtBQUssSUFBSTtBQUNqQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hFO0FBQ0EsUUFBUSxLQUFLLE1BQU07QUFDbkIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzQztBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxQztBQUNBLFFBQVEsS0FBSyxJQUFJO0FBQ2pCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0M7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkM7QUFDQSxRQUFRLEtBQUssS0FBSztBQUNsQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsUUFBUSxLQUFLLEdBQUc7QUFDaEI7QUFDQSxVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkM7QUFDQSxRQUFRLEtBQUssSUFBSTtBQUNqQjtBQUNBLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUM7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNyRDtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQztBQUNBLFFBQVE7QUFDUixVQUFVLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLE9BQU87QUFDUCxLQUFLLENBQUM7QUFDTjtBQUNBLElBQUksT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUN0RSxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixHQUFHLFNBQVMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUNoRixJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztBQUN0QjtBQUNBLElBQUksSUFBSSxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsS0FBSyxFQUFFO0FBQ3BELE1BQU0sUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxhQUFhLENBQUM7QUFDL0I7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sUUFBUSxDQUFDO0FBQzFCO0FBQ0EsUUFBUSxLQUFLLEdBQUc7QUFDaEIsVUFBVSxPQUFPLFFBQVEsQ0FBQztBQUMxQjtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxNQUFNLENBQUM7QUFDeEI7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sS0FBSyxDQUFDO0FBQ3ZCO0FBQ0EsUUFBUSxLQUFLLEdBQUc7QUFDaEIsVUFBVSxPQUFPLE1BQU0sQ0FBQztBQUN4QjtBQUNBLFFBQVEsS0FBSyxHQUFHO0FBQ2hCLFVBQVUsT0FBTyxPQUFPLENBQUM7QUFDekI7QUFDQSxRQUFRLEtBQUssR0FBRztBQUNoQixVQUFVLE9BQU8sTUFBTSxDQUFDO0FBQ3hCO0FBQ0EsUUFBUTtBQUNSLFVBQVUsT0FBTyxJQUFJLENBQUM7QUFDdEIsT0FBTztBQUNQLEtBQUs7QUFDTCxRQUFRLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxNQUFNLEVBQUU7QUFDdkQsTUFBTSxPQUFPLFVBQVUsS0FBSyxFQUFFO0FBQzlCLFFBQVEsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsUUFBUSxJQUFJLE1BQU0sRUFBRTtBQUNwQixVQUFVLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5RCxTQUFTLE1BQU07QUFDZixVQUFVLE9BQU8sS0FBSyxDQUFDO0FBQ3ZCLFNBQVM7QUFDVCxPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0wsUUFBUSxNQUFNLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7QUFDM0MsUUFBUSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDMUQsTUFBTSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTztBQUNoQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ3pCLE1BQU0sT0FBTyxPQUFPLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakQsS0FBSyxFQUFFLEVBQUUsQ0FBQztBQUNWLFFBQVEsU0FBUyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUM1RixNQUFNLE9BQU8sQ0FBQyxDQUFDO0FBQ2YsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNSO0FBQ0EsSUFBSSxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsRUFBRSxDQUFDO0FBQ0o7QUFDQSxJQUFJLE9BQU8sZ0JBQWdCLFlBQVk7QUFDdkMsRUFBRSxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO0FBQ3hDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDekIsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUNuQyxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFDakM7QUFDQSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLEdBQUc7QUFDMUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDMUIsTUFBTSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7QUFDbkQsS0FBSyxNQUFNO0FBQ1gsTUFBTSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDekIsS0FBSztBQUNMLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLEVBQUUsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksZ0JBQWdCLFlBQVk7QUFDcEMsRUFBRSxTQUFTLElBQUksR0FBRyxFQUFFO0FBQ3BCO0FBQ0EsRUFBRSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDcEQsSUFBSSxNQUFNLElBQUksbUJBQW1CLEVBQUUsQ0FBQztBQUNwQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFO0FBQzFELElBQUksTUFBTSxJQUFJLG1CQUFtQixFQUFFLENBQUM7QUFDcEMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxFQUFFLEVBQUU7QUFDdEMsSUFBSSxNQUFNLElBQUksbUJBQW1CLEVBQUUsQ0FBQztBQUNwQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLFNBQVMsRUFBRTtBQUM3QyxJQUFJLE1BQU0sSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0FBQ3BDLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEIsSUFBSSxHQUFHLEVBQUUsTUFBTTtBQUNmLElBQUksR0FBRztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsR0FBRyxHQUFHO0FBQ25CLE1BQU0sTUFBTSxJQUFJLG1CQUFtQixFQUFFLENBQUM7QUFDdEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE1BQU0sSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0FBQ3RDLEtBQUs7QUFDTCxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxVQUFVO0FBQ25CLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxhQUFhO0FBQ3RCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sTUFBTSxJQUFJLG1CQUFtQixFQUFFLENBQUM7QUFDdEMsS0FBSztBQUNMLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxNQUFNLElBQUksbUJBQW1CLEVBQUUsQ0FBQztBQUN0QyxLQUFLO0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNOO0FBQ0EsRUFBRSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsRUFBRSxDQUFDO0FBQ0o7QUFDQSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksVUFBVSxnQkFBZ0IsVUFBVSxLQUFLLEVBQUU7QUFDL0MsRUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BDO0FBQ0EsRUFBRSxTQUFTLFVBQVUsR0FBRztBQUN4QixJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ2hELEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztBQUNwQztBQUNBO0FBQ0EsRUFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDcEQsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTTtBQUM1QixRQUFRLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQzdCLElBQUksT0FBTyxhQUFhLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM3QyxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsU0FBUyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUM1RCxJQUFJLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakQsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLEVBQUUsRUFBRTtBQUN0QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0FBQzdDLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDN0MsSUFBSSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ3ZDLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQzVCLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUc7QUFDUDtBQUNBLElBQUksU0FBUyxHQUFHLEdBQUc7QUFDbkIsTUFBTSxPQUFPLFFBQVEsQ0FBQztBQUN0QixLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO0FBQ2xFLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsYUFBYTtBQUN0QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTCxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxTQUFTO0FBQ2xCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDUCxJQUFJLEdBQUcsRUFBRSxVQUFVO0FBQ25CLElBQUksR0FBRztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEdBQUcsR0FBRztBQUNuQixNQUFNLElBQUksV0FBVyxLQUFLLElBQUksRUFBRTtBQUNoQyxRQUFRLFdBQVcsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO0FBQ3ZDLE9BQU87QUFDUDtBQUNBLE1BQU0sT0FBTyxXQUFXLENBQUM7QUFDekIsS0FBSztBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDTjtBQUNBLEVBQUUsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ1I7QUFDQSxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDbEI7QUFDQSxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDdkIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ3ZCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7QUFDdEQsTUFBTSxNQUFNLEVBQUUsS0FBSztBQUNuQixNQUFNLFFBQVEsRUFBRSxJQUFJO0FBQ3BCLE1BQU0sSUFBSSxFQUFFLFNBQVM7QUFDckIsTUFBTSxLQUFLLEVBQUUsU0FBUztBQUN0QixNQUFNLEdBQUcsRUFBRSxTQUFTO0FBQ3BCLE1BQU0sSUFBSSxFQUFFLFNBQVM7QUFDckIsTUFBTSxNQUFNLEVBQUUsU0FBUztBQUN2QixNQUFNLE1BQU0sRUFBRSxTQUFTO0FBQ3ZCLE1BQU0sR0FBRyxFQUFFLE9BQU87QUFDbEIsS0FBSyxDQUFDLENBQUM7QUFDUCxHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFDRDtBQUNBLElBQUksU0FBUyxHQUFHO0FBQ2hCLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDVCxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ1YsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNSLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDUixFQUFFLElBQUksRUFBRSxDQUFDO0FBQ1QsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNYLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDWCxDQUFDLENBQUM7QUFDRjtBQUNBLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDaEMsRUFBRSxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBQ3pELE1BQU0sTUFBTSxHQUFHLGlEQUFpRCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7QUFDaEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDekIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFDRDtBQUNBLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDaEMsRUFBRSxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDLEVBQUUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2xCO0FBQ0EsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM3QyxJQUFJLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsUUFBUSxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUk7QUFDaEMsUUFBUSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztBQUNuQyxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QjtBQUNBLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO0FBQ3hCLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUMxQixLQUFLLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNsQyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFDRDtBQUNBLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxRQUFRLGdCQUFnQixVQUFVLEtBQUssRUFBRTtBQUM3QyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUU7QUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQzlCLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9DLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxHQUFHO0FBQzlDLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUN2QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDbEIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLGdCQUFnQixDQUFDLENBQUMsRUFBRTtBQUMzRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDcEQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQ2YsTUFBTSxPQUFPLEtBQUssQ0FBQztBQUNuQixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUk7QUFDUixNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7QUFDdkMsUUFBUSxRQUFRLEVBQUUsSUFBSTtBQUN0QixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNsQixNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUNoQixNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFO0FBQzFCLElBQUksSUFBSSxLQUFLLENBQUM7QUFDZDtBQUNBLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ3JDO0FBQ0E7QUFDQSxJQUFJLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzFCO0FBQ0E7QUFDQSxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QyxJQUFJLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7QUFDbEM7QUFDQTtBQUNBLEVBQUUsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFO0FBQ3BELElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07QUFDNUIsUUFBUSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUM3QixJQUFJLE9BQU8sYUFBYSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4RCxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsU0FBUyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRTtBQUM1RCxJQUFJLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakQsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLEVBQUUsRUFBRTtBQUN0QyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVCLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUM7QUFDaEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsSUFBSSxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFDbkYsUUFBUSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN2QixRQUFRLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLFFBQVEsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEIsUUFBUSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6QixRQUFRLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLFFBQVEsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDekIsUUFBUSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCO0FBQ0EsSUFBSSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksSUFBSSxZQUFZLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzlDLElBQUksSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDO0FBQzdCLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDaEIsTUFBTSxLQUFLLEVBQUUsS0FBSztBQUNsQixNQUFNLEdBQUcsRUFBRSxHQUFHO0FBQ2QsTUFBTSxJQUFJLEVBQUUsWUFBWTtBQUN4QixNQUFNLE1BQU0sRUFBRSxNQUFNO0FBQ3BCLE1BQU0sTUFBTSxFQUFFLE1BQU07QUFDcEIsTUFBTSxXQUFXLEVBQUUsQ0FBQztBQUNwQixLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDckIsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzNCLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0MsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDeEMsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLFNBQVMsRUFBRTtBQUM3QyxJQUFJLE9BQU8sU0FBUyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3JFLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzFCLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsTUFBTTtBQUNmLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQzNCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsYUFBYTtBQUN0QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTCxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxTQUFTO0FBQ2xCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3hCLEtBQUs7QUFDTCxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ047QUFDQSxFQUFFLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNSO0FBQ0EsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGVBQWUsZ0JBQWdCLFVBQVUsS0FBSyxFQUFFO0FBQ3BELEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsTUFBTSxFQUFFO0FBQ3ZELElBQUksT0FBTyxNQUFNLEtBQUssQ0FBQyxHQUFHLGVBQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEYsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLGVBQWUsQ0FBQyxjQUFjLEdBQUcsU0FBUyxjQUFjLENBQUMsQ0FBQyxFQUFFO0FBQzlELElBQUksSUFBSSxDQUFDLEVBQUU7QUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztBQUMvRDtBQUNBLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDYixRQUFRLE9BQU8sSUFBSSxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdELE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxTQUFTLGVBQWUsQ0FBQyxNQUFNLEVBQUU7QUFDbkMsSUFBSSxJQUFJLEtBQUssQ0FBQztBQUNkO0FBQ0EsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDckM7QUFDQTtBQUNBLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7QUFDekIsSUFBSSxPQUFPLEtBQUssQ0FBQztBQUNqQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLE1BQU0sR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO0FBQ3pDO0FBQ0E7QUFDQSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLEdBQUc7QUFDNUMsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDckIsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsY0FBYyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDNUQsSUFBSSxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxHQUFHO0FBQ3BDLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3RCLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDN0MsSUFBSSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN4RSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNqQyxJQUFJLEdBQUcsRUFBRSxNQUFNO0FBQ2YsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLE9BQU8sQ0FBQztBQUNyQixLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNuRixLQUFLO0FBQ0wsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsVUFBVTtBQUNuQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDNUIsUUFBUSxPQUFPLFNBQVMsQ0FBQztBQUN6QixPQUFPLE1BQU07QUFDYixRQUFRLE9BQU8sU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDL0QsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxhQUFhO0FBQ3RCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixLQUFLO0FBQ0wsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNQLElBQUksR0FBRyxFQUFFLGFBQWE7QUFDdEIsSUFBSSxHQUFHO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsR0FBRyxHQUFHO0FBQ25CLE1BQU0sSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFO0FBQzlCLFFBQVEsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLE9BQU87QUFDUDtBQUNBLE1BQU0sT0FBTyxTQUFTLENBQUM7QUFDdkIsS0FBSztBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDTjtBQUNBLEVBQUUsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxXQUFXLGdCQUFnQixVQUFVLEtBQUssRUFBRTtBQUNoRCxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDckM7QUFDQSxFQUFFLFNBQVMsV0FBVyxDQUFDLFFBQVEsRUFBRTtBQUNqQyxJQUFJLElBQUksS0FBSyxDQUFDO0FBQ2Q7QUFDQSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztBQUNyQztBQUNBO0FBQ0EsSUFBSSxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixJQUFJLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7QUFDckM7QUFDQTtBQUNBLEVBQUUsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsR0FBRztBQUM1QyxJQUFJLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksR0FBRztBQUNoRCxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQ2QsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxHQUFHO0FBQ3BDLElBQUksT0FBTyxHQUFHLENBQUM7QUFDZixHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLEdBQUc7QUFDcEMsSUFBSSxPQUFPLEtBQUssQ0FBQztBQUNqQixHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUM3QixJQUFJLEdBQUcsRUFBRSxNQUFNO0FBQ2YsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLFNBQVMsQ0FBQztBQUN2QixLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUMzQixLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGFBQWE7QUFDdEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLEtBQUssQ0FBQztBQUNuQixLQUFLO0FBQ0wsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsU0FBUztBQUNsQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTCxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ047QUFDQSxFQUFFLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtBQUMzQztBQUNBLEVBQUUsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtBQUM1QyxJQUFJLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLEdBQUcsTUFBTSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7QUFDcEMsSUFBSSxPQUFPLEtBQUssQ0FBQztBQUNqQixHQUFHLE1BQU0sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDOUIsSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDdEMsSUFBSSxJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRSxPQUFPLFdBQVcsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxFQUFFLE9BQU8sZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFPLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM5QixJQUFJLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzQyxHQUFHLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO0FBQzVGO0FBQ0E7QUFDQSxJQUFJLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLEdBQUcsTUFBTTtBQUNULElBQUksT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLEdBQUc7QUFDekIsRUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixDQUFDO0FBQ0QsSUFBSSxXQUFXLEdBQUcsUUFBUTtBQUMxQixJQUFJLGFBQWEsR0FBRyxJQUFJO0FBQ3hCLElBQUksc0JBQXNCLEdBQUcsSUFBSTtBQUNqQyxJQUFJLHFCQUFxQixHQUFHLElBQUk7QUFDaEMsSUFBSSxjQUFjLENBQUM7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksUUFBUSxnQkFBZ0IsWUFBWTtBQUN4QyxFQUFFLFNBQVMsUUFBUSxHQUFHLEVBQUU7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsUUFBUSxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsR0FBRztBQUNoRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUN4QixJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUMxQixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNoQyxJQUFJLEdBQUcsRUFBRSxLQUFLO0FBQ2QsSUFBSSxHQUFHO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsR0FBRyxHQUFHO0FBQ25CLE1BQU0sT0FBTyxHQUFHLENBQUM7QUFDakIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDekIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGFBQWE7QUFDdEIsSUFBSSxHQUFHO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxHQUFHLEdBQUc7QUFDbkIsTUFBTSxPQUFPLGFBQWEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFO0FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUN6QixLQUFLO0FBQ0wsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsZUFBZTtBQUN4QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sYUFBYSxDQUFDO0FBQzNCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFO0FBQzlCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUM3QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLHdCQUF3QjtBQUNqQyxJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sc0JBQXNCLENBQUM7QUFDcEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsQ0FBQyxlQUFlLEVBQUU7QUFDdkMsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUM7QUFDL0MsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSx1QkFBdUI7QUFDaEMsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLHFCQUFxQixDQUFDO0FBQ25DLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLENBQUMsY0FBYyxFQUFFO0FBQ3RDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUFDO0FBQzdDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsZ0JBQWdCO0FBQ3pCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxjQUFjLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDekIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLEtBQUs7QUFDTCxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ047QUFDQSxFQUFFLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsRUFBRSxDQUFDO0FBQ0o7QUFDQSxJQUFJLFNBQVMsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUN4QixJQUFJLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwQztBQUNBLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUNyQjtBQUNBLFNBQVMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7QUFDdEMsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN2QixJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZCxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5QyxFQUFFLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QjtBQUNBLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNaLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0MsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzNCLEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBQ0Q7QUFDQSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDckI7QUFDQSxTQUFTLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFO0FBQ3ZDLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDdkIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2QsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0I7QUFDQSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDWixJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25ELElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzQixHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUNEO0FBQ0EsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3RCO0FBQ0EsU0FBUyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtBQUN2QyxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3ZCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNkLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlDLEVBQUUsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCO0FBQ0EsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ1osSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDNUIsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFDRDtBQUNBLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUN0QjtBQUNBLFNBQVMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7QUFDdkMsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN2QixJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZCxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUNuQixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDakIsTUFBTSxJQUFJLFlBQVksR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDekU7QUFDQTtBQUNBLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3RELEVBQUUsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCO0FBQ0EsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ1osSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZELElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUM1QixHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUNEO0FBQ0EsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQzFCO0FBQ0EsU0FBUyxZQUFZLEdBQUc7QUFDeEIsRUFBRSxJQUFJLGNBQWMsRUFBRTtBQUN0QixJQUFJLE9BQU8sY0FBYyxDQUFDO0FBQzFCLEdBQUcsTUFBTTtBQUNULElBQUksY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUN4RSxJQUFJLE9BQU8sY0FBYyxDQUFDO0FBQzFCLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQSxTQUFTLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEM7QUFDQSxFQUFFLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQ3JCLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZCLEdBQUcsTUFBTTtBQUNULElBQUksSUFBSSxPQUFPLENBQUM7QUFDaEIsSUFBSSxJQUFJLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNqRDtBQUNBLElBQUksSUFBSTtBQUNSLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUMxRCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDaEIsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3hELEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxRQUFRLEdBQUcsT0FBTztBQUMxQixRQUFRLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZTtBQUNsRCxRQUFRLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO0FBQ3JDO0FBQ0EsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNoRCxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRTtBQUN0RSxFQUFFLElBQUksY0FBYyxJQUFJLGVBQWUsRUFBRTtBQUN6QyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUM7QUFDdEI7QUFDQSxJQUFJLElBQUksY0FBYyxFQUFFO0FBQ3hCLE1BQU0sU0FBUyxJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUM7QUFDM0MsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLGVBQWUsRUFBRTtBQUN6QixNQUFNLFNBQVMsSUFBSSxNQUFNLEdBQUcsZUFBZSxDQUFDO0FBQzVDLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxTQUFTLENBQUM7QUFDckIsR0FBRyxNQUFNO0FBQ1QsSUFBSSxPQUFPLFNBQVMsQ0FBQztBQUNyQixHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxTQUFTLENBQUMsQ0FBQyxFQUFFO0FBQ3RCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ2Q7QUFDQSxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDaEMsSUFBSSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25CLEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBQ0Q7QUFDQSxTQUFTLFdBQVcsQ0FBQyxDQUFDLEVBQUU7QUFDeEIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZDtBQUNBLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUMvQixJQUFJLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25CLEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBQ0Q7QUFDQSxTQUFTLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0FBQzlELEVBQUUsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN4QztBQUNBLEVBQUUsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO0FBQ3hCLElBQUksT0FBTyxJQUFJLENBQUM7QUFDaEIsR0FBRyxNQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtBQUM1QixJQUFJLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdCLEdBQUcsTUFBTTtBQUNULElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUIsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsbUJBQW1CLENBQUMsR0FBRyxFQUFFO0FBQ2xDLEVBQUUsSUFBSSxHQUFHLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQyxlQUFlLEtBQUssTUFBTSxFQUFFO0FBQzdELElBQUksT0FBTyxLQUFLLENBQUM7QUFDakIsR0FBRyxNQUFNO0FBQ1QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxlQUFlLEtBQUssTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLGVBQWUsS0FBSyxNQUFNLENBQUM7QUFDMUssR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxtQkFBbUIsZ0JBQWdCLFlBQVk7QUFDbkQsRUFBRSxTQUFTLG1CQUFtQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO0FBQ3hELElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7QUFDckM7QUFDQSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDZixRQUFRLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDbkIsUUFBUSxJQUFJLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDeEU7QUFDQSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQzNELE1BQU0sSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzlCLFFBQVEsV0FBVyxFQUFFLEtBQUs7QUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2Y7QUFDQSxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDckUsTUFBTSxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDOUMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDO0FBQzdDO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLENBQUMsRUFBRTtBQUNyQyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNsQixNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakQsTUFBTSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssTUFBTTtBQUNYO0FBQ0EsTUFBTSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM5RDtBQUNBLE1BQU0sT0FBTyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQyxLQUFLO0FBQ0wsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQyxFQUFFLENBQUM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxpQkFBaUIsZ0JBQWdCLFlBQVk7QUFDakQsRUFBRSxTQUFTLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQzdDLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDckIsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUNWO0FBQ0EsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztBQUM1QyxNQUFNLElBQUksT0FBTyxHQUFHLFNBQVMsSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLFNBQVMsR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3BGO0FBQ0EsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFO0FBQzdELFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUNwQixRQUFRLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLE9BQU8sTUFBTTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ2xCO0FBQ0EsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7QUFDL0IsVUFBVSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUN2QixTQUFTLE1BQU07QUFDZixVQUFVLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUM5RixTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUssTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtBQUMxQyxNQUFNLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ25CLEtBQUssTUFBTTtBQUNYLE1BQU0sSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDbkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDdkIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQztBQUNBLElBQUksSUFBSSxDQUFDLEVBQUU7QUFDWCxNQUFNLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzVDLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDO0FBQzVDO0FBQ0EsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxHQUFHO0FBQ3JDLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDL0MsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxhQUFhLEdBQUc7QUFDbkQsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN0RCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxDQUFDLGVBQWUsR0FBRyxTQUFTLGVBQWUsR0FBRztBQUN2RCxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN0QyxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDLEVBQUUsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQixnQkFBZ0IsWUFBWTtBQUNoRCxFQUFFLFNBQVMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7QUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztBQUN6QixNQUFNLEtBQUssRUFBRSxNQUFNO0FBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNiO0FBQ0EsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLFdBQVcsRUFBRSxFQUFFO0FBQ3JDLE1BQU0sSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFDLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztBQUMzQztBQUNBLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ2hELElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ2xCLE1BQU0sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUMsS0FBSyxNQUFNO0FBQ1gsTUFBTSxPQUFPLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDNUYsS0FBSztBQUNMLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsYUFBYSxHQUFHLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDOUQsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDbEIsTUFBTSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxLQUFLLE1BQU07QUFDWCxNQUFNLE9BQU8sRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLEVBQUUsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLE1BQU0sZ0JBQWdCLFlBQVk7QUFDdEMsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRTtBQUM1QyxJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkcsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFO0FBQ3hGLElBQUksSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDaEMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBQzFCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUM7QUFDM0Q7QUFDQSxJQUFJLElBQUksT0FBTyxHQUFHLGVBQWUsS0FBSyxXQUFXLEdBQUcsT0FBTyxHQUFHLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDOUUsSUFBSSxJQUFJLGdCQUFnQixHQUFHLGVBQWUsSUFBSSxRQUFRLENBQUMsc0JBQXNCLENBQUM7QUFDOUUsSUFBSSxJQUFJLGVBQWUsR0FBRyxjQUFjLElBQUksUUFBUSxDQUFDLHFCQUFxQixDQUFDO0FBQzNFLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ25GLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxHQUFHO0FBQzVDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQztBQUMxQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDckIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUN0QixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUU7QUFDakQsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUs7QUFDNUMsUUFBUSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07QUFDNUIsUUFBUSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7QUFDOUMsUUFBUSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztBQUM3QztBQUNBLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDbEUsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRTtBQUN0RSxJQUFJLElBQUksa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0FBQ3RELFFBQVEsWUFBWSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUM1QyxRQUFRLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUNyRCxRQUFRLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JEO0FBQ0EsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztBQUMvQixJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxJQUFJLHFCQUFxQixJQUFJLElBQUksQ0FBQztBQUN0RSxJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxJQUFJLG9CQUFvQixJQUFJLElBQUksQ0FBQztBQUN6RSxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN6RixJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUc7QUFDekIsTUFBTSxNQUFNLEVBQUUsRUFBRTtBQUNoQixNQUFNLFVBQVUsRUFBRSxFQUFFO0FBQ3BCLEtBQUssQ0FBQztBQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRztBQUN2QixNQUFNLE1BQU0sRUFBRSxFQUFFO0FBQ2hCLE1BQU0sVUFBVSxFQUFFLEVBQUU7QUFDcEIsS0FBSyxDQUFDO0FBQ04sSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztBQUM5QixJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFDM0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztBQUNqQztBQUNBLEVBQUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsR0FBRztBQUMvQyxJQUFJLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUN4QyxJQUFJLElBQUksY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxNQUFNLE1BQU0sSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQztBQUNuSyxJQUFJLE9BQU8sWUFBWSxJQUFJLGNBQWMsR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDO0FBQzFELEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLElBQUksRUFBRTtBQUN2QyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDaEUsTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixLQUFLLE1BQU07QUFDWCxNQUFNLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDO0FBQ3JMLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxJQUFJLEVBQUU7QUFDdkQsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDekMsTUFBTSxXQUFXLEVBQUUsSUFBSTtBQUN2QixLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ1IsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLGlCQUFpQixDQUFDLElBQUksRUFBRTtBQUMvRCxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoQixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRTtBQUN6QyxNQUFNLFdBQVcsRUFBRSxLQUFLO0FBQ3hCLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDUixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtBQUNoRSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUNyQjtBQUNBLElBQUksSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVk7QUFDbEUsTUFBTSxJQUFJLElBQUksR0FBRyxNQUFNLEdBQUc7QUFDMUIsUUFBUSxLQUFLLEVBQUUsTUFBTTtBQUNyQixRQUFRLEdBQUcsRUFBRSxTQUFTO0FBQ3RCLE9BQU8sR0FBRztBQUNWLFFBQVEsS0FBSyxFQUFFLE1BQU07QUFDckIsT0FBTztBQUNQLFVBQVUsU0FBUyxHQUFHLE1BQU0sR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBQ3ZEO0FBQ0EsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUNqRCxRQUFRLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFO0FBQ3ZFLFVBQVUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEQsU0FBUyxDQUFDLENBQUM7QUFDWCxPQUFPO0FBQ1A7QUFDQSxNQUFNLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsRCxLQUFLLENBQUMsQ0FBQztBQUNQLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0FBQ3BFLElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3RCO0FBQ0EsSUFBSSxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtBQUMzQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUM7QUFDckIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRTtBQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDdkIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWTtBQUNwRSxNQUFNLElBQUksSUFBSSxHQUFHLE1BQU0sR0FBRztBQUMxQixRQUFRLE9BQU8sRUFBRSxNQUFNO0FBQ3ZCLFFBQVEsSUFBSSxFQUFFLFNBQVM7QUFDdkIsUUFBUSxLQUFLLEVBQUUsTUFBTTtBQUNyQixRQUFRLEdBQUcsRUFBRSxTQUFTO0FBQ3RCLE9BQU8sR0FBRztBQUNWLFFBQVEsT0FBTyxFQUFFLE1BQU07QUFDdkIsT0FBTztBQUNQLFVBQVUsU0FBUyxHQUFHLE1BQU0sR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBQ3ZEO0FBQ0EsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUNwRCxRQUFRLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFO0FBQzVFLFVBQVUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDckQsU0FBUyxDQUFDLENBQUM7QUFDWCxPQUFPO0FBQ1A7QUFDQSxNQUFNLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyRCxLQUFLLENBQUMsQ0FBQztBQUNQLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsV0FBVyxDQUFDLFNBQVMsRUFBRTtBQUN0RCxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztBQUN0QjtBQUNBLElBQUksSUFBSSxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWTtBQUM3RCxNQUFNLE9BQU8sU0FBUyxDQUFDO0FBQ3ZCLEtBQUssRUFBRSxZQUFZO0FBQ25CO0FBQ0E7QUFDQSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO0FBQ2pDLFFBQVEsSUFBSSxJQUFJLEdBQUc7QUFDbkIsVUFBVSxJQUFJLEVBQUUsU0FBUztBQUN6QixVQUFVLFNBQVMsRUFBRSxLQUFLO0FBQzFCLFNBQVMsQ0FBQztBQUNWLFFBQVEsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtBQUNqSCxVQUFVLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZELFNBQVMsQ0FBQyxDQUFDO0FBQ1gsT0FBTztBQUNQO0FBQ0EsTUFBTSxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7QUFDbEMsS0FBSyxDQUFDLENBQUM7QUFDUCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFO0FBQ3BELElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3RCO0FBQ0EsSUFBSSxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRTtBQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDdkIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWTtBQUNoRSxNQUFNLElBQUksSUFBSSxHQUFHO0FBQ2pCLFFBQVEsR0FBRyxFQUFFLE1BQU07QUFDbkIsT0FBTyxDQUFDO0FBQ1I7QUFDQTtBQUNBLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEMsUUFBUSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFO0FBQ3hHLFVBQVUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakQsU0FBUyxDQUFDLENBQUM7QUFDWCxPQUFPO0FBQ1A7QUFDQSxNQUFNLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQyxLQUFLLENBQUMsQ0FBQztBQUNQLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQzFELElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDO0FBQzNDLFFBQVEsT0FBTyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUU7QUFDcEMsUUFBUSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUM3QyxNQUFNLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUM7QUFDNUMsS0FBSyxDQUFDLENBQUM7QUFDUCxJQUFJLE9BQU8sUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQzVDLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsZUFBZSxHQUFHLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRTtBQUMzRCxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsSUFBSSxPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUYsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUMzRCxJQUFJLElBQUksUUFBUSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzdCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUNwQixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMxRCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUU7QUFDckQsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkUsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxhQUFhLENBQUMsSUFBSSxFQUFFO0FBQ3ZELElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4QyxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsR0FBRztBQUMzQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVKLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRTtBQUMxQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxjQUFjLENBQUM7QUFDMUksR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN4QixJQUFJLEdBQUcsRUFBRSxhQUFhO0FBQ3RCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxFQUFFO0FBQzFDLFFBQVEsSUFBSSxDQUFDLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNELE9BQU87QUFDUDtBQUNBLE1BQU0sT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7QUFDcEMsS0FBSztBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDTjtBQUNBLEVBQUUsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxFQUFFLENBQUM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxjQUFjLEdBQUc7QUFDMUIsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtBQUM5RixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUM1QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDeEIsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsRUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFDRDtBQUNBLFNBQVMsaUJBQWlCLEdBQUc7QUFDN0IsRUFBRSxLQUFLLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUN2RyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLFVBQVUsQ0FBQyxFQUFFO0FBQ3RCLElBQUksT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqRCxNQUFNLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUIsVUFBVSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5QixVQUFVLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0I7QUFDQSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO0FBQzdCLFVBQVUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEIsVUFBVSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2QixVQUFVLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEI7QUFDQSxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLEdBQUcsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUNsQixFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtBQUNqQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEIsR0FBRztBQUNIO0FBQ0EsRUFBRSxLQUFLLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDekgsSUFBSSxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzQyxHQUFHO0FBQ0g7QUFDQSxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxRQUFRLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDdEUsSUFBSSxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO0FBQ3BDLFFBQVEsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDL0IsUUFBUSxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQjtBQUNBLElBQUksSUFBSSxDQUFDLEVBQUU7QUFDWCxNQUFNLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUNEO0FBQ0EsU0FBUyxXQUFXLEdBQUc7QUFDdkIsRUFBRSxLQUFLLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUNqRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLFVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRTtBQUNsQyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ1Y7QUFDQSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN0QyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25DLEdBQUcsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBO0FBQ0EsSUFBSSxXQUFXLEdBQUcsaUNBQWlDLENBQUM7QUFDcEQsSUFBSSxlQUFlLEdBQUcsS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQzlGLElBQUksZ0JBQWdCLEdBQUcscURBQXFELENBQUM7QUFDN0UsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLENBQUM7QUFDMUUsSUFBSSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDeEUsSUFBSSxXQUFXLEdBQUcsNkNBQTZDLENBQUM7QUFDaEUsSUFBSSxZQUFZLEdBQUcsNkJBQTZCLENBQUM7QUFDakQsSUFBSSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFDekMsSUFBSSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxRSxJQUFJLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDM0QsSUFBSSxXQUFXLEdBQUcsdUJBQXVCLENBQUM7QUFDMUM7QUFDQSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3BILElBQUkscUJBQXFCLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3hFO0FBQ0EsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7QUFDbkMsRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckIsRUFBRSxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFDRDtBQUNBLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDdEMsRUFBRSxJQUFJLElBQUksR0FBRztBQUNiLElBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0FBQzVCLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDcEMsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQyxHQUFHLENBQUM7QUFDSixFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBQ0Q7QUFDQSxTQUFTLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0FBQ3ZDLEVBQUUsSUFBSSxJQUFJLEdBQUc7QUFDYixJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDaEMsSUFBSSxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QyxJQUFJLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RDLElBQUksWUFBWSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2hELEdBQUcsQ0FBQztBQUNKLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFDRDtBQUNBLFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtBQUN6QyxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDbEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRSxNQUFNLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDakUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUNEO0FBQ0EsU0FBUyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtBQUN4QyxFQUFFLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNuRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBQ0Q7QUFDQTtBQUNBLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2hFO0FBQ0EsSUFBSSxXQUFXLEdBQUcsaVBBQWlQLENBQUM7QUFDcFE7QUFDQSxTQUFTLGtCQUFrQixDQUFDLEtBQUssRUFBRTtBQUNuQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN4QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN2QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsRUFBRSxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7QUFDdkMsRUFBRSxJQUFJLGVBQWUsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztBQUMxRDtBQUNBLEVBQUUsSUFBSSxXQUFXLEdBQUcsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRTtBQUNyRCxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNwQixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sR0FBRyxLQUFLLFNBQVMsS0FBSyxLQUFLLElBQUksR0FBRyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2pGLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxPQUFPLENBQUM7QUFDVixJQUFJLEtBQUssRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLElBQUksTUFBTSxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDaEQsSUFBSSxLQUFLLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QyxJQUFJLElBQUksRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLElBQUksS0FBSyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDOUMsSUFBSSxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsRCxJQUFJLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsS0FBSyxJQUFJLENBQUM7QUFDdEUsSUFBSSxZQUFZLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxlQUFlLENBQUM7QUFDNUUsR0FBRyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFVBQVUsR0FBRztBQUNqQixFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ1IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtBQUNkLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUU7QUFDZCxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFO0FBQ2QsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtBQUNkLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUU7QUFDZCxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFO0FBQ2QsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtBQUNkLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUU7QUFDZCxDQUFDLENBQUM7QUFDRjtBQUNBLFNBQVMsV0FBVyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRTtBQUMzRixFQUFFLElBQUksTUFBTSxHQUFHO0FBQ2YsSUFBSSxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7QUFDOUYsSUFBSSxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0FBQzVDLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUM7QUFDN0IsSUFBSSxJQUFJLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQztBQUMvQixJQUFJLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO0FBQ25DLEdBQUcsQ0FBQztBQUNKLEVBQUUsSUFBSSxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekQ7QUFDQSxFQUFFLElBQUksVUFBVSxFQUFFO0FBQ2xCLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxSCxHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFDRDtBQUNBO0FBQ0EsSUFBSSxPQUFPLEdBQUcsaU1BQWlNLENBQUM7QUFDaE47QUFDQSxTQUFTLGNBQWMsQ0FBQyxLQUFLLEVBQUU7QUFDL0IsRUFBRSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdkIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDOUIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2pHLEVBQUUsSUFBSSxNQUFNLENBQUM7QUFDYjtBQUNBLEVBQUUsSUFBSSxTQUFTLEVBQUU7QUFDakIsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ25DLEdBQUcsTUFBTSxJQUFJLFNBQVMsRUFBRTtBQUN4QixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDZixHQUFHLE1BQU07QUFDVCxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3BELEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFDRDtBQUNBLFNBQVMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFO0FBQzlCO0FBQ0EsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3RSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLElBQUksT0FBTyxHQUFHLDRIQUE0SDtBQUMxSSxJQUFJLE1BQU0sR0FBRyxzSkFBc0o7QUFDbkssSUFBSSxLQUFLLEdBQUcsMkhBQTJILENBQUM7QUFDeEk7QUFDQSxTQUFTLG1CQUFtQixDQUFDLEtBQUssRUFBRTtBQUNwQyxFQUFFLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN2QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN4QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2pHLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUNEO0FBQ0EsU0FBUyxZQUFZLENBQUMsS0FBSyxFQUFFO0FBQzdCLEVBQUUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdkIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN4QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN4QixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDakcsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBQ0Q7QUFDQSxJQUFJLDRCQUE0QixHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUN0RixJQUFJLDZCQUE2QixHQUFHLGNBQWMsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUN4RixJQUFJLGdDQUFnQyxHQUFHLGNBQWMsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUM5RixJQUFJLG9CQUFvQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4RCxJQUFJLDBCQUEwQixHQUFHLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDckgsSUFBSSwyQkFBMkIsR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDM0gsSUFBSSw0QkFBNEIsR0FBRyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDL0gsSUFBSSx1QkFBdUIsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDbkc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLFlBQVksQ0FBQyxDQUFDLEVBQUU7QUFDekIsRUFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsMkJBQTJCLENBQUMsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLDRCQUE0QixDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7QUFDL1AsQ0FBQztBQUNELFNBQVMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFO0FBQzdCLEVBQUUsT0FBTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBQ0QsU0FBUyxhQUFhLENBQUMsQ0FBQyxFQUFFO0FBQzFCLEVBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3hHLENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFDLENBQUMsRUFBRTtBQUM3QixFQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUNELElBQUksa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDM0QsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUU7QUFDN0IsRUFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFDRCxJQUFJLDRCQUE0QixHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUN0RixJQUFJLG9CQUFvQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4RCxJQUFJLCtCQUErQixHQUFHLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUMzRyxTQUFTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDckIsRUFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsK0JBQStCLENBQUMsQ0FBQyxDQUFDO0FBQ3ZJLENBQUM7QUFDRDtBQUNBLElBQUksU0FBUyxHQUFHLGtCQUFrQixDQUFDO0FBQ25DO0FBQ0EsSUFBSSxjQUFjLEdBQUc7QUFDckIsRUFBRSxLQUFLLEVBQUU7QUFDVCxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ1gsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUU7QUFDakIsSUFBSSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ3hCLElBQUksT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDN0IsSUFBSSxZQUFZLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7QUFDekMsR0FBRztBQUNILEVBQUUsSUFBSSxFQUFFO0FBQ1IsSUFBSSxLQUFLLEVBQUUsRUFBRTtBQUNiLElBQUksT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQ3BCLElBQUksT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUN6QixJQUFJLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0FBQ3JDLEdBQUc7QUFDSCxFQUFFLEtBQUssRUFBRTtBQUNULElBQUksT0FBTyxFQUFFLEVBQUU7QUFDZixJQUFJLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRTtBQUNwQixJQUFJLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7QUFDaEMsR0FBRztBQUNILEVBQUUsT0FBTyxFQUFFO0FBQ1gsSUFBSSxPQUFPLEVBQUUsRUFBRTtBQUNmLElBQUksWUFBWSxFQUFFLEVBQUUsR0FBRyxJQUFJO0FBQzNCLEdBQUc7QUFDSCxFQUFFLE9BQU8sRUFBRTtBQUNYLElBQUksWUFBWSxFQUFFLElBQUk7QUFDdEIsR0FBRztBQUNILENBQUM7QUFDRCxJQUFJLFlBQVksR0FBRyxRQUFRLENBQUM7QUFDNUIsRUFBRSxLQUFLLEVBQUU7QUFDVCxJQUFJLFFBQVEsRUFBRSxDQUFDO0FBQ2YsSUFBSSxNQUFNLEVBQUUsRUFBRTtBQUNkLElBQUksS0FBSyxFQUFFLEVBQUU7QUFDYixJQUFJLElBQUksRUFBRSxHQUFHO0FBQ2IsSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUU7QUFDbkIsSUFBSSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQzFCLElBQUksT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDL0IsSUFBSSxZQUFZLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7QUFDM0MsR0FBRztBQUNILEVBQUUsUUFBUSxFQUFFO0FBQ1osSUFBSSxNQUFNLEVBQUUsQ0FBQztBQUNiLElBQUksS0FBSyxFQUFFLEVBQUU7QUFDYixJQUFJLElBQUksRUFBRSxFQUFFO0FBQ1osSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUU7QUFDbEIsSUFBSSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ3pCLElBQUksT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDOUIsSUFBSSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7QUFDMUMsR0FBRztBQUNILEVBQUUsTUFBTSxFQUFFO0FBQ1YsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNaLElBQUksSUFBSSxFQUFFLEVBQUU7QUFDWixJQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRTtBQUNsQixJQUFJLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDekIsSUFBSSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM5QixJQUFJLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtBQUMxQyxHQUFHO0FBQ0gsQ0FBQyxFQUFFLGNBQWMsQ0FBQztBQUNsQixJQUFJLGtCQUFrQixHQUFHLFFBQVEsR0FBRyxHQUFHO0FBQ3ZDLElBQUksbUJBQW1CLEdBQUcsUUFBUSxHQUFHLElBQUk7QUFDekMsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDO0FBQzlCLEVBQUUsS0FBSyxFQUFFO0FBQ1QsSUFBSSxRQUFRLEVBQUUsQ0FBQztBQUNmLElBQUksTUFBTSxFQUFFLEVBQUU7QUFDZCxJQUFJLEtBQUssRUFBRSxrQkFBa0IsR0FBRyxDQUFDO0FBQ2pDLElBQUksSUFBSSxFQUFFLGtCQUFrQjtBQUM1QixJQUFJLEtBQUssRUFBRSxrQkFBa0IsR0FBRyxFQUFFO0FBQ2xDLElBQUksT0FBTyxFQUFFLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ3pDLElBQUksT0FBTyxFQUFFLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM5QyxJQUFJLFlBQVksRUFBRSxrQkFBa0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0FBQzFELEdBQUc7QUFDSCxFQUFFLFFBQVEsRUFBRTtBQUNaLElBQUksTUFBTSxFQUFFLENBQUM7QUFDYixJQUFJLEtBQUssRUFBRSxrQkFBa0IsR0FBRyxFQUFFO0FBQ2xDLElBQUksSUFBSSxFQUFFLGtCQUFrQixHQUFHLENBQUM7QUFDaEMsSUFBSSxLQUFLLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDdEMsSUFBSSxPQUFPLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQzdDLElBQUksT0FBTyxFQUFFLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbEQsSUFBSSxZQUFZLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUM7QUFDOUQsR0FBRztBQUNILEVBQUUsTUFBTSxFQUFFO0FBQ1YsSUFBSSxLQUFLLEVBQUUsbUJBQW1CLEdBQUcsQ0FBQztBQUNsQyxJQUFJLElBQUksRUFBRSxtQkFBbUI7QUFDN0IsSUFBSSxLQUFLLEVBQUUsbUJBQW1CLEdBQUcsRUFBRTtBQUNuQyxJQUFJLE9BQU8sRUFBRSxtQkFBbUIsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUMxQyxJQUFJLE9BQU8sRUFBRSxtQkFBbUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDL0MsSUFBSSxZQUFZLEVBQUUsbUJBQW1CLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtBQUMzRCxHQUFHO0FBQ0gsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ25CO0FBQ0EsSUFBSSxjQUFjLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3JILElBQUksWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDckQ7QUFDQSxTQUFTLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNuQyxFQUFFLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3hCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNsQixHQUFHO0FBQ0g7QUFDQTtBQUNBLEVBQUUsSUFBSSxJQUFJLEdBQUc7QUFDYixJQUFJLE1BQU0sRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDN0UsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUNoQyxJQUFJLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxHQUFHLENBQUMsa0JBQWtCO0FBQ3pFLEdBQUcsQ0FBQztBQUNKLEVBQUUsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBQ0Q7QUFDQSxTQUFTLFNBQVMsQ0FBQyxDQUFDLEVBQUU7QUFDdEIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFDRDtBQUNBO0FBQ0EsU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtBQUMzRCxFQUFFLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDckMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUk7QUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1RDtBQUNBLEVBQUUsS0FBSyxHQUFHLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDO0FBQ3pCLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDcEMsQ0FBQztBQUNEO0FBQ0E7QUFDQSxTQUFTLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ3ZDLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLFFBQVEsRUFBRSxPQUFPLEVBQUU7QUFDbkQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO0FBQ3JDLE1BQU0sSUFBSSxRQUFRLEVBQUU7QUFDcEIsUUFBUSxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZELE9BQU87QUFDUDtBQUNBLE1BQU0sT0FBTyxPQUFPLENBQUM7QUFDckIsS0FBSyxNQUFNO0FBQ1gsTUFBTSxPQUFPLFFBQVEsQ0FBQztBQUN0QixLQUFLO0FBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksUUFBUSxnQkFBZ0IsWUFBWTtBQUN4QztBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUM1QixJQUFJLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLEdBQUcsY0FBYyxHQUFHLFlBQVksQ0FBQztBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDaEMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6RCxJQUFJLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztBQUMvQixNQUFNLFlBQVksRUFBRSxLQUFLO0FBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNiLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQ3ZELElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtBQUNoRCxNQUFNLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyw4REFBOEQsSUFBSSxHQUFHLEtBQUssSUFBSSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUksS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksUUFBUSxDQUFDO0FBQ3hCLE1BQU0sTUFBTSxFQUFFLGVBQWUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQztBQUMxRCxNQUFNLEdBQUcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztBQUNsQyxNQUFNLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7QUFDakQsS0FBSyxDQUFDLENBQUM7QUFDUCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLGdCQUFnQixDQUFDLFlBQVksRUFBRTtBQUN0RSxJQUFJLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO0FBQ2hDLE1BQU0sT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQy9DLEtBQUssTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUU7QUFDbEQsTUFBTSxPQUFPLFlBQVksQ0FBQztBQUMxQixLQUFLLE1BQU0sSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7QUFDakQsTUFBTSxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDL0MsS0FBSyxNQUFNO0FBQ1gsTUFBTSxNQUFNLElBQUksb0JBQW9CLENBQUMsNEJBQTRCLEdBQUcsWUFBWSxHQUFHLFdBQVcsR0FBRyxPQUFPLFlBQVksQ0FBQyxDQUFDO0FBQ3RILEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNsRCxJQUFJLElBQUksaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0FBQ2xELFFBQVEsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDO0FBQ0EsSUFBSSxJQUFJLE1BQU0sRUFBRTtBQUNoQixNQUFNLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0MsS0FBSyxNQUFNO0FBQ1gsTUFBTSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxJQUFJLEdBQUcsZ0NBQWdDLENBQUMsQ0FBQztBQUN0RyxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQzFELElBQUksSUFBSSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7QUFDbEQsUUFBUSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEM7QUFDQSxJQUFJLElBQUksTUFBTSxFQUFFO0FBQ2hCLE1BQU0sT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvQyxLQUFLLE1BQU07QUFDWCxNQUFNLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsY0FBYyxHQUFHLElBQUksR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBQ3RHLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7QUFDM0QsSUFBSSxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsRUFBRTtBQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDekIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2pCLE1BQU0sTUFBTSxJQUFJLG9CQUFvQixDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFDekYsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLE9BQU8sR0FBRyxNQUFNLFlBQVksT0FBTyxHQUFHLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDeEY7QUFDQSxJQUFJLElBQUksUUFBUSxDQUFDLGNBQWMsRUFBRTtBQUNqQyxNQUFNLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QyxLQUFLLE1BQU07QUFDWCxNQUFNLE9BQU8sSUFBSSxRQUFRLENBQUM7QUFDMUIsUUFBUSxPQUFPLEVBQUUsT0FBTztBQUN4QixPQUFPLENBQUMsQ0FBQztBQUNULEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsYUFBYSxHQUFHLFNBQVMsYUFBYSxDQUFDLElBQUksRUFBRTtBQUN4RCxJQUFJLElBQUksVUFBVSxHQUFHO0FBQ3JCLE1BQU0sSUFBSSxFQUFFLE9BQU87QUFDbkIsTUFBTSxLQUFLLEVBQUUsT0FBTztBQUNwQixNQUFNLE9BQU8sRUFBRSxVQUFVO0FBQ3pCLE1BQU0sUUFBUSxFQUFFLFVBQVU7QUFDMUIsTUFBTSxLQUFLLEVBQUUsUUFBUTtBQUNyQixNQUFNLE1BQU0sRUFBRSxRQUFRO0FBQ3RCLE1BQU0sSUFBSSxFQUFFLE9BQU87QUFDbkIsTUFBTSxLQUFLLEVBQUUsT0FBTztBQUNwQixNQUFNLEdBQUcsRUFBRSxNQUFNO0FBQ2pCLE1BQU0sSUFBSSxFQUFFLE1BQU07QUFDbEIsTUFBTSxJQUFJLEVBQUUsT0FBTztBQUNuQixNQUFNLEtBQUssRUFBRSxPQUFPO0FBQ3BCLE1BQU0sTUFBTSxFQUFFLFNBQVM7QUFDdkIsTUFBTSxPQUFPLEVBQUUsU0FBUztBQUN4QixNQUFNLE1BQU0sRUFBRSxTQUFTO0FBQ3ZCLE1BQU0sT0FBTyxFQUFFLFNBQVM7QUFDeEIsTUFBTSxXQUFXLEVBQUUsY0FBYztBQUNqQyxNQUFNLFlBQVksRUFBRSxjQUFjO0FBQ2xDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEQsSUFBSSxPQUFPLFVBQVUsQ0FBQztBQUN0QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxDQUFDLEVBQUU7QUFDL0MsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQztBQUMzQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRTtBQUNqRCxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoQixLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDckMsTUFBTSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLO0FBQ3pELEtBQUssQ0FBQyxDQUFDO0FBQ1A7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUM5RyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQzFDLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3JCO0FBQ0EsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQy9DLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuQztBQUNBLE1BQU0sSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDNUIsUUFBUSxPQUFPLElBQUksQ0FBQztBQUNwQixPQUFPO0FBQ1A7QUFDQSxNQUFNLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO0FBQ2hELFFBQVEsS0FBSyxFQUFFLE1BQU07QUFDckIsUUFBUSxXQUFXLEVBQUUsTUFBTTtBQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQ2YsUUFBUSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEIsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQzNCLE1BQU0sT0FBTyxDQUFDLENBQUM7QUFDZixLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7QUFDM0MsTUFBTSxJQUFJLEVBQUUsYUFBYTtBQUN6QixNQUFNLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVE7QUFDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxHQUFHO0FBQ3hDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDakMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssR0FBRztBQUNsQztBQUNBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkMsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDaEIsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNoRCxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzdGLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDaEQsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztBQUM5QyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUMxRyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2hELElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDcEQsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQztBQUNyRDtBQUNBLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNyRSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDO0FBQzlCLElBQUksT0FBTyxDQUFDLENBQUM7QUFDYixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLENBQUMsSUFBSSxFQUFFO0FBQzlDLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkMsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDakMsSUFBSSxJQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxPQUFPLElBQUksQ0FBQztBQUN0RCxJQUFJLElBQUksR0FBRyxRQUFRLENBQUM7QUFDcEIsTUFBTSxvQkFBb0IsRUFBRSxLQUFLO0FBQ2pDLE1BQU0sZUFBZSxFQUFFLEtBQUs7QUFDNUIsTUFBTSxhQUFhLEVBQUUsS0FBSztBQUMxQixNQUFNLE1BQU0sRUFBRSxVQUFVO0FBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNiLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUM1RSxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFDekQ7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFO0FBQ2xGLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7QUFDcEQ7QUFDQSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQUU7QUFDbEUsUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDO0FBQ3RCLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEM7QUFDQSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtBQUM1QixNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxHQUFHLENBQUM7QUFDZixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLEdBQUc7QUFDcEMsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLEdBQUc7QUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLEdBQUc7QUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbkMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxHQUFHO0FBQ3RDLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFO0FBQ3hDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0FBQ2pELFFBQVEsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNwQjtBQUNBLElBQUksS0FBSyxJQUFJLFNBQVMsR0FBRywrQkFBK0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDL0csTUFBTSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQzFCO0FBQ0EsTUFBTSxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQzNFLFFBQVEsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDekIsTUFBTSxNQUFNLEVBQUUsTUFBTTtBQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDYixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxRQUFRLEVBQUU7QUFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQztBQUNuQyxJQUFJLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNsRCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNuQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsRUFBRSxFQUFFO0FBQzFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkMsSUFBSSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDcEI7QUFDQSxJQUFJLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUM5RixNQUFNLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMvQixNQUFNLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRTtBQUN6QixNQUFNLE1BQU0sRUFBRSxNQUFNO0FBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNiLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRTtBQUNsQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5QyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFO0FBQ3BDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkM7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0FBQzNGO0FBQ0EsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDekIsTUFBTSxNQUFNLEVBQUUsS0FBSztBQUNuQixLQUFLLENBQUMsQ0FBQztBQUNQLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsV0FBVyxHQUFHLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUNuRCxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSztBQUM1QyxRQUFRLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTTtBQUM1QixRQUFRLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZTtBQUM5QyxRQUFRLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztBQUNyRDtBQUNBLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7QUFDN0IsTUFBTSxNQUFNLEVBQUUsTUFBTTtBQUNwQixNQUFNLGVBQWUsRUFBRSxlQUFlO0FBQ3RDLEtBQUssQ0FBQztBQUNOLFFBQVEsSUFBSSxHQUFHO0FBQ2YsTUFBTSxHQUFHLEVBQUUsR0FBRztBQUNkLEtBQUssQ0FBQztBQUNOO0FBQ0EsSUFBSSxJQUFJLGtCQUFrQixFQUFFO0FBQzVCLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQ25ELEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9CLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRTtBQUNoQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDN0QsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsR0FBRztBQUMxQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDO0FBQ25DLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQy9CLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDekIsTUFBTSxNQUFNLEVBQUUsSUFBSTtBQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDYixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sR0FBRztBQUN0QyxJQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO0FBQzlGLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQyxLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDO0FBQ25DO0FBQ0EsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0FBQzVCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUNuQyxNQUFNLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtBQUNsQixRQUFRLFdBQVcsR0FBRyxFQUFFO0FBQ3hCLFFBQVEsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUMvQixJQUFJLElBQUksUUFBUSxDQUFDO0FBQ2pCO0FBQ0EsSUFBSSxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksR0FBRztBQUNuSCxNQUFNLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDM0I7QUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDakMsUUFBUSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLFFBQVEsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCO0FBQ0EsUUFBUSxLQUFLLElBQUksRUFBRSxJQUFJLFdBQVcsRUFBRTtBQUNwQyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0RCxVQUFVLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsU0FBUztBQUNUO0FBQ0E7QUFDQSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQy9CLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QixTQUFTO0FBQ1Q7QUFDQSxRQUFRLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLFFBQVEsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQztBQUN4RDtBQUNBLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7QUFDL0IsVUFBVSxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUN4RSxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQSxPQUFPLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDcEMsUUFBUSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLFdBQVcsRUFBRTtBQUNqQyxNQUFNLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUNsQyxRQUFRLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvRyxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDekIsTUFBTSxNQUFNLEVBQUUsS0FBSztBQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDekIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLEdBQUc7QUFDcEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQztBQUNuQyxJQUFJLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNyQjtBQUNBLElBQUksS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ25HLE1BQU0sSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDekIsTUFBTSxNQUFNLEVBQUUsT0FBTztBQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDYixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLENBQUMsS0FBSyxFQUFFO0FBQ3pDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0FBQ3pDLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDbkIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ3JDLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDbkIsS0FBSztBQUNMO0FBQ0EsSUFBSSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQ3hCO0FBQ0EsTUFBTSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxTQUFTLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM1RSxNQUFNLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN2QixLQUFLO0FBQ0w7QUFDQSxJQUFJLEtBQUssSUFBSSxVQUFVLEdBQUcsK0JBQStCLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ25ILE1BQU0sSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUMzQjtBQUNBLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNoRCxRQUFRLE9BQU8sS0FBSyxDQUFDO0FBQ3JCLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDMUIsSUFBSSxHQUFHLEVBQUUsUUFBUTtBQUNqQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbkQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGlCQUFpQjtBQUMxQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDNUQsS0FBSztBQUNMLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE9BQU87QUFDaEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN6RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFVBQVU7QUFDbkIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUM1RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFFBQVE7QUFDakIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE9BQU87QUFDaEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN6RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3hELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsT0FBTztBQUNoQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3pELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsU0FBUztBQUNsQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzNELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsU0FBUztBQUNsQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzNELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsY0FBYztBQUN2QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2hFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxTQUFTO0FBQ2xCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQztBQUNuQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGVBQWU7QUFDeEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3ZELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsb0JBQW9CO0FBQzdCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUM1RCxLQUFLO0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNOO0FBQ0EsRUFBRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLEVBQUUsQ0FBQztBQUNKO0FBQ0EsSUFBSSxTQUFTLEdBQUcsa0JBQWtCLENBQUM7QUFDbkM7QUFDQSxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDdEMsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtBQUNoQyxJQUFJLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQ3hELEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtBQUNuQyxJQUFJLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3RELEdBQUcsTUFBTSxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUU7QUFDMUIsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsb0VBQW9FLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNsSyxHQUFHLE1BQU07QUFDVCxJQUFJLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksUUFBUSxnQkFBZ0IsWUFBWTtBQUN4QztBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUM1QjtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztBQUNoQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsUUFBUSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO0FBQzNELElBQUksSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDaEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ3pCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNqQixNQUFNLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBQ3pGLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxPQUFPLEdBQUcsTUFBTSxZQUFZLE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3hGO0FBQ0EsSUFBSSxJQUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUU7QUFDakMsTUFBTSxNQUFNLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDOUMsS0FBSyxNQUFNO0FBQ1gsTUFBTSxPQUFPLElBQUksUUFBUSxDQUFDO0FBQzFCLFFBQVEsT0FBTyxFQUFFLE9BQU87QUFDeEIsT0FBTyxDQUFDLENBQUM7QUFDVCxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQzlELElBQUksSUFBSSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQzVDLFFBQVEsUUFBUSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLElBQUksSUFBSSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQy9EO0FBQ0EsSUFBSSxJQUFJLGFBQWEsSUFBSSxJQUFJLEVBQUU7QUFDL0IsTUFBTSxPQUFPLElBQUksUUFBUSxDQUFDO0FBQzFCLFFBQVEsS0FBSyxFQUFFLFVBQVU7QUFDekIsUUFBUSxHQUFHLEVBQUUsUUFBUTtBQUNyQixPQUFPLENBQUMsQ0FBQztBQUNULEtBQUssTUFBTTtBQUNYLE1BQU0sT0FBTyxhQUFhLENBQUM7QUFDM0IsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtBQUNuRCxJQUFJLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7QUFDakQsUUFBUSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7QUFDbkQsSUFBSSxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0FBQ2pELFFBQVEsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLElBQUksT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNsRCxJQUFJLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUMzQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QjtBQUNBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ2hCLE1BQU0sSUFBSSxLQUFLLEVBQUUsWUFBWSxDQUFDO0FBQzlCO0FBQ0EsTUFBTSxJQUFJO0FBQ1YsUUFBUSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUMsUUFBUSxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDbEIsUUFBUSxZQUFZLEdBQUcsS0FBSyxDQUFDO0FBQzdCLE9BQU87QUFDUDtBQUNBLE1BQU0sSUFBSSxHQUFHLEVBQUUsVUFBVSxDQUFDO0FBQzFCO0FBQ0EsTUFBTSxJQUFJO0FBQ1YsUUFBUSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEMsUUFBUSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztBQUNqQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDbEIsUUFBUSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBQzNCLE9BQU87QUFDUDtBQUNBLE1BQU0sSUFBSSxZQUFZLElBQUksVUFBVSxFQUFFO0FBQ3RDLFFBQVEsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNsRCxPQUFPO0FBQ1A7QUFDQSxNQUFNLElBQUksWUFBWSxFQUFFO0FBQ3hCLFFBQVEsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUM7QUFDQSxRQUFRLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtBQUN6QixVQUFVLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDNUMsU0FBUztBQUNULE9BQU8sTUFBTSxJQUFJLFVBQVUsRUFBRTtBQUM3QixRQUFRLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDO0FBQ0EsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDMUIsVUFBVSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVDLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxJQUFJLEdBQUcsZ0NBQWdDLENBQUMsQ0FBQztBQUNwRyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxDQUFDLEVBQUU7QUFDL0MsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQztBQUMzQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLElBQUksRUFBRTtBQUN4QyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQztBQUM1QixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDOUUsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLElBQUksRUFBRTtBQUN0QyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQztBQUM1QixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sR0FBRyxDQUFDO0FBQ2xDLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDMUMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUMxRixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLEdBQUc7QUFDdEMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNqRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxRQUFRLEVBQUU7QUFDOUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUssQ0FBQztBQUNwQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDN0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsUUFBUSxFQUFFO0FBQ2hELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFDcEMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLFFBQVEsRUFBRTtBQUNoRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3BDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztBQUNuRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFO0FBQ25DLElBQUksSUFBSSxJQUFJLEdBQUcsS0FBSyxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLO0FBQzVDLFFBQVEsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLO0FBQzFCLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDdkI7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDO0FBQ25DLElBQUksT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEUsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLEdBQUc7QUFDdEMsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDckI7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ2pDO0FBQ0EsSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtBQUNsRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEMsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ3JFLE1BQU0sT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtBQUNiLFFBQVEsT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNyQixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNkO0FBQ0EsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ3ZCLE1BQU0sSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ3JDLFVBQVUsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNwRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDYixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sT0FBTyxDQUFDO0FBQ25CLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsUUFBUSxFQUFFO0FBQzlDLElBQUksSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2xEO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDdkUsTUFBTSxPQUFPLEVBQUUsQ0FBQztBQUNoQixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDZixRQUFRLElBQUksQ0FBQztBQUNiLElBQUksSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ3JCO0FBQ0EsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ3ZCLE1BQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUM1RCxRQUFRLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ1YsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQy9DLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNmLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNmLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxPQUFPLENBQUM7QUFDbkIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEdBQUcsU0FBUyxhQUFhLENBQUMsYUFBYSxFQUFFO0FBQy9ELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDakMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDL0UsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFO0FBQzdDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxDQUFDLEtBQUssRUFBRTtBQUNqRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3BDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3BDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtBQUMzQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3BDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2xELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRTtBQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtBQUN6QyxNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxLQUFLLEVBQUU7QUFDckQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQztBQUNuQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FB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QUFDLENBQUM7QUFDcEMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQzNCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDL0IsS0FBSyxDQUFDLENBQUM7QUFDUCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLEdBQUc7QUFDeEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLFNBQVMsQ0FBQztBQUN4QyxJQUFJLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3BFLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsSUFBSSxFQUFFO0FBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxTQUFTLENBQUM7QUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6RCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsU0FBUyxHQUFHO0FBQzFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxTQUFTLENBQUM7QUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDekQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLElBQUksRUFBRTtBQUM5QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sU0FBUyxDQUFDO0FBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7QUFDMUQsSUFBSSxJQUFJLEtBQUssR0FBRyxNQUFNLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU07QUFDL0MsUUFBUSxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVM7QUFDekMsUUFBUSxTQUFTLEdBQUcsZUFBZSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxlQUFlLENBQUM7QUFDekU7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sU0FBUyxDQUFDO0FBQ3hDLElBQUksT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RGLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN0RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO0FBQ3ZCLE1BQU0sT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNsRCxLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0MsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRTtBQUNyRCxJQUFJLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRSxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzFCLElBQUksR0FBRyxFQUFFLE9BQU87QUFDaEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDMUMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxLQUFLO0FBQ2QsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDMUMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxTQUFTO0FBQ2xCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztBQUN6QyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGVBQWU7QUFDeEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3ZELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsb0JBQW9CO0FBQzdCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUM1RCxLQUFLO0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNOO0FBQ0EsRUFBRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLEVBQUUsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksZ0JBQWdCLFlBQVk7QUFDcEMsRUFBRSxTQUFTLElBQUksR0FBRyxFQUFFO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUU7QUFDdEMsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO0FBQ2xDLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDakQsTUFBTSxLQUFLLEVBQUUsRUFBRTtBQUNmLEtBQUssQ0FBQyxDQUFDO0FBQ1AsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUM7QUFDM0QsTUFBTSxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNkLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRTtBQUN4RCxJQUFJLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLGVBQWUsQ0FBQyxLQUFLLEVBQUU7QUFDdkQsSUFBSSxPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3RELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUU7QUFDL0MsSUFBSSxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtBQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDdEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUs7QUFDNUMsUUFBUSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07QUFDakMsUUFBUSxNQUFNLEdBQUcsV0FBVyxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxXQUFXO0FBQzVELFFBQVEsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGVBQWU7QUFDbkQsUUFBUSxlQUFlLEdBQUcsb0JBQW9CLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLG9CQUFvQjtBQUN2RixRQUFRLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTTtBQUNqQyxRQUFRLE1BQU0sR0FBRyxXQUFXLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLFdBQVc7QUFDNUQsUUFBUSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsY0FBYztBQUNqRCxRQUFRLGNBQWMsR0FBRyxtQkFBbUIsS0FBSyxLQUFLLENBQUMsR0FBRyxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFDMUY7QUFDQSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3RixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUM1RCxJQUFJLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUN0QixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLE1BQU0sS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTTtBQUMvQyxRQUFRLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTTtBQUNuQyxRQUFRLE1BQU0sR0FBRyxZQUFZLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLFlBQVk7QUFDOUQsUUFBUSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsZUFBZTtBQUNyRCxRQUFRLGVBQWUsR0FBRyxxQkFBcUIsS0FBSyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcscUJBQXFCO0FBQ3pGLFFBQVEsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNO0FBQ25DLFFBQVEsTUFBTSxHQUFHLFlBQVksS0FBSyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsWUFBWTtBQUM5RCxRQUFRLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxjQUFjO0FBQ25ELFFBQVEsY0FBYyxHQUFHLG9CQUFvQixLQUFLLEtBQUssQ0FBQyxHQUFHLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQztBQUM1RjtBQUNBLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuRyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFO0FBQ3BELElBQUksSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDM0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ3RCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxLQUFLLEdBQUcsTUFBTSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNO0FBQy9DLFFBQVEsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNO0FBQ25DLFFBQVEsTUFBTSxHQUFHLFlBQVksS0FBSyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsWUFBWTtBQUM5RCxRQUFRLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxlQUFlO0FBQ3JELFFBQVEsZUFBZSxHQUFHLHFCQUFxQixLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxxQkFBcUI7QUFDekYsUUFBUSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDbkMsUUFBUSxNQUFNLEdBQUcsWUFBWSxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxZQUFZLENBQUM7QUFDL0Q7QUFDQSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyRixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7QUFDaEUsSUFBSSxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtBQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDdEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLEtBQUssR0FBRyxNQUFNLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU07QUFDL0MsUUFBUSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDbkMsUUFBUSxNQUFNLEdBQUcsWUFBWSxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxZQUFZO0FBQzlELFFBQVEscUJBQXFCLEdBQUcsS0FBSyxDQUFDLGVBQWU7QUFDckQsUUFBUSxlQUFlLEdBQUcscUJBQXFCLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLHFCQUFxQjtBQUN6RixRQUFRLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTTtBQUNuQyxRQUFRLE1BQU0sR0FBRyxZQUFZLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMvRDtBQUNBLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzRixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUU7QUFDOUMsSUFBSSxJQUFJLEtBQUssR0FBRyxNQUFNLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU07QUFDL0MsUUFBUSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDbkMsUUFBUSxNQUFNLEdBQUcsWUFBWSxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxZQUFZLENBQUM7QUFDL0Q7QUFDQSxJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUM3QyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUM1QyxJQUFJLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzNCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUN2QixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLE1BQU0sS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTTtBQUMvQyxRQUFRLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTTtBQUNuQyxRQUFRLE1BQU0sR0FBRyxZQUFZLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMvRDtBQUNBLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxHQUFHO0FBQ3RDLElBQUksT0FBTztBQUNYLE1BQU0sUUFBUSxFQUFFLFdBQVcsRUFBRTtBQUM3QixLQUFLLENBQUM7QUFDTixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLEVBQUUsQ0FBQztBQUNKO0FBQ0EsU0FBUyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtBQUNqQyxFQUFFLElBQUksV0FBVyxHQUFHLFNBQVMsV0FBVyxDQUFDLEVBQUUsRUFBRTtBQUM3QyxJQUFJLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDdkIsTUFBTSxhQUFhLEVBQUUsSUFBSTtBQUN6QixLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDaEMsR0FBRztBQUNILE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckQ7QUFDQSxFQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFDRDtBQUNBLFNBQVMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQzlDLEVBQUUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDM0MsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQixHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDbkMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNqQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDakMsSUFBSSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7QUFDdEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ2hDLElBQUksSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN6QixFQUFFLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNuQixFQUFFLElBQUksV0FBVyxFQUFFLFNBQVMsQ0FBQztBQUM3QjtBQUNBLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUNuRSxJQUFJLElBQUksV0FBVyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFDbEMsUUFBUSxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUM3QixRQUFRLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEM7QUFDQSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDbEMsTUFBTSxJQUFJLFlBQVksQ0FBQztBQUN2QjtBQUNBLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUN6QixNQUFNLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDN0Y7QUFDQSxNQUFNLElBQUksU0FBUyxHQUFHLEtBQUssRUFBRTtBQUM3QixRQUFRLElBQUksYUFBYSxDQUFDO0FBQzFCO0FBQ0EsUUFBUSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLEdBQUcsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO0FBQ25HLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNuQixPQUFPLE1BQU07QUFDYixRQUFRLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDM0IsT0FBTztBQUNQO0FBQ0EsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBQ0Q7QUFDQSxTQUFTLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDN0MsRUFBRSxJQUFJLGVBQWUsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7QUFDN0QsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUNqQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDcEMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0EsRUFBRSxJQUFJLGVBQWUsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBQ3ZDLEVBQUUsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUNsRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNFLEdBQUcsQ0FBQyxDQUFDO0FBQ0w7QUFDQSxFQUFFLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDcEMsSUFBSSxJQUFJLFNBQVMsR0FBRyxLQUFLLEVBQUU7QUFDM0IsTUFBTSxJQUFJLGFBQWEsQ0FBQztBQUN4QjtBQUNBLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxHQUFHLEVBQUUsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO0FBQ25HLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO0FBQzlCLE1BQU0sT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ2xHLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BEO0FBQ0EsRUFBRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ2xDLElBQUksSUFBSSxvQkFBb0IsQ0FBQztBQUM3QjtBQUNBLElBQUksT0FBTyxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ25KLEdBQUcsTUFBTTtBQUNULElBQUksT0FBTyxRQUFRLENBQUM7QUFDcEIsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLElBQUksZ0JBQWdCLEdBQUc7QUFDdkIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsT0FBTyxFQUFFLGlCQUFpQjtBQUM1QixFQUFFLElBQUksRUFBRSxpQkFBaUI7QUFDekIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQjtBQUN6QixFQUFFLFFBQVEsRUFBRSxpQkFBaUI7QUFDN0IsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsT0FBTyxFQUFFLHVCQUF1QjtBQUNsQyxFQUFFLElBQUksRUFBRSxpQkFBaUI7QUFDekIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQjtBQUN6QixFQUFFLElBQUksRUFBRSxpQkFBaUI7QUFDekIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQjtBQUN6QixFQUFFLElBQUksRUFBRSxpQkFBaUI7QUFDekIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsT0FBTyxFQUFFLGlCQUFpQjtBQUM1QixFQUFFLElBQUksRUFBRSxpQkFBaUI7QUFDekIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCO0FBQ3pCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQjtBQUN6QixFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxxQkFBcUIsR0FBRztBQUM1QixFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDcEIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3ZCLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUNwQixFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDcEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLEVBQUUsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztBQUMxQixFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDcEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUNwQixFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDcEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUNwQixFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDcEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUNwQixFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDdkIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUNwQixFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxD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RSxFQUFFLElBQUksR0FBRztBQUM3RyxJQUFJLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDNUIsSUFBSSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0I7QUFDQSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDOUIsTUFBTSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFDRDtBQUNBLFNBQVMsUUFBUSxDQUFDLE9BQU8sRUFBRTtBQUMzQixFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7QUFDZixNQUFNLElBQUksQ0FBQztBQUNYO0FBQ0EsRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO0FBQzdFLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVELEdBQUcsTUFBTTtBQUNULElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElB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QUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxHQUFHO0FBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3hDLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsR0FBRztBQUMxQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7QUFDL0MsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsYUFBYSxHQUFHLFNBQVMsYUFBYSxHQUFHO0FBQ2xELElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDM0QsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxHQUFHO0FBQ3BDLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxHQUFHO0FBQ3BDLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRTtBQUM1QyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoQixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ2pDO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQztBQUNBLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO0FBQzVCLE1BQU0sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0FBQ2hELE1BQU0sSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztBQUN0RCxNQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFDcEMsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksQ0FBQztBQUNoQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLEdBQUc7QUFDeEMsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNsRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDekQsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxjQUFjLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7QUFDakQsTUFBTSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUN4RSxLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUMzQixNQUFNLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtBQUN6QixNQUFNLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtBQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDYjtBQUNBLElBQUksSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0FBQzVELFFBQVEsWUFBWSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFO0FBQy9ELFFBQVEsT0FBTyxHQUFHLFlBQVksR0FBRyxJQUFJLEdBQUcsYUFBYTtBQUNyRCxRQUFRLEtBQUssR0FBRyxZQUFZLEdBQUcsYUFBYSxHQUFHLElBQUk7QUFDbkQsUUFBUSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZEO0FBQ0EsSUFBSSxPQUFPLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBQ25ELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDaEQsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxjQUFjLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxhQUFhLEVBQUU7QUFDL0MsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzdFLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRTtBQUN6RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3BDLElBQUksSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzFDLElBQUksSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO0FBQzFELE1BQU0sYUFBYSxFQUFFLElBQUk7QUFDekIsS0FBSyxDQUFDLENBQUM7QUFDUCxJQUFJLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUYsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRTtBQUN6QyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3SSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxDQUFDLE9BQU8sRUFBRTtBQUNuRCxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzVCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNuQixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDO0FBQ25DLElBQUksSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRTtBQUN2RCxNQUFNLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtBQUNyQixLQUFLLENBQUM7QUFDTixRQUFRLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ3pGLElBQUksSUFBSSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzNFLElBQUksSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUM1QjtBQUNBLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNyQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQzNCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQztBQUN2QixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFO0FBQ3hFLE1BQU0sT0FBTyxFQUFFLFFBQVE7QUFDdkIsTUFBTSxLQUFLLEVBQUUsS0FBSztBQUNsQixNQUFNLElBQUksRUFBRSxJQUFJO0FBQ2hCLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDUixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtBQUNuRSxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzVCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNuQixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDO0FBQ25DLElBQUksT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRTtBQUNoRSxNQUFNLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtBQUNyQixLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7QUFDcEMsTUFBTSxPQUFPLEVBQUUsTUFBTTtBQUNyQixNQUFNLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO0FBQ3hDLE1BQU0sU0FBUyxFQUFFLElBQUk7QUFDckIsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNSLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxHQUFHO0FBQ2hDLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7QUFDbEcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQy9DLE1BQU0sTUFBTSxJQUFJLG9CQUFvQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFDaEYsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUU7QUFDMUMsTUFBTSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxHQUFHO0FBQ2hDLElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDeEcsTUFBTSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQy9DLE1BQU0sTUFBTSxJQUFJLG9CQUFvQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFDaEYsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUU7QUFDMUMsTUFBTSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRTtBQUM5RSxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzVCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNuQixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLE9BQU87QUFDMUIsUUFBUSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU07QUFDekMsUUFBUSxNQUFNLEdBQUcsZUFBZSxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxlQUFlO0FBQ3BFLFFBQVEscUJBQXFCLEdBQUcsUUFBUSxDQUFDLGVBQWU7QUFDeEQsUUFBUSxlQUFlLEdBQUcscUJBQXFCLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLHFCQUFxQjtBQUN6RixRQUFRLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBQ3RDLE1BQU0sTUFBTSxFQUFFLE1BQU07QUFDcEIsTUFBTSxlQUFlLEVBQUUsZUFBZTtBQUN0QyxNQUFNLFdBQVcsRUFBRSxJQUFJO0FBQ3ZCLEtBQUssQ0FBQyxDQUFDO0FBQ1AsSUFBSSxPQUFPLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDckQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7QUFDOUUsSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsRUFBRTtBQUM1QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbkIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDMUIsSUFBSSxHQUFHLEVBQUUsU0FBUztBQUNsQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7QUFDbkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxlQUFlO0FBQ3hCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUN2RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLG9CQUFvQjtBQUM3QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDNUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFFBQVE7QUFDakIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ25ELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxpQkFBaUI7QUFDMUIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0FBQzVELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxnQkFBZ0I7QUFDekIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQzNELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsTUFBTTtBQUNmLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsVUFBVTtBQUNuQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDbEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE1BQU07QUFDZixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7QUFDOUMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDOUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE9BQU87QUFDaEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQy9DLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxLQUFLO0FBQ2QsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQzdDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxNQUFNO0FBQ2YsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQzlDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxRQUFRO0FBQ2pCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUNoRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsUUFBUTtBQUNqQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7QUFDaEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGFBQWE7QUFDdEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQ3JELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFVBQVU7QUFDbkIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztBQUN4RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxZQUFZO0FBQ3JCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDMUUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxTQUFTO0FBQ2xCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdkUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDckUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsWUFBWTtBQUNyQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtBQUNqRCxRQUFRLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRztBQUN4QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNoQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxXQUFXO0FBQ3BCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQ2hELFFBQVEsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHO0FBQ3hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGNBQWM7QUFDdkIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7QUFDbkQsUUFBUSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUc7QUFDeEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsYUFBYTtBQUN0QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUNsRCxRQUFRLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRztBQUN4QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNsQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxRQUFRO0FBQ2pCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGlCQUFpQjtBQUMxQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtBQUN4QixRQUFRLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtBQUM3QyxVQUFVLE1BQU0sRUFBRSxPQUFPO0FBQ3pCLFVBQVUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0FBQzdCLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsT0FBTyxNQUFNO0FBQ2IsUUFBUSxPQUFPLElBQUksQ0FBQztBQUNwQixPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGdCQUFnQjtBQUN6QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtBQUN4QixRQUFRLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtBQUM3QyxVQUFVLE1BQU0sRUFBRSxNQUFNO0FBQ3hCLFVBQVUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0FBQzdCLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsT0FBTyxNQUFNO0FBQ2IsUUFBUSxPQUFPLElBQUksQ0FBQztBQUNwQixPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxlQUFlO0FBQ3hCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUN6RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7QUFDOUIsUUFBUSxPQUFPLEtBQUssQ0FBQztBQUNyQixPQUFPLE1BQU07QUFDYixRQUFRLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ3RDLFVBQVUsS0FBSyxFQUFFLENBQUM7QUFDbEIsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUNoQixTQUFTLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQzVDLFVBQVUsS0FBSyxFQUFFLENBQUM7QUFDbEIsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2xCLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxjQUFjO0FBQ3ZCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25DLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGFBQWE7QUFDdEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxZQUFZO0FBQ3JCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3hELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsaUJBQWlCO0FBQzFCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2pFLEtBQUs7QUFDTCxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQ1AsSUFBSSxHQUFHLEVBQUUsWUFBWTtBQUNyQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sVUFBVSxDQUFDO0FBQ3hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsVUFBVTtBQUNuQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sUUFBUSxDQUFDO0FBQ3RCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsdUJBQXVCO0FBQ2hDLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxxQkFBcUIsQ0FBQztBQUNuQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFdBQVc7QUFDcEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLFNBQVMsQ0FBQztBQUN2QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFdBQVc7QUFDcEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLFNBQVMsQ0FBQztBQUN2QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGFBQWE7QUFDdEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLFdBQVcsQ0FBQztBQUN6QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLG1CQUFtQjtBQUM1QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8saUJBQWlCLENBQUM7QUFDL0IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSx3QkFBd0I7QUFDakMsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLHNCQUFzQixDQUFDO0FBQ3BDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsdUJBQXVCO0FBQ2hDLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxxQkFBcUIsQ0FBQztBQUNuQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGdCQUFnQjtBQUN6QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sY0FBYyxDQUFDO0FBQzVCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsc0JBQXNCO0FBQy9CLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxvQkFBb0IsQ0FBQztBQUNsQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLDJCQUEyQjtBQUNwQyxJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8seUJBQXlCLENBQUM7QUFDdkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSwwQkFBMEI7QUFDbkMsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLHdCQUF3QixDQUFDO0FBQ3RDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsZ0JBQWdCO0FBQ3pCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxjQUFjLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSw2QkFBNkI7QUFDdEMsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLDJCQUEyQixDQUFDO0FBQ3pDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsY0FBYztBQUN2QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sWUFBWSxDQUFDO0FBQzFCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsMkJBQTJCO0FBQ3BDLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyx5QkFBeUIsQ0FBQztBQUN2QyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLDJCQUEyQjtBQUNwQyxJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8seUJBQXlCLENBQUM7QUFDdkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxlQUFlO0FBQ3hCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxhQUFhLENBQUM7QUFDM0IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSw0QkFBNEI7QUFDckMsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLDBCQUEwQixDQUFDO0FBQ3hDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsZUFBZTtBQUN4QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sYUFBYSxDQUFDO0FBQzNCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsNEJBQTRCO0FBQ3JDLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTywwQkFBMEIsQ0FBQztBQUN4QyxLQUFLO0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNOO0FBQ0EsRUFBRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLEVBQUUsQ0FBQztBQUNKLFNBQVMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFO0FBQ3ZDLEVBQUUsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO0FBQ3hDLElBQUksT0FBTyxXQUFXLENBQUM7QUFDdkIsR0FBRyxNQUFNLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFO0FBQ3BGLElBQUksT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzVDLEdBQUcsTUFBTSxJQUFJLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7QUFDN0QsSUFBSSxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDNUMsR0FBRyxNQUFNO0FBQ1QsSUFBSSxNQUFNLElBQUksb0JBQW9CLENBQUMsNkJBQTZCLEdBQUcsV0FBVyxHQUFHLFlBQVksR0FBRyxPQUFPLFdBQVcsQ0FBQyxDQUFDO0FBQ3BILEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDdEI7QUFDQSxJQUFnQixVQUFBLEdBQUEsS0FBQSxDQUFBLFFBQUEsR0FBRyxRQUFRLENBQUM7QUFDNUIsSUFBZ0IsVUFBQSxHQUFBLEtBQUEsQ0FBQSxRQUFBLEdBQUcsUUFBUSxDQUFDO0FBQzVCLElBQXVCLGlCQUFBLEdBQUEsS0FBQSxDQUFBLGVBQUEsR0FBRyxlQUFlLENBQUM7QUFDMUMsSUFBZ0IsVUFBQSxHQUFBLEtBQUEsQ0FBQSxRQUFBLEdBQUcsUUFBUSxDQUFDO0FBQzVCLElBQVksTUFBQSxHQUFBLEtBQUEsQ0FBQSxJQUFBLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLElBQWdCLFVBQUEsR0FBQSxLQUFBLENBQUEsUUFBQSxHQUFHLFFBQVEsQ0FBQztBQUM1QixJQUFtQixhQUFBLEdBQUEsS0FBQSxDQUFBLFdBQUEsR0FBRyxXQUFXLENBQUM7QUFDbEMsSUFBZ0IsVUFBQSxHQUFBLEtBQUEsQ0FBQSxRQUFBLEdBQUcsUUFBUSxDQUFDO0FBQzVCLElBQWtCLFlBQUEsR0FBQSxLQUFBLENBQUEsVUFBQSxHQUFHLFVBQVUsQ0FBQztBQUNoQyxJQUFlLFNBQUEsR0FBQSxLQUFBLENBQUEsT0FBQSxHQUFHLE9BQU8sQ0FBQztBQUMxQixJQUFZLE1BQUEsR0FBQSxLQUFBLENBQUEsSUFBQSxHQUFHLElBQUk7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2gxUW5CO0FBQ0E7QUFDQTtBQTRCTyxNQUFNLHNCQUFzQixHQUFrQjtBQUNqRCxJQUFBLFlBQVksRUFBRSxLQUFLO0FBQ25CLElBQUEsc0JBQXNCLEVBQUUsS0FBSztBQUM3QixJQUFBLGtCQUFrQixFQUFFLFlBQVk7QUFDaEMsSUFBQSxpQkFBaUIsRUFBRSxJQUFJO0FBQ3ZCLElBQUEsY0FBYyxFQUFFLElBQUk7QUFDcEIsSUFBQSxlQUFlLEVBQUUsSUFBSTtBQUNyQixJQUFBLGlCQUFpQixFQUFFLGVBQWU7QUFDbEMsSUFBQSxxQkFBcUIsRUFBRSx3QkFBd0I7QUFDL0MsSUFBQSx1QkFBdUIsRUFBRSxDQUFDO0FBRTFCLElBQUEsaUJBQWlCLEVBQUUsTUFBTTtBQUN6QixJQUFBLG9CQUFvQixFQUFFLE9BQU87Q0FDaEMsQ0FBQztBQVdLLE1BQU0sdUJBQXVCLEdBQW1CO0FBQ25ELElBQUEsU0FBUyxFQUFFLElBQUk7Q0FDbEIsQ0FBQztBQXFCRjtBQUNPLE1BQU0sZ0JBQWdCLEdBQXFCO0FBQzlDLElBQUEsR0FBRyxzQkFBc0I7QUFDekIsSUFBQSxHQUFHLHVCQUF1QjtJQUMxQixHQUFHO0FBQ0MsUUFBQSxpQkFBaUIsRUFBRSxHQUFHO0FBQ3RCLFFBQUEsbUJBQW1CLEVBQUUsSUFBSTtBQUN6QixRQUFBLHlCQUF5QixFQUFFLElBQUk7QUFDL0IsUUFBQSxnQkFBZ0IsRUFBRSxLQUFLO0FBQ3ZCLFFBQUEsc0JBQXNCLEVBQUUsS0FBSztBQUM3QixRQUFBLHdCQUF3QixFQUFFLElBQUk7QUFDakMsS0FBQTtDQUNKOztBQ3pGRDtNQUNhLE9BQU8sQ0FBQTtBQUdoQixJQUFBLFdBQUEsQ0FBMEIsS0FBUSxFQUFBO1FBQVIsSUFBSyxDQUFBLEtBQUEsR0FBTCxLQUFLLENBQUc7QUFDOUIsUUFBQSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztLQUMxQjtBQUVNLElBQUEsR0FBRyxDQUFJLENBQWMsRUFBQTtRQUN4QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNyQztBQUVNLElBQUEsT0FBTyxDQUFJLENBQXlCLEVBQUE7QUFDdkMsUUFBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDeEI7QUFFTSxJQUFBLE1BQU0sQ0FBSSxDQUFjLEVBQUE7QUFDM0IsUUFBQSxPQUFPLElBQTJCLENBQUM7S0FDdEM7SUFFTSxLQUFLLENBQVMsSUFBa0IsRUFBRSxLQUFtQixFQUFBO0FBQ3hELFFBQUEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBUSxDQUFDO0tBQ2hDO0FBRU0sSUFBQSxNQUFNLENBQUMsTUFBUyxFQUFBO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztLQUNyQjtJQUVNLElBQUksR0FBQTtBQUNQLFFBQUEsT0FBTyxJQUFXLENBQUM7S0FDdEI7QUFFTSxJQUFBLFdBQVcsQ0FBQyxRQUEyQixFQUFBO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztLQUNyQjtBQUNKLENBQUE7QUFFRDtNQUNhLE9BQU8sQ0FBQTtBQUdoQixJQUFBLFdBQUEsQ0FBMEIsS0FBUSxFQUFBO1FBQVIsSUFBSyxDQUFBLEtBQUEsR0FBTCxLQUFLLENBQUc7QUFDOUIsUUFBQSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztLQUMzQjtBQUVNLElBQUEsR0FBRyxDQUFJLEVBQWUsRUFBQTtBQUN6QixRQUFBLE9BQU8sSUFBNEIsQ0FBQztLQUN2QztBQUVNLElBQUEsT0FBTyxDQUFJLEVBQTBCLEVBQUE7QUFDeEMsUUFBQSxPQUFPLElBQTRCLENBQUM7S0FDdkM7QUFFTSxJQUFBLE1BQU0sQ0FBSSxDQUFjLEVBQUE7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDckM7SUFFTSxLQUFLLENBQVMsS0FBbUIsRUFBRSxJQUFrQixFQUFBO0FBQ3hELFFBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBUSxDQUFDO0tBQ25DO0FBRU0sSUFBQSxNQUFNLENBQUMsS0FBUSxFQUFBO0FBQ2xCLFFBQUEsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFTSxJQUFJLEdBQUE7QUFDUCxRQUFBLE9BQU8sSUFBVyxDQUFDO0tBQ3RCO0FBRU0sSUFBQSxXQUFXLENBQUMsT0FBMEIsRUFBQTtBQUN6QyxRQUFBLElBQUksT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDOztZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekM7QUFDSixDQUFBO0FBSUQ7QUFDTSxJQUFXLE1BQU0sQ0FpQ3RCO0FBakNELENBQUEsVUFBaUIsTUFBTSxFQUFBOztJQUVuQixTQUFnQixPQUFPLENBQU8sS0FBUSxFQUFBO0FBQ2xDLFFBQUEsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QjtBQUZlLElBQUEsTUFBQSxDQUFBLE9BQU8sVUFFdEIsQ0FBQTs7SUFHRCxTQUFnQixPQUFPLENBQU8sS0FBUSxFQUFBO0FBQ2xDLFFBQUEsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QjtBQUZlLElBQUEsTUFBQSxDQUFBLE9BQU8sVUFFdEIsQ0FBQTs7QUFHRCxJQUFBLFNBQWdCLFFBQVEsQ0FDcEIsS0FBb0IsRUFDcEIsTUFBcUIsRUFDckIsQ0FBaUMsRUFBQTtRQUVqQyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDbEIsSUFBSSxNQUFNLENBQUMsVUFBVTtnQkFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzs7QUFDdEQsZ0JBQUEsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLFNBQUE7QUFBTSxhQUFBO0FBQ0gsWUFBQSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsU0FBQTtLQUNKO0FBWGUsSUFBQSxNQUFBLENBQUEsUUFBUSxXQVd2QixDQUFBOztBQUdELElBQUEsU0FBZ0IsSUFBSSxDQUNoQixLQUFvQixFQUNwQixNQUFxQixFQUNyQixDQUFzQixFQUFBO1FBRXRCLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM5RDtBQU5lLElBQUEsTUFBQSxDQUFBLElBQUksT0FNbkIsQ0FBQTtBQUNMLENBQUMsRUFqQ2dCLE1BQU0sS0FBTixNQUFNLEdBaUN0QixFQUFBLENBQUEsQ0FBQTs7Ozs7QUMvR0QsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBbUQsTUFBZSxDQUFBLE9BQUEsQ0FBQSxDQUFDLEdBQW9ILENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDQyxjQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFNLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLCtGQUErRixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLDBEQUEwRCxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU0sMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksTUFBTSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0lBQWdJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsMENBQTBDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FB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LEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLFlBQVksTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYyxZQUFZLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU0sUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDLENBQUMsa05BQWtOLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsNERBQTRELENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxZQUFZLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsQ0FB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RSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDckMsR0FBRyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RDLENBQUMsRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVwQyxHQUFHLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDckMsSUFBSSxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RDLENBQUMsRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVuQyxJQUFJLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdkMsS0FBSyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLEVBQUUsRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQyxHQUFHLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRXBDLE1BQU0sRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMzQyxPQUFPLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDNUMsR0FBRyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO0lB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N0I7SUFFTSxRQUFRLEdBQUE7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxDQUFBLEVBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUEsQ0FBRSxDQUFDOztZQUNwRixPQUFPLENBQUEsRUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUEsQ0FBRSxDQUFDO0tBQzdDO0lBRU0sT0FBTyxHQUFBOztBQUNWLFFBQUEsT0FBTyxDQUFBLEVBQUEsSUFBQyxDQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBSSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBSSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFHLElBQUEsSUFBQSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLENBQUMsQ0FBQyxDQUFDO0tBQ25HO0lBRU0sR0FBRyxHQUFBOztBQUNOLFFBQUEsT0FBTyxDQUFBLEVBQUEsSUFBQyxDQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBSSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBSSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsTUFBTSxD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QUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBT2MsZUFBTyxFQUFFLFVBQVUsRUFBRUEsZUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU9BLGVBQU8sRUFBRSxVQUFVLEVBQUVBLGVBQU8sQ0FBQyxJQUFJ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QyxDQUFDO0FBQ1AsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDOUMsQ0FBQyxVQUFVLE1BQU0sQ0FBQztBQUVsQixJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7QUFDMUMsRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBQ0Q7QUFDQSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPQSxjQUFNLEtBQUssV0FBVyxHQUFHQSxjQUFNLEdBQUcsT0FBTyxJQUFJLEtBQUssV0FBVyxHQUFHLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLEVBQUUsRUFBQztBQUN2SSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBRTlDO0FBQ0EsSUFBSSxPQUFPLEdBQUcsT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxRQUFRLEdBQUcsVUFBVSxHQUFHLEVBQUUsRUFBRSxPQUFPLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRyxVQUFVLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsSUFBSSxHQUFHLENBQUMsV0FBVyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQzdRO0FBQ0EsU0FBUyxlQUFlLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLFlBQVksV0FBVyxDQUFD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QUMsQ0FBQztBQUNqQyxTQUFBO0FBRUQsUUFBQSxPQUFPLE1BQU0sQ0FBQztBQUNsQixLQUFDLENBQUM7O0FBR1csSUFBQSxnQkFBQSxDQUFBLElBQUksR0FBaUIsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDO1NBQ3hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQztBQUN4QixTQUFBLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQixTQUFBLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEYsU0FBQSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEcsU0FBQSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQztTQUM3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QUFJLENBQUM7U0FDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQ2xDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDcEIsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkIsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxTQUFTLEdBQWlCLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQztBQUNsRSxTQUFBLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlELElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xGLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzdCLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQztTQUNsQyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQ2xDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDcEIsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkIsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxRQUFRLEdBQWlCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQztBQUNoRSxTQUFBLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFJO1FBQ3hELElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDekUsU0FBQTtBQUFNLGFBQUE7QUFDSCxZQUFBLE9BQU8sR0FBRyxDQUFDO0FBQ2QsU0FBQTtBQUNMLEtBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssZ0JBQUEsQ0FBQSxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakYsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQztTQUNsQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDbEMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQixTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2QixTQUFBLEtBQUssRUFBRSxDQUFDO0FBRUEsSUFBQSxnQkFBQSxDQUFBLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUM7QUFDakQsU0FBQSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEQsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwQixTQUFBLEtBQUssRUFBRSxDQUFDO0FBRUEsSUFBQSxnQkFBQSxDQUFBLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxVQUFVLENBQUM7QUFDbEQsU0FBQSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEQsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDO0FBQzlDLFNBQUEsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDNUUsU0FBQSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFB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LE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELFNBQUEsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxHQUFHLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDO1NBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxTQUFBLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlELFNBQUEsS0FBSyxFQUFFLENBQUM7QUFFQSxJQUFBLGdCQUFBLENBQUEs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QUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzFFLFFBQUEsSUFBSSxPQUFPO0FBQUUsWUFBQSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzs7QUFHOUQsUUFBQSxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRSxRQUFBLElBQUksUUFBUTtBQUFFLFlBQUEsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7O0FBR2hFLFFBQUEsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDdEUsUUFBQSxJQUFJLFFBQVE7QUFBRSxZQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDOztBQUdoRSxRQUFBLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLFFBQUEsSUFBSSxRQUFRO0FBQUUsWUFBQSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUVoRSxRQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFnQyw2QkFBQSxFQUFBLFFBQVEsQ0FBSSxDQUFBLEVBQUEsRUFBRSxDQUFJLENBQUEsRUFBQSxTQUFTLENBQUcsQ0FBQSxDQUFBLENBQUMsQ0FBQztLQUN6Rjs7QUFHTSxJQUFBLE9BQU8sSUFBSSxDQUFDLEVBQVksRUFBRSxJQUFzQixFQUFFLEtBQXVCLEVBQUE7QUFDNUUsUUFBQSxPQUFPLEdBQUcsSUFBSSxDQUFBLENBQUEsRUFBSSxFQUFFLENBQUksQ0FBQSxFQUFBLEtBQUssRUFBRSxDQUFDO0tBQ25DO0FBQ0osQ0FBQTtBQUVEO0FBQ00sU0FBVSxlQUFlLENBQUMsY0FBcUMsRUFBQTtBQUNqRSxJQUFBLFFBQ0ksZUFBZSxDQUFDLE1BQU0sRUFBRTs7U0FFbkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDOztTQUVqRSxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzRSxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFM0UsU0FBQSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEQsU0FBQSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEQsU0FBQSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEQsU0FBQSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEQsU0FBQSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7O0FBRWxELFNBQUEsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqRixTQUFBLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakYsU0FBQSxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFM0UsU0FBQSxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJO1FBQ3BDLE9BQU8saUJBQWlCLENBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEs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QSxLQUFLLE1BQU0sQ0FBQztBQUNaLDRCQUFBLEtBQUssT0FBTztBQUNSLGdDQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvRCw0QkFBQSxLQUFLLE9BQU8sQ0FBQztBQUNiLDRCQUFBLEtBQUssUUFBUTtBQUNULGdDQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqRSw0QkFBQSxLQUFLLE9BQU87QUFDUixnQ0FBQSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0QsNEJBQUEsS0FBSyxLQUFLLENBQUM7QUFDWCw0QkFBQSxLQUFLLE1BQU07QUFDUCxnQ0FBQSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0QsNEJBQUEsS0FBSyxNQUFNLENBQUM7QUFDWiw0QkFBQSxLQUFLLE9BQU87QUFDUixnQ0FBQSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0QsNEJBQUEsS0FBSyxRQUFRLENBQUM7QUFDZCw0QkFBQSxLQUFLLFNBQVM7QUFDVixnQ0FBQSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkUsNEJBQUEsS0FBSyxRQUFRLENBQUM7QUFDZCw0QkFBQSxLQUFLLFNBQVM7QUFDVixnQ0FBQSxPQUFPLE1BQU0sQ0FB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QyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUVWLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFM0IsR0FBQyxDQUFDLEtBQUssRUFBRUEsR0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU3NDLEdBQUMsRUFBRSxDQUFDLE9BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBU0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLFNBQVNDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBU0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFZixHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUNnQixHQUFDLENBQUMsR0FBRyxFQUFFLEVBQUVkLEdBQUMsR0FBRzlCLEdBQUMsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM4QixHQUFDLENBQUM5QixHQUFDLENBQUMsaUJBQWlCLEdBQUc2QixHQUFDLEVBQUVlLEdBQUMsRUFBQyxDQUFDLFNBQVNBLEdBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxHQUFHLENBQUNoQixHQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNNLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDVyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDSixHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQ0ssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRUosR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsU0FBU0ssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRWQsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUNJLEdBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDRSxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0YsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUNRLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUViLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDZ0IsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQ1IsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ1MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQ0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVNILEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBU0csR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVNILEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVNJLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUV4RCxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFNBQVN1RCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxHQUFDLENBQUNDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0QsR0FBQyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUN6RCxHQUFDLENBQUMsS0FBSyxDQUFDQSxHQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVN3RCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUN4RCxHQUFDLENBQUMsS0FBSyxDQUFDQSxHQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVM2QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzdDLEdBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUl3QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUNrQixHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDeEIsR0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQ2xDLEdBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDa0MsR0FBQyxDQUFDQSxHQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHSyxHQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDUSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQ1ksR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMzRCxHQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVM4QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOUMsR0FBQyxDQUFDLEdBQUcsRUFBRUEsR0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMyRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFM0IsR0FBQyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBR3FCLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUNOLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRU4sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRU4sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUVtQixHQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRUEsR0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVNILEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUNuRCxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVNrRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR2xELEdBQUMsQ0FBQyxPQUFPLEVBQUVBLEdBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRW1ELEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixHQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQ25ELEdBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFa0QsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRWYsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLENBQUMsU0FBU3VCLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU0UsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzVELEdBQUMsQ0FBQyxFQUFFLEVBQUVBLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzZDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUNULEdBQUMsQ0FBQ0csR0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFUCxHQUFDLENBQUNBLEdBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQ2MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTZSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsR0FBQyxFQUFDLENBQUMsU0FBU0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM1QixHQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMwQixHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUNoQyxHQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQ1ksR0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDVixHQUFDLENBQUMsS0FBSyxDQUFDakMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzJCLEdBQUMsQ0FBQyxDQUFDLENBQXVEYSxHQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQ04sR0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUNTLEdBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUNILEdBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQ0csR0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQ0gsR0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUNELEdBQUMsQ0FBQ1gsR0FBQyxDQUFDLEVBQUUsQ0FBQ0MsR0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDZSxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ2IsR0FBQyxDQUFDLENBQUM7O0FDQW5pVCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNqQyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxHQUFHLEVBQUVBLEdBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ2lELEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDakQsR0FBQyxDQUFDLEdBQUcsRUFBRTJDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzNDLEdBQUMsQ0FBQyxHQUFHLEVBQUUyQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBU1csR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVNZLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBU1IsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzFELEdBQUMsQ0FBQyxhQUFhLEVBQUVBLEdBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBaUssU0FBU2tELEdBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQ0osR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMvQyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzhDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMvQyxHQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUdBLEdBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUVrRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQ2xELEdBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzhDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMvQyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDOEMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU5QyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLHFCQUFxQixDQUFDLFNBQVM4QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBU0osR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU00sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUNBaC9ELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQ2hELEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSW1DLEdBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0MsR0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDSSxHQUFDLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBSyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0osR0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU9wQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQ29DLEdBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSUQsR0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUVuQyxHQUFDLENBQUNxQyxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUNyQyxHQUFDLENBQUNxQyxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQ0UsR0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQ3ZDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsb0JBQW9CLEdBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJbUMsR0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDSyxHQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLDJPQUEyTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUNULEdBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDQSxHQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDQyxHQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQ0EsR0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEtBQUssQ0FBQ0EsR0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsY0FBYyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQ0ksR0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0osR0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFHLENBQUMsQ0FBSSxJQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT3BDLEdBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQ3NDLEdBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHQyxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUksSUFBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSxZQUFjLENBQUMsUUFB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vbm9kZV9tb2R1bGVzL2x1eG9uL2J1aWxkL2Nqcy1icm93c2VyL2x1eG9uLmpzIiwiLi4vc3JjL3NldHRpbmdzLnRzIiwiLi4vc3JjL2FwaS9yZXN1bHQudHMiLCIuLi9ub2RlX21vZHVsZXMvcGFyc2ltbW9uL2J1aWxkL3BhcnNpbW1vbi51bWQubWluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4L2luZGV4LmpzIiwiLi4vc3JjL3V0aWwvbm9ybWFsaXplLnRzIiwiLi4vc3JjL2RhdGEtbW9kZWwvdmFsdWUudHMiLCIuLi9zcmMvYXBpL2RhdGEtYXJyYXkudHMiLCIuLi9zcmMvdXRpbC9sb2NhbGUudHMiLCIuLi9zcmMvdWkvcmVuZGVyLnRzIiwiLi4vbm9kZV9tb2R1bGVzL3BhcGFwYXJzZS9wYXBhcGFyc2UubWluLmpzIiwiLi4vc3JjL2V4cHJlc3Npb24vZmllbGQudHMiLCIuLi9zcmMvZGF0YS1pbmRleC9zb3VyY2UudHMiLCIuLi9zcmMvZXhwcmVzc2lvbi9wYXJzZS50cyIsIi4uL3NyYy9kYXRhLWltcG9ydC9pbmxpbmUtZmllbGQudHMiLCIuLi9zcmMvZGF0YS1tb2RlbC9tYXJrZG93bi50cyIsIi4uL3NyYy9kYXRhLWltcG9ydC9tYXJrZG93bi1maWxlLnRzIiwiLi4vc3JjL2RhdGEtaW1wb3J0L2Nzdi50cyIsIi4uL3NyYy9kYXRhLW1vZGVsL3RyYW5zZmVyYWJsZS50cyIsIi4uL25vZGVfbW9kdWxlcy9sb2NhbGZvcmFnZS9kaXN0L2xvY2FsZm9yYWdlLmpzIiwiLi4vc3JjL2RhdGEtaW1wb3J0L3BlcnNpc3Rlci50cyIsIi4uL3NyYy9kYXRhLWltcG9ydC93ZWItd29ya2VyL2ltcG9ydC1tYW5hZ2VyLnRzIiwiLi4vc3JjL2RhdGEtaW5kZXgvaW5kZXgudHMiLCIuLi9zcmMvZGF0YS1pbmRleC9yZXNvbHZlci50cyIsIi4uL3NyYy9leHByZXNzaW9uL2Z1bmN0aW9ucy50cyIsIi4uL3NyYy9leHByZXNzaW9uL2JpbmFyeW9wLnRzIiwiLi4vc3JjL2V4cHJlc3Npb24vY29udGV4dC50cyIsIi4uL3NyYy9xdWVyeS9lbmdpbmUudHMiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFyZS12ZXJzaW9ucy9pbmRleC5tanMiLCIuLi9ub2RlX21vZHVsZXMvcHJlYWN0L2Rpc3QvcHJlYWN0Lm1vZHVsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9wcmVhY3QvaG9va3MvZGlzdC9ob29rcy5tb2R1bGUuanMiLCIuLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanMiLCIuLi9zcmMvdXRpbC9tZWRpYS50cyIsIi4uL3NyYy91aS9tYXJrZG93bi50c3giLCIuLi9zcmMvdWkvdmlld3MvdGFzay12aWV3LnRzeCIsIi4uL3NyYy91aS92aWV3cy9saXN0LXZpZXcudHN4IiwiLi4vc3JjL3VpL3ZpZXdzL3RhYmxlLXZpZXcudHN4IiwiLi4vc3JjL3F1ZXJ5L3F1ZXJ5LnRzIiwiLi4vc3JjL3F1ZXJ5L3BhcnNlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL29ic2lkaWFuLWNhbGVuZGFyLXVpL2Rpc3QvaW5kZXgubWpzIiwiLi4vc3JjL3VpL3JlZnJlc2hhYmxlLXZpZXcudHMiLCIuLi9zcmMvdWkvdmlld3MvY2FsZW5kYXItdmlldy50cyIsIi4uL3NyYy9hcGkvaW5saW5lLWFwaS50cyIsIi4uL3NyYy91aS92aWV3cy9qcy12aWV3LnRzIiwiLi4vc3JjL3VpL2V4cG9ydC9tYXJrZG93bi50cyIsIi4uL3NyYy9hcGkvcGx1Z2luLWFwaS50cyIsIi4uL3NyYy91aS92aWV3cy9pbmxpbmUtdmlldy50cyIsIi4uL3NyYy91aS92aWV3cy9pbmxpbmUtZmllbGQudHN4IiwiLi4vc3JjL3VpL2xwLXJlbmRlci50cyIsIi4uL3NyYy9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpudWxsLCJuYW1lcyI6WyJuIiwicyIsImwiLCJ0aGlzIiwiRGF0ZVRpbWUiLCJQLmFsdCIsIlAucmVnZXgiLCJQLndoaXRlc3BhY2UiLCJQLmFueSIsIkR1cmF0aW9uIiwiTWFya2Rvd25SZW5kZXJlciIsIlAuc2VxTWFwIiwiUC5zZXEiLCJQLm9wdFdoaXRlc3BhY2UiLCJQLmN1c3RvbSIsIlAuY3JlYXRlTGFuZ3VhZ2UiLCJQLnJlZ2V4cCIsIlAuc3RyaW5nIiwiUC5ub25lT2YiLCJQLnN1Y2NlZWQiLCJQLmZhaWwiLCJMaXN0SXRlbSIsIlBhcGEucGFyc2UiLCJyZXF1aXJlIiwiZ2xvYmFsIiwiQ29tcG9uZW50IiwiRGF0YXZpZXdJbXBvcnRXb3JrZXIiLCJURmlsZSIsIlRGb2xkZXIiLCJ1IiwidCIsIm8iLCJyIiwiZiIsImUiLCJjIiwiYSIsImgiLCJ2IiwieSIsInAiLCJkIiwiXyIsImsiLCJiIiwibSIsImciLCJqIiwieiIsInciLCJ4IiwiUCIsIk4iLCJNIiwiQSIsIkMiLCJIIiwiJCIsIlQiLCJJIiwiTyIsIkwiLCJTIiwicSIsIkIiLCJEIiwiRiIsImkiLCJjcmVhdGVDb250ZXh0IiwidXNlUmVmIiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsIkZyYWdtZW50IiwidXNlU3RhdGUiLCJNYXJrZG93blJlbmRlckNoaWxkIiwicmVuZGVyIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsIlBsYXRmb3JtIiwiUC5zZXBCeSIsIldpZGdldFR5cGUiLCJlZGl0b3JFZGl0b3JGaWVsZCIsImVkaXRvclZpZXdGaWVsZCIsInZpZXciLCJzeW50YXhUcmVlIiwiRGVjb3JhdGlvbiIsIlZpZXdQbHVnaW4iLCJlZGl0b3JMaXZlUHJldmlld0ZpZWxkIiwiUGx1Z2luIiwiZGVib3VuY2UiLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RDtBQUNBLFNBQVMsaUJBQWlCLENBQUMsTUFBTSxFQUFF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QUFDLEdBQUcsTUFBTSxDQUFDO0FBQzNDLENBQUM7QUFDRDtBQUNBLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRTtBQUMxQixFQUFFLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBQ0QsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFO0FBQzFCLEVBQUUsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN0QyxDQUFDO0FBQ0QsU0FBUyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNsQyxFQUFFLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7QUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLFFBQVEsSUFBSSxFQUFFLENBQUM7QUFDL0M7QUFDQSxFQUFFLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtBQUN0QixJQUFJLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDekMsR0FBRyxNQUFNO0FBQ1QsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUUsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsWUFBWSxDQUFDLEdBQUcsRUFBRTtBQUMzQixFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFH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QVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDekQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxVQUFVO0FBQ25CLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDNUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxRQUFRO0FBQ2pCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxPQUFPO0FBQ2hCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDekQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxNQUFNO0FBQ2YsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN4RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLE9BQU87QUFDaEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN6RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLFNBQVM7QUFDbEIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLGNBQWM7QUFDdkIsSUFBSSxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDeEIsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNoRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0wsSUFBSSxHQUFHLEVBQUUsU0FBUztBQUNsQixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7QUFDbkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCxJQUFJLEdBQUcsRUFBRSxlQUFlO0FBQ3hCLElBQUksR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ3hCLE1BQU0sT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUN2RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRTtBQUNMLElBQUksR0FBRyxFQUFFLG9CQUFvQjtBQUM3QixJQUFJLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDNUQsS0FBSztBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDTjtBQUNBLEVBQUUsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxFQUFFLENBQUM7QUFDSjtBQUNBLElBQUksU0FBUyxHQUFHLGtCQUFrQixDQUFDO0FBQ25DO0FBQ0EsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ3RDLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDaEMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUN4RCxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7QUFDbkMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUN0RCxHQUFHLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFO0FBQzFCLElBQUksT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLG9FQUFvRSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDbEssR0FBRyxNQUFNO0FBQ1QsSUFBSSxPQUFPLElBQUksQ0FBQztBQUNoQixHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFFBQVEsZ0JBQWdCLFlBQVk7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLFFBQVEsQ0FBQyxNQUFNLEVBQUU7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDaEMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtBQUMzRCxJQUFJLElBQUksV0FBVyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUN6QixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDakIsTUFBTSxNQUFNLElBQUksb0JBQW9CLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQUN6RixLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksT0FBTyxHQUFHLE1BQU0sWUFBWSxPQUFPLEdBQUcsTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN4RjtBQUNBLElBQUksSUFBSSxRQUFRLENBQUMsY0FBYyxFQUFFO0FBQ2pDLE1BQU0sTUFBTSxJQUFJLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLEtBQUssTUFBTTtBQUNYLE1BQU0sT0FBTyxJQUFJLFFBQVEsQ0FBQztBQUMxQixRQUFRLE9BQU8sRUFBRSxPQUFPO0FBQ3hCLE9BQU8sQ0FBQyxDQUFDO0FBQ1QsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEdBQUcsU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUM5RCxJQUFJLElBQUksVUFBVSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUM1QyxRQUFRLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxJQUFJLElBQUksYUFBYSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMvRDtBQUNBLElBQUksSUFBSSxhQUFhLElBQUksSUFBSSxFQUFFO0FBQy9CLE1BQU0sT0FBTyxJQUFJLFFBQVEsQ0FBQztBQUMxQixRQUFRLEtBQUssRUFBRSxVQUFVO0FBQ3pCLFFBQVEsR0FBRyxFQUFFLFFBQVE7QUFDckIsT0FBTyxDQUFDLENBQUM7QUFDVCxLQUFLLE1BQU07QUFDWCxNQUFNLE9BQU8sYUFBYSxDQUFDO0FBQzNCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7QUFDbkQsSUFBSSxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0FBQ2pELFFBQVEsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLElBQUksT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO0FBQ25ELElBQUksSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztBQUNqRCxRQUFRLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxJQUFJLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDbEQsSUFBSSxJQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDM0MsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNyQixRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEI7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNoQixNQUFNLElBQUksS0FBSyxFQUFFLFlBQVksQ0FBQztBQUM5QjtBQUNBLE1BQU0sSUFBSTtBQUNWLFFBQVEsS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFDLFFBQVEsWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7QUFDckMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0FBQ2xCLFFBQVEsWUFBWSxHQUFHLEtBQUssQ0FBQztBQUM3QixPQUFPO0FBQ1A7QUFDQSxNQUFNLElBQUksR0FBRyxFQUFFLFVBQVUsQ0FBQztBQUMxQjtBQUNBLE1BQU0sSUFBSTtBQUNWLFFBQVEsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hDLFFBQVEsVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7QUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0FBQ2xCLFFBQVEsVUFBVSxHQUFHLEtBQUssQ0FBQztBQUMzQixPQUFPO0FBQ1A7QUFDQSxNQUFNLElBQUksWUFBWSxJQUFJLFVBQVUsRUFBRTtBQUN0QyxRQUFRLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbEQsT0FBTztBQUNQO0FBQ0EsTUFBTSxJQUFJLFlBQVksRUFBRTtBQUN4QixRQUFRLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVDO0FBQ0EsUUFBUSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7QUFDekIsVUFBVSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLFNBQVM7QUFDVCxPQUFPLE1BQU0sSUFBSSxVQUFVLEVBQUU7QUFDN0IsUUFBUSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QztBQUNBLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO0FBQzFCLFVBQVUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1QyxTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxjQUFjLEdBQUcsSUFBSSxHQUFHLGdDQUFnQyxDQUFDLENBQUM7QUFDcEcsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLENBQUMsQ0FBQyxFQUFFO0FBQy9DLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUM7QUFDM0MsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUU7QUFDeEMsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxjQUFjLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzlFLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxJQUFJLEVBQUU7QUFDdEMsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtBQUN6QixNQUFNLElBQUksR0FBRyxjQUFjLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQztBQUNsQyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QyxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0QsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQzFDLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDMUYsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxHQUFHO0FBQ3RDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDakQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsUUFBUSxFQUFFO0FBQzlDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxLQUFLLENB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QUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNoQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDN0MsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUssQ0FBQztBQUNwQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDM0MsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUssQ0FBQztBQUNwQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUU7QUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDekMsTUFBTSxPQUFPLEtBQUssQ0FBQztBQUNuQixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsS0FBSyxFQUFFO0FBQ3JELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUMvQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hEO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDaEIsTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixLQUFLLE1BQU07QUFDWCxNQUFNLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFO0FBQ3ZDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDbkMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUMvQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hELElBQUksT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN4QyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLFNBQVMsRUFBRTtBQUM3QyxJQUFJLElBQUkscUJBQXFCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDL0QsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3JDLE1BQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQixVQUFVLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0I7QUFDQSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDcEIsUUFBUSxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdCLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNyRSxRQUFRLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzVDLE9BQU8sTUFBTTtBQUNiLFFBQVEsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLE9BQU87QUFDUCxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEIsUUFBUSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLFFBQVEsS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsSUFBSSxJQUFJLEtBQUssRUFBRTtBQUNmLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxRQUFRLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLFNBQVMsRUFBRTtBQUN6QyxJQUFJLElBQUksZ0JBQWdCLENBQUM7QUFDekI7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUk7QUFDcEIsUUFBUSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCO0FBQ0EsSUFBSSxJQUFJLE9BQU8sR0FBRyxFQUFFO0FBQ3BCLFFBQVEsSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDMUMsTUFBTSxPQUFPLENBQUM7QUFDZCxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqQixRQUFRLElBQUksRUFBRSxHQUFHO0FBQ2pCLE9BQU8sRUFBRTtBQUNULFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLFFBQVEsSUFBSSxFQUFFLEdBQUc7QUFDakIsT0FBTyxDQUFDLENBQUM7QUFDVCxLQUFLLENBQUM7QUFDTixRQUFRLFNBQVMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7QUFDN0YsUUFBUSxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDN0MsTUFBTSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM3QixLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0EsSUFBSSxLQUFLLElBQUksU0FBUyxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxFQUFFLElBQUksR0FBRztBQUNwRyxNQUFNLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDMUIsTUFBTSxZQUFZLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlDO0FBQ0EsTUFBTSxJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUU7QUFDOUIsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN2QixPQUFPLE1BQU07QUFDYixRQUFRLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtBQUN6QyxVQUFVLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUQsU0FBUztBQUNUO0FBQ0EsUUFBUSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsR0FBRztBQUM1QyxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztBQUN0QjtBQUNBLElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDeEcsTUFBTSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ25FLE1BQU0sT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUMzQixNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQy9CLEtBQUssQ0FBQyxDQUFDO0FBQ1AsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxHQUFHO0FBQ3hDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxTQUFTLENBQUM7QUFDeEMsSUFBSSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUNwRSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLElBQUksRUFBRTtBQUN0QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sU0FBUyxDQUFDO0FBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsR0FBRztBQUMxQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sU0FBUyxDQUFDO0FBQ3hDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ3pELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsQ0FBQyxJQUFJLEVBQUU7QUFDOUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLFNBQVMsQ0FBQztBQUN4QyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pFLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO0FBQzFELElBQUksSUFBSSxLQUFLLEdBQUcsTUFBTSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNO0FBQy9DLFFBQVEsZUFBZSxHQUFHLEtBQUssQ0FBQyxTQUFTO0FBQ3pDLFFBQVEsU0FBUyxHQUFHLGVBQWUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsZUFBZSxDQUFDO0FBQ3pFO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLFNBQVMsQ0FBQztBQUN4QyxJQUFJLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxH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OUI7QUFDQTtBQUNBLE1BQU0sS0FBSyxJQUFJO0FBQ2YsUUFBUSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QjtBQUNBLE1BQU0sS0FBSyxHQUFHO0FBQ2QsUUFBUSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQztBQUNBLE1BQU0sS0FBSyxJQUFJO0FBQ2YsUUFBUSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QjtBQUNBLE1BQU0sS0FBSyxHQUFHO0FBQ2QsUUFBUSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQztBQUNBLE1BQU0sS0FBSyxJQUFJO0FBQ2YsUUFBUSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QjtBQUNBLE1BQU0sS0FBSyxHQUFHO0FBQ2QsUUFBUSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQztBQUNBLE1BQU0sS0FBSyxHQUFHO0FBQ2QsUUFBUSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQztBQUNBLE1BQU0sS0FBSyxJQUFJO0FBQ2YsUUFBUSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QjtBQUNBLE1BQU0sS0FBSyxHQUFHO0FBQ2QsUUFBUSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQztBQUNBLE1BQU0sS0FBSyxJQUFJO0FBQ2YsUUFBUSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QjtBQUNBLE1BQU0sS0FBSyxHQUFHO0FBQ2QsUUFBUSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuQztBQUNBLE1BQU0sS0FBSyxLQUFLO0FBQ2hCLFFBQVEsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUI7QUFDQSxNQUFNLEtBQUssR0FBRztBQUNkLFFBQVEsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakM7QUFDQSxNQUFNLEtBQUssSUFBSTtBQUNmLFFBQVEsT0FB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RyxDQUFDLENBQUM7QUFDbkQsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDYixFQUFFLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO0FBQzVDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlDO0FBQ0EsRUFBRSxJQUFJLFFBQVEsRUFBRTtBQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDYixJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDYixJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixHQUFHLE1BQU07QUFDVCxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixHQUFHO0FBQ0g7QUFDQSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxVQUFVLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRTtBQUNyRyxFQUFFLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCO0FBQ0EsRUFBRSxJQUFJLFFBQVEsRUFBRTtBQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDYixJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMs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LElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3ZILEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQ2pELElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDO0FBQ3ZILEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFO0FBQ3BFLElBQUksSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDL0IsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQzlCLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDekIsTUFB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LEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sR0FBRztBQUN0QyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzNCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsR0FBRztBQUN4QyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN4QyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLEdBQUc7QUFDMUMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQy9DLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsR0FBRztBQUNsRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzNELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sR0FBRztBQUNwQyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3hCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU0sR0FBRztBQUNwQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzNCLEdBQUc7QUFDSDtBQUNBO0FB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QU0sS0FBTixNQUFNLEdBaUN0QixFQUFBLENBQUEsQ0FBQTs7Ozs7QUMvR0QsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBbUQsTUFBZSxDQUFBLE9BQUEsQ0FBQSxDQUFDLEdBQW9ILENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDQyxjQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFNLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLCtGQUErRixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLDBEQUEwRCxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU0sMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksTUFBTSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0lBQWdJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsMENBQTBDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7OztBQ0E1MmQsSUFBQSxVQUFjLEdBQUcsTUFBTTtBQUN2QjtBQUNBLENBQUMsT0FBTyxzM1dBQXMzVyxDQUFDO0FBQy8zVyxDQUFDOztBQ0dEO0FBQ00sU0FBVSxpQkFBaUIsQ0FBQyxHQUFhLEVBQUE7QUFDM0MsSUFBQSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUk7QUFBRSxRQUFBLE9BQU8sR0FBRyxDQUFDO0lBRWxELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDdEgsQ0FBQztBQUVEO0FBQ00sU0FBVSxTQUFTLENBQUMsRUFBWSxFQUFBO0FBQ2xDLElBQUEsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTO0FBQUUsUUFBQSxPQUFPLEVBQUUsQ0FBQztJQUUvQyxPQUFPQyxVQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSTtRQUNiLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztRQUNmLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRztBQUNkLEtBQUEsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQWdCRDtBQUNNLFNBQVUsZUFBZSxDQUFDLElBQVksRUFBQTtBQUN4QyxJQUFBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFPRDtBQUNNLFNBQVUsWUFBWSxDQUFDLElBQVksRUFBQTtBQUNyQyxJQUFBLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7QUFBRSxRQUFBLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekUsSUFBQSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQUUsUUFBQSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRSxJQUFBLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRDtBQUNNLFNBQVUsWUFBWSxDQUFDLElBQVksRUFBQTtBQUNyQyxJQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztBQUFFLFFBQUEsT0FBTyxFQUFFLENBQUM7QUFDbkMsSUFBQSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7QUFDTSxTQUFVLGNBQWMsQ0FBQyxHQUFXLEVBQUE7QUFDdEMsSUFBQSxJQUFJLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLElBQUEsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFFBQUEsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3QyxRQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEIsS0FBQTtBQUVELElBQUEsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVEO0FBQ00sU0FBVSxjQUFjLENBQUksSUFBNkIsRUFBQTtJQUMzRCxJQUFJO1FBQ0EsT0FBTyxJQUFJLEVBQUUsQ0FBQztBQUNqQixLQUFBO0FBQUMsSUFBQSxPQUFPLEtBQUssRUFBRTtBQUNaLFFBQUEsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1RCxLQUFBO0FBQ0wsQ0FBQztBQUVEO0FBQ08sZUFBZSxtQkFBbUIsQ0FBSSxJQUFzQyxFQUFBO0lBQy9FLElBQUk7UUFDQSxPQUFPLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDdkIsS0FBQTtBQUFDLElBQUEsT0FBTyxLQUFLLEVBQUU7QUFDWixRQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUQsS0FBQTtBQUNMLENBQUM7QUFFRDs7O0FBR0c7QUFDRyxTQUFVLFdBQVcsQ0FBQyxHQUFXLEVBQUE7SUFDbkMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRDtBQUNBLE1BQU0sc0JBQXNCLEdBQXFCQyw2QkFBSyxDQUNsREMsK0JBQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNyQ0EsK0JBQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFDbEVDLG9DQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDMUJDLDZCQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDckI7QUFDSSxLQUFBLElBQUksRUFBRTtBQUNOLEtBQUEsR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFcEM7QUFDTSxTQUFVLG1CQUFtQixDQUFDLElBQVksRUFBQTtBQUM1QyxJQUFBLE9BQU8sc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLG9CQUFvQixHQUFxQkgsNkJBQUssQ0FDaERDLCtCQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDckNBLCtCQUFPLENBQUMscUJBQXFCLENBQUMsRUFDOUJDLG9DQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDMUJDLDZCQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FDdEI7QUFDSSxLQUFBLElBQUksRUFBRTtLQUNOLEdBQUcsQ0FBQyxNQUFNLElBQUc7QUFDVixJQUFBLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3pELENBQUMsQ0FBQyxDQUFDO0FBRVA7OztBQUdHO0FBQ0csU0FBVSxzQkFBc0IsQ0FBQyxNQUFjLEVBQUE7QUFDakQsSUFBQSxPQUFPLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQ7U0FDZ0IsaUJBQWlCLENBQUMsSUFBYyxFQUFFLFFBQXVCLEVBQUUsTUFBYyxFQUFBOztBQUVyRixJQUFBLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7QUFDeEQsUUFBQSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMxRSxLQUFBO0FBRUQsSUFBQSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQ7QUFDTSxTQUFVLHFCQUFxQixDQUFDLEdBQWEsRUFBQTtBQUMvQyxJQUFBLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQzs7SUFHN0IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksR0FBRyxDQUFDLEtBQUs7QUFBRSxRQUFBLE1BQU0sSUFBSSxDQUFHLEVBQUEsR0FBRyxDQUFDLEtBQUssVUFBVSxDQUFDO0lBQ2hELElBQUksR0FBRyxDQUFDLE1BQU07QUFBRSxRQUFBLE1BQU0sSUFBSSxDQUFHLEVBQUEsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDO0lBQ25ELElBQUksR0FBRyxDQUFDLEtBQUs7QUFBRSxRQUFBLE1BQU0sSUFBSSxDQUFHLEVBQUEsR0FBRyxDQUFDLEtBQUssVUFBVSxDQUFDO0lBQ2hELElBQUksR0FBRyxDQUFDLElBQUk7QUFBRSxRQUFBLE1BQU0sSUFBSSxDQUFHLEVBQUEsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzdDLElBQUksR0FBRyxDQUFDLEtBQUs7QUFBRSxRQUFBLE1BQU0sSUFBSSxDQUFHLEVBQUEsR0FBRyxDQUFDLEtBQUssVUFBVSxDQUFDO0lBQ2hELElBQUksR0FBRyxDQUFDLE9BQU87QUFBRSxRQUFBLE1BQU0sSUFBSSxDQUFHLEVBQUEsR0FBRyxDQUFDLE9BQU8sWUFBWSxDQUFDO0lBQ3RELElBQUksR0FBRyxDQUFDLE9BQU87UUFBRSxNQUFNLElBQUksQ0FBRyxFQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBLFVBQUEsQ0FBWSxDQUFDO0lBQ2xFLElBQUksR0FBRyxDQUFDLFlBQVk7UUFBRSxNQUFNLElBQUksQ0FBRyxFQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBLEtBQUEsQ0FBTyxDQUFDO0FBRXZFLElBQUEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztBQUFFLFFBQUEsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDM0UsSUFBQSxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7QUFDZ0IsU0FBQSxTQUFTLENBQUksS0FBYSxFQUFFLE1BQWMsRUFBQTtBQUN0RCxJQUFBLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSTtBQUFFLFFBQUEsT0FBTyxLQUFLLENBQUM7SUFDNUMsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLO0FBQUUsUUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFBRSxZQUFBLE9BQU8sS0FBSyxDQUFDO0FBRTVELElBQUEsT0FBTyxJQUFJLENBQUM7QUFDaEI7O0FDakZNLElBQVcsTUFBTSxDQXFTdEI7QUFyU0QsQ0FBQSxVQUFpQixNQUFNLEVBQUE7O0lBRW5CLFNBQWdCLFFBQVEsQ0FDcEIsS0FBVSxFQUNWLFVBQXlCLHNCQUFzQixFQUMvQyxZQUFxQixLQUFLLEVBQUE7QUFFMUIsUUFBQSxJQUFJLE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsUUFBQSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQztRQUUxQyxRQUFRLE9BQU8sQ0FBQyxJQUFJO0FBQ2hCLFlBQUEsS0FBSyxNQUFNO2dCQUNQLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQztBQUNoQyxZQUFBLEtBQUssUUFBUTtnQkFDVCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDekIsWUFBQSxLQUFLLFFBQVEsQ0FBQztBQUNkLFlBQUEsS0FBSyxTQUFTO0FBQ1YsZ0JBQUEsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUM5QixZQUFBLEtBQUssTUFBTTtBQUNQLGdCQUFBLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7QUFDbkMsWUFBQSxLQUFLLFFBQVE7QUFDVCxnQkFBQSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDcEMsWUFBQSxLQUFLLE1BQU07QUFDUCxnQkFBQSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDcEMsWUFBQSxLQUFLLFVBQVU7QUFDWCxnQkFBQSxPQUFPLFlBQVksQ0FBQztBQUN4QixZQUFBLEtBQUssT0FBTztnQkFDUixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDaEIsZ0JBQUEsSUFBSSxTQUFTO29CQUFFLE1BQU0sSUFBSSxHQUFHLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEUsZ0JBQUEsSUFBSSxTQUFTO29CQUFFLE1BQU0sSUFBSSxHQUFHLENBQUM7QUFDN0IsZ0JBQUEsT0FBTyxNQUFNLENBQUM7QUFDbEIsWUFBQSxLQUFLLFFBQVE7QUFDVCxnQkFBQSxRQUNJLElBQUk7QUFDSixvQkFBQSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7eUJBQ3hCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQzt5QkFDckQsSUFBSSxDQUFDLElBQUksQ0FBQztBQUNmLG9CQUFBLElBQUksRUFDTjtBQUNOLFlBQUEsS0FBSyxNQUFNO2dCQUNQLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7b0JBQ25GLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDNUQsaUJBQUE7Z0JBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqRSxZQUFBLEtBQUssVUFBVTtBQUNYLGdCQUFBLE9BQU8scUJBQXFCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25ELFNBQUE7S0FDSjtBQS9DZSxJQUFBLE1BQUEsQ0FBQSxRQUFRLFdBK0N2QixDQUFBOztJQUdELFNBQWdCLFNBQVMsQ0FBQyxHQUFZLEVBQUE7UUFDbEMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ2hELElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUN6RCxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFDekQsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQzNELElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUM3RCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFDckQsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3pELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUN2RCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFDckQsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQzdELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUNyRCxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7O0FBQ3pELFlBQUEsT0FBTyxTQUFTLENBQUM7S0FDekI7QUFkZSxJQUFBLE1BQUEsQ0FBQSxTQUFTLFlBY3hCLENBQUE7O0FBR0QsSUFBQSxTQUFnQixTQUFTLENBQUMsR0FBWSxFQUFFLElBQTZCLEVBQUE7QUFDakUsUUFBQSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksTUFBTSxHQUFlLEVBQUUsQ0FBQztBQUM1QixZQUFBLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuRixZQUFBLE9BQU8sTUFBTSxDQUFDO0FBQ2pCLFNBQUE7QUFBTSxhQUFBLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksTUFBTSxHQUFjLEVBQUUsQ0FBQztZQUMzQixLQUFLLElBQUksS0FBSyxJQUFJLEdBQUc7Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDM0QsWUFBQSxPQUFPLE1BQU0sQ0FBQztBQUNqQixTQUFBO0FBQU0sYUFBQTtBQUNILFlBQUEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEIsU0FBQTtLQUNKO0FBWmUsSUFBQSxNQUFBLENBQUEsU0FBUyxZQVl4QixDQUFBOztBQUdELElBQUEsU0FBZ0IsWUFBWSxDQUFDLElBQWEsRUFBRSxJQUFhLEVBQUUsY0FBeUMsRUFBQTs7O1FBRWhHLElBQUksSUFBSSxLQUFLLFNBQVM7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksSUFBSSxLQUFLLFNBQVM7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BDLFFBQUEsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJO0FBQUUsWUFBQSxPQUFPLENBQUMsQ0FBQzthQUN4QyxJQUFJLElBQUksS0FBSyxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM3QixJQUFJLElBQUksS0FBSyxJQUFJO0FBQUUsWUFBQSxPQUFPLENBQUMsQ0FBQzs7QUFHakMsUUFBQSxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUIsUUFBQSxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFNUIsUUFBQSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLFNBQVM7QUFBRSxZQUFBLE9BQU8sQ0FBQyxDQUFDO2FBQ3BELElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7QUFBRSxZQUFBLE9BQU8sQ0FBQyxDQUFDOztBQUd2QyxRQUFBLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLFFBQUEsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLO0FBQUUsWUFBQSxPQUFPLENBQUMsQ0FBQztRQUUxQyxRQUFRLEtBQUssQ0FBQyxJQUFJO0FBQ2QsWUFBQSxLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBZSxDQUFDLENBQUM7QUFDNUQsWUFBQSxLQUFLLFFBQVE7QUFDVCxnQkFBQSxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUksS0FBSyxDQUFDLEtBQWdCO29CQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDaEQscUJBQUEsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFLLEtBQUssQ0FBQyxLQUFnQjtBQUFFLG9CQUFBLE9BQU8sQ0FBQyxDQUFDO0FBQzFELGdCQUFBLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsWUFBQSxLQUFLLE1BQU07QUFDUCxnQkFBQSxPQUFPLENBQUMsQ0FBQztBQUNiLFlBQUEsS0FBSyxTQUFTO0FBQ1YsZ0JBQUEsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLO0FBQUUsb0JBQUEsT0FBTyxDQUFDLENBQUM7O0FBQ3BDLG9CQUFBLE9BQU8sS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckMsWUFBQSxLQUFLLE1BQU07QUFDUCxnQkFBQSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3hCLGdCQUFBLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFhLENBQUM7QUFDaEMsZ0JBQUEsSUFBSSxTQUFTLEdBQUcsY0FBYyxLQUFkLElBQUEsSUFBQSxjQUFjLGNBQWQsY0FBYyxJQUFLLENBQUMsQ0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDOztBQUdyRCxnQkFBQSxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLElBQUksV0FBVyxJQUFJLENBQUM7QUFBRSxvQkFBQSxPQUFPLFdBQVcsQ0FBQzs7QUFHekMsZ0JBQUEsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLFdBQVcsSUFBSSxDQUFDO0FBQUUsb0JBQUEsT0FBTyxXQUFXLENBQUM7O0FBR3pDLGdCQUFBLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO0FBQUUsb0JBQUEsT0FBTyxDQUFDLENBQUM7QUFDOUMsZ0JBQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU87b0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztBQUFFLG9CQUFBLE9BQU8sQ0FBQyxDQUFDOztBQUcvQyxnQkFBQSxPQUFPLENBQUMsQ0FBQSxFQUFBLEdBQUEsS0FBSyxDQUFDLE9BQU8sTUFBQSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBSSxFQUFFLEVBQUUsYUFBYSxDQUFDLE1BQUEsS0FBSyxDQUFDLE9BQU8sTUFBSSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxFQUFFLENBQUMsQ0FBQztBQUNwRSxZQUFBLEtBQUssTUFBTTtBQUNQLGdCQUFBLE9BQU8sS0FBSyxDQUFDLEtBQUssR0FBSSxLQUFLLENBQUMsS0FBa0I7c0JBQ3hDLENBQUMsQ0FBQztzQkFDRixLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBaUIsQ0FBQztBQUM3QywwQkFBRSxDQUFDOzBCQUNELENBQUMsQ0FBQztBQUNaLFlBQUEsS0FBSyxVQUFVO0FBQ1gsZ0JBQUEsT0FBTyxLQUFLLENBQUMsS0FBSyxHQUFJLEtBQUssQ0FBQyxLQUFrQjtzQkFDeEMsQ0FBQyxDQUFDO3NCQUNGLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFpQixDQUFDO0FBQzdDLDBCQUFFLENBQUM7MEJBQ0QsQ0FBQyxDQUFDO0FBQ1osWUFBQSxLQUFLLE9BQU87QUFDUixnQkFBQSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3JCLGdCQUFBLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFjLENBQUM7Z0JBQzlCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO0FBQ2pFLG9CQUFBLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzlDLElBQUksSUFBSSxJQUFJLENBQUM7QUFBRSx3QkFBQSxPQUFPLElBQUksQ0FBQztBQUM5QixpQkFBQTtBQUNELGdCQUFBLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0FBQ2pDLFlBQUEsS0FBSyxRQUFRO0FBQ1QsZ0JBQUEsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUNyQixnQkFBQSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBNEIsQ0FBQztBQUM1QyxnQkFBQSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyQyxnQkFBQSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFVixJQUFJLFVBQVUsR0FBRyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLFVBQVUsSUFBSSxDQUFDO0FBQUUsb0JBQUEsT0FBTyxVQUFVLENBQUM7QUFFdkMsZ0JBQUEsS0FBSyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7QUFDaEIsb0JBQUEsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxJQUFJLElBQUksQ0FBQztBQUFFLHdCQUFBLE9BQU8sSUFBSSxDQUFDO0FBQzlCLGlCQUFBO0FBRUQsZ0JBQUEsT0FBTyxDQUFDLENBQUM7QUFDYixZQUFBLEtBQUssUUFBUSxDQUFDO0FBQ2QsWUFBQSxLQUFLLE1BQU0sQ0FBQztBQUNaLFlBQUEsS0FBSyxVQUFVO0FBQ1gsZ0JBQUEsT0FBTyxDQUFDLENBQUM7QUFDaEIsU0FBQTtLQUNKO0FBOUZlLElBQUEsTUFBQSxDQUFBLFlBQVksZUE4RjNCLENBQUE7O0lBR0QsU0FBZ0IsTUFBTSxDQUFDLEdBQVEsRUFBQTs7QUFDM0IsUUFBQSxPQUFPLE1BQUEsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFBLElBQUEsSUFBQSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFFLElBQUksQ0FBQztLQUMvQjtBQUZlLElBQUEsTUFBQSxDQUFBLE1BQU0sU0FFckIsQ0FBQTs7SUFHRCxTQUFnQixRQUFRLENBQUMsS0FBYyxFQUFBO0FBQ25DLFFBQUEsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLFFBQUEsSUFBSSxDQUFDLE9BQU87QUFBRSxZQUFBLE9BQU8sS0FBSyxDQUFDO1FBRTNCLFFBQVEsT0FBTyxDQUFDLElBQUk7QUFDaEIsWUFBQSxLQUFLLFFBQVE7QUFDVCxnQkFBQSxPQUFPLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQzlCLFlBQUEsS0FBSyxRQUFRO0FBQ1QsZ0JBQUEsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDcEMsWUFBQSxLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQ3pCLFlBQUEsS0FBSyxNQUFNO0FBQ1AsZ0JBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDaEMsWUFBQSxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6QyxZQUFBLEtBQUssVUFBVTtnQkFDWCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QyxZQUFBLEtBQUssUUFBUTtBQUNULGdCQUFBLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNqRCxZQUFBLEtBQUssT0FBTztBQUNSLGdCQUFBLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLFlBQUEsS0FBSyxNQUFNO0FBQ1AsZ0JBQUEsT0FBTyxLQUFLLENBQUM7QUFDakIsWUFBQSxLQUFLLE1BQU0sQ0FBQztBQUNaLFlBQUEsS0FBSyxRQUFRLENBQUM7QUFDZCxZQUFBLEtBQUssVUFBVTtBQUNYLGdCQUFBLE9BQU8sSUFBSSxDQUFDO0FBQ25CLFNBQUE7S0FDSjtBQTVCZSxJQUFBLE1BQUEsQ0FBQSxRQUFRLFdBNEJ2QixDQUFBOztJQUdELFNBQWdCLFFBQVEsQ0FBb0IsS0FBUSxFQUFBO0FBQ2hELFFBQUEsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTO0FBQUUsWUFBQSxPQUFPLEtBQUssQ0FBQztBQUV4RCxRQUFBLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUN2QixZQUFBLE9BQVEsRUFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQU0sQ0FBQztBQUNyRSxTQUFBO0FBQU0sYUFBQSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxNQUFNLEdBQTRCLEVBQUUsQ0FBQztBQUN6QyxZQUFBLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlFLFlBQUEsT0FBTyxNQUFXLENBQUM7QUFDdEIsU0FBQTtBQUFNLGFBQUE7QUFDSCxZQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2hCLFNBQUE7S0FDSjtBQVplLElBQUEsTUFBQSxDQUFBLFFBQVEsV0FZdkIsQ0FBQTtJQUVELFNBQWdCLFFBQVEsQ0FBQyxHQUFRLEVBQUE7QUFDN0IsUUFBQSxPQUFPLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQztLQUNqQztBQUZlLElBQUEsTUFBQSxDQUFBLFFBQVEsV0FFdkIsQ0FBQTtJQUVELFNBQWdCLFFBQVEsQ0FBQyxHQUFRLEVBQUE7QUFDN0IsUUFBQSxPQUFPLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQztLQUNqQztBQUZlLElBQUEsTUFBQSxDQUFBLFFBQVEsV0FFdkIsQ0FBQTtJQUVELFNBQWdCLE1BQU0sQ0FBQyxHQUFRLEVBQUE7UUFDM0IsT0FBTyxHQUFHLFlBQVlKLFVBQVEsQ0FBQztLQUNsQztBQUZlLElBQUEsTUFBQSxDQUFBLE1BQU0sU0FFckIsQ0FBQTtJQUVELFNBQWdCLFVBQVUsQ0FBQyxHQUFRLEVBQUE7UUFDL0IsT0FBTyxHQUFHLFlBQVlLLFVBQVEsQ0FBQztLQUNsQztBQUZlLElBQUEsTUFBQSxDQUFBLFVBQVUsYUFFekIsQ0FBQTtJQUVELFNBQWdCLE1BQU0sQ0FBQyxHQUFRLEVBQUE7QUFDM0IsUUFBQSxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQztLQUM1QztBQUZlLElBQUEsTUFBQSxDQUFBLE1BQU0sU0FFckIsQ0FBQTtJQUVELFNBQWdCLE9BQU8sQ0FBQyxHQUFRLEVBQUE7QUFDNUIsUUFBQSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDN0I7QUFGZSxJQUFBLE1BQUEsQ0FBQSxPQUFPLFVBRXRCLENBQUE7SUFFRCxTQUFnQixTQUFTLENBQUMsR0FBUSxFQUFBO0FBQzlCLFFBQUEsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7S0FDbkM7QUFGZSxJQUFBLE1BQUEsQ0FBQSxTQUFTLFlBRXhCLENBQUE7SUFFRCxTQUFnQixNQUFNLENBQUMsR0FBUSxFQUFBO1FBQzNCLE9BQU8sR0FBRyxZQUFZLElBQUksQ0FBQztLQUM5QjtBQUZlLElBQUEsTUFBQSxDQUFBLE1BQU0sU0FFckIsQ0FBQTtJQUVELFNBQWdCLFFBQVEsQ0FBQyxHQUFRLEVBQUE7UUFDN0IsT0FBTyxHQUFHLFlBQVksTUFBTSxDQUFDO0tBQ2hDO0FBRmUsSUFBQSxNQUFBLENBQUEsUUFBUSxXQUV2QixDQUFBO0lBRUQsU0FBZ0IsTUFBTSxDQUFDLEdBQVEsRUFBQTtBQUMzQixRQUFBLElBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQ3BDLE9BQU8sR0FBRyxZQUFZLFdBQVcsQ0FBQztBQUNyQyxTQUFBO0FBQU0sYUFBQTtBQUNILFlBQUEsT0FBTyxLQUFLLENBQUM7QUFDaEIsU0FBQTtLQUNKO0FBTmUsSUFBQSxNQUFBLENBQUEsTUFBTSxTQU1yQixDQUFBOztJQUdELFNBQWdCLFFBQVEsQ0FBQyxHQUFRLEVBQUE7QUFDN0IsUUFBQSxRQUNJLE9BQU8sR0FBRyxJQUFJLFFBQVE7WUFDdEIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQ1osQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ2QsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ2IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQ2hCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUNaLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUNaLFlBQUEsR0FBRyxLQUFLLFNBQVM7QUFDakIsWUFBQSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFDZDtLQUNMO0FBWmUsSUFBQSxNQUFBLENBQUEsUUFBUSxXQVl2QixDQUFBO0lBRUQsU0FBZ0IsVUFBVSxDQUFDLEdBQVEsRUFBQTtBQUMvQixRQUFBLE9BQU8sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDO0tBQ25DO0FBRmUsSUFBQSxNQUFBLENBQUEsVUFBVSxhQUV6QixDQUFBO0FBQ0wsQ0FBQyxFQXJTZ0IsTUFBTSxLQUFOLE1BQU0sR0FxU3RCLEVBQUEsQ0FBQSxDQUFBLENBQUE7QUFFRDtBQUNBO0FBQ0E7QUFFTSxJQUFXLFNBQVMsQ0F1QnpCO0FBdkJELENBQUEsVUFBaUIsU0FBUyxFQUFBOztJQUV0QixTQUFnQixjQUFjLENBQUksS0FBMEIsRUFBQTtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQztLQUN4RztBQUZlLElBQUEsU0FBQSxDQUFBLGNBQWMsaUJBRTdCLENBQUE7O0lBR0QsU0FBZ0IsVUFBVSxDQUFJLEtBQWtCLEVBQUE7UUFDNUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLO0FBQUUsWUFBQSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztBQUFFLGdCQUFBLE9BQU8sS0FBSyxDQUFDO0FBRXRFLFFBQUEsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUplLElBQUEsU0FBQSxDQUFBLFVBQVUsYUFJekIsQ0FBQTs7SUFHRCxTQUFnQixLQUFLLENBQUksUUFBcUIsRUFBQTtBQUMxQyxRQUFBLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLEtBQUssSUFBSSxRQUFRLElBQUksUUFBUTtBQUFFLGdCQUFBLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlELFlBQUEsT0FBTyxNQUFNLENBQUM7QUFDakIsU0FBQTtBQUFNLGFBQUE7WUFDSCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDMUIsU0FBQTtLQUNKO0FBUmUsSUFBQSxTQUFBLENBQUEsS0FBSyxRQVFwQixDQUFBO0FBQ0wsQ0FBQyxFQXZCZ0IsU0FBUyxLQUFULFNBQVMsR0F1QnpCLEVBQUEsQ0FBQSxDQUFBLENBQUE7QUFFRDtBQUNBO0FBQ0E7QUFFQTtNQUNhLElBQUksQ0FBQTtBQTREYixJQUFBLFdBQUEsQ0FBb0IsTUFBcUIsRUFBQTtBQUNyQyxRQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQy9COztJQWpETSxPQUFPLElBQUksQ0FBQyxJQUFZLEVBQUUsS0FBaUIsR0FBQSxLQUFLLEVBQUUsT0FBZ0IsRUFBQTtRQUNyRSxPQUFPLElBQUksSUFBSSxDQUFDO1lBQ1osSUFBSTtZQUNKLEtBQUs7WUFDTCxPQUFPO0FBQ1AsWUFBQSxPQUFPLEVBQUUsU0FBUztBQUNsQixZQUFBLElBQUksRUFBRSxNQUFNO0FBQ2YsU0FBQSxDQUFDLENBQUM7S0FDTjtJQUVNLE9BQU8sS0FBSyxDQUFDLFFBQWdCLEVBQUUsS0FBaUIsR0FBQSxLQUFLLEVBQUUsT0FBZ0IsRUFBQTtBQUMxRSxRQUFBLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELFNBQUE7QUFBTSxhQUFBLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLFlBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFELFNBQUE7O1lBQU0sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDckQ7O0lBR00sT0FBTyxNQUFNLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFBRSxLQUFlLEVBQUUsT0FBZ0IsRUFBQTs7UUFFaEYsT0FBTyxJQUFJLElBQUksQ0FBQztZQUNaLElBQUk7WUFDSixLQUFLO1lBQ0wsT0FBTztBQUNQLFlBQUEsT0FBTyxFQUFFLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztBQUN2QyxZQUFBLElBQUksRUFBRSxRQUFRO0FBQ2pCLFNBQUEsQ0FBQyxDQUFDO0tBQ047O0lBR00sT0FBTyxLQUFLLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxLQUFlLEVBQUUsT0FBZ0IsRUFBQTtRQUNoRixPQUFPLElBQUksSUFBSSxDQUFDO1lBQ1osSUFBSTtZQUNKLEtBQUs7WUFDTCxPQUFPO0FBQ1AsWUFBQSxPQUFPLEVBQUUsT0FBTztBQUNoQixZQUFBLElBQUksRUFBRSxPQUFPO0FBQ2hCLFNBQUEsQ0FBQyxDQUFDO0tBQ047SUFFTSxPQUFPLFVBQVUsQ0FBQyxNQUEyQixFQUFBO0FBQ2hELFFBQUEsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMzQjs7QUFPTSxJQUFBLE1BQU0sQ0FBQyxLQUFXLEVBQUE7QUFDckIsUUFBQSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLElBQUk7QUFBRSxZQUFBLE9BQU8sS0FBSyxDQUFDO1FBRXRELE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7S0FDOUY7O0lBR00sUUFBUSxHQUFBO0FBQ1gsUUFBQSxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUMxQjs7SUFHTSxRQUFRLEdBQUE7QUFDWCxRQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ2hIOzs7QUFJTSxJQUFBLFFBQVEsQ0FBQyxJQUFZLEVBQUE7QUFDeEIsUUFBQSxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN0RDs7QUFHTSxJQUFBLFdBQVcsQ0FBQyxPQUFnQixFQUFBO0FBQy9CLFFBQUEsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDekQ7O0FBR00sSUFBQSxVQUFVLENBQUMsTUFBYyxFQUFBO0FBQzVCLFFBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ25FOztJQUdNLE1BQU0sR0FBQTtBQUNULFFBQUEsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDekQ7O0lBR00sT0FBTyxHQUFBO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO0FBQ1osWUFBQSxPQUFPLElBQUksQ0FBQztBQUNmLFNBQUE7QUFBTSxhQUFBO0FBQ0gsWUFBQSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixZQUFBLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLFlBQUEsT0FBTyxJQUFJLENBQUM7QUFDZixTQUFBO0tBQ0o7O0lBR00sU0FBUyxHQUFBO0FBQ1osUUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUNiLFlBQUEsT0FBTyxJQUFJLENBQUM7QUFDZixTQUFBO0FBQU0sYUFBQTtBQUNILFlBQUEsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsWUFBQSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNuQixZQUFBLE9BQU8sSUFBSSxDQUFDO0FBQ2YsU0FBQTtLQUNKOztJQUdNLFFBQVEsR0FBQTtRQUNYLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbEUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO0FBQ2QsWUFBQSxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDaEMsU0FBQTtBQUFNLGFBQUE7WUFDSCxNQUFNLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU87QUFBRSxnQkFBQSxNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDckYsU0FBQTtRQUVELE1BQU0sSUFBSSxJQUFJLENBQUM7QUFDZixRQUFBLE9BQU8sTUFBTSxDQUFDO0tBQ2pCOztJQUdNLFlBQVksR0FBQTs7QUFDZixRQUFBLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QyxRQUFBLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRO0FBQUUsWUFBQSxPQUFPLE9BQU8sR0FBRyxHQUFHLElBQUcsQ0FBQSxFQUFBLEdBQUEsSUFBSSxDQUFDLE9BQU8sTUFBRSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBLENBQUM7QUFDcEYsUUFBQSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksT0FBTztBQUFFLFlBQUEsT0FBTyxPQUFPLEdBQUcsSUFBSSxJQUFHLENBQUEsRUFBQSxHQUFBLElBQUksQ0FBQyxPQUFPLE1BQUUsSUFBQSxJQUFBLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQSxDQUFDOztBQUMvRSxZQUFBLE9BQU8sT0FBTyxDQUFDO0tBQ3ZCOztJQUdNLFFBQVEsR0FBQTtBQUNYLFFBQUEsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDckQ7QUFDSixDQUFBO0FBRUQ7QUFDQTtBQUNBO0FBRUE7Ozs7QUFJRztNQUNtQixNQUFNLENBQUE7QUFDeEIsSUFBQSxXQUFBLENBQTBCLE9BQWUsRUFBQTtRQUFmLElBQU8sQ0FBQSxPQUFBLEdBQVAsT0FBTyxDQUFRO0tBQUk7QUFTaEQsQ0FBQTtBQUVEO0FBQ00sTUFBTyxjQUFlLFNBQVEsTUFBTSxDQUFBO0lBQ3RDLFdBQTBCLENBQUEsR0FBWSxFQUFTLEtBQWMsRUFBQTtRQUN6RCxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUROLElBQUcsQ0FBQSxHQUFBLEdBQUgsR0FBRyxDQUFTO1FBQVMsSUFBSyxDQUFBLEtBQUEsR0FBTCxLQUFLLENBQVM7S0FFNUQ7SUFFZSxRQUFRLEdBQUE7QUFDcEIsUUFBQSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztLQUN6RTtBQUNKLENBQUE7QUFFRDtBQUNNLE1BQU8sa0JBQW1CLFNBQVEsTUFBTSxDQUFBO0lBQzFDLFdBQTBCLENBQUEsR0FBVyxFQUFTLE9BQWdCLEVBQUE7UUFDMUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFEVixJQUFHLENBQUEsR0FBQSxHQUFILEdBQUcsQ0FBUTtRQUFTLElBQU8sQ0FBQSxPQUFBLEdBQVAsT0FBTyxDQUFTO0tBRTdEO0lBRWUsUUFBUSxHQUFBOztBQUNwQixRQUFBLE9BQU8sQ0FBSSxDQUFBLEVBQUEsQ0FBQSxFQUFBLEdBQUEsSUFBSSxDQUFDLE9BQU8sTUFBSSxJQUFBLElBQUEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsR0FBRyxDQUFLLEVBQUEsRUFBQSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7S0FDdkQ7QUFDSixDQUFBO0FBRUssSUFBVyxPQUFPLENBd0J2QjtBQXhCRCxDQUFBLFVBQWlCLE9BQU8sRUFBQTs7QUFFcEIsSUFBQSxTQUFnQixRQUFRLENBQUMsR0FBWSxFQUFFLEtBQWMsRUFBQTtBQUNqRCxRQUFBLE9BQU8sSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3pDO0FBRmUsSUFBQSxPQUFBLENBQUEsUUFBUSxXQUV2QixDQUFBOztBQUdELElBQUEsU0FBZ0IsWUFBWSxDQUFDLEdBQVcsRUFBRSxPQUFnQixFQUFBO0FBQ3RELFFBQUEsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMvQztBQUZlLElBQUEsT0FBQSxDQUFBLFlBQVksZUFFM0IsQ0FBQTs7SUFHRCxTQUFnQixVQUFVLENBQUMsTUFBYyxFQUFBO0FBQ3JDLFFBQUEsT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDO0tBQ2xEO0FBRmUsSUFBQSxPQUFBLENBQUEsVUFBVSxhQUV6QixDQUFBO0lBRUQsU0FBZ0IsY0FBYyxDQUFDLE1BQWMsRUFBQTtBQUN6QyxRQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyx3QkFBd0IsQ0FBQztLQUN0RDtBQUZlLElBQUEsT0FBQSxDQUFBLGNBQWMsaUJBRTdCLENBQUE7O0lBR0QsU0FBZ0IsU0FBUyxDQUFDLE1BQWMsRUFBQTtRQUNwQyxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdkQ7QUFGZSxJQUFBLE9BQUEsQ0FBQSxTQUFTLFlBRXhCLENBQUE7QUFDTCxDQUFDLEVBeEJnQixPQUFPLEtBQVAsT0FBTyxHQXdCdkIsRUFBQSxDQUFBLENBQUE7O0FDMWZEO0FBQ0EsTUFBTSxhQUFhLENBQUE7QUFnRWYsSUFBQSxXQUFBLENBQ1csTUFBYSxFQUNiLFFBQXVCLEVBQ3ZCLGlCQUEwQyxHQUFBLE1BQU0sQ0FBQyxZQUFZLEVBQUE7UUFGN0QsSUFBTSxDQUFBLE1BQUEsR0FBTixNQUFNLENBQU87UUFDYixJQUFRLENBQUEsUUFBQSxHQUFSLFFBQVEsQ0FBZTtRQUN2QixJQUFpQixDQUFBLGlCQUFBLEdBQWpCLGlCQUFpQixDQUE0QztBQUVwRSxRQUFBLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUMvQjtJQXBCTSxPQUFPLElBQUksQ0FDZCxHQUFRLEVBQ1IsUUFBdUIsRUFDdkIsaUJBQUEsR0FBMEMsTUFBTSxDQUFDLFlBQVksRUFBQTtBQUU3RCxRQUFBLE9BQU8sSUFBSSxLQUFLLENBQ1osSUFBSSxhQUFhLENBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxFQUN0RCxhQUFhLENBQUMsV0FBVyxDQUM1QixDQUFDO0tBQ0w7QUFhTyxJQUFBLEtBQUssQ0FBSSxNQUFXLEVBQUE7QUFDeEIsUUFBQSxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDNUU7QUFFTSxJQUFBLEtBQUssQ0FBQyxTQUFnQyxFQUFBO0FBQ3pDLFFBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDcEQ7QUFFTSxJQUFBLE1BQU0sQ0FBQyxTQUFnQyxFQUFBO0FBQzFDLFFBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ2hDO0FBRU0sSUFBQSxHQUFHLENBQUksQ0FBa0IsRUFBQTtBQUM1QixRQUFBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pDO0FBRU0sSUFBQSxPQUFPLENBQUksQ0FBb0IsRUFBQTtRQUNsQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDaEIsUUFBQSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUM5QyxZQUFBLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEQsWUFBQSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBRSxTQUFTO1lBRTFDLEtBQUssSUFBSSxDQUFDLElBQUksS0FBSztBQUFFLGdCQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkMsU0FBQTtBQUVELFFBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzdCO0FBRU0sSUFBQSxNQUFNLENBQUMsQ0FBcUIsRUFBQTtBQUMvQixRQUFBLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUNyRCxZQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0MsU0FBQTtBQUVELFFBQUEsT0FBTyxJQUFXLENBQUM7S0FDdEI7QUFFTSxJQUFBLEtBQUssQ0FBQyxLQUFhLEVBQUE7QUFDdEIsUUFBQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDbEQ7SUFFTSxLQUFLLENBQUMsS0FBYyxFQUFFLEdBQVksRUFBQTtBQUNyQyxRQUFBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNwRDtBQUVNLElBQUEsTUFBTSxDQUFDLEtBQW1CLEVBQUE7QUFDN0IsUUFBQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDdkQ7O0lBR00sT0FBTyxDQUFDLE9BQVUsRUFBRSxTQUFrQixFQUFBO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDbEY7O0FBR00sSUFBQSxJQUFJLENBQUMsSUFBMkIsRUFBQTtRQUNuQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztBQUFFLFlBQUEsT0FBTyxTQUFTLENBQUM7O0FBQzdCLFlBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2xDO0lBRU0sU0FBUyxDQUFDLElBQTJCLEVBQUUsU0FBa0IsRUFBQTtBQUM1RCxRQUFBLEtBQUssSUFBSSxLQUFLLEdBQUcsU0FBUyxLQUFULElBQUEsSUFBQSxTQUFTLGNBQVQsU0FBUyxHQUFJLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUMzRCxZQUFBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7QUFBRSxnQkFBQSxPQUFPLEtBQUssQ0FBQztBQUNsRSxTQUFBO1FBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNiO0FBRU0sSUFBQSxRQUFRLENBQUMsT0FBVSxFQUFBO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDekM7QUFFTSxJQUFBLElBQUksQ0FBQyxHQUFZLEVBQUE7QUFDcEIsUUFBQSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNsRCxhQUFBLEtBQUssRUFBRTthQUNQLElBQUksQ0FBQyxHQUFHLEtBQUgsSUFBQSxJQUFBLEdBQUcsY0FBSCxHQUFHLEdBQUksSUFBSSxDQUFDLENBQUM7S0FDMUI7QUFFTSxJQUFBLElBQUksQ0FBSSxHQUFxQixFQUFFLFNBQTBCLEVBQUUsVUFBK0IsRUFBQTtBQUM3RixRQUFBLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQztBQUFFLFlBQUEsT0FBTyxJQUFJLENBQUM7UUFDekMsSUFBSSxjQUFjLEdBQUcsVUFBVSxLQUFWLElBQUEsSUFBQSxVQUFVLEtBQVYsS0FBQSxDQUFBLEdBQUEsVUFBVSxHQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUMxRCxRQUFBLElBQUksT0FBTyxHQUFHLEdBQUcsS0FBSCxJQUFBLElBQUEsR0FBRyxjQUFILEdBQUcsSUFBSyxDQUFDLENBQUksS0FBSyxDQUFhLENBQUMsQ0FBQzs7QUFHL0MsUUFBQSxJQUFJLElBQUksR0FBSSxFQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUk7WUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3pDLFNBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUk7QUFDZixZQUFBLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xELFlBQUEsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsT0FBTyxTQUFTLEtBQUssTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNGLFNBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDN0M7QUFFTSxJQUFBLFdBQVcsQ0FDZCxHQUFxQixFQUNyQixTQUEwQixFQUMxQixVQUErQixFQUFBO0FBRS9CLFFBQUEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO0FBQUUsWUFBQSxPQUFPLElBQUksQ0FBQztRQUN6QyxJQUFJLGNBQWMsR0FBRyxVQUFVLEtBQVYsSUFBQSxJQUFBLFVBQVUsS0FBVixLQUFBLENBQUEsR0FBQSxVQUFVLEdBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0FBQzFELFFBQUEsSUFBSSxPQUFPLEdBQUcsR0FBRyxLQUFILElBQUEsSUFBQSxHQUFHLGNBQUgsR0FBRyxJQUFLLENBQUMsQ0FBSSxLQUFLLENBQWEsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSTtBQUN0QixZQUFBLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixZQUFBLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV0QixPQUFPLFNBQVMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUYsU0FBQyxDQUFDLENBQUM7QUFFSCxRQUFBLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFTSxPQUFPLENBQ1YsR0FBb0IsRUFDcEIsVUFBK0IsRUFBQTtBQUUvQixRQUFBLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQztBQUFFLFlBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOzs7QUFJbkQsUUFBQSxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckQsVUFBVSxHQUFHLFVBQVUsS0FBQSxJQUFBLElBQVYsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFWLFVBQVUsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFbEQsSUFBSSxNQUFNLEdBQXFDLEVBQUUsQ0FBQztRQUNsRCxJQUFJLFVBQVUsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLFFBQUEsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNELFFBQUEsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEQsWUFBQSxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNsQyxnQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVELE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDakIsZ0JBQUEsVUFBVSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEMsYUFBQTtBQUFNLGlCQUFBO2dCQUNILFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEMsYUFBQTtBQUNKLFNBQUE7QUFDRCxRQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUU1RCxRQUFBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM3QjtJQUVNLE9BQU8sQ0FBSSxHQUErQixFQUFFLFVBQStCLEVBQUE7UUFDOUUsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUNuQyxZQUFBLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUc7Z0JBQ2hCLE9BQU87b0JBQ0gsR0FBRyxFQUFHLENBQVMsQ0FBQyxHQUFHO0FBQ25CLG9CQUFBLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFFLENBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFVLEVBQUUsVUFBaUIsQ0FBQztpQkFDdkYsQ0FBQztBQUNiLGFBQUMsQ0FBQyxDQUFDO0FBQ04sU0FBQTtBQUFNLGFBQUE7WUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBVSxFQUFFLFVBQVUsQ0FBUSxDQUFDO0FBQ3RELFNBQUE7S0FDSjtJQUVNLFFBQVEsQ0FBSSxHQUFxQixFQUFFLFVBQStCLEVBQUE7QUFDckUsUUFBQSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7QUFBRSxZQUFBLE9BQU8sSUFBSSxDQUFDO0FBQ3pDLFFBQUEsSUFBSSxPQUFPLEdBQUcsR0FBRyxLQUFBLElBQUEsSUFBSCxHQUFHLEtBQUgsS0FBQSxDQUFBLEdBQUEsR0FBRyxJQUFLLENBQUMsSUFBSSxDQUFhLENBQUMsQ0FBQzs7UUFHMUMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUk7QUFDckMsWUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDN0QsU0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2QyxVQUFVLEdBQUcsVUFBVSxLQUFBLElBQUEsSUFBVixVQUFVLEtBQUEsS0FBQSxDQUFBLEdBQVYsVUFBVSxHQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUVsRCxJQUFJLE1BQU0sR0FBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQyxRQUFBLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3RELElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDLGFBQUE7QUFDSixTQUFBO0FBRUQsUUFBQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDN0I7QUFFTSxJQUFBLEtBQUssQ0FBQyxDQUF3QixFQUFBO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDL0I7QUFFTSxJQUFBLElBQUksQ0FBQyxDQUF3QixFQUFBO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDOUI7QUFFTSxJQUFBLElBQUksQ0FBQyxDQUF3QixFQUFBO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEQ7SUFFTSxLQUFLLEdBQUE7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztLQUM5RDtJQUNNLElBQUksR0FBQTtRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0tBQ25GO0FBRU0sSUFBQSxFQUFFLENBQUMsR0FBVyxFQUFBO1FBQ2pCLElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztBQUN2QixRQUFBLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUMzQixZQUFBLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2QixZQUFBLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxTQUFTO0FBRXBELFlBQUEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0FBQUUsZ0JBQUEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUN4RixnQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLFNBQUE7QUFFRCxRQUFBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM3QjtBQUVNLElBQUEsSUFBSSxDQUFDLEdBQVcsRUFBQTtRQUNuQixJQUFJLE1BQU0sR0FBVSxFQUFFLENBQUM7QUFDdkIsUUFBQSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDM0IsWUFBQSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkIsWUFBQSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsU0FBUztBQUVwRCxZQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEIsU0FBQTtBQUVELFFBQUEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzdCO0FBRU0sSUFBQSxNQUFNLENBQUMsR0FBVyxFQUFBO1FBQ3JCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssR0FBVyxFQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVyRCxRQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDckIsWUFBQSxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdkIsWUFBQSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFdEIsWUFBQSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsU0FBUztBQUNwRCxZQUFBLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFBRSxnQkFBQSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZELElBQUksS0FBSyxZQUFZLGFBQWE7QUFBRSxnQkFBQSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBQ3RFLGdCQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsWUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JCLFNBQUE7QUFFRCxRQUFBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM3QjtBQUVNLElBQUEsT0FBTyxDQUFDLENBQXFCLEVBQUE7QUFDaEMsUUFBQSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDckQsWUFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdDLFNBQUE7S0FDSjtJQUVNLEtBQUssR0FBQTtRQUNSLE9BQVEsRUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDNUM7SUFFTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBQTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7S0FDekM7SUFFTSxRQUFRLEdBQUE7QUFDWCxRQUFBLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUM3Qzs7QUF2VWMsYUFBZSxDQUFBLGVBQUEsR0FBZ0IsSUFBSSxHQUFHLENBQUM7SUFDbEQsT0FBTztJQUNQLFFBQVE7SUFDUixLQUFLO0lBQ0wsU0FBUztJQUNULFFBQVE7SUFDUixPQUFPO0lBQ1AsUUFBUTtJQUNSLFNBQVM7SUFDVCxPQUFPO0lBQ1AsTUFBTTtJQUNOLFdBQVc7SUFDWCxVQUFVO0lBQ1YsTUFBTTtJQUNOLE1BQU07SUFDTixhQUFhO0lBQ2IsU0FBUztJQUNULFNBQVM7SUFDVCxVQUFVO0lBQ1YsT0FBTztJQUNQLE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLE1BQU07SUFDTixJQUFJO0lBQ0osTUFBTTtJQUNOLE9BQU87SUFDUCxRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixRQUFRO0lBQ1IsT0FBTztJQUNQLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsVUFBVTtBQUNiLENBQUEsQ0FBQyxDQUFDO0FBRVksYUFBQSxDQUFBLFdBQVcsR0FBcUM7QUFDM0QsSUFBQSxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQTtRQUNqQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7QUFBRSxZQUFBLE9BQVEsTUFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtBQUFFLFlBQUEsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pELElBQUksSUFBSSxLQUFLLGFBQWE7QUFBRSxZQUFBLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFDN0QsYUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNqRSxJQUFJLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUFFLFlBQUEsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFFNUYsUUFBQSxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUI7Q0FDSixDQUFDO0FBMlJOO0FBQ00sSUFBVyxTQUFTLENBb0J6QjtBQXBCRCxDQUFBLFVBQWlCLFNBQVMsRUFBQTs7QUFFdEIsSUFBQSxTQUFnQixJQUFJLENBQUksR0FBdUIsRUFBRSxRQUF1QixFQUFBO1FBQ3BFLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQztBQUFFLFlBQUEsT0FBTyxHQUFHLENBQUM7UUFDakMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztLQUM1QztBQUhlLElBQUEsU0FBQSxDQUFBLElBQUksT0FHbkIsQ0FBQTs7QUFHRCxJQUFBLFNBQWdCLElBQUksQ0FBSSxHQUFnQixFQUFFLFFBQXVCLEVBQUE7UUFDN0QsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDO0FBQUUsWUFBQSxPQUFPLEdBQUcsQ0FBQztRQUVqQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUc7QUFBRSxZQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztLQUM3QztBQU5lLElBQUEsU0FBQSxDQUFBLElBQUksT0FNbkIsQ0FBQTs7SUFHRCxTQUFnQixXQUFXLENBQUMsR0FBUSxFQUFBO1FBQ2hDLE9BQU8sR0FBRyxZQUFZLGFBQWEsQ0FBQztLQUN2QztBQUZlLElBQUEsU0FBQSxDQUFBLFdBQVcsY0FFMUIsQ0FBQTtBQUNMLENBQUMsRUFwQmdCLFNBQVMsS0FBVCxTQUFTLEdBb0J6QixFQUFBLENBQUEsQ0FBQSxDQUFBO0FBRUQ7QUFDQSxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQ3RDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQWtCO0lBQ2xDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUQsQ0FBQzs7QUN4ZUQ7U0FDZ0IsYUFBYSxHQUFBO0lBQ3pCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVztBQUFFLFFBQUEsT0FBTyxPQUFPLENBQUM7QUFDbEQsSUFBQSxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0FBQ3JDOztBQ0dBO0FBQ08sZUFBZSxxQkFBcUIsQ0FDdkMsUUFBZ0IsRUFDaEIsU0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsU0FBb0IsRUFBQTtBQUVwQixJQUFBLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUMxQyxJQUFBLE1BQU1DLHlCQUFnQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVyRixJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRTtRQUNoRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLEVBQUU7QUFDekIsWUFBQSxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsRCxTQUFBO0FBQ0QsUUFBQSxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLEtBQUE7QUFDTCxDQUFDO0FBRUQ7QUFDZ0IsU0FBQSxjQUFjLENBQUMsU0FBc0IsRUFBRSxLQUFhLEVBQUE7QUFDaEUsSUFBQSxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM3RSxJQUFBLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEIsSUFBQSxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRDtTQUNnQixlQUFlLENBQUMsU0FBc0IsRUFBRSxNQUFjLEVBQUUsUUFBaUIsRUFBQTtBQUNyRixJQUFBLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdELElBQUEsSUFBSSxRQUFRO1FBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELElBQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QixJQUFBLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFJRDtBQUNPLGVBQWUsV0FBVyxDQUM3QixLQUFjLEVBQ2QsU0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsU0FBb0IsRUFDcEIsUUFBdUIsRUFDdkIsVUFBc0IsR0FBQSxLQUFLLEVBQzNCLE9BQThCLEdBQUEsTUFBTSxFQUNwQyxLQUFBLEdBQWdCLENBQUMsRUFBQTs7O0FBR2pCLElBQUEsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixFQUFFO0FBQzFDLFFBQUEsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPO0FBQ1YsS0FBQTtBQUVELElBQUEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3RCLFFBQUEsTUFBTSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEYsS0FBQTtBQUFNLFNBQUEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFFBQUEsU0FBUyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RSxLQUFBO0FBQU0sU0FBQSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDakMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3RELEtBQUE7U0FBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3BGLFFBQUEsTUFBTSxxQkFBcUIsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDN0UsS0FBQTtBQUFNLFNBQUEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFFBQUEsTUFBTSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNuRixLQUFBO0FBQU0sU0FBQSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDN0IsUUFBQSxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLEtBQUE7QUFBTSxTQUFBLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMvQixRQUFBLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JHLFlBQUEsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FB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RyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxZQUFZLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsWUFBWSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLFlBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFNLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0RBQWtELENBQUMsQ0FBQyxDQUFDLGtOQUFrTixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLDREQUE0RCxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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LENBQUM7SUFDdEMsR0FBRyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRXZDLElBQUksRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN2QyxLQUFLLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsRUFBRSxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JDLEdBQUcsRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QyxDQUFDLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFcEMsR0FBRyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JDLElBQUksRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QyxDQUFDLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFbkMsSUFBSSxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLEtBQUssRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxFQUFFLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDckMsR0FBRyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RDLENBQUMsRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVwQyxNQUFNLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDM0MsT0FBTyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzVDLEdBQUcsRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxJQUFJLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDekMsQ0FBQyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRXRDLE1BQU0sRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMzQyxPQUFPLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDNUMsR0FBRyxFQUFFQSxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLElBQUksRUFBRUEsVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN6QyxDQUFDLEVBQUVBLFVBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDekMsQ0FBQztBQUVGO0FBQ08sTUFBTSxlQUFlLEdBQUc7QUFDM0IsSUFBQSxHQUFHLEVBQUUsTUFBTUwsVUFBUSxDQUFDLEtBQUssRUFBRTtBQUMzQixJQUFBLEtBQUssRUFBRSxNQUFNQSxVQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUM1QyxJQUFBLFNBQVMsRUFBRSxNQUNQQSxVQUFRLENBQUMsS0FBSyxFQUFFO1NBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNkLEtBQUssQ0FBQ0ssVUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELElBQUEsUUFBUSxFQUFFLE1BQ05MLFVBQVEsQ0FBQyxLQUFLLEVBQUU7U0FDWCxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsSUFBSSxDQUFDSyxVQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDL0MsSUFBQSxHQUFHLEVBQUUsTUFBTUwsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDM0MsSUFBQSxlQUFlLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDdkQsSUFBQSxHQUFHLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDekMsSUFBQSxhQUFhLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDbkQsSUFBQSxHQUFHLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDM0MsSUFBQSxlQUFlLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDdkQsSUFBQSxHQUFHLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDekMsSUFBQSxhQUFhLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDbkQsSUFBQSxHQUFHLEVBQUUsTUFBTUEsVUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENB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SUFBSSxDQUFDLENBQUMsT0FBT2MsZUFBTyxFQUFFLFVBQVUsRUFBRUEsZUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU9BLGVBQU8sRUFBRSxVQUFVLEVBQUVBLGVBQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENB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S0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLElBQUksSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksSUFBSSxDQUFDLENBQUM7QUFDVjtBQUNBLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDMUM7QUFDQSxRQUFRLFlBQVksSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xELFFBQVEsWUFBWSxJQUFJLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsUUFBUSxZQUFZLElBQUksVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDakYsUUFBUSxZQUFZLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDdEQsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUNoQyxRQUFRLFlBQVksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNoRixLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDdkMsUUFBUSxZQUFZLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUs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QkFBQSxDQUFBLEtBQUssR0FBaUIsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDO0FBQzFELFNBQUEsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDM0UsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQztTQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxVQUFVLEdBQWlCLElBQUksZUFBZSxDQUFDLFlBQVksQ0FBQztBQUNwRSxTQUFBLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzdCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEIsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxRQUFRLEdBQWlCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQztBQUNoRSxTQUFBLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sS0FBSyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9ELElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQzdCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEIsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxPQUFPLEdBQWlCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQztTQUM5RCxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckYsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO1NBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQztTQUNsQyxJQUFJLENBQUMsR0FB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LEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RELFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEIsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDO0FBQ2xELFNBQUEsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3RELFNBQUEsS0FBSyxFQUFFLENBQUM7QUFFQSxJQUFBLGdCQUFBLENBQUEsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQztBQUM5QyxTQUFBLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQzVFLFNBQUEsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLFNBQUEsS0FBSyxFQUFFLENBQUM7QUFFQSxJQUFBLGdCQUFBLENBQUEsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQztBQUM5QyxTQUFBLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQUk7QUFDMUMsUUFBQSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQztBQUFFLFlBQUEsT0FBTyxJQUFJLENBQUM7UUFFakMsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJ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LEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUVBLElBQUEsZ0JBQUEsQ0FBQSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDO0FBQzlDLFNBQUEsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdCLFNBQUEsS0FBSyxFQUFFLENBQUM7QUFFQSxJQUFBLGdCQUFBLENBQUEsR0FBRyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQztBQUN4QyxTQUFBLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25FLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdCLFNBQUEsS0FBSyxFQUFFLENBQUM7QUFFQSxJQUFBLGdCQUFBLENBQUEsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQztTQUNoRCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztBQUN2RSxTQUFBLEtBQUssRUFBRSxDQUFDOztBQUdBLElBQUEsZ0JBQUEsQ0FBQSxJQUFJLEdBQWlCLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQztBQUN4RCxTQUFBLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFHOztBQUFDLFFBQUEsUUFBQztBQUNuQixZQUFBLE9BQU8sRUFBRSxDQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsT0FBTyxtQ0FBSSxJQUFJO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7QUFDZixZQUFBLE9BQU8sRUFBRSxDQUFBLEVBQUEsR0FBQSxJQUFJLENBQUMsT0FBTyxtQ0FBSSxJQUFJO1lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtBQUNsQixTQUFBLEVBQUM7S0FBQSxDQUFDO0FBQ0YsU0FBQSxLQUFLLEVBQUUsQ0FBQztBQUNqQixDQUFDLEVBeGpCZ0IsZ0JBQWdCLEtBQWhCLGdCQUFnQixHQXdqQmhDLEVBQUEsQ0FBQSxDQUFBLENBQUE7QUFFRDtBQUNPLE1BQU0saUJBQWlCLEdBQWlDOztJQUUzRCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUMzQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUM1QixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUMzQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztJQUM3QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztJQUM3QixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUMzQixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztJQUN6QixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsVUFBVTtJQUN2QyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztJQUNyQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtJQUMvQixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtJQUMvQixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtJQUMvQixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTs7SUFHL0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7SUFDN0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7SUFDekIsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7SUFDekIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7SUFDN0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7O0lBRzdCLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZO0lBQzNDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVO0lBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO0lBQ2pDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO0lBQzdCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO0lBQzdCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO0lBQzdCLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVO0lBQ3ZDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO0lBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO0lBQ2pDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO0lBQ25DLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO0lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFROztJQUduQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUzs7SUFHckMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07SUFDL0IsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7SUFDbkMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7SUFDckMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7SUFDckMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFlBQVk7SUFDM0MsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE9BQU87SUFDakMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7O0lBRzNCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO0lBQy9CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO0lBQzNCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0lBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO0lBQ2pDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0lBQ3pCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0lBQ3pCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO0lBQzNCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO0lBQy9CLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0lBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPOztJQUdqQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztJQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtJQUNsQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtJQUNuQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtJQUMvQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtDQUM5Qjs7QUM3eUJEO0FBc0JBO01BQ2EsZUFBZSxDQUFBO0FBT3hCLElBQUEsV0FBQSxHQUFBO0FBQ0ksUUFBQSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7S0FDeEI7QUFOTSxJQUFBLE9BQU8sTUFBTSxHQUFBO1FBQ2hCLE9BQU8sSUFBSSxlQUFlLEVBQUUsQ0FBQztLQUNoQztBQU1NLElBQUEsUUFBUSxDQUNYLElBQU8sRUFDUCxFQUFZLEVBQ1osS0FBUSxFQUNSLElBQXdELEVBQUE7QUFFeEQsUUFBQSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUQsUUFBQSxPQUFPLElBQUksQ0FBQztLQUNmO0FBRU0sSUFBQSxZQUFZLENBQ2YsSUFBTyxFQUNQLEVBQVksRUFDWixLQUFRLEVBQ1IsSUFBd0QsRUFBQTtBQUV4RCxRQUFBLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3pHOztJQUdNLE9BQU8sQ0FBNkIsSUFBTyxFQUFFLE9BQXVDLEVBQUE7QUFDdkYsUUFBQSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkUsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNoRSxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEUsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQzNFOztBQUdNLElBQUEsUUFBUSxDQUFDLEVBQVksRUFBRSxJQUFhLEVBQUUsS0FBYyxFQUFFLEdBQVksRUFBQTtRQUNyRSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsUUFBQSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsSUFBSSxDQUFBLENBQUEsQ0FBRyxDQUFDLENBQUM7QUFDaEUsYUFBQSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxDQUFBLENBQUEsQ0FBRyxDQUFDLENBQUM7QUFFNUUsUUFBQSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMxRSxRQUFBLElBQUksT0FBTztBQUFFLFlBQUEsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENB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QUNDLEdBQUMsQ0FBQ0MsR0FBQyxDQUFDLEVBQUUsQ0FBQ0MsR0FBQyxDQUFDLEVBQUUsQ0FBQ2xDLEdBQUMsQ0FBQyxvRUFBb0UsU0FBU21DLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUVWLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFM0IsR0FBQyxDQUFDLEtBQUssRUFBRUEsR0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU3NDLEdBQUMsRUFBRSxDQUFDLE9BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBU0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLFNBQVNDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBU0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFZixHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUNnQixHQUFDLENBQUMsR0FBRyxFQUFFLEVBQUVkLEdBQUMsR0FBRzlCLEdBQUMsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM4QixHQUFDLENBQUM5QixHQUFDLENBQUMsaUJBQWlCLEdBQUc2QixHQUFDLEVBQUVlLEdBQUMsRUFBQyxDQUFDLFNBQVNBLEdBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxHQUFHLENBQUNoQixHQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNNLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDVyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDSixHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQ0ssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRUosR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsU0FBU0ssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRWQsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUNJLEdBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDRSxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0YsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUNRLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUViLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDZ0IsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQ1IsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ1MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQ0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVNILEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBU0csR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVNILEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVNJLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUV4RCxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFNBQVN1RCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxHQUFDLENBQUNDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0QsR0FBQyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUN6RCxHQUFDLENBQUMsS0FBSyxDQUFDQSxHQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVN3RCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUN4RCxHQUFDLENBQUMsS0FBSyxDQUFDQSxHQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVM2QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzdDLEdBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUl3QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUNrQixHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDeEIsR0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQ2xDLEdBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDa0MsR0FBQyxDQUFDQSxHQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHSyxHQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDUSxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQ1ksR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMzRCxHQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVM4QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOUMsR0FBQyxDQUFDLEdBQUcsRUFBRUEsR0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMyRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFM0IsR0FBQyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBR3FCLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUNOLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRU4sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRU4sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUVtQixHQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRUEsR0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVNILEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUNuRCxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVNrRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR2xELEdBQUMsQ0FBQyxPQUFPLEVBQUVBLEdBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRW1ELEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixHQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQ25ELEdBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFa0QsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRWYsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLENBQUMsU0FBU3VCLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU0UsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzVELEdBQUMsQ0FBQyxFQUFFLEVBQUVBLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzZDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUNULEdBQUMsQ0FBQ0csR0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFUCxHQUFDLENBQUNBLEdBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQ2MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTZSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsR0FBQyxFQUFDLENBQUMsU0FBU0MsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM1QixHQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMwQixHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUNoQyxHQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQ1ksR0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDVixHQUFDLENBQUMsS0FBSyxDQUFDakMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzJCLEdBQUMsQ0FBQyxDQUFDLENBQXVEYSxHQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQ04sR0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUNTLEdBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUNILEdBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQ0csR0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQ0gsR0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUNELEdBQUMsQ0FBQ1gsR0FBQyxDQUFDLEVBQUUsQ0FBQ0MsR0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDZSxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ2IsR0FBQyxDQUFDLENBQUM7O0FDQW5pVCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUNqQyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxHQUFHLEVBQUVBLEdBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ2lELEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDakQsR0FBQyxDQUFDLEdBQUcsRUFBRTJDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzNDLEdBQUMsQ0FBQyxHQUFHLEVBQUUyQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBU1csR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVNZLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBU1IsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzFELEdBQUMsQ0FBQyxhQUFhLEVBQUVBLEdBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBaUssU0FBU2tELEdBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQ0osR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMvQyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzhDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMvQyxHQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUdBLEdBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDQSxHQUFDLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUVrRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQ2xELEdBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzhDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMvQyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDOEMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU5QyxHQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLHFCQUFxQixDQUFDLFNBQVM4QyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBU0osR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU00sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUNBaC9ELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQ2hELEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSW1DLEdBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0MsR0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDSSxHQUFDLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBSyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0osR0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU9wQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQ29DLEdBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSUQsR0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUVuQyxHQUFDLENBQUNxQyxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUNyQyxHQUFDLENBQUNxQyxHQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQ0UsR0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNBLEdBQUMsQ0FBQ3ZDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsb0JBQW9CLEdBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJbUMsR0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDSyxHQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLDJPQUEyTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDRCxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUNULEdBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDQSxHQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDQyxHQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQ0EsR0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsR0FBQyxDQUFDLEtBQUssQ0FBQ0EsR0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsY0FBYyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQ0ksR0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQ0EsR0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0osR0FBQyxDQUFDLEdBQUcsQ0FBQ0EsR0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFHLENBQUMsQ0FBSSxJQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxD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 diff --git a/notes/.obsidian/plugins/dataview/manifest.json b/notes/.obsidian/plugins/dataview/manifest.json index 2f5ef58..3c83a5e 100644 --- a/notes/.obsidian/plugins/dataview/manifest.json +++ b/notes/.obsidian/plugins/dataview/manifest.json @@ -1,7 +1,7 @@ { "id": "dataview", "name": "Dataview", - "version": "0.5.41", + "version": "0.5.45", "minAppVersion": "0.13.11", "description": "Complex data views for the data-obsessed.", "author": "Michael Brenan ", diff --git a/notes/.obsidian/plugins/dataview/styles.css b/notes/.obsidian/plugins/dataview/styles.css index ec31fe8..3a20488 100644 --- a/notes/.obsidian/plugins/dataview/styles.css +++ b/notes/.obsidian/plugins/dataview/styles.css @@ -19,7 +19,7 @@ } .table-view-table > tbody > tr:hover { - background-color: var(--text-selection); + background-color: var(--text-selection) !important; } .table-view-table > thead > tr > th { diff --git a/notes/.obsidian/plugins/hotkey-helper/main.js b/notes/.obsidian/plugins/hotkey-helper/main.js index e767caf..d8b44ae 100644 --- a/notes/.obsidian/plugins/hotkey-helper/main.js +++ b/notes/.obsidian/plugins/hotkey-helper/main.js @@ -1,563 +1,2 @@ -'use strict'; - -var obsidian = require('obsidian'); - -function around(obj, factories) { - const removers = Object.keys(factories).map(key => around1(obj, key, factories[key])); - return removers.length === 1 ? removers[0] : function () { removers.forEach(r => r()); }; -} -function around1(obj, method, createWrapper) { - const original = obj[method], hadOwn = obj.hasOwnProperty(method); - let current = createWrapper(original); - // Let our wrapper inherit static props from the wrapping method, - // and the wrapping method, props from the original method - if (original) - Object.setPrototypeOf(current, original); - Object.setPrototypeOf(wrapper, current); - obj[method] = wrapper; - // Return a callback to allow safe removal - return remove; - function wrapper(...args) { - // If we have been deactivated and are no longer wrapped, remove ourselves - if (current === original && obj[method] === wrapper) - remove(); - return current.apply(this, args); - } - function remove() { - // If no other patches, just do a direct removal - if (obj[method] === wrapper) { - if (hadOwn) - obj[method] = original; - else - delete obj[method]; - } - if (current === original) - return; - // Else pass future calls through, and remove wrapper from the prototype chain - current = original; - Object.setPrototypeOf(wrapper, original || Function); - } -} -function after(promise, cb) { - return promise.then(cb, cb); -} -function serialize(asyncFunction) { - let lastRun = Promise.resolve(); - function wrapper(...args) { - return lastRun = new Promise((res, rej) => { - after(lastRun, () => { - asyncFunction.apply(this, args).then(res, rej); - }); - }); - } - wrapper.after = function () { - return lastRun = new Promise((res, rej) => { after(lastRun, res); }); - }; - return wrapper; -} - -function hotkeyToString(hotkey) { - return obsidian.Keymap.compileModifiers(hotkey.modifiers)+"," + hotkey.key.toLowerCase() -} - -function isPluginTab(id) { - return id === "plugins" || id === "community-plugins"; -} - -function pluginSettingsAreOpen(app) { - return settingsAreOpen(app) && isPluginTab(app.setting.activeTab?.id) -} - -function settingsAreOpen(app) { - return app.setting.containerEl.parentElement !== null -} - -function isPluginViewer(ob) { - return ( - ob instanceof obsidian.Modal && - ob.hasOwnProperty("autoload") && - typeof ob.showPlugin === "function" && - typeof ob.updateSearch === "function" && - typeof ob.searchEl == "object" - ); -} - -function onElement(el, event, selector, callback, options=false) { - el.on(event, selector, callback, options); - return () => el.off(event, selector, callback, options); -} - -class HotkeyHelper extends obsidian.Plugin { - - onload() { - const workspace = this.app.workspace, plugin = this; - this.lastSearch = {}; // last search used, indexed by tab - - this.registerEvent( workspace.on("plugin-settings:before-display", (settingsTab, tabId) => { - this.hotkeyButtons = {}; - this.configButtons = {}; - this.globalsAdded = false; - this.searchInput = null; - const remove = around(obsidian.Setting.prototype, { - addSearch(old) { return function(f) { - remove(); - return old.call(this, i => { - plugin.searchInput = i; f?.(i); - }) - }} - }); - setImmediate(remove); - }) ); - this.registerEvent( workspace.on("plugin-settings:after-display", () => this.refreshButtons(true)) ); - - this.registerEvent( workspace.on("plugin-settings:plugin-control", (setting, manifest, enabled, tabId) => { - this.globalsAdded || this.addGlobals(tabId, setting.settingEl); - this.createExtraButtons(setting, manifest, enabled); - }) ); - - // Refresh the buttons when commands or setting tabs are added or removed - const requestRefresh = obsidian.debounce(this.refreshButtons.bind(this), 50, true); - function refresher(old) { return function(...args){ requestRefresh(); return old.apply(this, args); }; } - this.register(around(app.commands, {addCommand: refresher, removeCommand: refresher})); - this.register(around(app.setting, {addPluginTab: refresher, removePluginTab: refresher})); - this.register(around(app.setting, {addSettingTab: refresher, removeSettingTab: refresher})); - - workspace.onLayoutReady(this.whenReady.bind(this)); - this.registerObsidianProtocolHandler("goto-plugin", ({id, show}) => { - workspace.onLayoutReady(() => { this.gotoPlugin(id, show); }); - }); - } - - whenReady() { - const app = this.app, plugin = this; - - // Save and restore current tab (workaround https://forum.obsidian.md/t/settings-dialog-resets-to-first-tab-every-time/18240) - this.register(around(app.setting, { - onOpen(old) { return function(...args) { - old.apply(this, args); - if (!obsidian.Platform.isMobile && plugin.lastTabId) this.openTabById(plugin.lastTabId); - }}, - onClose(old) { return function(...args) { - plugin.lastTabId = this.activeTab?.id; - return old.apply(this, args); - }} - })); - - const corePlugins = this.getSettingsTab("plugins"); - const community = this.getSettingsTab("community-plugins"); - - // Hook into the display() method of the plugin settings tabs - if (corePlugins) this.register(around(corePlugins, {display: this.addPluginSettingEvents.bind(this, corePlugins.id)})); - if (community) this.register(around(community, {display: this.addPluginSettingEvents.bind(this, community.id)})); - - const enhanceViewer = () => this.enhanceViewer(); - - if (community) this.register( - // Trap opens of the community plugins viewer from the settings panel - onElement( - community.containerEl, "click", - ".mod-cta, .installed-plugins-container .setting-item-info", - enhanceViewer, - true - ) - ); - - // Trap opens of the community plugins viewer via URL - this.register( - around(app.workspace.protocolHandlers, { - get(old) { - return function get(key) { - if (key === "show-plugin") enhanceViewer(); - return old.call(this, key); - } - } - }) - ); - - // Now force a refresh if either plugins tab is currently visible (to show our new buttons) - function refreshTabIfOpen() { - if (pluginSettingsAreOpen(app)) app.setting.openTabById(app.setting.activeTab.id); - } - refreshTabIfOpen(); - - // And do it again after we unload (to remove the old buttons) - this.register(() => setImmediate(refreshTabIfOpen)); - - // Tweak the hotkey settings tab to make filtering work on id prefixes as well as command names - const hotkeysTab = this.getSettingsTab("hotkeys"); - if (hotkeysTab) { - this.register(around(hotkeysTab, { - display(old) { return function() { old.call(this); this.searchInputEl.focus(); }; }, - updateHotkeyVisibility(old) { - return function() { - const oldSearch = this.searchInputEl.value, oldCommands = app.commands.commands; - try { - if (oldSearch.endsWith(":") && !oldSearch.contains(" ")) { - // This is an incredibly ugly hack that relies on updateHotkeyVisibility() iterating app.commands.commands - // looking for hotkey conflicts *before* anything else. - let current = oldCommands; - let filtered = Object.fromEntries(Object.entries(app.commands.commands).filter( - ([id, cmd]) => (id+":").startsWith(oldSearch) - )); - this.searchInputEl.value = ""; - app.commands.commands = new Proxy(oldCommands, {ownKeys(){ - // The first time commands are iterated, return the whole thing; - // after that, return the filtered list - try { return Object.keys(current); } finally { current = filtered; } - }}); - } - return old.call(this); - } finally { - this.searchInputEl.value = oldSearch; - app.commands.commands = oldCommands; - } - } - } - })); - } - - // Add commands - this.addCommand({ - id: "open-plugins", - name: "Open the Community Plugins settings", - callback: () => this.showSettings("community-plugins") || true - }); - this.addCommand({ - id: "browse-plugins", - name: "Browse or search the Community Plugins catalog", - callback: () => this.gotoPlugin() - }); - } - - createExtraButtons(setting, manifest, enabled) { - setting.addExtraButton(btn => { - btn.setIcon("gear"); - btn.onClick(() => this.showConfigFor(manifest.id.replace(/^workspace$/,"file"))); - btn.setTooltip("Options"); - btn.extraSettingsEl.toggle(enabled); - this.configButtons[manifest.id] = btn; - }); - setting.addExtraButton(btn => { - btn.setIcon("any-key"); - btn.onClick(() => this.showHotkeysFor(manifest.id+":")); - btn.extraSettingsEl.toggle(enabled); - this.hotkeyButtons[manifest.id] = btn; - }); - } - - // Add top-level items (search and pseudo-plugins) - addGlobals(tabId, settingEl) { - this.globalsAdded = true; - - // Add a search filter to shrink plugin list - const containerEl = settingEl.parentElement; - let searchEl; - if (tabId !== "plugins" || this.searchInput) { - // Replace the built-in search handler - (searchEl = this.searchInput)?.onChange(changeHandler); - } else { - const tmp = new obsidian.Setting(containerEl).addSearch(s => { - searchEl = s; - s.setPlaceholder("Filter plugins...").onChange(changeHandler); - }); - searchEl.containerEl.style.margin = 0; - containerEl.createDiv("hotkey-search-container").append(searchEl.containerEl); - tmp.settingEl.detach(); - } - if (tabId === "community-plugins") { - searchEl.inputEl.addEventListener("keyup", e => { - if (e.keyCode === 13 && !obsidian.Keymap.getModifiers(e)) { - this.gotoPlugin(); - return false; - } - }); - } - const plugin = this; - function changeHandler(seek){ - const find = (plugin.lastSearch[tabId] = seek).toLowerCase(); - function matchAndHighlight(el) { - if (!el) return false; - const text = el.textContent = el.textContent; // clear previous highlighting, if any - const index = text.toLowerCase().indexOf(find); - if (!~index) return false; - el.textContent = text.substr(0, index); - el.createSpan("suggestion-highlight").textContent = text.substr(index, find.length); - el.insertAdjacentText("beforeend", text.substr(index+find.length)); - return true; - } - containerEl.findAll(".setting-item").forEach(e => { - const nameMatches = matchAndHighlight(e.find(".setting-item-name")); - const descMatches = matchAndHighlight( - e.find(".setting-item-description > div:last-child") ?? - e.find(".setting-item-description") - ); - const authorMatches = matchAndHighlight( - e.find(".setting-item-description > div:nth-child(2)") - ); - e.toggle(nameMatches || descMatches || authorMatches); - }); - } - setImmediate(() => { - if (!searchEl) return - if (searchEl && typeof plugin.lastSearch[tabId] === "string") { - searchEl.setValue(plugin.lastSearch[tabId]); - searchEl.onChanged(); - } - if (!obsidian.Platform.isMobile) searchEl.inputEl.select(); - }); - containerEl.append(settingEl); - - if (tabId === "plugins") { - const editorName = this.getSettingsTab("editor")?.name || "Editor"; - const workspaceName = this.getSettingsTab("file")?.name || "Files & Links"; - this.createExtraButtons( - new obsidian.Setting(settingEl.parentElement) - .setName("App").setDesc("Miscellaneous application commands (always enabled)"), - {id: "app", name: "App"}, true - ); - this.createExtraButtons( - new obsidian.Setting(settingEl.parentElement) - .setName(editorName).setDesc("Core editing commands (always enabled)"), - {id: "editor", name: editorName}, true - ); - this.createExtraButtons( - new obsidian.Setting(settingEl.parentElement) - .setName(workspaceName).setDesc("Core file and pane management commands (always enabled)"), - {id: "workspace", name: workspaceName}, true - ); - settingEl.parentElement.append(settingEl); - } - } - - enhanceViewer() { - const plugin = this; - setImmediate(around(obsidian.Modal.prototype, { - open(old) { - return function(...args) { - if (isPluginViewer(this)) { - setImmediate(() => { - if (plugin.lastSearch["community-plugins"]) { - // Detach the old search area, in case the empty search is still running - const newResults = this.searchResultEl.cloneNode(); - this.searchContainerEl.replaceChild(newResults, this.searchResultEl); - this.searchResultEl = newResults; - // Force an update; use an event so that the "x" appears on search - this.searchEl.value = plugin.lastSearch["community-plugins"]; - this.searchEl.dispatchEvent(new Event('input')); - } - this.searchEl.select(); - }); - plugin.currentViewer = this; - around(this, { - updateSearch: serialize, // prevent race conditions - - close(old) { return function(...args) { - plugin.currentViewer = null; - return old.apply(this, args); - }}, - - showPlugin(old) { return async function(manifest){ - const res = await old.call(this, manifest); - if (plugin.app.plugins.plugins[manifest.id]) { - const buttons = this.pluginContentEl.find("button").parentElement; - const removeBtns = [i18next.t("setting.options"), i18next.t("setting.hotkeys.name")]; - for (const b of buttons.findAll("button")) { - if (removeBtns.indexOf(b.textContent) !== -1) b.detach(); - } - const keyBtn = buttons.createEl("button", {prepend: true, text: "Hotkeys"}); - const cfgBtn = buttons.createEl("button", {prepend: true, text: "Options"}); - plugin.hotkeyButtons[manifest.id] = { - setTooltip(tip) {keyBtn.title = tip;}, extraSettingsEl: keyBtn - }; - plugin.configButtons[manifest.id] = { - setTooltip() {}, extraSettingsEl: cfgBtn - }; - plugin.refreshButtons(true); - keyBtn.addEventListener("click", () => { - this.close(); plugin.showHotkeysFor(manifest.id+":"); - }); - cfgBtn.addEventListener("click", () => { - this.close(); plugin.showConfigFor(manifest.id); - }); - } - return res; - }} - }); - } - return old.apply(this, args); - } - } - })); - } - - getSettingsTab(id) { return this.app.setting.settingTabs.filter(t => t.id === id).shift(); } - - addPluginSettingEvents(tabId, old) { - const app = this.app; - let in_event = false; - - function trigger(...args) { - in_event = true; - try { app.workspace.trigger(...args); } catch(e) { console.error(e); } - in_event = false; - } - - // Wrapper to add plugin-settings events - return function display(...args) { - if (in_event) return; - trigger("plugin-settings:before-display", this, tabId); - - // Track which plugin each setting is for - let manifests; - if (tabId === "plugins") { - manifests = Object.entries(app.internalPlugins.plugins).map( - ([id, {instance: {name}, _loaded:enabled}]) => {return {id, name, enabled};} - ); - } else { - manifests = Object.values(app.plugins.manifests); - manifests.sort((e, t) => e.name.localeCompare(t.name)); - } - let which = 0; - - // Trap the addition of the "uninstall" buttons next to each plugin - const remove = around(obsidian.Setting.prototype, { - addToggle(old) { - return function(...args) { - if (tabId === "plugins" && !in_event && (manifests[which]||{}).name === this.nameEl.textContent ) { - const manifest = manifests[which++]; - trigger("plugin-settings:plugin-control", this, manifest, manifest.enabled, tabId); - } - return old.apply(this, args); - } - }, - addExtraButton(old) { - return function(cb) { - // The only "extras" added to settings w/a description are on the plugins, currently, - // so only try to match those to plugin names - if (tabId !== "plugins" && this.descEl.childElementCount && !in_event) { - if ( (manifests[which]||{}).name === this.nameEl.textContent ) { - const manifest = manifests[which++], enabled = !!app.plugins.plugins[manifest.id]; - trigger("plugin-settings:plugin-control", this, manifest, enabled, tabId); - } - } return old.call(this, function(b) { - cb(b); - // Prevent core from showing buttons that lack hotkey counts/conflicts - if (!in_event && b.extraSettingsEl.find("svg.gear, svg.any-key")) b.extraSettingsEl.detach(); - }); - } - } - }); - - try { - return old.apply(this, args); - } finally { - remove(); - trigger("plugin-settings:after-display", this); - } - } - } - - gotoPlugin(id, show="info") { - if (id && show === "hotkeys") return this.showHotkeysFor(id+":"); - if (id && show === "config") { - if (!this.showConfigFor(id)) this.app.setting.close(); - return; - } - - this.showSettings("community-plugins"); - const remove = around(obsidian.Modal.prototype, { - open(old) { - return function(...args) { - remove(); - if (id) this.autoload = id; - return old.apply(this, args); - } - } - }); - this.app.setting.activeTab.containerEl.find(".mod-cta").click(); - // XXX handle nav to not-cataloged plugin - } - - showSettings(id) { - this.currentViewer?.close(); // close the plugin browser if open - settingsAreOpen(this.app) || this.app.setting.open(); - if (id) { - this.app.setting.openTabById(id); - return this.app.setting.activeTab?.id === id ? this.app.setting.activeTab : false - } - } - - showHotkeysFor(search) { - const tab = this.showSettings("hotkeys"); - if (tab && tab.searchInputEl && tab.updateHotkeyVisibility) { - tab.searchInputEl.value = search; - tab.updateHotkeyVisibility(); - } - } - - showConfigFor(id) { - if (this.showSettings(id)) return true; - new Notice( - `No settings tab for "${id}": it may not be installed or might not have settings.` - ); - return false; - } - - pluginEnabled(id) { - return this.app.internalPlugins.plugins[id]?._loaded || this.app.plugins.plugins[id]; - } - - refreshButtons(force=false) { - // Don't refresh when not displaying, unless rendering is in progress - if (!pluginSettingsAreOpen(this.app) && !force) return; - - const hkm = this.app.hotkeyManager; - const assignedKeyCount = {}; - - // Get a list of commands by plugin - const commands = Object.values(this.app.commands.commands).reduce((cmds, cmd)=>{ - const pid = cmd.id.split(":",2).shift(); - const hotkeys = (hkm.getHotkeys(cmd.id) || hkm.getDefaultHotkeys(cmd.id) || []).map(hotkeyToString); - hotkeys.forEach(k => assignedKeyCount[k] = 1 + (assignedKeyCount[k]||0)); - (cmds[pid] || (cmds[pid]=[])).push({hotkeys, cmd}); - return cmds; - }, {}); - - // Plugin setting tabs by plugin - const tabs = Object.values(this.app.setting.pluginTabs).reduce((tabs, tab)=> { - tabs[tab.id] = tab; return tabs - }, {}); - tabs["workspace"] = tabs["editor"] = true; - - for(const id of Object.keys(this.configButtons || {})) { - const btn = this.configButtons[id]; - if (!tabs[id]) { - btn.extraSettingsEl.hide(); - continue; - } - btn.extraSettingsEl.show(); - } - - for(const id of Object.keys(this.hotkeyButtons || {})) { - const btn = this.hotkeyButtons[id]; - if (!commands[id]) { - // Plugin is disabled or has no commands - btn.extraSettingsEl.hide(); - continue; - } - const assigned = commands[id].filter(info => info.hotkeys.length); - const conflicts = assigned.filter(info => info.hotkeys.filter(k => assignedKeyCount[k]>1).length).length; - - btn.setTooltip( - `Configure hotkeys${"\n"}(${assigned.length}/${commands[id].length} assigned${ - conflicts ? "; "+conflicts+" conflicting" : "" - })` - ); - btn.extraSettingsEl.toggleClass("mod-error", !!conflicts); - btn.extraSettingsEl.show(); - } - } -} - -module.exports = HotkeyHelper; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLnlhcm4vY2FjaGUvbW9ua2V5LWFyb3VuZC1ucG0tMi4xLjAtNzBkZjMyZDJhYy0xYmQ3MmQyNWY5LnppcC9ub2RlX21vZHVsZXMvbW9ua2V5LWFyb3VuZC9tanMvaW5kZXguanMiLCJzcmMvcGx1Z2luLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhcm91bmQob2JqLCBmYWN0b3JpZXMpIHtcbiAgICBjb25zdCByZW1vdmVycyA9IE9iamVjdC5rZXlzKGZhY3RvcmllcykubWFwKGtleSA9PiBhcm91bmQxKG9iaiwga2V5LCBmYWN0b3JpZXNba2V5XSkpO1xuICAgIHJldHVybiByZW1vdmVycy5sZW5ndGggPT09IDEgPyByZW1vdmVyc1swXSA6IGZ1bmN0aW9uICgpIHsgcmVtb3ZlcnMuZm9yRWFjaChyID0+IHIoKSk7IH07XG59XG5mdW5jdGlvbiBhcm91bmQxKG9iaiwgbWV0aG9kLCBjcmVhdGVXcmFwcGVyKSB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBvYmpbbWV0aG9kXSwgaGFkT3duID0gb2JqLmhhc093blByb3BlcnR5KG1ldGhvZCk7XG4gICAgbGV0IGN1cnJlbnQgPSBjcmVhdGVXcmFwcGVyKG9yaWdpbmFsKTtcbiAgICAvLyBMZXQgb3VyIHdyYXBwZXIgaW5oZXJpdCBzdGF0aWMgcHJvcHMgZnJvbSB0aGUgd3JhcHBpbmcgbWV0aG9kLFxuICAgIC8vIGFuZCB0aGUgd3JhcHBpbmcgbWV0aG9kLCBwcm9wcyBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2RcbiAgICBpZiAob3JpZ2luYWwpXG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihjdXJyZW50LCBvcmlnaW5hbCk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHdyYXBwZXIsIGN1cnJlbnQpO1xuICAgIG9ialttZXRob2RdID0gd3JhcHBlcjtcbiAgICAvLyBSZXR1cm4gYSBjYWxsYmFjayB0byBhbGxvdyBzYWZlIHJlbW92YWxcbiAgICByZXR1cm4gcmVtb3ZlO1xuICAgIGZ1bmN0aW9uIHdyYXBwZXIoLi4uYXJncykge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGJlZW4gZGVhY3RpdmF0ZWQgYW5kIGFyZSBubyBsb25nZXIgd3JhcHBlZCwgcmVtb3ZlIG91cnNlbHZlc1xuICAgICAgICBpZiAoY3VycmVudCA9PT0gb3JpZ2luYWwgJiYgb2JqW21ldGhvZF0gPT09IHdyYXBwZXIpXG4gICAgICAgICAgICByZW1vdmUoKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgICAgLy8gSWYgbm8gb3RoZXIgcGF0Y2hlcywganVzdCBkbyBhIGRpcmVjdCByZW1vdmFsXG4gICAgICAgIGlmIChvYmpbbWV0aG9kXSA9PT0gd3JhcHBlcikge1xuICAgICAgICAgICAgaWYgKGhhZE93bilcbiAgICAgICAgICAgICAgICBvYmpbbWV0aG9kXSA9IG9yaWdpbmFsO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbbWV0aG9kXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudCA9PT0gb3JpZ2luYWwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIEVsc2UgcGFzcyBmdXR1cmUgY2FsbHMgdGhyb3VnaCwgYW5kIHJlbW92ZSB3cmFwcGVyIGZyb20gdGhlIHByb3RvdHlwZSBjaGFpblxuICAgICAgICBjdXJyZW50ID0gb3JpZ2luYWw7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih3cmFwcGVyLCBvcmlnaW5hbCB8fCBGdW5jdGlvbik7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFmdGVyKHByb21pc2UsIGNiKSB7XG4gICAgcmV0dXJuIHByb21pc2UudGhlbihjYiwgY2IpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShhc3luY0Z1bmN0aW9uKSB7XG4gICAgbGV0IGxhc3RSdW4gPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBmdW5jdGlvbiB3cmFwcGVyKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGxhc3RSdW4gPSBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAgICAgICAgIGFmdGVyKGxhc3RSdW4sICgpID0+IHtcbiAgICAgICAgICAgICAgICBhc3luY0Z1bmN0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpLnRoZW4ocmVzLCByZWopO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB3cmFwcGVyLmFmdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbGFzdFJ1biA9IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4geyBhZnRlcihsYXN0UnVuLCByZXMpOyB9KTtcbiAgICB9O1xuICAgIHJldHVybiB3cmFwcGVyO1xufVxuIiwiaW1wb3J0IHtQbHVnaW4sIFBsYXRmb3JtLCBLZXltYXAsIFNldHRpbmcsIE1vZGFsLCBkZWJvdW5jZX0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQge2Fyb3VuZCwgc2VyaWFsaXplfSBmcm9tIFwibW9ua2V5LWFyb3VuZFwiO1xuXG5mdW5jdGlvbiBob3RrZXlUb1N0cmluZyhob3RrZXkpIHtcbiAgICByZXR1cm4gS2V5bWFwLmNvbXBpbGVNb2RpZmllcnMoaG90a2V5Lm1vZGlmaWVycykrXCIsXCIgKyBob3RrZXkua2V5LnRvTG93ZXJDYXNlKClcbn1cblxuZnVuY3Rpb24gaXNQbHVnaW5UYWIoaWQpIHtcbiAgICByZXR1cm4gaWQgPT09IFwicGx1Z2luc1wiIHx8IGlkID09PSBcImNvbW11bml0eS1wbHVnaW5zXCI7XG59XG5cbmZ1bmN0aW9uIHBsdWdpblNldHRpbmdzQXJlT3BlbihhcHApIHtcbiAgICByZXR1cm4gc2V0dGluZ3NBcmVPcGVuKGFwcCkgJiYgaXNQbHVnaW5UYWIoYXBwLnNldHRpbmcuYWN0aXZlVGFiPy5pZClcbn1cblxuZnVuY3Rpb24gc2V0dGluZ3NBcmVPcGVuKGFwcCkge1xuICAgIHJldHVybiBhcHAuc2V0dGluZy5jb250YWluZXJFbC5wYXJlbnRFbGVtZW50ICE9PSBudWxsXG59XG5cbmZ1bmN0aW9uIGlzUGx1Z2luVmlld2VyKG9iKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgb2IgaW5zdGFuY2VvZiBNb2RhbCAmJlxuICAgICAgICBvYi5oYXNPd25Qcm9wZXJ0eShcImF1dG9sb2FkXCIpICYmXG4gICAgICAgIHR5cGVvZiBvYi5zaG93UGx1Z2luID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgdHlwZW9mIG9iLnVwZGF0ZVNlYXJjaCA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgIHR5cGVvZiBvYi5zZWFyY2hFbCA9PSBcIm9iamVjdFwiXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gb25FbGVtZW50KGVsLCBldmVudCwgc2VsZWN0b3IsIGNhbGxiYWNrLCBvcHRpb25zPWZhbHNlKSB7XG4gICAgZWwub24oZXZlbnQsIHNlbGVjdG9yLCBjYWxsYmFjaywgb3B0aW9ucylcbiAgICByZXR1cm4gKCkgPT4gZWwub2ZmKGV2ZW50LCBzZWxlY3RvciwgY2FsbGJhY2ssIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb3RrZXlIZWxwZXIgZXh0ZW5kcyBQbHVnaW4ge1xuXG4gICAgb25sb2FkKCkge1xuICAgICAgICBjb25zdCB3b3Jrc3BhY2UgPSB0aGlzLmFwcC53b3Jrc3BhY2UsIHBsdWdpbiA9IHRoaXM7XG4gICAgICAgIHRoaXMubGFzdFNlYXJjaCA9IHt9OyAgIC8vIGxhc3Qgc2VhcmNoIHVzZWQsIGluZGV4ZWQgYnkgdGFiXG5cbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50KCB3b3Jrc3BhY2Uub24oXCJwbHVnaW4tc2V0dGluZ3M6YmVmb3JlLWRpc3BsYXlcIiwgKHNldHRpbmdzVGFiLCB0YWJJZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ob3RrZXlCdXR0b25zID0ge307XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0J1dHRvbnMgPSB7fTtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsc0FkZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0ID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZSA9IGFyb3VuZChTZXR0aW5nLnByb3RvdHlwZSwge1xuICAgICAgICAgICAgICAgIGFkZFNlYXJjaChvbGQpIHsgcmV0dXJuIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvbGQuY2FsbCh0aGlzLCBpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbi5zZWFyY2hJbnB1dCA9IGk7IGY/LihpKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUocmVtb3ZlKTtcbiAgICAgICAgfSkgKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50KCB3b3Jrc3BhY2Uub24oXCJwbHVnaW4tc2V0dGluZ3M6YWZ0ZXItZGlzcGxheVwiLCAgKCkgPT4gdGhpcy5yZWZyZXNoQnV0dG9ucyh0cnVlKSkgKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoIHdvcmtzcGFjZS5vbihcInBsdWdpbi1zZXR0aW5nczpwbHVnaW4tY29udHJvbFwiLCAoc2V0dGluZywgbWFuaWZlc3QsIGVuYWJsZWQsIHRhYklkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbHNBZGRlZCB8fCB0aGlzLmFkZEdsb2JhbHModGFiSWQsIHNldHRpbmcuc2V0dGluZ0VsKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRXh0cmFCdXR0b25zKHNldHRpbmcsIG1hbmlmZXN0LCBlbmFibGVkKTtcbiAgICAgICAgfSkgKTtcblxuICAgICAgICAvLyBSZWZyZXNoIHRoZSBidXR0b25zIHdoZW4gY29tbWFuZHMgb3Igc2V0dGluZyB0YWJzIGFyZSBhZGRlZCBvciByZW1vdmVkXG4gICAgICAgIGNvbnN0IHJlcXVlc3RSZWZyZXNoID0gZGVib3VuY2UodGhpcy5yZWZyZXNoQnV0dG9ucy5iaW5kKHRoaXMpLCA1MCwgdHJ1ZSk7XG4gICAgICAgIGZ1bmN0aW9uIHJlZnJlc2hlcihvbGQpIHsgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpeyByZXF1ZXN0UmVmcmVzaCgpOyByZXR1cm4gb2xkLmFwcGx5KHRoaXMsIGFyZ3MpOyB9OyB9XG4gICAgICAgIHRoaXMucmVnaXN0ZXIoYXJvdW5kKGFwcC5jb21tYW5kcywge2FkZENvbW1hbmQ6ICAgIHJlZnJlc2hlciwgcmVtb3ZlQ29tbWFuZDogICAgcmVmcmVzaGVyfSkpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyKGFyb3VuZChhcHAuc2V0dGluZywgIHthZGRQbHVnaW5UYWI6ICByZWZyZXNoZXIsIHJlbW92ZVBsdWdpblRhYjogIHJlZnJlc2hlcn0pKTtcbiAgICAgICAgdGhpcy5yZWdpc3Rlcihhcm91bmQoYXBwLnNldHRpbmcsICB7YWRkU2V0dGluZ1RhYjogcmVmcmVzaGVyLCByZW1vdmVTZXR0aW5nVGFiOiByZWZyZXNoZXJ9KSk7XG5cbiAgICAgICAgd29ya3NwYWNlLm9uTGF5b3V0UmVhZHkodGhpcy53aGVuUmVhZHkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlcihcImdvdG8tcGx1Z2luXCIsICh7aWQsIHNob3d9KSA9PiB7XG4gICAgICAgICAgICB3b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSgoKSA9PiB7IHRoaXMuZ290b1BsdWdpbihpZCwgc2hvdyk7IH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB3aGVuUmVhZHkoKSB7XG4gICAgICAgIGNvbnN0IGFwcCA9IHRoaXMuYXBwLCBwbHVnaW4gPSB0aGlzO1xuXG4gICAgICAgIC8vIFNhdmUgYW5kIHJlc3RvcmUgY3VycmVudCB0YWIgKHdvcmthcm91bmQgaHR0cHM6Ly9mb3J1bS5vYnNpZGlhbi5tZC90L3NldHRpbmdzLWRpYWxvZy1yZXNldHMtdG8tZmlyc3QtdGFiLWV2ZXJ5LXRpbWUvMTgyNDApXG4gICAgICAgIHRoaXMucmVnaXN0ZXIoYXJvdW5kKGFwcC5zZXR0aW5nLCB7XG4gICAgICAgICAgICBvbk9wZW4ob2xkKSB7IHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgb2xkLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmICghUGxhdGZvcm0uaXNNb2JpbGUgJiYgcGx1Z2luLmxhc3RUYWJJZCkgdGhpcy5vcGVuVGFiQnlJZChwbHVnaW4ubGFzdFRhYklkKTtcbiAgICAgICAgICAgIH19LFxuICAgICAgICAgICAgb25DbG9zZShvbGQpIHsgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ubGFzdFRhYklkID0gdGhpcy5hY3RpdmVUYWI/LmlkO1xuICAgICAgICAgICAgICAgIHJldHVybiBvbGQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICB9KSlcblxuICAgICAgICBjb25zdCBjb3JlUGx1Z2lucyA9IHRoaXMuZ2V0U2V0dGluZ3NUYWIoXCJwbHVnaW5zXCIpO1xuICAgICAgICBjb25zdCBjb21tdW5pdHkgICA9IHRoaXMuZ2V0U2V0dGluZ3NUYWIoXCJjb21tdW5pdHktcGx1Z2luc1wiKTtcblxuICAgICAgICAvLyBIb29rIGludG8gdGhlIGRpc3BsYXkoKSBtZXRob2Qgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWJzXG4gICAgICAgIGlmIChjb3JlUGx1Z2lucykgdGhpcy5yZWdpc3Rlcihhcm91bmQoY29yZVBsdWdpbnMsIHtkaXNwbGF5OiB0aGlzLmFkZFBsdWdpblNldHRpbmdFdmVudHMuYmluZCh0aGlzLCBjb3JlUGx1Z2lucy5pZCl9KSk7XG4gICAgICAgIGlmIChjb21tdW5pdHkpICAgdGhpcy5yZWdpc3Rlcihhcm91bmQoY29tbXVuaXR5LCAgIHtkaXNwbGF5OiB0aGlzLmFkZFBsdWdpblNldHRpbmdFdmVudHMuYmluZCh0aGlzLCBjb21tdW5pdHkuaWQpfSkpO1xuXG4gICAgICAgIGNvbnN0IGVuaGFuY2VWaWV3ZXIgPSAoKSA9PiB0aGlzLmVuaGFuY2VWaWV3ZXIoKTtcblxuICAgICAgICBpZiAoY29tbXVuaXR5KSAgIHRoaXMucmVnaXN0ZXIoXG4gICAgICAgICAgICAvLyBUcmFwIG9wZW5zIG9mIHRoZSBjb21tdW5pdHkgcGx1Z2lucyB2aWV3ZXIgZnJvbSB0aGUgc2V0dGluZ3MgcGFuZWxcbiAgICAgICAgICAgIG9uRWxlbWVudChcbiAgICAgICAgICAgICAgICBjb21tdW5pdHkuY29udGFpbmVyRWwsIFwiY2xpY2tcIixcbiAgICAgICAgICAgICAgICBcIi5tb2QtY3RhLCAuaW5zdGFsbGVkLXBsdWdpbnMtY29udGFpbmVyIC5zZXR0aW5nLWl0ZW0taW5mb1wiLFxuICAgICAgICAgICAgICAgIGVuaGFuY2VWaWV3ZXIsXG4gICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRyYXAgb3BlbnMgb2YgdGhlIGNvbW11bml0eSBwbHVnaW5zIHZpZXdlciB2aWEgVVJMXG4gICAgICAgIHRoaXMucmVnaXN0ZXIoXG4gICAgICAgICAgICBhcm91bmQoYXBwLndvcmtzcGFjZS5wcm90b2NvbEhhbmRsZXJzLCB7XG4gICAgICAgICAgICAgICAgZ2V0KG9sZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gZ2V0KGtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJzaG93LXBsdWdpblwiKSBlbmhhbmNlVmlld2VyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2xkLmNhbGwodGhpcywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcblxuICAgICAgICAvLyBOb3cgZm9yY2UgYSByZWZyZXNoIGlmIGVpdGhlciBwbHVnaW5zIHRhYiBpcyBjdXJyZW50bHkgdmlzaWJsZSAodG8gc2hvdyBvdXIgbmV3IGJ1dHRvbnMpXG4gICAgICAgIGZ1bmN0aW9uIHJlZnJlc2hUYWJJZk9wZW4oKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luU2V0dGluZ3NBcmVPcGVuKGFwcCkpIGFwcC5zZXR0aW5nLm9wZW5UYWJCeUlkKGFwcC5zZXR0aW5nLmFjdGl2ZVRhYi5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVmcmVzaFRhYklmT3BlbigpO1xuXG4gICAgICAgIC8vIEFuZCBkbyBpdCBhZ2FpbiBhZnRlciB3ZSB1bmxvYWQgKHRvIHJlbW92ZSB0aGUgb2xkIGJ1dHRvbnMpXG4gICAgICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4gc2V0SW1tZWRpYXRlKHJlZnJlc2hUYWJJZk9wZW4pKTtcblxuICAgICAgICAvLyBUd2VhayB0aGUgaG90a2V5IHNldHRpbmdzIHRhYiB0byBtYWtlIGZpbHRlcmluZyB3b3JrIG9uIGlkIHByZWZpeGVzIGFzIHdlbGwgYXMgY29tbWFuZCBuYW1lc1xuICAgICAgICBjb25zdCBob3RrZXlzVGFiID0gdGhpcy5nZXRTZXR0aW5nc1RhYihcImhvdGtleXNcIik7XG4gICAgICAgIGlmIChob3RrZXlzVGFiKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyKGFyb3VuZChob3RrZXlzVGFiLCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheShvbGQpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyBvbGQuY2FsbCh0aGlzKTsgdGhpcy5zZWFyY2hJbnB1dEVsLmZvY3VzKCk7IH07IH0sXG4gICAgICAgICAgICAgICAgdXBkYXRlSG90a2V5VmlzaWJpbGl0eShvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkU2VhcmNoID0gdGhpcy5zZWFyY2hJbnB1dEVsLnZhbHVlLCBvbGRDb21tYW5kcyA9IGFwcC5jb21tYW5kcy5jb21tYW5kcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFNlYXJjaC5lbmRzV2l0aChcIjpcIikgJiYgIW9sZFNlYXJjaC5jb250YWlucyhcIiBcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhbiBpbmNyZWRpYmx5IHVnbHkgaGFjayB0aGF0IHJlbGllcyBvbiB1cGRhdGVIb3RrZXlWaXNpYmlsaXR5KCkgaXRlcmF0aW5nIGFwcC5jb21tYW5kcy5jb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29raW5nIGZvciBob3RrZXkgY29uZmxpY3RzICpiZWZvcmUqIGFueXRoaW5nIGVsc2UuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50ID0gb2xkQ29tbWFuZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZCA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhcHAuY29tbWFuZHMuY29tbWFuZHMpLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbaWQsIGNtZF0pID0+IChpZCtcIjpcIikuc3RhcnRzV2l0aChvbGRTZWFyY2gpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWwudmFsdWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHAuY29tbWFuZHMuY29tbWFuZHMgPSBuZXcgUHJveHkob2xkQ29tbWFuZHMsIHtvd25LZXlzKCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZmlyc3QgdGltZSBjb21tYW5kcyBhcmUgaXRlcmF0ZWQsIHJldHVybiB0aGUgd2hvbGUgdGhpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGF0LCByZXR1cm4gdGhlIGZpbHRlcmVkIGxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7IHJldHVybiBPYmplY3Qua2V5cyhjdXJyZW50KTsgfSBmaW5hbGx5IHsgY3VycmVudCA9IGZpbHRlcmVkOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWwudmFsdWUgPSBvbGRTZWFyY2g7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLmNvbW1hbmRzLmNvbW1hbmRzID0gb2xkQ29tbWFuZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY29tbWFuZHNcbiAgICAgICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgICAgICAgIGlkOiBcIm9wZW4tcGx1Z2luc1wiLFxuICAgICAgICAgICAgbmFtZTogXCJPcGVuIHRoZSBDb21tdW5pdHkgUGx1Z2lucyBzZXR0aW5nc1wiLFxuICAgICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuc2hvd1NldHRpbmdzKFwiY29tbXVuaXR5LXBsdWdpbnNcIikgfHwgdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgICAgICAgIGlkOiBcImJyb3dzZS1wbHVnaW5zXCIsXG4gICAgICAgICAgICBuYW1lOiBcIkJyb3dzZSBvciBzZWFyY2ggdGhlIENvbW11bml0eSBQbHVnaW5zIGNhdGFsb2dcIixcbiAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLmdvdG9QbHVnaW4oKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGNyZWF0ZUV4dHJhQnV0dG9ucyhzZXR0aW5nLCBtYW5pZmVzdCwgZW5hYmxlZCkge1xuICAgICAgICBzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKGJ0biA9PiB7XG4gICAgICAgICAgICBidG4uc2V0SWNvbihcImdlYXJcIik7XG4gICAgICAgICAgICBidG4ub25DbGljaygoKSA9PiB0aGlzLnNob3dDb25maWdGb3IobWFuaWZlc3QuaWQucmVwbGFjZSgvXndvcmtzcGFjZSQvLFwiZmlsZVwiKSkpO1xuICAgICAgICAgICAgYnRuLnNldFRvb2x0aXAoXCJPcHRpb25zXCIpO1xuICAgICAgICAgICAgYnRuLmV4dHJhU2V0dGluZ3NFbC50b2dnbGUoZW5hYmxlZClcbiAgICAgICAgICAgIHRoaXMuY29uZmlnQnV0dG9uc1ttYW5pZmVzdC5pZF0gPSBidG47XG4gICAgICAgIH0pO1xuICAgICAgICBzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKGJ0biA9PiB7XG4gICAgICAgICAgICBidG4uc2V0SWNvbihcImFueS1rZXlcIik7XG4gICAgICAgICAgICBidG4ub25DbGljaygoKSA9PiB0aGlzLnNob3dIb3RrZXlzRm9yKG1hbmlmZXN0LmlkK1wiOlwiKSlcbiAgICAgICAgICAgIGJ0bi5leHRyYVNldHRpbmdzRWwudG9nZ2xlKGVuYWJsZWQpXG4gICAgICAgICAgICB0aGlzLmhvdGtleUJ1dHRvbnNbbWFuaWZlc3QuaWRdID0gYnRuO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdG9wLWxldmVsIGl0ZW1zIChzZWFyY2ggYW5kIHBzZXVkby1wbHVnaW5zKVxuICAgIGFkZEdsb2JhbHModGFiSWQsIHNldHRpbmdFbCkge1xuICAgICAgICB0aGlzLmdsb2JhbHNBZGRlZCA9IHRydWU7XG5cbiAgICAgICAgLy8gQWRkIGEgc2VhcmNoIGZpbHRlciB0byBzaHJpbmsgcGx1Z2luIGxpc3RcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWwgPSBzZXR0aW5nRWwucGFyZW50RWxlbWVudDtcbiAgICAgICAgbGV0IHNlYXJjaEVsO1xuICAgICAgICBpZiAodGFiSWQgIT09IFwicGx1Z2luc1wiIHx8IHRoaXMuc2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGJ1aWx0LWluIHNlYXJjaCBoYW5kbGVyXG4gICAgICAgICAgICAoc2VhcmNoRWwgPSB0aGlzLnNlYXJjaElucHV0KT8ub25DaGFuZ2UoY2hhbmdlSGFuZGxlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgU2V0dGluZyhjb250YWluZXJFbCkuYWRkU2VhcmNoKHMgPT4ge1xuICAgICAgICAgICAgICAgIHNlYXJjaEVsID0gcztcbiAgICAgICAgICAgICAgICBzLnNldFBsYWNlaG9sZGVyKFwiRmlsdGVyIHBsdWdpbnMuLi5cIikub25DaGFuZ2UoY2hhbmdlSGFuZGxlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNlYXJjaEVsLmNvbnRhaW5lckVsLnN0eWxlLm1hcmdpbiA9IDA7XG4gICAgICAgICAgICBjb250YWluZXJFbC5jcmVhdGVEaXYoXCJob3RrZXktc2VhcmNoLWNvbnRhaW5lclwiKS5hcHBlbmQoc2VhcmNoRWwuY29udGFpbmVyRWwpO1xuICAgICAgICAgICAgdG1wLnNldHRpbmdFbC5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFiSWQgPT09IFwiY29tbXVuaXR5LXBsdWdpbnNcIikge1xuICAgICAgICAgICAgc2VhcmNoRWwuaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMTMgJiYgIUtleW1hcC5nZXRNb2RpZmllcnMoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nb3RvUGx1Z2luKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IHRoaXM7XG4gICAgICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIoc2Vlayl7XG4gICAgICAgICAgICBjb25zdCBmaW5kID0gKHBsdWdpbi5sYXN0U2VhcmNoW3RhYklkXSA9IHNlZWspLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBmdW5jdGlvbiBtYXRjaEFuZEhpZ2hsaWdodChlbCkge1xuICAgICAgICAgICAgICAgIGlmICghZWwpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gZWwudGV4dENvbnRlbnQgPSBlbC50ZXh0Q29udGVudDsgLy8gY2xlYXIgcHJldmlvdXMgaGlnaGxpZ2h0aW5nLCBpZiBhbnlcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbmQpO1xuICAgICAgICAgICAgICAgIGlmICghfmluZGV4KSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSB0ZXh0LnN1YnN0cigwLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgZWwuY3JlYXRlU3BhbihcInN1Z2dlc3Rpb24taGlnaGxpZ2h0XCIpLnRleHRDb250ZW50ID0gdGV4dC5zdWJzdHIoaW5kZXgsIGZpbmQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBlbC5pbnNlcnRBZGphY2VudFRleHQoXCJiZWZvcmVlbmRcIiwgdGV4dC5zdWJzdHIoaW5kZXgrZmluZC5sZW5ndGgpKVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyRWwuZmluZEFsbChcIi5zZXR0aW5nLWl0ZW1cIikuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lTWF0Y2hlcyA9IG1hdGNoQW5kSGlnaGxpZ2h0KGUuZmluZChcIi5zZXR0aW5nLWl0ZW0tbmFtZVwiKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVzY01hdGNoZXMgPSBtYXRjaEFuZEhpZ2hsaWdodChcbiAgICAgICAgICAgICAgICAgICAgZS5maW5kKFwiLnNldHRpbmctaXRlbS1kZXNjcmlwdGlvbiA+IGRpdjpsYXN0LWNoaWxkXCIpID8/XG4gICAgICAgICAgICAgICAgICAgIGUuZmluZChcIi5zZXR0aW5nLWl0ZW0tZGVzY3JpcHRpb25cIilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvck1hdGNoZXMgPSBtYXRjaEFuZEhpZ2hsaWdodChcbiAgICAgICAgICAgICAgICAgICAgZS5maW5kKFwiLnNldHRpbmctaXRlbS1kZXNjcmlwdGlvbiA+IGRpdjpudGgtY2hpbGQoMilcIilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGUudG9nZ2xlKG5hbWVNYXRjaGVzIHx8IGRlc2NNYXRjaGVzIHx8IGF1dGhvck1hdGNoZXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghc2VhcmNoRWwpIHJldHVyblxuICAgICAgICAgICAgaWYgKHNlYXJjaEVsICYmIHR5cGVvZiBwbHVnaW4ubGFzdFNlYXJjaFt0YWJJZF0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBzZWFyY2hFbC5zZXRWYWx1ZShwbHVnaW4ubGFzdFNlYXJjaFt0YWJJZF0pO1xuICAgICAgICAgICAgICAgIHNlYXJjaEVsLm9uQ2hhbmdlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFQbGF0Zm9ybS5pc01vYmlsZSkgc2VhcmNoRWwuaW5wdXRFbC5zZWxlY3QoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRhaW5lckVsLmFwcGVuZChzZXR0aW5nRWwpO1xuXG4gICAgICAgIGlmICh0YWJJZCA9PT0gXCJwbHVnaW5zXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRvck5hbWUgICAgPSB0aGlzLmdldFNldHRpbmdzVGFiKFwiZWRpdG9yXCIpPy5uYW1lIHx8IFwiRWRpdG9yXCI7XG4gICAgICAgICAgICBjb25zdCB3b3Jrc3BhY2VOYW1lID0gdGhpcy5nZXRTZXR0aW5nc1RhYihcImZpbGVcIik/Lm5hbWUgICB8fCBcIkZpbGVzICYgTGlua3NcIjtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRXh0cmFCdXR0b25zKFxuICAgICAgICAgICAgICAgIG5ldyBTZXR0aW5nKHNldHRpbmdFbC5wYXJlbnRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAuc2V0TmFtZShcIkFwcFwiKS5zZXREZXNjKFwiTWlzY2VsbGFuZW91cyBhcHBsaWNhdGlvbiBjb21tYW5kcyAoYWx3YXlzIGVuYWJsZWQpXCIpLFxuICAgICAgICAgICAgICAgIHtpZDogXCJhcHBcIiwgbmFtZTogXCJBcHBcIn0sIHRydWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUV4dHJhQnV0dG9ucyhcbiAgICAgICAgICAgICAgICBuZXcgU2V0dGluZyhzZXR0aW5nRWwucGFyZW50RWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgLnNldE5hbWUoZWRpdG9yTmFtZSkuc2V0RGVzYyhcIkNvcmUgZWRpdGluZyBjb21tYW5kcyAoYWx3YXlzIGVuYWJsZWQpXCIpLFxuICAgICAgICAgICAgICAgIHtpZDogXCJlZGl0b3JcIiwgbmFtZTogZWRpdG9yTmFtZX0sIHRydWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUV4dHJhQnV0dG9ucyhcbiAgICAgICAgICAgICAgICBuZXcgU2V0dGluZyhzZXR0aW5nRWwucGFyZW50RWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgLnNldE5hbWUod29ya3NwYWNlTmFtZSkuc2V0RGVzYyhcIkNvcmUgZmlsZSBhbmQgcGFuZSBtYW5hZ2VtZW50IGNvbW1hbmRzIChhbHdheXMgZW5hYmxlZClcIiksXG4gICAgICAgICAgICAgICAge2lkOiBcIndvcmtzcGFjZVwiLCBuYW1lOiB3b3Jrc3BhY2VOYW1lfSwgdHJ1ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHNldHRpbmdFbC5wYXJlbnRFbGVtZW50LmFwcGVuZChzZXR0aW5nRWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW5oYW5jZVZpZXdlcigpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgc2V0SW1tZWRpYXRlKGFyb3VuZChNb2RhbC5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIG9wZW4ob2xkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGx1Z2luVmlld2VyKHRoaXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbHVnaW4ubGFzdFNlYXJjaFtcImNvbW11bml0eS1wbHVnaW5zXCJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERldGFjaCB0aGUgb2xkIHNlYXJjaCBhcmVhLCBpbiBjYXNlIHRoZSBlbXB0eSBzZWFyY2ggaXMgc3RpbGwgcnVubmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSZXN1bHRzID0gdGhpcy5zZWFyY2hSZXN1bHRFbC5jbG9uZU5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDb250YWluZXJFbC5yZXBsYWNlQ2hpbGQobmV3UmVzdWx0cywgdGhpcy5zZWFyY2hSZXN1bHRFbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0RWwgPSBuZXdSZXN1bHRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3JjZSBhbiB1cGRhdGU7IHVzZSBhbiBldmVudCBzbyB0aGF0IHRoZSBcInhcIiBhcHBlYXJzIG9uIHNlYXJjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaEVsLnZhbHVlID0gcGx1Z2luLmxhc3RTZWFyY2hbXCJjb21tdW5pdHktcGx1Z2luc1wiXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hFbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoRWwuc2VsZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbi5jdXJyZW50Vmlld2VyID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyb3VuZCh0aGlzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VhcmNoOiBzZXJpYWxpemUsICAvLyBwcmV2ZW50IHJhY2UgY29uZGl0aW9uc1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2Uob2xkKSB7IHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbi5jdXJyZW50Vmlld2VyID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQbHVnaW4ob2xkKSB7IHJldHVybiBhc3luYyBmdW5jdGlvbihtYW5pZmVzdCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IG9sZC5jYWxsKHRoaXMsIG1hbmlmZXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsdWdpbi5hcHAucGx1Z2lucy5wbHVnaW5zW21hbmlmZXN0LmlkXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnV0dG9ucyA9IHRoaXMucGx1Z2luQ29udGVudEVsLmZpbmQoXCJidXR0b25cIikucGFyZW50RWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUJ0bnMgPSBbaTE4bmV4dC50KFwic2V0dGluZy5vcHRpb25zXCIpLCBpMThuZXh0LnQoXCJzZXR0aW5nLmhvdGtleXMubmFtZVwiKV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGIgb2YgYnV0dG9ucy5maW5kQWxsKFwiYnV0dG9uXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZUJ0bnMuaW5kZXhPZihiLnRleHRDb250ZW50KSAhPT0gLTEpIGIuZGV0YWNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlCdG4gPSBidXR0b25zLmNyZWF0ZUVsKFwiYnV0dG9uXCIsIHtwcmVwZW5kOiB0cnVlLCB0ZXh0OiBcIkhvdGtleXNcIn0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2ZnQnRuID0gYnV0dG9ucy5jcmVhdGVFbChcImJ1dHRvblwiLCB7cHJlcGVuZDogdHJ1ZSwgdGV4dDogXCJPcHRpb25zXCJ9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbi5ob3RrZXlCdXR0b25zW21hbmlmZXN0LmlkXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sdGlwKHRpcCkge2tleUJ0bi50aXRsZSA9IHRpcH0sIGV4dHJhU2V0dGluZ3NFbDoga2V5QnRuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW4uY29uZmlnQnV0dG9uc1ttYW5pZmVzdC5pZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbHRpcCgpIHt9LCBleHRyYVNldHRpbmdzRWw6IGNmZ0J0blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luLnJlZnJlc2hCdXR0b25zKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTsgcGx1Z2luLnNob3dIb3RrZXlzRm9yKG1hbmlmZXN0LmlkK1wiOlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ZnQnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTsgcGx1Z2luLnNob3dDb25maWdGb3IobWFuaWZlc3QuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2xkLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGdldFNldHRpbmdzVGFiKGlkKSB7IHJldHVybiB0aGlzLmFwcC5zZXR0aW5nLnNldHRpbmdUYWJzLmZpbHRlcih0ID0+IHQuaWQgPT09IGlkKS5zaGlmdCgpOyB9XG5cbiAgICBhZGRQbHVnaW5TZXR0aW5nRXZlbnRzKHRhYklkLCBvbGQpIHtcbiAgICAgICAgY29uc3QgYXBwID0gdGhpcy5hcHA7XG4gICAgICAgIGxldCBpbl9ldmVudCA9IGZhbHNlO1xuXG4gICAgICAgIGZ1bmN0aW9uIHRyaWdnZXIoLi4uYXJncykge1xuICAgICAgICAgICAgaW5fZXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgdHJ5IHsgYXBwLndvcmtzcGFjZS50cmlnZ2VyKC4uLmFyZ3MpOyB9IGNhdGNoKGUpIHsgY29uc29sZS5lcnJvcihlKTsgfVxuICAgICAgICAgICAgaW5fZXZlbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdyYXBwZXIgdG8gYWRkIHBsdWdpbi1zZXR0aW5ncyBldmVudHNcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGRpc3BsYXkoLi4uYXJncykge1xuICAgICAgICAgICAgaWYgKGluX2V2ZW50KSByZXR1cm47XG4gICAgICAgICAgICB0cmlnZ2VyKFwicGx1Z2luLXNldHRpbmdzOmJlZm9yZS1kaXNwbGF5XCIsIHRoaXMsIHRhYklkKTtcblxuICAgICAgICAgICAgLy8gVHJhY2sgd2hpY2ggcGx1Z2luIGVhY2ggc2V0dGluZyBpcyBmb3JcbiAgICAgICAgICAgIGxldCBtYW5pZmVzdHM7XG4gICAgICAgICAgICBpZiAodGFiSWQgPT09IFwicGx1Z2luc1wiKSB7XG4gICAgICAgICAgICAgICAgbWFuaWZlc3RzID0gT2JqZWN0LmVudHJpZXMoYXBwLmludGVybmFsUGx1Z2lucy5wbHVnaW5zKS5tYXAoXG4gICAgICAgICAgICAgICAgICAgIChbaWQsIHtpbnN0YW5jZToge25hbWV9LCBfbG9hZGVkOmVuYWJsZWR9XSkgPT4ge3JldHVybiB7aWQsIG5hbWUsIGVuYWJsZWR9O31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYW5pZmVzdHMgPSBPYmplY3QudmFsdWVzKGFwcC5wbHVnaW5zLm1hbmlmZXN0cyk7XG4gICAgICAgICAgICAgICAgbWFuaWZlc3RzLnNvcnQoKGUsIHQpID0+IGUubmFtZS5sb2NhbGVDb21wYXJlKHQubmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHdoaWNoID0gMDtcblxuICAgICAgICAgICAgLy8gVHJhcCB0aGUgYWRkaXRpb24gb2YgdGhlIFwidW5pbnN0YWxsXCIgYnV0dG9ucyBuZXh0IHRvIGVhY2ggcGx1Z2luXG4gICAgICAgICAgICBjb25zdCByZW1vdmUgPSBhcm91bmQoU2V0dGluZy5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgICAgICBhZGRUb2dnbGUob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFiSWQgPT09IFwicGx1Z2luc1wiICYmICFpbl9ldmVudCAmJiAobWFuaWZlc3RzW3doaWNoXXx8e30pLm5hbWUgPT09IHRoaXMubmFtZUVsLnRleHRDb250ZW50ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hbmlmZXN0ID0gbWFuaWZlc3RzW3doaWNoKytdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIoXCJwbHVnaW4tc2V0dGluZ3M6cGx1Z2luLWNvbnRyb2xcIiwgdGhpcywgbWFuaWZlc3QsIG1hbmlmZXN0LmVuYWJsZWQsIHRhYklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbGQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFkZEV4dHJhQnV0dG9uKG9sZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oY2IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBvbmx5IFwiZXh0cmFzXCIgYWRkZWQgdG8gc2V0dGluZ3Mgdy9hIGRlc2NyaXB0aW9uIGFyZSBvbiB0aGUgcGx1Z2lucywgY3VycmVudGx5LFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gb25seSB0cnkgdG8gbWF0Y2ggdGhvc2UgdG8gcGx1Z2luIG5hbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFiSWQgIT09IFwicGx1Z2luc1wiICYmIHRoaXMuZGVzY0VsLmNoaWxkRWxlbWVudENvdW50ICYmICFpbl9ldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggKG1hbmlmZXN0c1t3aGljaF18fHt9KS5uYW1lID09PSB0aGlzLm5hbWVFbC50ZXh0Q29udGVudCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSBtYW5pZmVzdHNbd2hpY2grK10sIGVuYWJsZWQgPSAhIWFwcC5wbHVnaW5zLnBsdWdpbnNbbWFuaWZlc3QuaWRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKFwicGx1Z2luLXNldHRpbmdzOnBsdWdpbi1jb250cm9sXCIsIHRoaXMsIG1hbmlmZXN0LCBlbmFibGVkLCB0YWJJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbGQuY2FsbCh0aGlzLCBmdW5jdGlvbihiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IoYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBjb3JlIGZyb20gc2hvd2luZyBidXR0b25zIHRoYXQgbGFjayBob3RrZXkgY291bnRzL2NvbmZsaWN0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5fZXZlbnQgJiYgYi5leHRyYVNldHRpbmdzRWwuZmluZChcInN2Zy5nZWFyLCBzdmcuYW55LWtleVwiKSkgYi5leHRyYVNldHRpbmdzRWwuZGV0YWNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvbGQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRyaWdnZXIoXCJwbHVnaW4tc2V0dGluZ3M6YWZ0ZXItZGlzcGxheVwiLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdvdG9QbHVnaW4oaWQsIHNob3c9XCJpbmZvXCIpIHtcbiAgICAgICAgaWYgKGlkICYmIHNob3cgPT09IFwiaG90a2V5c1wiKSByZXR1cm4gdGhpcy5zaG93SG90a2V5c0ZvcihpZCtcIjpcIik7XG4gICAgICAgIGlmIChpZCAmJiBzaG93ID09PSBcImNvbmZpZ1wiKSAge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dDb25maWdGb3IoaWQpKSB0aGlzLmFwcC5zZXR0aW5nLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNob3dTZXR0aW5ncyhcImNvbW11bml0eS1wbHVnaW5zXCIpO1xuICAgICAgICBjb25zdCByZW1vdmUgPSBhcm91bmQoTW9kYWwucHJvdG90eXBlLCB7XG4gICAgICAgICAgICBvcGVuKG9sZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaWQpIHRoaXMuYXV0b2xvYWQgPSBpZDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuYXBwLnNldHRpbmcuYWN0aXZlVGFiLmNvbnRhaW5lckVsLmZpbmQoXCIubW9kLWN0YVwiKS5jbGljaygpO1xuICAgICAgICAvLyBYWFggaGFuZGxlIG5hdiB0byBub3QtY2F0YWxvZ2VkIHBsdWdpblxuICAgIH1cblxuICAgIHNob3dTZXR0aW5ncyhpZCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ZXI/LmNsb3NlKCk7ICAvLyBjbG9zZSB0aGUgcGx1Z2luIGJyb3dzZXIgaWYgb3BlblxuICAgICAgICBzZXR0aW5nc0FyZU9wZW4odGhpcy5hcHApIHx8IHRoaXMuYXBwLnNldHRpbmcub3BlbigpO1xuICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLnNldHRpbmcub3BlblRhYkJ5SWQoaWQpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwLnNldHRpbmcuYWN0aXZlVGFiPy5pZCA9PT0gaWQgPyB0aGlzLmFwcC5zZXR0aW5nLmFjdGl2ZVRhYiA6IGZhbHNlXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93SG90a2V5c0ZvcihzZWFyY2gpIHtcbiAgICAgICAgY29uc3QgdGFiID0gdGhpcy5zaG93U2V0dGluZ3MoXCJob3RrZXlzXCIpO1xuICAgICAgICBpZiAodGFiICYmIHRhYi5zZWFyY2hJbnB1dEVsICYmIHRhYi51cGRhdGVIb3RrZXlWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgICB0YWIuc2VhcmNoSW5wdXRFbC52YWx1ZSA9IHNlYXJjaDtcbiAgICAgICAgICAgIHRhYi51cGRhdGVIb3RrZXlWaXNpYmlsaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93Q29uZmlnRm9yKGlkKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dTZXR0aW5ncyhpZCkpIHJldHVybiB0cnVlO1xuICAgICAgICBuZXcgTm90aWNlKFxuICAgICAgICAgICAgYE5vIHNldHRpbmdzIHRhYiBmb3IgXCIke2lkfVwiOiBpdCBtYXkgbm90IGJlIGluc3RhbGxlZCBvciBtaWdodCBub3QgaGF2ZSBzZXR0aW5ncy5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwbHVnaW5FbmFibGVkKGlkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2luc1tpZF0/Ll9sb2FkZWQgfHwgdGhpcy5hcHAucGx1Z2lucy5wbHVnaW5zW2lkXTtcbiAgICB9XG5cbiAgICByZWZyZXNoQnV0dG9ucyhmb3JjZT1mYWxzZSkge1xuICAgICAgICAvLyBEb24ndCByZWZyZXNoIHdoZW4gbm90IGRpc3BsYXlpbmcsIHVubGVzcyByZW5kZXJpbmcgaXMgaW4gcHJvZ3Jlc3NcbiAgICAgICAgaWYgKCFwbHVnaW5TZXR0aW5nc0FyZU9wZW4odGhpcy5hcHApICYmICFmb3JjZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGhrbSA9IHRoaXMuYXBwLmhvdGtleU1hbmFnZXI7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVkS2V5Q291bnQgPSB7fTtcblxuICAgICAgICAvLyBHZXQgYSBsaXN0IG9mIGNvbW1hbmRzIGJ5IHBsdWdpblxuICAgICAgICBjb25zdCBjb21tYW5kcyA9IE9iamVjdC52YWx1ZXModGhpcy5hcHAuY29tbWFuZHMuY29tbWFuZHMpLnJlZHVjZSgoY21kcywgY21kKT0+e1xuICAgICAgICAgICAgY29uc3QgcGlkID0gY21kLmlkLnNwbGl0KFwiOlwiLDIpLnNoaWZ0KCk7XG4gICAgICAgICAgICBjb25zdCBob3RrZXlzID0gKGhrbS5nZXRIb3RrZXlzKGNtZC5pZCkgfHwgaGttLmdldERlZmF1bHRIb3RrZXlzKGNtZC5pZCkgfHwgW10pLm1hcChob3RrZXlUb1N0cmluZyk7XG4gICAgICAgICAgICBob3RrZXlzLmZvckVhY2goayA9PiBhc3NpZ25lZEtleUNvdW50W2tdID0gMSArIChhc3NpZ25lZEtleUNvdW50W2tdfHwwKSk7XG4gICAgICAgICAgICAoY21kc1twaWRdIHx8IChjbWRzW3BpZF09W10pKS5wdXNoKHtob3RrZXlzLCBjbWR9KTtcbiAgICAgICAgICAgIHJldHVybiBjbWRzO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgLy8gUGx1Z2luIHNldHRpbmcgdGFicyBieSBwbHVnaW5cbiAgICAgICAgY29uc3QgdGFicyA9IE9iamVjdC52YWx1ZXModGhpcy5hcHAuc2V0dGluZy5wbHVnaW5UYWJzKS5yZWR1Y2UoKHRhYnMsIHRhYik9PiB7XG4gICAgICAgICAgICB0YWJzW3RhYi5pZF0gPSB0YWI7IHJldHVybiB0YWJzXG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgdGFic1tcIndvcmtzcGFjZVwiXSA9IHRhYnNbXCJlZGl0b3JcIl0gPSB0cnVlO1xuXG4gICAgICAgIGZvcihjb25zdCBpZCBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbmZpZ0J1dHRvbnMgfHwge30pKSB7XG4gICAgICAgICAgICBjb25zdCBidG4gPSB0aGlzLmNvbmZpZ0J1dHRvbnNbaWRdO1xuICAgICAgICAgICAgaWYgKCF0YWJzW2lkXSkge1xuICAgICAgICAgICAgICAgIGJ0bi5leHRyYVNldHRpbmdzRWwuaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnRuLmV4dHJhU2V0dGluZ3NFbC5zaG93KCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IoY29uc3QgaWQgb2YgT2JqZWN0LmtleXModGhpcy5ob3RrZXlCdXR0b25zIHx8IHt9KSkge1xuICAgICAgICAgICAgY29uc3QgYnRuID0gdGhpcy5ob3RrZXlCdXR0b25zW2lkXTtcbiAgICAgICAgICAgIGlmICghY29tbWFuZHNbaWRdKSB7XG4gICAgICAgICAgICAgICAgLy8gUGx1Z2luIGlzIGRpc2FibGVkIG9yIGhhcyBubyBjb21tYW5kc1xuICAgICAgICAgICAgICAgIGJ0bi5leHRyYVNldHRpbmdzRWwuaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYXNzaWduZWQgPSBjb21tYW5kc1tpZF0uZmlsdGVyKGluZm8gPT4gaW5mby5ob3RrZXlzLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdHMgPSBhc3NpZ25lZC5maWx0ZXIoaW5mbyA9PiBpbmZvLmhvdGtleXMuZmlsdGVyKGsgPT4gYXNzaWduZWRLZXlDb3VudFtrXT4xKS5sZW5ndGgpLmxlbmd0aDtcblxuICAgICAgICAgICAgYnRuLnNldFRvb2x0aXAoXG4gICAgICAgICAgICAgICAgYENvbmZpZ3VyZSBob3RrZXlzJHtcIlxcblwifSgke2Fzc2lnbmVkLmxlbmd0aH0vJHtjb21tYW5kc1tpZF0ubGVuZ3RofSBhc3NpZ25lZCR7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0cyA/IFwiOyBcIitjb25mbGljdHMrXCIgY29uZmxpY3RpbmdcIiA6IFwiXCJcbiAgICAgICAgICAgICAgICB9KWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBidG4uZXh0cmFTZXR0aW5nc0VsLnRvZ2dsZUNsYXNzKFwibW9kLWVycm9yXCIsICEhY29uZmxpY3RzKTtcbiAgICAgICAgICAgIGJ0bi5leHRyYVNldHRpbmdzRWwuc2hvdygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIktleW1hcCIsIk1vZGFsIiwiUGx1Z2luIiwiU2V0dGluZyIsImRlYm91bmNlIiwiUGxhdGZvcm0iXSwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTLE1BQU0sQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFO0FBQ3ZDLElBQUksTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUYsSUFBSSxPQUFPLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDN0YsQ0FBQztBQUNELFNBQVMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO0FBQzdDLElBQUksTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RFLElBQUksSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzFDO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUTtBQUNoQixRQUFRLE1BQU0s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 +var R=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var tt=(s,r)=>{for(var t in r)R(s,t,{get:r[t],enumerable:!0})},et=(s,r,t,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Y(r))!Z.call(s,n)&&n!==t&&R(s,n,{get:()=>r[n],enumerable:!(e=X(r,n))||e.enumerable});return s};var nt=s=>et(R({},"__esModule",{value:!0}),s);var ut={};tt(ut,{default:()=>W});module.exports=nt(ut);var y=require("obsidian");function k(s,r){let t=Object.keys(r).map(e=>ot(s,e,r[e]));return t.length===1?t[0]:function(){t.forEach(e=>e())}}function ot(s,r,t){let e=s[r],n=s.hasOwnProperty(r),o=t(e);return e&&Object.setPrototypeOf(o,e),Object.setPrototypeOf(i,o),s[r]=i,u;function i(...l){return o===e&&s[r]===i&&u(),o.apply(this,l)}function u(){s[r]===i&&(n?s[r]=e:delete s[r]),o!==e&&(o=e,Object.setPrototypeOf(i,e||Function))}}function B(s,r){return s.then(r,r)}function j(s){let r=Promise.resolve();function t(...e){return r=new Promise((n,o)=>{B(r,()=>{s.apply(this,e).then(n,o)})})}return t.after=function(){return r=new Promise((e,n)=>{B(r,e)})},t}var b=require("obsidian");var O=Symbol.for("v1.to-use.peak-dev.org"),I=Symbol.for("v1.factory.to-use.peak-dev.org"),x,T,C=function(){return Object.defineProperties(s(),{this:{get(){if(x)return x;throw new TypeError("No current context")}},me:{value:O},factory:{value:I}});function s(n){let o=new Map;o.prev=n;let i=Object.assign(n?l=>{let a=o.get(l);if(!a){for(let d=o.prev;d;d=d.prev)if(a=d.get(l)){a=Object.assign(Object.assign({},a),{s:a.s||1});break}a=a||{s:2,v:t},o.set(l,a)}let p,f,h;for(;;)switch(a.s){case 0:return x===i&&T&&T.push(l),a.v;case 1:if(p=a.d,!p||u(()=>p.k.every(d=>i(d)===p.c(d)))){a.s=0;break}a.v=p.f;case 2:a.s=4;try{r(o,l,0,u(f=a.v,l,h=[])),h.length&&(a.d={c:i,f,k:h});break}catch(d){a.s=3,a.v=d,a.d=null}case 3:throw a.v;case 4:throw new Error(`Factory ${String(a.v)} didn't resolve ${String(l)}`)}}:l=>C.this(l),{def(l,a){return r(o,l,2,a),i},set(l,a){return r(o,l,1,a),i},fork(l){let a=s(o);return l!=null?a(l):a}});return n?i.use=i:i;function u(l,a,p){let f=x,h=T;try{return x=i,T=p,l(a)}finally{x=f,T=h}}}function r(n,o,i,u){if(n.has(o)){let l=n.get(o);if(!l.s)throw new Error(`Already read: ${String(o)}`);l.s=i,l.v=u,l.d=null}else n.set(o,{s:i,v:u})}function t(n){if(typeof n[O]=="function")return n[O](n);if(e(n))return typeof n.prototype[I]=="function"?n.prototype[I]():new n;throw new ReferenceError(`No config for ${String(n)}`)}function e(n){return typeof n=="function"&&n.prototype!==void 0&&(Object.getPrototypeOf(n.prototype)!==Object.prototype||Object.getOwnPropertyNames(n.prototype).length>1||n.toString().startsWith("class"))}}();var V,v=(V=window.queueMicrotask)!=null?V:(s=>r=>s.then(r))(Promise.resolve());C.def(b.Plugin,()=>{throw new Error("Plugin not created yet")});var L=class extends b.Component{constructor(){super(...arguments);this.use=C.service(this)}};C.service=function(s){return C(P).addChild(s),C.this};C.plugin=function(s){let r=C.fork().set(b.Plugin,s).set(s.constructor,s);return s.addChild(r.use(P)),r};var P=class extends b.Component{constructor(){super(...arguments);this.children=new Set([this])}onload(){this.loaded=!0}onunload(){this.loaded=!1,this.children.clear()}addChild(t){return this.children.has(t)||(this.children.add(t),this.loaded?v(()=>super.addChild(t)):super.addChild(t)),t}};function A(s,r){let t=new b.Component;t.onload=()=>{s.removeChild(t),r()},s.addChild(t)}var F=require("obsidian");var D=require("obsidian");var M=2,Wt=Symbol.for(`v${M}.layout-storage-events.ophidian.peak-dev.org`);var Rt=`ophidian-layout-storage:v${M}:item-load`,Ot=`ophidian-layout-storage:v${M}:item-save`;var $=require("obsidian");var N=class extends $.Component{constructor(t,e){super();this.use=t;this.container=e;this.win=this.container.win}[C.factory](){return new K(this.constructor)}static onload(t){}static onunload(t){}},K=class extends L{constructor(t){super();this.factory=t;this.instances=new Map;this.watching=!1;this.layoutReadyCallbacks=[]}onload(){var t,e;this.registerEvent(app.workspace.on("layout-change",()=>{app.workspace.layoutReady&&this.layoutReadyCallbacks.length&&(this.layoutReadyCallbacks.forEach(v),this.layoutReadyCallbacks=[])})),(e=(t=this.factory).onload)==null||e.call(t,this)}onLeafChange(t,e){return this.onLayoutReady(()=>t.call(e,app.workspace.activeLeaf)),app.workspace.on("active-leaf-change",n=>{app.workspace.layoutReady&&t.call(e,n)})}onLayoutReady(t){app.workspace.layoutReady?v(t):this.layoutReadyCallbacks.push(t)}onunload(){var t,e;(e=(t=this.factory).onunload)==null||e.call(t,this)}watch(){if(!this._loaded)A(this,()=>this.watch());else if(!this.watching){let{workspace:t}=app,e=this;this.watching=!0,this.registerEvent(t.on("window-open",n=>{this.onLayoutReady(()=>this.forContainer(n))})),this.register(k(t,{clearLayout(n){return async function(){try{return await n.call(this)}finally{e.onLayoutReady(()=>e.forAll())}}}})),this.onLayoutReady(()=>this.forAll())}return this}forWindow(t=(n=>(n=window.activeWindow)!=null?n:window)(),e=!0){let o=rt(t);if(o)return this.forContainer(o,e)}forContainer(t,e=!0){t=t.getContainer();let n=this.instances.get(t);return!n&&e&&(n=new this.factory(this.use,t),n&&(this.instances.set(t,n),this.addChild(n),t.component.addChild(n),n.register(()=>{z(this,n),z(t.component,n),this.instances.delete(t)}))),n}forDom(t,e=!0){return this.forWindow(it(t),e)}forLeaf(t=app.workspace.activeLeaf,e=!0){if(app.workspace.isLeafAttached(t))return this.forContainer(t.getContainer(),e)}forView(t,e=!0){return this.forLeaf(t.leaf,e)}forAll(t=!0){return st().map(e=>this.forContainer(e,t)).filter(e=>e)}};function z(s,r){s._loaded&&s.removeChild(r)}function st(){return[app.workspace.rootSplit].concat(app.workspace.floatingSplit.children)}function it(s){return s.win||(s.ownerDocument||s).defaultView||window}function rt(s){if(s===window)return app.workspace.rootSplit;let{floatingSplit:r}=app.workspace;if(r){for(let t of r.children)if(s===t.win)return t}}function q(s,r,t,e,n){return s.on(r,t,e,n),()=>s.off(r,t,e,n)}var G=require("obsidian");function _(){let s,r,t=new Promise((e,n)=>{s=e,r=n});return{resolve:s,reject:r,promise:t}}function H(s,r,t,e){let{resolve:n,promise:o}=_(),i=new class extends G.FuzzySuggestModal{getItemText(l){var a;return(a=r==null?void 0:r(l))!=null?a:""+l}getItems(){return s}onChooseItem(l,a){n({item:l,event:a})}onClose(){super.onClose(),v(()=>n({item:null,event:null}))}}(app);return t&&i.setPlaceholder(t),e==null||e(i),i.open(),o}function at(s){return y.Keymap.compileModifiers(s.modifiers)+","+s.key.toLowerCase()}function lt(s){return s==="plugins"||s==="community-plugins"}function J(){var s;return U()&<((s=app.setting.activeTab)==null?void 0:s.id)}function U(){return app.setting.containerEl.parentElement!==null}function ct(s){return s instanceof y.Modal&&s.hasOwnProperty("autoload")&&typeof s.showPlugin=="function"&&typeof s.updateSearch=="function"&&typeof s.searchEl=="object"}var W=class extends y.Plugin{constructor(){super(...arguments);this.lastSearch={};this.hotkeyButtons={};this.globalsAdded=!1;this.searchInput=null;this.commandsByPlugin={};this.assignedKeyCount={}}onload(){let t=this.app.workspace,e=this,n=t;this.registerEvent(n.on("plugin-settings:before-display",(u,l)=>{this.hotkeyButtons={},this.globalsAdded=!1,this.searchInput=null;let a=k(y.Setting.prototype,{addSearch(p){return function(f){return a(),p.call(this,h=>{e.searchInput=h,f==null||f(h)})}}});v(a)})),this.registerEvent(n.on("plugin-settings:after-display",()=>this.refreshButtons(!0))),this.registerEvent(n.on("plugin-settings:plugin-control",(u,l,a,p)=>{this.globalsAdded||this.addGlobals(p,u.settingEl)}));let o=(0,y.debounce)(this.refreshButtons.bind(this),50,!0);function i(u){return function(...l){return o(),u.apply(this,l)}}this.register(k(app.commands,{addCommand:i,removeCommand:i})),this.register(k(app.setting,{addSettingTab:i,removeSettingTab:i})),t.onLayoutReady(this.whenReady.bind(this)),this.registerObsidianProtocolHandler("goto-plugin",({id:u,show:l})=>{t.onLayoutReady(()=>{this.gotoPlugin(u,l)})})}whenReady(){var f,h;let t=this.app,e=this,n=(h=(f=t.internalPlugins.plugins["command-palette"])==null?void 0:f.instance)==null?void 0:h.modal;if(n){this.register(k(n,{onChooseItem(c){return function(g,E){return y.Keymap.isModEvent(E)?(v(()=>e.showHotkeysFor(g.name)),!1):c.call(this,g,E)}}}));let d=n.modalEl.find(".prompt-instructions .prompt-instruction");d&&createDiv("prompt-instruction",c=>{c.createSpan({cls:"prompt-instruction-command",text:y.Keymap.compileModifiers(["Mod"])+"+\u21B5"}),c.appendText(" "),c.createSpan({text:"to configure hotkey(s)"}),this.register(()=>c.detach())}).insertAfter(d)}let o=this.getSettingsTab("plugins"),i=this.getSettingsTab("community-plugins");o&&this.register(k(o,{display:this.addPluginSettingEvents.bind(this,o.id)})),i&&this.register(k(i,{display:this.addPluginSettingEvents.bind(this,i.id)}));let u=()=>this.enhanceViewer();i&&this.register(q(i.containerEl,"click",".mod-cta, .installed-plugins-container .setting-item-info",u,!0)),this.register(k(t.workspace.protocolHandlers,{get(d){return function(m){return m==="show-plugin"&&u(),d.call(this,m)}}}));function l(){J()&&t.setting.openTabById(t.setting.activeTab.id)}l(),this.register(()=>v(l));let a=this.getSettingsTab("hotkeys");a&&this.register(k(a,{display(d){return function(){d.call(this),this.searchInputEl.focus()}},updateHotkeyVisibility(d){return function(){let c=this.searchInputEl.value,m=t.commands.commands;try{if(c.endsWith(":")&&!c.contains(" ")){let g=m,E=Object.fromEntries(Object.entries(t.commands.commands).filter(([w,S])=>(w+":").startsWith(c)));this.searchInputEl.value="",t.commands.commands=new Proxy(m,{ownKeys(){try{return Object.keys(g)}finally{g=E}}})}return d.call(this)}finally{this.searchInputEl.value=c,t.commands.commands=m}}}})),this.addCommand({id:"open-plugins",name:"Open the Community Plugins settings",callback:()=>this.showSettings("community-plugins")||!0}),this.addCommand({id:"browse-plugins",name:"Browse or search the Community Plugins catalog",callback:()=>this.gotoPlugin()});let p=new Intl.Collator(void 0,{usage:"sort",sensitivity:"base",numeric:!0}).compare;this.addCommand({id:"open-settings",name:"Open settings for plugin...",callback:async()=>{let{item:d}=await H(t.setting.pluginTabs.concat(t.setting.settingTabs).sort((c,m)=>p(c.name,m.name)),c=>c.name,"Select a plugin to open its settings...");d&&(t.setting.open(),t.setting.openTabById(d.id))}}),this.addCommand({id:"open-hotkeys",name:"Open hotkeys for plugin...",callback:async()=>{var g,E;let d=this.refreshCommands(),c=Object.values(t.plugins.plugins).map(w=>w.manifest).concat(Object.entries(t.internalPlugins.plugins).map(([w,{instance:{name:S},_loaded:Q}])=>({id:w,name:S,enabled:Q})).filter(w=>w.enabled)).concat([{id:"app",name:"App"},{id:"editor",name:((g=this.getSettingsTab("editor"))==null?void 0:g.name)||"Editor"},{id:"workspace",name:((E=this.getSettingsTab("file"))==null?void 0:E.name)||"Files & Links"}]).filter(w=>{var S;return(S=d[w.id])==null?void 0:S.length}),{item:m}=await H(c.sort((w,S)=>p(w.name,S.name)),w=>w.name,"Select a plugin to open its hotkeys...");m&&this.showHotkeysFor(m.id+":")}})}createExtraButtons(t,e,n){e.id!=="app"&&t.addExtraButton(o=>{o.setIcon("gear"),o.onClick(()=>this.showConfigFor(e.id.replace(/^workspace$/,"file"))),o.setTooltip("Options"),o.extraSettingsEl.toggle(n)}),t.addExtraButton(o=>{o.setIcon("any-key"),o.onClick(()=>this.showHotkeysFor(e.id+":")),o.extraSettingsEl.toggle(n),this.hotkeyButtons[e.id]=o})}addGlobals(t,e){var l,a,p;this.globalsAdded=!0;let n=e.parentElement,o;if(t!=="plugins"||this.searchInput)(l=o=this.searchInput)==null||l.onChange(u);else{let f=new y.Setting(n).addSearch(h=>{o=h,h.setPlaceholder("Filter plugins...").onChange(u)});o.containerEl.style.margin="0",n.createDiv("hotkey-search-container").append(o.containerEl),f.settingEl.detach()}t==="community-plugins"&&o.inputEl.addEventListener("keyup",f=>{if(f.keyCode===13&&!y.Keymap.getModifiers(f))return this.gotoPlugin(),!1});let i=this;function u(f){let h=(i.lastSearch[t]=f).toLowerCase();function d(c){if(!c)return!1;let m=c.textContent=c.textContent,g=m.toLowerCase().indexOf(h);return~g?(c.textContent=m.substr(0,g),c.createSpan("suggestion-highlight").textContent=m.substr(g,h.length),c.insertAdjacentText("beforeend",m.substr(g+h.length)),!0):!1}n.findAll(".setting-item").forEach(c=>{var w;let m=d(c.find(".setting-item-name")),g=d((w=c.find(".setting-item-description > div:last-child"))!=null?w:c.find(".setting-item-description")),E=d(c.find(".setting-item-description > div:nth-child(2)"));c.toggle(m||g||E)})}if(v(()=>{!o||(o&&typeof i.lastSearch[t]=="string"&&(o.setValue(i.lastSearch[t]),o.onChanged()),y.Platform.isMobile||o.inputEl.select())}),n.append(e),t==="plugins"){let f=((a=this.getSettingsTab("editor"))==null?void 0:a.name)||"Editor",h=((p=this.getSettingsTab("file"))==null?void 0:p.name)||"Files & Links";this.createExtraButtons(new y.Setting(e.parentElement).setName("App").setDesc("Miscellaneous application commands (always enabled)"),{id:"app",name:"App"},!0),this.createExtraButtons(new y.Setting(e.parentElement).setName(f).setDesc("Core editing commands (always enabled)"),{id:"editor",name:f},!0),this.createExtraButtons(new y.Setting(e.parentElement).setName(h).setDesc("Core file and pane management commands (always enabled)"),{id:"workspace",name:h},!0),e.parentElement.append(e)}}enhanceViewer(){let t=this;setTimeout(k(y.Modal.prototype,{open(e){return function(...n){return ct(this)&&(v(()=>{if(t.lastSearch["community-plugins"]){let o=this.searchResultEl.cloneNode();this.searchContainerEl.replaceChild(o,this.searchResultEl),this.searchResultEl=o,this.searchEl.value=t.lastSearch["community-plugins"],this.searchEl.dispatchEvent(new Event("input"))}this.searchEl.select()}),t.currentViewer=this,k(this,{updateSearch:j,close(o){return function(...i){return t.currentViewer=null,o.apply(this,i)}},showPlugin(o){return async function(i){let u=await o.call(this,i);if(t.app.plugins.plugins[i.id]){let l=i18next.t("setting.hotkeys.name"),a=this.pluginContentEl.find("button").parentElement;for(let p of a.findAll("button"))p.textContent===l&&(t.hotkeyButtons[i.id]={setTooltip(f){return p.title=f,this},extraSettingsEl:p});t.refreshButtons(!0)}return u}}})),e.apply(this,n)}}}),0)}getSettingsTab(t){return app.setting.settingTabs.filter(e=>e.id===t).shift()}addPluginSettingEvents(t,e){let n=this.app,o=this,i=!1;function u(l,...a){i=!0;try{n.workspace.trigger(l,...a)}catch(p){console.error(p)}i=!1}return function(...a){if(i)return;u("plugin-settings:before-display",this,t);let p;t==="plugins"?p=Object.entries(n.internalPlugins.plugins).map(([c,{instance:{name:m,hiddenFromList:g},_loaded:E}])=>!g&&{id:c,name:m,enabled:E}).filter(c=>c):p=Object.values(n.plugins.manifests),p.sort((c,m)=>c.name.localeCompare(m.name));let f=0,h="",d=k(y.Setting.prototype,{addExtraButton(c){return function(m){if(!i&&(t==="plugins"||this.descEl.childElementCount)&&(p[f]||{}).name===this.nameEl.textContent){let g=p[f++];h=g.id,u("plugin-settings:plugin-control",this,g,g.enabled,t)}return c.call(this,function(g){m(g),!i&&g.extraSettingsEl.find("svg.any-key, svg.lucide-plus-circle")&&h&&(o.hotkeyButtons[h]=g,g.onClick(o.showHotkeysFor.bind(o,h+":")))})}}});try{return e.apply(this,a)}finally{d(),u("plugin-settings:after-display",this)}}}gotoPlugin(t,e="info"){if(t&&e==="hotkeys")return this.showHotkeysFor(t+":");if(t&&e==="config"){this.showConfigFor(t)||this.app.setting.close();return}this.showSettings("community-plugins");let n=k(y.Modal.prototype,{open(o){return function(...i){return n(),t&&(this.autoload=t),o.apply(this,i)}}});this.app.setting.activeTab.containerEl.find(".mod-cta").click()}showSettings(t){var e,n;if((e=this.currentViewer)==null||e.close(),U()||app.setting.open(),t)return app.setting.openTabById(t),((n=app.setting.activeTab)==null?void 0:n.id)===t?app.setting.activeTab:!1}showHotkeysFor(t){let e=this.showSettings("hotkeys");e&&e.searchInputEl&&e.updateHotkeyVisibility&&(e.searchInputEl.value=t,e.updateHotkeyVisibility())}showConfigFor(t){return this.showSettings(t)?!0:(new y.Notice(`No settings tab for "${t}": it may not be installed or might not have settings.`),!1)}pluginEnabled(t){var e;return((e=app.internalPlugins.plugins[t])==null?void 0:e._loaded)||app.plugins.plugins[t]}refreshCommands(){let t=app.hotkeyManager;return this.assignedKeyCount={},this.commandsByPlugin=Object.values(app.commands.commands).reduce((e,n)=>{let o=n.id.split(":",2).shift(),i=(t.getHotkeys(n.id)||t.getDefaultHotkeys(n.id)||[]).map(at);return i.forEach(u=>this.assignedKeyCount[u]=1+(this.assignedKeyCount[u]||0)),(e[o]||(e[o]=[])).push({hotkeys:i,cmd:n}),e},{})}refreshButtons(t=!1){var n;if(!J()&&!t)return;this.refreshCommands();let e=Object.values(app.setting.pluginTabs).reduce((o,i)=>(o[i.id]=i,o),{});e.workspace=e.editor=!0;for(let o of Object.keys(this.hotkeyButtons||{})){let i=this.hotkeyButtons[o];if(!this.commandsByPlugin[o]||((n=app.internalPlugins.plugins[o])==null?void 0:n.enabled)===!1){i.extraSettingsEl.hide();continue}let u=this.commandsByPlugin[o].filter(a=>a.hotkeys.length),l=u.filter(a=>a.hotkeys.filter(p=>this.assignedKeyCount[p]>1).length).length;i.setTooltip(`Configure hotkeys +(${u.length}/${this.commandsByPlugin[o].length} assigned${l?"; "+l+" conflicting":""})`),i.extraSettingsEl.toggleClass("mod-error",!!l),i.extraSettingsEl.show()}}}; diff --git a/notes/.obsidian/plugins/hotkey-helper/manifest.json b/notes/.obsidian/plugins/hotkey-helper/manifest.json index 5c8a508..09278c8 100644 --- a/notes/.obsidian/plugins/hotkey-helper/manifest.json +++ b/notes/.obsidian/plugins/hotkey-helper/manifest.json @@ -1,8 +1,8 @@ { "id": "hotkey-helper", "name": "Hotkey Helper", - "version": "0.3.11", - "minAppVersion": "0.13.19", + "version": "0.3.15", + "minAppVersion": "0.15.9", "description": "Easily see and access any plugin's settings or hotkey assignments (and conflicts) from the Community Plugins tab", "author": "PJ Eby", "authorUrl": "https://github.com/pjeby" diff --git a/notes/.obsidian/plugins/obsidian-activity-history/data.json b/notes/.obsidian/plugins/obsidian-activity-history/data.json index 99e8208..ec8e44a 100644 --- a/notes/.obsidian/plugins/obsidian-activity-history/data.json +++ b/notes/.obsidian/plugins/obsidian-activity-history/data.json @@ -13,7 +13,7 @@ { "path": "/", "date": "2022-09-08", - "size": 891704 + "size": 892689 } ], "activityHistory": [ @@ -778,7 +778,7 @@ }, { "date": "2022-09-08", - "value": 0 + "value": 985 } ] } diff --git a/notes/.obsidian/plugins/obsidian-admonition/data.json b/notes/.obsidian/plugins/obsidian-admonition/data.json index 21f399f..dcb8c83 100644 --- a/notes/.obsidian/plugins/obsidian-admonition/data.json +++ b/notes/.obsidian/plugins/obsidian-admonition/data.json @@ -15,7 +15,7 @@ }, "syntaxHighlight": false, "copyButton": false, - "version": "9.0.3", + "version": "9.0.5", "autoCollapse": false, "defaultCollapseType": "open", "injectColor": true, diff --git a/notes/.obsidian/plugins/obsidian-admonition/main.js b/notes/.obsidian/plugins/obsidian-admonition/main.js index 5854120..772c12b 100644 --- a/notes/.obsidian/plugins/obsidian-admonition/main.js +++ b/notes/.obsidian/plugins/obsidian-admonition/main.js @@ -5,7 +5,7 @@ if you want to view the source, please visit the github repository of this plugi var c6=Object.create;var X1=Object.defineProperty;var a6=Object.getOwnPropertyDescriptor;var e6=Object.getOwnPropertyNames;var i6=Object.getPrototypeOf,n6=Object.prototype.hasOwnProperty;var p4=a=>X1(a,"__esModule",{value:!0});var o6=(a,c)=>{p4(a);for(var e in c)X1(a,e,{get:c[e],enumerable:!0})},t6=(a,c,e)=>{if(c&&typeof c=="object"||typeof c=="function")for(let i of e6(c))!n6.call(a,i)&&i!=="default"&&X1(a,i,{get:()=>c[i],enumerable:!(e=a6(c,i))||e.enumerable});return a},J=a=>t6(p4(X1(a!=null?c6(i6(a)):{},"default",a&&a.__esModule&&"default"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);o6(exports,{default:()=>r4});var x=J(require("obsidian"));var d4=J(require("obsidian")),g2=J(require("obsidian"));function r6(a,c){for(let e=0;e=0}function R(a){return((n1(a)?a.ownerDocument:a.document)||window.document).documentElement}function o1(a){return O(a)==="html"?a:a.assignedSlot||a.parentNode||(i2(a)?a.host:null)||R(a)}function A4(a){return!B(a)||j(a).position==="fixed"?null:a.offsetParent}function C6(a){var c=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,e=navigator.userAgent.indexOf("Trident")!==-1;if(e&&B(a)){var i=j(a);if(i.position==="fixed")return null}for(var n=o1(a);B(n)&&["html","body"].indexOf(O(n))<0;){var o=j(n);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||c&&o.willChange==="filter"||c&&o.filter&&o.filter!=="none")return n;n=n.parentNode}return null}function X(a){for(var c=w(a),e=A4(a);e&&L2(e)&&j(e).position==="static";)e=A4(e);return e&&(O(e)==="html"||O(e)==="body"&&j(e).position==="static")?c:e||C6(a)||c}function p1(a){return["top","bottom"].indexOf(a)>=0?"x":"y"}var $=Math.max,f1=Math.min,O1=Math.round;function d1(a,c,e){return $(a,f1(c,e))}function I1(){return{top:0,right:0,bottom:0,left:0}}function B1(a){return Object.assign({},I1(),a)}function R1(a,c){return c.reduce(function(e,i){return e[i]=a,e},{})}var H6=function(c,e){return c=typeof c=="function"?c(Object.assign({},e.rects,{placement:e.placement})):c,B1(typeof c!="number"?c:R1(c,l1))};function g6(a){var c,e=a.state,i=a.name,n=a.options,o=e.elements.arrow,r=e.modifiersData.popperOffsets,t=I(e.placement),l=p1(t),f=[P,T].indexOf(t)>=0,s=f?"height":"width";if(!(!o||!r)){var h=H6(n.padding,e),m=z1(o),z=l==="y"?k:P,v=l==="y"?D:T,M=e.rects.reference[s]+e.rects.reference[l]-r[l]-e.rects.popper[s],p=r[l]-e.rects.reference[l],C=X(o),H=C?l==="y"?C.clientHeight||0:C.clientWidth||0:0,L=M/2-p/2,d=h[z],N=H-m[s]-h[v],V=H/2-m[s]/2+L,y=d1(d,V,N),A=l;e.modifiersData[i]=(c={},c[A]=y,c.centerOffset=y-V,c)}}function V6(a){var c=a.state,e=a.options,i=e.element,n=i===void 0?"[data-popper-arrow]":i;n!=null&&(typeof n=="string"&&(n=c.elements.popper.querySelector(n),!n)||!D1(c.elements.popper,n)||(c.elements.arrow=n))}var y4={name:"arrow",enabled:!0,phase:"main",fn:g6,effect:V6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};var L6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function x6(a){var c=a.x,e=a.y,i=window,n=i.devicePixelRatio||1;return{x:O1(O1(c*n)/n)||0,y:O1(O1(e*n)/n)||0}}function S4(a){var c,e=a.popper,i=a.popperRect,n=a.placement,o=a.offsets,r=a.position,t=a.gpuAcceleration,l=a.adaptive,f=a.roundOffsets,s=f===!0?x6(o):typeof f=="function"?f(o):o,h=s.x,m=h===void 0?0:h,z=s.y,v=z===void 0?0:z,M=o.hasOwnProperty("x"),p=o.hasOwnProperty("y"),C=P,H=k,L=window;if(l){var d=X(e),N="clientHeight",V="clientWidth";d===w(e)&&(d=R(e),j(d).position!=="static"&&(N="scrollHeight",V="scrollWidth")),d=d,n===k&&(H=D,v-=d[N]-i.height,v*=t?1:-1),n===P&&(C=T,m-=d[V]-i.width,m*=t?1:-1)}var y=Object.assign({position:r},l&&L6);if(t){var A;return Object.assign({},y,(A={},A[H]=p?"0":"",A[C]=M?"0":"",A.transform=(L.devicePixelRatio||1)<2?"translate("+m+"px, "+v+"px)":"translate3d("+m+"px, "+v+"px, 0)",A))}return Object.assign({},y,(c={},c[H]=p?v+"px":"",c[C]=M?m+"px":"",c.transform="",c))}function b6(a){var c=a.state,e=a.options,i=e.gpuAcceleration,n=i===void 0?!0:i,o=e.adaptive,r=o===void 0?!0:o,t=e.roundOffsets,l=t===void 0?!0:t;if(!1)var f;var s={placement:I(c.placement),popper:c.elements.popper,popperRect:c.rects.popper,gpuAcceleration:n};c.modifiersData.popperOffsets!=null&&(c.styles.popper=Object.assign({},c.styles.popper,S4(Object.assign({},s,{offsets:c.modifiersData.popperOffsets,position:c.options.strategy,adaptive:r,roundOffsets:l})))),c.modifiersData.arrow!=null&&(c.styles.arrow=Object.assign({},c.styles.arrow,S4(Object.assign({},s,{offsets:c.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),c.attributes.popper=Object.assign({},c.attributes.popper,{"data-popper-placement":c.placement})}var w4={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:b6,data:{}};var n2={passive:!0};function N6(a){var c=a.state,e=a.instance,i=a.options,n=i.scroll,o=n===void 0?!0:n,r=i.resize,t=r===void 0?!0:r,l=w(c.elements.popper),f=[].concat(c.scrollParents.reference,c.scrollParents.popper);return o&&f.forEach(function(s){s.addEventListener("scroll",e.update,n2)}),t&&l.addEventListener("resize",e.update,n2),function(){o&&f.forEach(function(s){s.removeEventListener("scroll",e.update,n2)}),t&&l.removeEventListener("resize",e.update,n2)}}var k4={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:N6,data:{}};var A6={left:"right",right:"left",bottom:"top",top:"bottom"};function S1(a){return a.replace(/left|right|bottom|top/g,function(c){return A6[c]})}var y6={start:"end",end:"start"};function o2(a){return a.replace(/start|end/g,function(c){return y6[c]})}function u1(a){var c=w(a),e=c.pageXOffset,i=c.pageYOffset;return{scrollLeft:e,scrollTop:i}}function M1(a){return _(R(a)).left+u1(a).scrollLeft}function x2(a){var c=w(a),e=R(a),i=c.visualViewport,n=e.clientWidth,o=e.clientHeight,r=0,t=0;return i&&(n=i.width,o=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=i.offsetLeft,t=i.offsetTop)),{width:n,height:o,x:r+M1(a),y:t}}function b2(a){var c,e=R(a),i=u1(a),n=(c=a.ownerDocument)==null?void 0:c.body,o=$(e.scrollWidth,e.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=$(e.scrollHeight,e.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),t=-i.scrollLeft+M1(a),l=-i.scrollTop;return j(n||e).direction==="rtl"&&(t+=$(e.clientWidth,n?n.clientWidth:0)-o),{width:o,height:r,x:t,y:l}}function C1(a){var c=j(a),e=c.overflow,i=c.overflowX,n=c.overflowY;return/auto|scroll|overlay|hidden/.test(e+n+i)}function t2(a){return["html","body","#document"].indexOf(O(a))>=0?a.ownerDocument.body:B(a)&&C1(a)?a:t2(o1(a))}function s1(a,c){var e;c===void 0&&(c=[]);var i=t2(a),n=i===((e=a.ownerDocument)==null?void 0:e.body),o=w(i),r=n?[o].concat(o.visualViewport||[],C1(i)?i:[]):i,t=c.concat(r);return n?t:t.concat(s1(o1(r)))}function w1(a){return Object.assign({},a,{left:a.x,top:a.y,right:a.x+a.width,bottom:a.y+a.height})}function S6(a){var c=_(a);return c.top=c.top+a.clientTop,c.left=c.left+a.clientLeft,c.bottom=c.top+a.clientHeight,c.right=c.left+a.clientWidth,c.width=a.clientWidth,c.height=a.clientHeight,c.x=c.left,c.y=c.top,c}function T4(a,c){return c===a2?w1(x2(a)):B(c)?S6(c):w1(b2(R(a)))}function w6(a){var c=s1(o1(a)),e=["absolute","fixed"].indexOf(j(a).position)>=0,i=e&&B(a)?X(a):a;return n1(i)?c.filter(function(n){return n1(n)&&D1(n,i)&&O(n)!=="body"}):[]}function N2(a,c,e){var i=c==="clippingParents"?w6(a):[].concat(c),n=[].concat(i,[e]),o=n[0],r=n.reduce(function(t,l){var f=T4(a,l);return t.top=$(f.top,t.top),t.right=f1(f.right,t.right),t.bottom=f1(f.bottom,t.bottom),t.left=$(f.left,t.left),t},T4(a,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function c1(a){return a.split("-")[1]}function F1(a){var c=a.reference,e=a.element,i=a.placement,n=i?I(i):null,o=i?c1(i):null,r=c.x+c.width/2-e.width/2,t=c.y+c.height/2-e.height/2,l;switch(n){case k:l={x:r,y:c.y-e.height};break;case D:l={x:r,y:c.y+c.height};break;case T:l={x:c.x+c.width,y:t};break;case P:l={x:c.x-e.width,y:t};break;default:l={x:c.x,y:c.y}}var f=n?p1(n):null;if(f!=null){var s=f==="y"?"height":"width";switch(o){case i1:l[f]=l[f]-(c[s]/2-e[s]/2);break;case c2:l[f]=l[f]+(c[s]/2-e[s]/2);break;default:}}return l}function K(a,c){c===void 0&&(c={});var e=c,i=e.placement,n=i===void 0?a.placement:i,o=e.boundary,r=o===void 0?L4:o,t=e.rootBoundary,l=t===void 0?a2:t,f=e.elementContext,s=f===void 0?y1:f,h=e.altBoundary,m=h===void 0?!1:h,z=e.padding,v=z===void 0?0:z,M=B1(typeof v!="number"?v:R1(v,l1)),p=s===y1?x4:y1,C=a.elements.reference,H=a.rects.popper,L=a.elements[m?p:s],d=N2(n1(L)?L:L.contextElement||R(a.elements.popper),r,l),N=_(C),V=F1({reference:N,element:H,strategy:"absolute",placement:n}),y=w1(Object.assign({},H,V)),A=s===y1?y:N,E={top:d.top-A.top+M.top,bottom:A.bottom-d.bottom+M.bottom,left:d.left-A.left+M.left,right:A.right-d.right+M.right},S=a.modifiersData.offset;if(s===y1&&S){var Z=S[n];Object.keys(E).forEach(function(e1){var W=[T,D].indexOf(e1)>=0?1:-1,h1=[k,D].indexOf(e1)>=0?"y":"x";E[e1]+=Z[h1]*W})}return E}function A2(a,c){c===void 0&&(c={});var e=c,i=e.placement,n=e.boundary,o=e.rootBoundary,r=e.padding,t=e.flipVariations,l=e.allowedAutoPlacements,f=l===void 0?e2:l,s=c1(i),h=s?t?V2:V2.filter(function(v){return c1(v)===s}):l1,m=h.filter(function(v){return f.indexOf(v)>=0});m.length===0&&(m=h);var z=m.reduce(function(v,M){return v[M]=K(a,{placement:M,boundary:n,rootBoundary:o,padding:r})[I(M)],v},{});return Object.keys(z).sort(function(v,M){return z[v]-z[M]})}function k6(a){if(I(a)===J1)return[];var c=S1(a);return[o2(a),c,o2(c)]}function T6(a){var c=a.state,e=a.options,i=a.name;if(!c.modifiersData[i]._skip){for(var n=e.mainAxis,o=n===void 0?!0:n,r=e.altAxis,t=r===void 0?!0:r,l=e.fallbackPlacements,f=e.padding,s=e.boundary,h=e.rootBoundary,m=e.altBoundary,z=e.flipVariations,v=z===void 0?!0:z,M=e.allowedAutoPlacements,p=c.options.placement,C=I(p),H=C===p,L=l||(H||!v?[S1(p)]:k6(p)),d=[p].concat(L).reduce(function(v1,Q){return v1.concat(I(Q)===J1?A2(c,{placement:Q,boundary:s,rootBoundary:h,padding:f,flipVariations:v,allowedAutoPlacements:M}):Q)},[]),N=c.rects.reference,V=c.rects.popper,y=new Map,A=!0,E=d[0],S=0;S=0,T1=h1?"width":"height",x1=K(c,{placement:Z,boundary:s,rootBoundary:h,altBoundary:m,padding:f}),m1=h1?W?T:P:W?D:k;N[T1]>V[T1]&&(m1=S1(m1));var u2=S1(m1),b1=[];if(o&&b1.push(x1[e1]<=0),t&&b1.push(x1[m1]<=0,x1[u2]<=0),b1.every(function(v1){return v1})){E=Z,A=!1;break}y.set(Z,b1)}if(A)for(var G1=v?3:1,M2=function(Q){var $1=d.find(function(C2){var A1=y.get(C2);if(A1)return A1.slice(0,Q).every(function(H2){return H2})});if($1)return E=$1,"break"},N1=G1;N1>0;N1--){var _1=M2(N1);if(_1==="break")break}c.placement!==E&&(c.modifiersData[i]._skip=!0,c.placement=E,c.reset=!0)}}var P4={name:"flip",enabled:!0,phase:"main",fn:T6,requiresIfExists:["offset"],data:{_skip:!1}};function E4(a,c,e){return e===void 0&&(e={x:0,y:0}),{top:a.top-c.height-e.y,right:a.right-c.width+e.x,bottom:a.bottom-c.height+e.y,left:a.left-c.width-e.x}}function D4(a){return[k,T,D,P].some(function(c){return a[c]>=0})}function P6(a){var c=a.state,e=a.name,i=c.rects.reference,n=c.rects.popper,o=c.modifiersData.preventOverflow,r=K(c,{elementContext:"reference"}),t=K(c,{altBoundary:!0}),l=E4(r,i),f=E4(t,n,o),s=D4(l),h=D4(f);c.modifiersData[e]={referenceClippingOffsets:l,popperEscapeOffsets:f,isReferenceHidden:s,hasPopperEscaped:h},c.attributes.popper=Object.assign({},c.attributes.popper,{"data-popper-reference-hidden":s,"data-popper-escaped":h})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:P6};function E6(a,c,e){var i=I(a),n=[P,k].indexOf(i)>=0?-1:1,o=typeof e=="function"?e(Object.assign({},c,{placement:a})):e,r=o[0],t=o[1];return r=r||0,t=(t||0)*n,[P,T].indexOf(i)>=0?{x:t,y:r}:{x:r,y:t}}function D6(a){var c=a.state,e=a.options,i=a.name,n=e.offset,o=n===void 0?[0,0]:n,r=e2.reduce(function(s,h){return s[h]=E6(h,c.rects,o),s},{}),t=r[c.placement],l=t.x,f=t.y;c.modifiersData.popperOffsets!=null&&(c.modifiersData.popperOffsets.x+=l,c.modifiersData.popperOffsets.y+=f),c.modifiersData[i]=r}var I4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:D6};function O6(a){var c=a.state,e=a.name;c.modifiersData[e]=F1({reference:c.rects.reference,element:c.rects.popper,strategy:"absolute",placement:c.placement})}var B4={name:"popperOffsets",enabled:!0,phase:"read",fn:O6,data:{}};function y2(a){return a==="x"?"y":"x"}function I6(a){var c=a.state,e=a.options,i=a.name,n=e.mainAxis,o=n===void 0?!0:n,r=e.altAxis,t=r===void 0?!1:r,l=e.boundary,f=e.rootBoundary,s=e.altBoundary,h=e.padding,m=e.tether,z=m===void 0?!0:m,v=e.tetherOffset,M=v===void 0?0:v,p=K(c,{boundary:l,rootBoundary:f,padding:h,altBoundary:s}),C=I(c.placement),H=c1(c.placement),L=!H,d=p1(C),N=y2(d),V=c.modifiersData.popperOffsets,y=c.rects.reference,A=c.rects.popper,E=typeof M=="function"?M(Object.assign({},c.rects,{placement:c.placement})):M,S={x:0,y:0};if(!!V){if(o||t){var Z=d==="y"?k:P,e1=d==="y"?D:T,W=d==="y"?"height":"width",h1=V[d],T1=V[d]+p[Z],x1=V[d]-p[e1],m1=z?-A[W]/2:0,u2=H===i1?y[W]:A[W],b1=H===i1?-A[W]:-y[W],G1=c.elements.arrow,M2=z&&G1?z1(G1):{width:0,height:0},N1=c.modifiersData["arrow#persistent"]?c.modifiersData["arrow#persistent"].padding:I1(),_1=N1[Z],v1=N1[e1],Q=d1(0,y[W],M2[W]),$1=L?y[W]/2-m1-Q-_1-E:u2-Q-_1-E,C2=L?-y[W]/2+m1+Q+v1+E:b1+Q+v1+E,A1=c.elements.arrow&&X(c.elements.arrow),H2=A1?d==="y"?A1.clientTop||0:A1.clientLeft||0:0,l4=c.modifiersData.offset?c.modifiersData.offset[c.placement][d]:0,f4=V[d]+$1-l4-H2,s4=V[d]+C2-l4;if(o){var h4=d1(z?f1(T1,f4):T1,h1,z?$(x1,s4):x1);V[d]=h4,S[d]=h4-h1}if(t){var Q3=d==="x"?k:P,J3=d==="x"?D:T,Y1=V[N],m4=Y1+p[Q3],v4=Y1-p[J3],z4=d1(z?f1(m4,f4):m4,Y1,z?$(v4,s4):v4);V[N]=z4,S[N]=z4-Y1}}c.modifiersData[i]=S}}var R4={name:"preventOverflow",enabled:!0,phase:"main",fn:I6,requiresIfExists:["offset"]};function S2(a){return{scrollLeft:a.scrollLeft,scrollTop:a.scrollTop}}function w2(a){return a===w(a)||!B(a)?u1(a):S2(a)}function k2(a,c,e){e===void 0&&(e=!1);var i=R(c),n=_(a),o=B(c),r={scrollLeft:0,scrollTop:0},t={x:0,y:0};return(o||!o&&!e)&&((O(c)!=="body"||C1(i))&&(r=w2(c)),B(c)?(t=_(c),t.x+=c.clientLeft,t.y+=c.clientTop):i&&(t.x=M1(i))),{x:n.left+r.scrollLeft-t.x,y:n.top+r.scrollTop-t.y,width:n.width,height:n.height}}function B6(a){var c=new Map,e=new Set,i=[];a.forEach(function(o){c.set(o.name,o)});function n(o){e.add(o.name);var r=[].concat(o.requires||[],o.requiresIfExists||[]);r.forEach(function(t){if(!e.has(t)){var l=c.get(t);l&&n(l)}}),i.push(o)}return a.forEach(function(o){e.has(o.name)||n(o)}),i}function T2(a){var c=B6(a);return b4.reduce(function(e,i){return e.concat(c.filter(function(n){return n.phase===i}))},[])}function P2(a){var c;return function(){return c||(c=new Promise(function(e){Promise.resolve().then(function(){c=void 0,e(a())})})),c}}function E2(a){var c=a.reduce(function(e,i){var n=e[i.name];return e[i.name]=n?Object.assign({},n,i,{options:Object.assign({},n.options,i.options),data:Object.assign({},n.data,i.data)}):i,e},{});return Object.keys(c).map(function(e){return c[e]})}var F4={placement:"bottom",modifiers:[],strategy:"absolute"};function Z4(){for(var a=arguments.length,c=new Array(a),e=0;e(this.setSelectedItem(this.selectedItem-1,!0),!1)),i.register([],"ArrowDown",()=>(this.setSelectedItem(this.selectedItem+1,!0),!1)),i.register([],"Enter",n=>(this.useSelectedItem(n),!1)),i.register([],"Tab",n=>(this.useSelectedItem(n),!1))}chooseSuggestion(c){if(!this.items||!this.items.length)return;let e=this.items[this.selectedItem];e&&this.owner.selectSuggestion(e,c)}onSuggestionClick(c,e){if(c.preventDefault(),!this.suggestions||!this.suggestions.length)return;let i=this.suggestions.indexOf(e);this.setSelectedItem(i,!1),this.useSelectedItem(c)}onSuggestionMouseover(c,e){if(!this.suggestions||!this.suggestions.length)return;let i=this.suggestions.indexOf(e);this.setSelectedItem(i,!1)}empty(){this.containerEl.empty()}setSuggestions(c){this.containerEl.empty();let e=[];c.forEach(i=>{let n=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(i,n),e.push(n)}),this.items=c,this.suggestions=e,this.setSelectedItem(0,!1)}useSelectedItem(c){if(!this.items||!this.items.length)return;let e=this.items[this.selectedItem];e&&this.owner.selectSuggestion(e,c),q.Platform.isMobile&&this.chooseSuggestion(c)}wrap(c,e){return(c%e+e)%e}setSelectedItem(c,e){let i=this.wrap(c,this.suggestions.length),n=this.suggestions[this.selectedItem],o=this.suggestions[i];n&&n.removeClass("is-selected"),o&&o.addClass("is-selected"),this.selectedItem=i,e&&o.scrollIntoView(!1)}},O2=class extends q.FuzzySuggestModal{constructor(c,e,i){super(c);this.items=[];this.scope=new q.Scope;this.emptyStateText="No match found";this.limit=100;this.inputEl=e,this.items=i,this.suggestEl=createDiv("suggestion-container"),this.suggestEl.style.width=`${e.clientWidth}px`,this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new q4(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",n=>{n.preventDefault()})}empty(){this.suggester.empty()}onInputChanged(){let c=this.modifyInput(this.inputEl.value),e=this.getSuggestions(c);e.length>0?this.suggester.setSuggestions(e.slice(0,this.limit)):this.onNoSuggestion(),this.open()}modifyInput(c){return c}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),document.body.appendChild(this.suggestEl),this.popper=D2(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(c){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));let e=this.promptEl.createDiv("prompt-instruction");for(let i of c)e.appendChild(i)}},I2=class extends O2{constructor(c,e){super(c.app,e.inputEl,c.iconManager.iconDefinitions);this.plugin=c;this.icons=c.iconManager.iconDefinitions,this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){let c=this.inputEl.value,e=this.icons.find(i=>i.name===c.trim());e!=this.icon&&(this.icon=e,this.icons&&this.onInputChanged())}getItemText(c){return c.name}onChooseItem(c){this.text.setValue(c.name),this.icon=c}selectSuggestion({item:c}){this.text.setValue(c.name),this.icon=c,this.onClose(),this.close()}renderSuggestion(c,e){let{item:i,match:n}=c||{},o=e.createDiv({cls:"suggestion-content icon"});if(!i){o.setText(this.emptyStateText),o.parentElement.addClass("is-selected");return}let r=n.matches.map(l=>createSpan("suggestion-highlight"));for(let l=0;ls[0]===l);if(f){let s=r[n.matches.indexOf(f)];o.appendChild(s),s.appendText(i.name.substring(f[0],f[1])),l+=f[1]-f[0]-1;continue}o.appendText(i.name[l])}let t=createDiv("suggestion-flair admonition-suggester-icon");t.appendChild(this.plugin.iconManager.getIconNode(i)??createDiv()),o.prepend(t),o.createDiv({cls:"suggestion-note",text:this.plugin.iconManager.getIconModuleName(i)})}getItems(){return this.icons}},U4=class extends O2{constructor(c,e,i){super(c.app,e.inputEl,i);this.plugin=c;this.admonitions=[...i],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){let c=this.inputEl.value,e=this.admonitions.find(i=>i.type===c.trim());e!=this.admonition&&(this.admonition=e,this.admonitions&&this.onInputChanged())}getItemText(c){return c.type}onChooseItem(c){this.text.setValue(c.type),this.admonition=c}selectSuggestion({item:c}){this.text.setValue(c.type),this.onClose(),this.close()}renderSuggestion(c,e){let{item:i,match:n}=c||{},o=e.createDiv({cls:"suggestion-content icon"});if(!i){o.setText(this.emptyStateText),o.parentElement.addClass("is-selected");return}let r=n.matches.map(l=>createSpan("suggestion-highlight"));for(let l=0;ls[0]===l);if(f){let s=r[n.matches.indexOf(f)];o.appendChild(s),s.appendText(i.type.substring(f[0],f[1])),l+=f[1]-f[0]-1;continue}o.appendText(i.type[l])}let t=createDiv("suggestion-flair admonition-suggester-icon");t.appendChild(this.plugin.iconManager.getIconNode(i.icon)??createDiv()).setAttribute("color",`rgb(${i.color})`),o.prepend(t)}getItems(){return this.admonitions}},r2=class extends q.Modal{constructor(c){super(c.app);this.plugin=c;this.collapse=this.plugin.data.autoCollapse?this.plugin.data.defaultCollapseType:"none";this.containerEl.addClass("insert-admonition-modal"),this.onOpen=()=>this.display(!0)}async display(c){let{contentEl:e}=this;e.empty(),new q.Setting(e).setName("Admonition Type").addText(t=>{t.setPlaceholder("Admonition Type").setValue(this.type);let l=new U4(this.plugin,t,this.plugin.admonitionArray),f=()=>{t.inputEl.value&&this.plugin.admonitions[t.inputEl.value]?(this.type=t.inputEl.value,this.title?.length||(this.title=this.type[0].toUpperCase()+this.type.slice(1).toLowerCase()),n.setValue(this.title)):(new q.Notice("No admonition type by that name exists."),t.inputEl.value=""),this.buildAdmonition()};t.inputEl.onblur=f,l.onClose=f,c&&(l.open(),t.inputEl.focus())});let n;new q.Setting(e).setName("Admonition Title").setDesc("Leave blank to render without a title.").addText(t=>{n=t,t.setValue(this.title),t.onChange(l=>{if(this.title=l,l.length==0?this.noTitle=!0:this.noTitle=!1,this.element){let f=this.plugin.admonitions[this.type],s=this.plugin.getAdmonitionElement(this.type,this.title,f.icon,f.injectColor??this.plugin.data.injectColor?f.color:null,this.collapse);s.createDiv({cls:"admonition-content",text:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla."}),this.element.replaceWith(s),this.element=s}})}),new q.Setting(e).setName("Make Collapsible").addDropdown(t=>{t.addOption("open","Open"),t.addOption("closed","Closed"),t.addOption("none","None"),t.setValue(this.collapse),t.onChange(l=>{this.collapse=l,this.buildAdmonition()})}),this.admonitionEl=this.contentEl.createDiv(),this.buildAdmonition(),new q.Setting(e).addButton(t=>t.setButtonText("Insert").setCta().onClick(()=>{this.insert=!0,this.close()})).addExtraButton(t=>{t.setIcon("cross").setTooltip("Cancel").onClick(()=>this.close()),t.extraSettingsEl.setAttr("tabindex",0),t.extraSettingsEl.onkeydown=l=>{l.key=="Enter"&&this.close()}})}buildAdmonition(){if(this.admonitionEl.empty(),this.type&&this.plugin.admonitions[this.type]){let c=this.plugin.admonitions[this.type];this.element=this.plugin.getAdmonitionElement(this.type,this.title,c.icon,c.injectColor??this.plugin.data.injectColor?c.color:null,this.collapse),this.element.createDiv({cls:"admonition-content",text:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla."}),this.admonitionEl.appendChild(this.element)}}};var W4='/*\nTHIS IS A GENERATED/BUNDLED FILE BY ESBUILD\nif you want to view the source, please visit the github repository of this plugin\n*/\n\nfunction T(n,e,i){let t=document.createElement(n);typeof e=="string"&&(e={cls:e});let o=e||{},l=o.cls,s=o.text,a=o.attr,r=o.title,d=o.value,c=o.type,g=i||o.parent,f=o.prepend,m=o.href;return l&&(Array.isArray(l)?t.className=l.join(" "):t.className=l),s&&(t.textContent=s),a&&Object.keys(a).forEach(p=>{let E=a[p];E!==null&&t.setAttribute(p,String(E))}),r&&(t.title=r),d&&(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLOptionElement)&&(t.value=d),c&&t instanceof HTMLStyleElement&&t.setAttribute("type",c),m&&(t instanceof HTMLAnchorElement||t instanceof HTMLLinkElement)&&(t.href=m),g&&(f?g.insertBefore(t,g.firstChild):g.appendChild(t)),t}var h=function(n,e){return T("div",n,e)};Node.prototype.createDiv=function(n,e){return h(n,this)};Node.prototype.createEl=function(n,e,i){return T(n,e,this)};Element.prototype.addClass=function(...n){let e=[];for(let i=0;i{y(),b()};function w(){return new Promise((n,e)=>{let i=document.querySelector(".markdown-preview-sizer");if(i)n(i);else{let t=new MutationObserver(o=>{for(let l of o)if(l.type=="childList"&&l.addedNodes.length){for(let s of Array.from(l.addedNodes))if(s instanceof HTMLDivElement){if(s.hasClass("publish-renderer")){let a=s.querySelector(".markdown-preview-sizer");a&&(t.disconnect(),n(a))}s.hasClass("markdown-preview-sizer")&&(t.disconnect(),n(i))}}});t.observe(document.body,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}})}async function b(){let n=await w();new MutationObserver(i=>{i.forEach(t=>{t.type=="childList"&&t.addedNodes.length&&t.addedNodes.forEach(o=>{if(o&&o instanceof HTMLDivElement&&!o.childElementCount){let l=new MutationObserver(s=>{for(let a of s)if(a.type=="childList"&&a.addedNodes.length)for(let r of Array.from(a.addedNodes))r instanceof HTMLPreElement&&(!M.has(r)&&Array.from(r.classList).some(d=>/language-ad-(\\w+)/.test(d))?(l.disconnect(),M.add(r),v(r)):(l.disconnect(),H(r)))});l.observe(o,{attributes:!1,childList:!0,characterData:!1,subtree:!1})}o&&o instanceof HTMLElement&&o.children.length&&o.firstElementChild instanceof HTMLPreElement&&H(o.firstElementChild)})})}).observe(n,{attributes:!1,childList:!0,subtree:!1})}function H(n){let e=new MutationObserver(i=>{i.forEach(t=>{t.target instanceof HTMLPreElement&&!M.has(t.target)&&t.type==="attributes"&&t.attributeName==="class"&&Array.from(t.target.classList).some(o=>/language-ad-(\\w+)/.test(o))&&(e.disconnect(),M.add(t.target),v(t.target))})});e.observe(n,{attributes:!0,childList:!1,characterData:!1,subtree:!1})}function v(n){let[,e]=n.classList.toString().match(/language-ad-(\\w+)/);if(!e||!(e in u.ADMONITION_ICON_MAP))return;let{title:i=e[0].toUpperCase()+e.slice(1).toLowerCase(),collapse:t,content:o,icon:l=u.ADMONITION_ICON_MAP[e].icon,color:s=u.ADMONITION_ICON_MAP[e].color}=N(e,n.innerText),a=L(e,i,l,s,t),d=a.createDiv("admonition-content-holder").createDiv("admonition-content");d.innerText=o,n.replaceWith(a)}function y(){let n=document.querySelectorAll("pre[class*=\'language-ad\']");if(!!n.length)for(let e of Array.from(n)){M.add(e);let[,i]=e.classList.toString().match(/language-ad-(\\w+)/);if(!i||!(i in u.ADMONITION_ICON_MAP))continue;let{title:t=i[0].toUpperCase()+i.slice(1).toLowerCase(),collapse:o,content:l,icon:s=u.ADMONITION_ICON_MAP[i].icon,color:a=u.ADMONITION_ICON_MAP[i].color}=N(i,e.innerText),r=L(i,t,s,a,o),c=r.createDiv("admonition-content-holder").createDiv("admonition-content");c.innerText=l,e.replaceWith(r)}}\n';var z3=J(require("obsidian"));var G4={};var _4={};var $4={};var Y4={};var B2={"Admonition Settings":"Admonition Settings","Use Obsidian's markdown syntax highlighter in admonition code blocks. This setting is experimental and could cause errors.":"Use Obsidian's markdown syntax highlighter in admonition code blocks. This setting is experimental and could cause errors.","Markdown Syntax Highlighting":"Markdown Syntax Highlighting","Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk.":"Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk."," Sync Links to Metadata Cache":" Sync Links to Metadata Cache","Allows admonitions to be created using ":"Allows admonitions to be created using "," or ":" or ",", instead of using a code block.":", instead of using a code block."," Enable Non-codeblock Admonitions":" Enable Non-codeblock Admonitions","Collapsible by Default":"Collapsible by Default","All admonitions will be collapsible by default. Use ":"All admonitions will be collapsible by default. Use "," to prevent.":" to prevent.","Default Collapse Type":"Default Collapse Type","Collapsible admonitions will be either opened or closed.":"Collapsible admonitions will be either opened or closed.","Add Copy Button":"Add Copy Button","Add a 'copy content' button to admonitions.":"Add a 'copy content' button to admonitions.","Add New":"Add New","Add a new Admonition type.":"Add a new Admonition type.","Add Additional":"Add Additional","Register Commands":"Register Commands","Unregister Commands":"Unregister Commands",Edit:"Edit",Delete:"Delete","Admonition Type":"Admonition Type","Admonition Title":"Admonition Title","This will be the default title for this admonition type.":"This will be the default title for this admonition type.","Admonition type cannot be empty.":"Admonition type cannot be empty.","Admonition type cannot include spaces.":"Admonition type cannot include spaces.","Types must be a valid CSS selector.":"Types must be a valid CSS selector.","Invalid icon name.":"Invalid icon name.","Icon cannot be empty.":"Icon cannot be empty.","Upload Image":"Upload Image","There was an error parsing the image.":"There was an error parsing the image.","Admonition Icon":"Admonition Icon",Color:"Color",Save:"Save","No Admonition Title by Default":"No Admonition Title by Default","The admonition will have no title unless ":"The admonition will have no title unless "," is explicitly provided.":" is explicitly provided.","Show Copy Button":"Show Copy Button","A copy button will be added to the admonition.":"A copy button will be added to the admonition.","Parse Titles as Markdown":"Parse Titles as Markdown","Admonition Titles will be rendered as markdown.":"Admonition Titles will be rendered as markdown."};var X4={};var K4={};var Q4={};var J4={};var c3={};var a3={};var e3={};var i3={};var n3={};var o3={};var t3={};var r3={};var l3={};var f3={};var s3={};var h3={};var m3={"Admonition Settings":"Admonition \u8BBE\u7F6E","Use Obsidian's markdown syntax highlighter in admonition code blocks. This setting is experimental and could cause errors.":"\u5728 admonition \u4EE3\u7801\u5757\u4E2D\u4F7F\u7528 Obsidian \u7684 markdown \u7CFB\u7EDF\u7EA7\u9AD8\u4EAE\u3002\u8BE5\u8BBE\u7F6E\u4E3A\u5B9E\u9A8C\u6027\uFF0C\u53EF\u80FD\u4F1A\u5F15\u53D1\u9519\u8BEF"," Markdown Syntax Highlighting":" Markdown \u7CFB\u7EDF\u9AD8\u4EAE","Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk.":"Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk."," Sync Links to Metadata Cache":" Sync Links to Metadata Cache","Allows admonitions to be created using ":"\u5141\u8BB8 admonitions \u521B\u5EFA\u4F7F\u7528"," or ":"\u6216",", instead of using a code block.":"\uFF0C\u800C\u975E\u4EE3\u7801\u5757"," Enable Non-codeblock Admonitions":" \u5141\u8BB8\u975E\u4EE3\u7801\u5757\u7684 Admonitions","Collapsible by Default":"\u53EF\u6298\u53E0\u9ED8\u8BA4\u503C","All admonitions will be collapsible by default. Use ":"\u6240\u6709\u7684 admonitions \u9ED8\u8BA4\u53EF\u6298\u53E0\u3002\u4F7F\u7528"," to prevent.":" \u6765\u963B\u6B62\u3002","Default Collapse Type":"\u9ED8\u8BA4\u53EF\u6298\u53E0\u7C7B\u578B","Collapsible admonitions will be either opened or closed.":"Collapsible admonitions \u8981\u4E48\u662F openede \u8981\u4E48\u662F closed","Add Copy Button":"\u6DFB\u52A0\u590D\u5236\u6309\u94AE","Add a 'copy content' button to admonitions.":"\u4E3A admonitions \u65B0\u589E\u4E00\u4E2A\u201C\u590D\u5236\u5185\u5BB9\u201D\u6309\u94AE\u3002","Add New":"\u65B0\u589E","Add a new Admonition type.":"\u6DFB\u52A0\u4E00\u4E2A\u65B0\u7684 Admonition \u7C7B\u578B\u3002","Add Additional":"\u989D\u5916\u6DFB\u52A0","Register Commands":"\u6CE8\u518C\u547D\u4EE4","Unregister Commands":"\u6CE8\u9500\u547D\u4EE4",Edit:"\u7F16\u8F91",Delete:"\u5220\u9664","Admonition type cannot be empty.":"Admonition \u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Admonition type cannot include spaces.":"Admonition \u7C7B\u578B\u4E0D\u80FD\u5305\u542B\u7A7A\u683C","Admonition Type":"Admonition \u7C7B\u578B","Types must be a valid CSS selector.":"\u7C7B\u578B\u5FC5\u987B\u4E3A\u5408\u6CD5\u7684 css \u9009\u62E9\u5668\u3002","Invalid icon name.":"\u975E\u6CD5\u56FE\u6807\u540D\u79F0","Icon cannot be empty.":"\u56FE\u6807\u4E0D\u80FD\u4E3A\u7A7A","Upload Image":"\u4E0A\u4F20\u56FE\u50CF","There was an error parsing the image.":"\u4E0A\u4F20\u56FE\u50CF\u65F6\u51FA\u9519\u4E86\u3002","Admonition Icon":"Admonition \u56FE\u6807",Color:"\u989C\u8272",Save:"\u4FDD\u5B58"};var v3={};var Z6={ar:G4,cs:_4,da:$4,de:Y4,en:B2,"en-gb":X4,es:K4,fr:Q4,hi:J4,id:c3,it:a3,ja:e3,ko:i3,nl:n3,nn:o3,pl:t3,pt:r3,"pt-br":l3,ro:f3,ru:s3,tr:h3,"zh-cn":m3,"zh-tw":v3},p3=Z6[z3.moment.locale()];function g(a){return p3&&p3[a]||B2[a]}var Z1=J(require("obsidian"));async function d3(a,c,e={cta:"Yes",secondary:"No"}){return new Promise((i,n)=>{try{let o=new u3(a,c,e);o.onClose=()=>{i(o.confirmed)},o.open()}catch{n()}})}var u3=class extends Z1.Modal{constructor(c,e,i){super(c);this.text=e;this.buttons=i;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:this.text});let c=this.contentEl.createDiv("fantasy-calendar-confirm-buttons");new Z1.ButtonComponent(c).setButtonText(this.buttons.cta).setCta().onClick(()=>{this.confirmed=!0,this.close()}),new Z1.ButtonComponent(c).setButtonText(this.buttons.secondary).onClick(()=>{this.close()})}onOpen(){this.display()}};var H1={octicons:"Octicons",rpg:"RPG Awesome"};var M3=(a=>c=>{try{a.querySelector(c)}catch{return!1}return!0})(document.createDocumentFragment()),l2=class extends u.PluginSettingTab{constructor(c,e){super(c,e);this.plugin=e;this.queue=[];this.converted=0}async display(){this.containerEl.empty(),this.containerEl.addClass("admonition-settings"),this.containerEl.createEl("h2",{text:g("Admonition Settings")});let c=this.containerEl.createDiv("admonitions-nested-settings");u.Platform.isMobile||new u.Setting(c).setName("Export Custom Types as CSS").setDesc("Export a CSS snippet for custom callout types.").addButton(i=>i.setIcon("download").onClick(()=>{let n=[`/* This snippet was auto-generated by the Admonitions plugin */ +`);return s!==void 0&&s!=="none"&&s!=="open"&&s!=="closed"&&(s="closed"),"title"in l||e.noTitle||(f=i),f&&f.trim()===""&&s!==void 0&&s!=="none"&&(f=i,new d4.Notice("An admonition must have a title if it is collapsible.")),{title:f,collapse:s,content:z,icon:h,color:m}}var M4='',K1="admonition-add-command",C4='',Q1="admonition-remove-command",H4='',P1="admonition-warning",g4='',E1="admonition-spin",V4={note:{type:"note",color:"68, 138, 255",icon:{type:"font-awesome",name:"pencil-alt"},command:!1,noTitle:!1},seealso:{type:"note",color:"68, 138, 255",icon:{type:"font-awesome",name:"pencil-alt"},command:!1,noTitle:!1},abstract:{type:"abstract",color:"0, 176, 255",icon:{type:"font-awesome",name:"book"},command:!1,noTitle:!1},summary:{type:"abstract",color:"0, 176, 255",icon:{type:"font-awesome",name:"book"},command:!1,noTitle:!1},tldr:{type:"abstract",color:"0, 176, 255",icon:{type:"font-awesome",name:"book"},command:!1,noTitle:!1},info:{type:"info",color:"0, 184, 212",icon:{type:"font-awesome",name:"info-circle"},command:!1,noTitle:!1},todo:{type:"info",color:"0, 184, 212",icon:{type:"font-awesome",name:"info-circle"},command:!1,noTitle:!1},tip:{type:"tip",color:"0, 191, 165",icon:{type:"font-awesome",name:"fire"},command:!1,noTitle:!1},hint:{type:"tip",color:"0, 191, 165",icon:{type:"font-awesome",name:"fire"},command:!1,noTitle:!1},important:{type:"tip",color:"0, 191, 165",icon:{type:"font-awesome",name:"fire"},command:!1,noTitle:!1},success:{type:"success",color:"0, 200, 83",icon:{type:"font-awesome",name:"check-circle"},command:!1,noTitle:!1},check:{type:"success",color:"0, 200, 83",icon:{type:"font-awesome",name:"check-circle"},command:!1,noTitle:!1},done:{type:"success",color:"0, 200, 83",icon:{type:"font-awesome",name:"check-circle"},command:!1,noTitle:!1},question:{type:"question",color:"100, 221, 23",icon:{type:"font-awesome",name:"question-circle"},command:!1,noTitle:!1},help:{type:"question",color:"100, 221, 23",icon:{type:"font-awesome",name:"question-circle"},command:!1,noTitle:!1},faq:{type:"question",color:"100, 221, 23",icon:{type:"font-awesome",name:"question-circle"},command:!1,noTitle:!1},warning:{type:"warning",color:"255, 145, 0",icon:{type:"font-awesome",name:"exclamation-triangle"},command:!1,noTitle:!1},caution:{type:"warning",color:"255, 145, 0",icon:{type:"font-awesome",name:"exclamation-triangle"},command:!1,noTitle:!1},attention:{type:"warning",color:"255, 145, 0",icon:{type:"font-awesome",name:"exclamation-triangle"},command:!1,noTitle:!1},failure:{type:"failure",color:"255, 82, 82",icon:{type:"font-awesome",name:"times-circle"},command:!1,noTitle:!1},fail:{type:"failure",color:"255, 82, 82",icon:{type:"font-awesome",name:"times-circle"},command:!1,noTitle:!1},missing:{type:"failure",color:"255, 82, 82",icon:{type:"font-awesome",name:"times-circle"},command:!1,noTitle:!1},danger:{type:"danger",color:"255, 23, 68",icon:{type:"font-awesome",name:"bolt"},command:!1,noTitle:!1},error:{type:"danger",color:"255, 23, 68",icon:{type:"font-awesome",name:"bolt"},command:!1,noTitle:!1},bug:{type:"bug",color:"245, 0, 87",icon:{type:"font-awesome",name:"bug"},command:!1,noTitle:!1},example:{type:"example",color:"124, 77, 255",icon:{type:"font-awesome",name:"list-ol"},command:!1,noTitle:!1},quote:{type:"quote",color:"158, 158, 158",icon:{type:"font-awesome",name:"quote-right"},command:!1,noTitle:!1},cite:{type:"quote",color:"158, 158, 158",icon:{type:"font-awesome",name:"quote-right"},command:!1,noTitle:!1}};var u=J(require("obsidian"));var q=J(require("obsidian"));var k="top",D="bottom",T="right",P="left",J1="auto",l1=[k,D,T,P],i1="start",c2="end",L4="clippingParents",a2="viewport",y1="popper",x4="reference",V2=l1.reduce(function(a,c){return a.concat([c+"-"+i1,c+"-"+c2])},[]),e2=[].concat(l1,[J1]).reduce(function(a,c){return a.concat([c,c+"-"+i1,c+"-"+c2])},[]),l6="beforeRead",f6="read",s6="afterRead",h6="beforeMain",m6="main",v6="afterMain",z6="beforeWrite",p6="write",d6="afterWrite",b4=[l6,f6,s6,h6,m6,v6,z6,p6,d6];function O(a){return a?(a.nodeName||"").toLowerCase():null}function w(a){if(a==null)return window;if(a.toString()!=="[object Window]"){var c=a.ownerDocument;return c&&c.defaultView||window}return a}function n1(a){var c=w(a).Element;return a instanceof c||a instanceof Element}function B(a){var c=w(a).HTMLElement;return a instanceof c||a instanceof HTMLElement}function i2(a){if(typeof ShadowRoot=="undefined")return!1;var c=w(a).ShadowRoot;return a instanceof c||a instanceof ShadowRoot}function u6(a){var c=a.state;Object.keys(c.elements).forEach(function(e){var i=c.styles[e]||{},n=c.attributes[e]||{},o=c.elements[e];!B(o)||!O(o)||(Object.assign(o.style,i),Object.keys(n).forEach(function(r){var t=n[r];t===!1?o.removeAttribute(r):o.setAttribute(r,t===!0?"":t)}))})}function M6(a){var c=a.state,e={popper:{position:c.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(c.elements.popper.style,e.popper),c.styles=e,c.elements.arrow&&Object.assign(c.elements.arrow.style,e.arrow),function(){Object.keys(c.elements).forEach(function(i){var n=c.elements[i],o=c.attributes[i]||{},r=Object.keys(c.styles.hasOwnProperty(i)?c.styles[i]:e[i]),t=r.reduce(function(l,f){return l[f]="",l},{});!B(n)||!O(n)||(Object.assign(n.style,t),Object.keys(o).forEach(function(l){n.removeAttribute(l)}))})}}var N4={name:"applyStyles",enabled:!0,phase:"write",fn:u6,effect:M6,requires:["computeStyles"]};function I(a){return a.split("-")[0]}function _(a){var c=a.getBoundingClientRect();return{width:c.width,height:c.height,top:c.top,right:c.right,bottom:c.bottom,left:c.left,x:c.left,y:c.top}}function z1(a){var c=_(a),e=a.offsetWidth,i=a.offsetHeight;return Math.abs(c.width-e)<=1&&(e=c.width),Math.abs(c.height-i)<=1&&(i=c.height),{x:a.offsetLeft,y:a.offsetTop,width:e,height:i}}function D1(a,c){var e=c.getRootNode&&c.getRootNode();if(a.contains(c))return!0;if(e&&i2(e)){var i=c;do{if(i&&a.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function j(a){return w(a).getComputedStyle(a)}function L2(a){return["table","td","th"].indexOf(O(a))>=0}function R(a){return((n1(a)?a.ownerDocument:a.document)||window.document).documentElement}function o1(a){return O(a)==="html"?a:a.assignedSlot||a.parentNode||(i2(a)?a.host:null)||R(a)}function A4(a){return!B(a)||j(a).position==="fixed"?null:a.offsetParent}function C6(a){var c=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,e=navigator.userAgent.indexOf("Trident")!==-1;if(e&&B(a)){var i=j(a);if(i.position==="fixed")return null}for(var n=o1(a);B(n)&&["html","body"].indexOf(O(n))<0;){var o=j(n);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||c&&o.willChange==="filter"||c&&o.filter&&o.filter!=="none")return n;n=n.parentNode}return null}function X(a){for(var c=w(a),e=A4(a);e&&L2(e)&&j(e).position==="static";)e=A4(e);return e&&(O(e)==="html"||O(e)==="body"&&j(e).position==="static")?c:e||C6(a)||c}function p1(a){return["top","bottom"].indexOf(a)>=0?"x":"y"}var $=Math.max,f1=Math.min,O1=Math.round;function d1(a,c,e){return $(a,f1(c,e))}function I1(){return{top:0,right:0,bottom:0,left:0}}function B1(a){return Object.assign({},I1(),a)}function R1(a,c){return c.reduce(function(e,i){return e[i]=a,e},{})}var H6=function(c,e){return c=typeof c=="function"?c(Object.assign({},e.rects,{placement:e.placement})):c,B1(typeof c!="number"?c:R1(c,l1))};function g6(a){var c,e=a.state,i=a.name,n=a.options,o=e.elements.arrow,r=e.modifiersData.popperOffsets,t=I(e.placement),l=p1(t),f=[P,T].indexOf(t)>=0,s=f?"height":"width";if(!(!o||!r)){var h=H6(n.padding,e),m=z1(o),z=l==="y"?k:P,v=l==="y"?D:T,M=e.rects.reference[s]+e.rects.reference[l]-r[l]-e.rects.popper[s],p=r[l]-e.rects.reference[l],C=X(o),H=C?l==="y"?C.clientHeight||0:C.clientWidth||0:0,L=M/2-p/2,d=h[z],N=H-m[s]-h[v],V=H/2-m[s]/2+L,y=d1(d,V,N),A=l;e.modifiersData[i]=(c={},c[A]=y,c.centerOffset=y-V,c)}}function V6(a){var c=a.state,e=a.options,i=e.element,n=i===void 0?"[data-popper-arrow]":i;n!=null&&(typeof n=="string"&&(n=c.elements.popper.querySelector(n),!n)||!D1(c.elements.popper,n)||(c.elements.arrow=n))}var y4={name:"arrow",enabled:!0,phase:"main",fn:g6,effect:V6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};var L6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function x6(a){var c=a.x,e=a.y,i=window,n=i.devicePixelRatio||1;return{x:O1(O1(c*n)/n)||0,y:O1(O1(e*n)/n)||0}}function S4(a){var c,e=a.popper,i=a.popperRect,n=a.placement,o=a.offsets,r=a.position,t=a.gpuAcceleration,l=a.adaptive,f=a.roundOffsets,s=f===!0?x6(o):typeof f=="function"?f(o):o,h=s.x,m=h===void 0?0:h,z=s.y,v=z===void 0?0:z,M=o.hasOwnProperty("x"),p=o.hasOwnProperty("y"),C=P,H=k,L=window;if(l){var d=X(e),N="clientHeight",V="clientWidth";d===w(e)&&(d=R(e),j(d).position!=="static"&&(N="scrollHeight",V="scrollWidth")),d=d,n===k&&(H=D,v-=d[N]-i.height,v*=t?1:-1),n===P&&(C=T,m-=d[V]-i.width,m*=t?1:-1)}var y=Object.assign({position:r},l&&L6);if(t){var A;return Object.assign({},y,(A={},A[H]=p?"0":"",A[C]=M?"0":"",A.transform=(L.devicePixelRatio||1)<2?"translate("+m+"px, "+v+"px)":"translate3d("+m+"px, "+v+"px, 0)",A))}return Object.assign({},y,(c={},c[H]=p?v+"px":"",c[C]=M?m+"px":"",c.transform="",c))}function b6(a){var c=a.state,e=a.options,i=e.gpuAcceleration,n=i===void 0?!0:i,o=e.adaptive,r=o===void 0?!0:o,t=e.roundOffsets,l=t===void 0?!0:t;if(!1)var f;var s={placement:I(c.placement),popper:c.elements.popper,popperRect:c.rects.popper,gpuAcceleration:n};c.modifiersData.popperOffsets!=null&&(c.styles.popper=Object.assign({},c.styles.popper,S4(Object.assign({},s,{offsets:c.modifiersData.popperOffsets,position:c.options.strategy,adaptive:r,roundOffsets:l})))),c.modifiersData.arrow!=null&&(c.styles.arrow=Object.assign({},c.styles.arrow,S4(Object.assign({},s,{offsets:c.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),c.attributes.popper=Object.assign({},c.attributes.popper,{"data-popper-placement":c.placement})}var w4={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:b6,data:{}};var n2={passive:!0};function N6(a){var c=a.state,e=a.instance,i=a.options,n=i.scroll,o=n===void 0?!0:n,r=i.resize,t=r===void 0?!0:r,l=w(c.elements.popper),f=[].concat(c.scrollParents.reference,c.scrollParents.popper);return o&&f.forEach(function(s){s.addEventListener("scroll",e.update,n2)}),t&&l.addEventListener("resize",e.update,n2),function(){o&&f.forEach(function(s){s.removeEventListener("scroll",e.update,n2)}),t&&l.removeEventListener("resize",e.update,n2)}}var k4={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:N6,data:{}};var A6={left:"right",right:"left",bottom:"top",top:"bottom"};function S1(a){return a.replace(/left|right|bottom|top/g,function(c){return A6[c]})}var y6={start:"end",end:"start"};function o2(a){return a.replace(/start|end/g,function(c){return y6[c]})}function u1(a){var c=w(a),e=c.pageXOffset,i=c.pageYOffset;return{scrollLeft:e,scrollTop:i}}function M1(a){return _(R(a)).left+u1(a).scrollLeft}function x2(a){var c=w(a),e=R(a),i=c.visualViewport,n=e.clientWidth,o=e.clientHeight,r=0,t=0;return i&&(n=i.width,o=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=i.offsetLeft,t=i.offsetTop)),{width:n,height:o,x:r+M1(a),y:t}}function b2(a){var c,e=R(a),i=u1(a),n=(c=a.ownerDocument)==null?void 0:c.body,o=$(e.scrollWidth,e.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=$(e.scrollHeight,e.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),t=-i.scrollLeft+M1(a),l=-i.scrollTop;return j(n||e).direction==="rtl"&&(t+=$(e.clientWidth,n?n.clientWidth:0)-o),{width:o,height:r,x:t,y:l}}function C1(a){var c=j(a),e=c.overflow,i=c.overflowX,n=c.overflowY;return/auto|scroll|overlay|hidden/.test(e+n+i)}function t2(a){return["html","body","#document"].indexOf(O(a))>=0?a.ownerDocument.body:B(a)&&C1(a)?a:t2(o1(a))}function s1(a,c){var e;c===void 0&&(c=[]);var i=t2(a),n=i===((e=a.ownerDocument)==null?void 0:e.body),o=w(i),r=n?[o].concat(o.visualViewport||[],C1(i)?i:[]):i,t=c.concat(r);return n?t:t.concat(s1(o1(r)))}function w1(a){return Object.assign({},a,{left:a.x,top:a.y,right:a.x+a.width,bottom:a.y+a.height})}function S6(a){var c=_(a);return c.top=c.top+a.clientTop,c.left=c.left+a.clientLeft,c.bottom=c.top+a.clientHeight,c.right=c.left+a.clientWidth,c.width=a.clientWidth,c.height=a.clientHeight,c.x=c.left,c.y=c.top,c}function T4(a,c){return c===a2?w1(x2(a)):B(c)?S6(c):w1(b2(R(a)))}function w6(a){var c=s1(o1(a)),e=["absolute","fixed"].indexOf(j(a).position)>=0,i=e&&B(a)?X(a):a;return n1(i)?c.filter(function(n){return n1(n)&&D1(n,i)&&O(n)!=="body"}):[]}function N2(a,c,e){var i=c==="clippingParents"?w6(a):[].concat(c),n=[].concat(i,[e]),o=n[0],r=n.reduce(function(t,l){var f=T4(a,l);return t.top=$(f.top,t.top),t.right=f1(f.right,t.right),t.bottom=f1(f.bottom,t.bottom),t.left=$(f.left,t.left),t},T4(a,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function c1(a){return a.split("-")[1]}function F1(a){var c=a.reference,e=a.element,i=a.placement,n=i?I(i):null,o=i?c1(i):null,r=c.x+c.width/2-e.width/2,t=c.y+c.height/2-e.height/2,l;switch(n){case k:l={x:r,y:c.y-e.height};break;case D:l={x:r,y:c.y+c.height};break;case T:l={x:c.x+c.width,y:t};break;case P:l={x:c.x-e.width,y:t};break;default:l={x:c.x,y:c.y}}var f=n?p1(n):null;if(f!=null){var s=f==="y"?"height":"width";switch(o){case i1:l[f]=l[f]-(c[s]/2-e[s]/2);break;case c2:l[f]=l[f]+(c[s]/2-e[s]/2);break;default:}}return l}function K(a,c){c===void 0&&(c={});var e=c,i=e.placement,n=i===void 0?a.placement:i,o=e.boundary,r=o===void 0?L4:o,t=e.rootBoundary,l=t===void 0?a2:t,f=e.elementContext,s=f===void 0?y1:f,h=e.altBoundary,m=h===void 0?!1:h,z=e.padding,v=z===void 0?0:z,M=B1(typeof v!="number"?v:R1(v,l1)),p=s===y1?x4:y1,C=a.elements.reference,H=a.rects.popper,L=a.elements[m?p:s],d=N2(n1(L)?L:L.contextElement||R(a.elements.popper),r,l),N=_(C),V=F1({reference:N,element:H,strategy:"absolute",placement:n}),y=w1(Object.assign({},H,V)),A=s===y1?y:N,E={top:d.top-A.top+M.top,bottom:A.bottom-d.bottom+M.bottom,left:d.left-A.left+M.left,right:A.right-d.right+M.right},S=a.modifiersData.offset;if(s===y1&&S){var Z=S[n];Object.keys(E).forEach(function(e1){var W=[T,D].indexOf(e1)>=0?1:-1,h1=[k,D].indexOf(e1)>=0?"y":"x";E[e1]+=Z[h1]*W})}return E}function A2(a,c){c===void 0&&(c={});var e=c,i=e.placement,n=e.boundary,o=e.rootBoundary,r=e.padding,t=e.flipVariations,l=e.allowedAutoPlacements,f=l===void 0?e2:l,s=c1(i),h=s?t?V2:V2.filter(function(v){return c1(v)===s}):l1,m=h.filter(function(v){return f.indexOf(v)>=0});m.length===0&&(m=h);var z=m.reduce(function(v,M){return v[M]=K(a,{placement:M,boundary:n,rootBoundary:o,padding:r})[I(M)],v},{});return Object.keys(z).sort(function(v,M){return z[v]-z[M]})}function k6(a){if(I(a)===J1)return[];var c=S1(a);return[o2(a),c,o2(c)]}function T6(a){var c=a.state,e=a.options,i=a.name;if(!c.modifiersData[i]._skip){for(var n=e.mainAxis,o=n===void 0?!0:n,r=e.altAxis,t=r===void 0?!0:r,l=e.fallbackPlacements,f=e.padding,s=e.boundary,h=e.rootBoundary,m=e.altBoundary,z=e.flipVariations,v=z===void 0?!0:z,M=e.allowedAutoPlacements,p=c.options.placement,C=I(p),H=C===p,L=l||(H||!v?[S1(p)]:k6(p)),d=[p].concat(L).reduce(function(v1,Q){return v1.concat(I(Q)===J1?A2(c,{placement:Q,boundary:s,rootBoundary:h,padding:f,flipVariations:v,allowedAutoPlacements:M}):Q)},[]),N=c.rects.reference,V=c.rects.popper,y=new Map,A=!0,E=d[0],S=0;S=0,T1=h1?"width":"height",x1=K(c,{placement:Z,boundary:s,rootBoundary:h,altBoundary:m,padding:f}),m1=h1?W?T:P:W?D:k;N[T1]>V[T1]&&(m1=S1(m1));var u2=S1(m1),b1=[];if(o&&b1.push(x1[e1]<=0),t&&b1.push(x1[m1]<=0,x1[u2]<=0),b1.every(function(v1){return v1})){E=Z,A=!1;break}y.set(Z,b1)}if(A)for(var G1=v?3:1,M2=function(Q){var $1=d.find(function(C2){var A1=y.get(C2);if(A1)return A1.slice(0,Q).every(function(H2){return H2})});if($1)return E=$1,"break"},N1=G1;N1>0;N1--){var _1=M2(N1);if(_1==="break")break}c.placement!==E&&(c.modifiersData[i]._skip=!0,c.placement=E,c.reset=!0)}}var P4={name:"flip",enabled:!0,phase:"main",fn:T6,requiresIfExists:["offset"],data:{_skip:!1}};function E4(a,c,e){return e===void 0&&(e={x:0,y:0}),{top:a.top-c.height-e.y,right:a.right-c.width+e.x,bottom:a.bottom-c.height+e.y,left:a.left-c.width-e.x}}function D4(a){return[k,T,D,P].some(function(c){return a[c]>=0})}function P6(a){var c=a.state,e=a.name,i=c.rects.reference,n=c.rects.popper,o=c.modifiersData.preventOverflow,r=K(c,{elementContext:"reference"}),t=K(c,{altBoundary:!0}),l=E4(r,i),f=E4(t,n,o),s=D4(l),h=D4(f);c.modifiersData[e]={referenceClippingOffsets:l,popperEscapeOffsets:f,isReferenceHidden:s,hasPopperEscaped:h},c.attributes.popper=Object.assign({},c.attributes.popper,{"data-popper-reference-hidden":s,"data-popper-escaped":h})}var O4={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:P6};function E6(a,c,e){var i=I(a),n=[P,k].indexOf(i)>=0?-1:1,o=typeof e=="function"?e(Object.assign({},c,{placement:a})):e,r=o[0],t=o[1];return r=r||0,t=(t||0)*n,[P,T].indexOf(i)>=0?{x:t,y:r}:{x:r,y:t}}function D6(a){var c=a.state,e=a.options,i=a.name,n=e.offset,o=n===void 0?[0,0]:n,r=e2.reduce(function(s,h){return s[h]=E6(h,c.rects,o),s},{}),t=r[c.placement],l=t.x,f=t.y;c.modifiersData.popperOffsets!=null&&(c.modifiersData.popperOffsets.x+=l,c.modifiersData.popperOffsets.y+=f),c.modifiersData[i]=r}var I4={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:D6};function O6(a){var c=a.state,e=a.name;c.modifiersData[e]=F1({reference:c.rects.reference,element:c.rects.popper,strategy:"absolute",placement:c.placement})}var B4={name:"popperOffsets",enabled:!0,phase:"read",fn:O6,data:{}};function y2(a){return a==="x"?"y":"x"}function I6(a){var c=a.state,e=a.options,i=a.name,n=e.mainAxis,o=n===void 0?!0:n,r=e.altAxis,t=r===void 0?!1:r,l=e.boundary,f=e.rootBoundary,s=e.altBoundary,h=e.padding,m=e.tether,z=m===void 0?!0:m,v=e.tetherOffset,M=v===void 0?0:v,p=K(c,{boundary:l,rootBoundary:f,padding:h,altBoundary:s}),C=I(c.placement),H=c1(c.placement),L=!H,d=p1(C),N=y2(d),V=c.modifiersData.popperOffsets,y=c.rects.reference,A=c.rects.popper,E=typeof M=="function"?M(Object.assign({},c.rects,{placement:c.placement})):M,S={x:0,y:0};if(!!V){if(o||t){var Z=d==="y"?k:P,e1=d==="y"?D:T,W=d==="y"?"height":"width",h1=V[d],T1=V[d]+p[Z],x1=V[d]-p[e1],m1=z?-A[W]/2:0,u2=H===i1?y[W]:A[W],b1=H===i1?-A[W]:-y[W],G1=c.elements.arrow,M2=z&&G1?z1(G1):{width:0,height:0},N1=c.modifiersData["arrow#persistent"]?c.modifiersData["arrow#persistent"].padding:I1(),_1=N1[Z],v1=N1[e1],Q=d1(0,y[W],M2[W]),$1=L?y[W]/2-m1-Q-_1-E:u2-Q-_1-E,C2=L?-y[W]/2+m1+Q+v1+E:b1+Q+v1+E,A1=c.elements.arrow&&X(c.elements.arrow),H2=A1?d==="y"?A1.clientTop||0:A1.clientLeft||0:0,l4=c.modifiersData.offset?c.modifiersData.offset[c.placement][d]:0,f4=V[d]+$1-l4-H2,s4=V[d]+C2-l4;if(o){var h4=d1(z?f1(T1,f4):T1,h1,z?$(x1,s4):x1);V[d]=h4,S[d]=h4-h1}if(t){var Q3=d==="x"?k:P,J3=d==="x"?D:T,Y1=V[N],m4=Y1+p[Q3],v4=Y1-p[J3],z4=d1(z?f1(m4,f4):m4,Y1,z?$(v4,s4):v4);V[N]=z4,S[N]=z4-Y1}}c.modifiersData[i]=S}}var R4={name:"preventOverflow",enabled:!0,phase:"main",fn:I6,requiresIfExists:["offset"]};function S2(a){return{scrollLeft:a.scrollLeft,scrollTop:a.scrollTop}}function w2(a){return a===w(a)||!B(a)?u1(a):S2(a)}function k2(a,c,e){e===void 0&&(e=!1);var i=R(c),n=_(a),o=B(c),r={scrollLeft:0,scrollTop:0},t={x:0,y:0};return(o||!o&&!e)&&((O(c)!=="body"||C1(i))&&(r=w2(c)),B(c)?(t=_(c),t.x+=c.clientLeft,t.y+=c.clientTop):i&&(t.x=M1(i))),{x:n.left+r.scrollLeft-t.x,y:n.top+r.scrollTop-t.y,width:n.width,height:n.height}}function B6(a){var c=new Map,e=new Set,i=[];a.forEach(function(o){c.set(o.name,o)});function n(o){e.add(o.name);var r=[].concat(o.requires||[],o.requiresIfExists||[]);r.forEach(function(t){if(!e.has(t)){var l=c.get(t);l&&n(l)}}),i.push(o)}return a.forEach(function(o){e.has(o.name)||n(o)}),i}function T2(a){var c=B6(a);return b4.reduce(function(e,i){return e.concat(c.filter(function(n){return n.phase===i}))},[])}function P2(a){var c;return function(){return c||(c=new Promise(function(e){Promise.resolve().then(function(){c=void 0,e(a())})})),c}}function E2(a){var c=a.reduce(function(e,i){var n=e[i.name];return e[i.name]=n?Object.assign({},n,i,{options:Object.assign({},n.options,i.options),data:Object.assign({},n.data,i.data)}):i,e},{});return Object.keys(c).map(function(e){return c[e]})}var F4={placement:"bottom",modifiers:[],strategy:"absolute"};function Z4(){for(var a=arguments.length,c=new Array(a),e=0;e(this.setSelectedItem(this.selectedItem-1,!0),!1)),i.register([],"ArrowDown",()=>(this.setSelectedItem(this.selectedItem+1,!0),!1)),i.register([],"Enter",n=>(this.useSelectedItem(n),!1)),i.register([],"Tab",n=>(this.useSelectedItem(n),!1))}chooseSuggestion(c){if(!this.items||!this.items.length)return;let e=this.items[this.selectedItem];e&&this.owner.selectSuggestion(e,c)}onSuggestionClick(c,e){if(c.preventDefault(),!this.suggestions||!this.suggestions.length)return;let i=this.suggestions.indexOf(e);this.setSelectedItem(i,!1),this.useSelectedItem(c)}onSuggestionMouseover(c,e){if(!this.suggestions||!this.suggestions.length)return;let i=this.suggestions.indexOf(e);this.setSelectedItem(i,!1)}empty(){this.containerEl.empty()}setSuggestions(c){this.containerEl.empty();let e=[];c.forEach(i=>{let n=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(i,n),e.push(n)}),this.items=c,this.suggestions=e,this.setSelectedItem(0,!1)}useSelectedItem(c){if(!this.items||!this.items.length)return;let e=this.items[this.selectedItem];e&&this.owner.selectSuggestion(e,c),q.Platform.isMobile&&this.chooseSuggestion(c)}wrap(c,e){return(c%e+e)%e}setSelectedItem(c,e){let i=this.wrap(c,this.suggestions.length),n=this.suggestions[this.selectedItem],o=this.suggestions[i];n&&n.removeClass("is-selected"),o&&o.addClass("is-selected"),this.selectedItem=i,e&&o.scrollIntoView(!1)}},O2=class extends q.FuzzySuggestModal{constructor(c,e,i){super(c);this.items=[];this.scope=new q.Scope;this.emptyStateText="No match found";this.limit=100;this.inputEl=e,this.items=i,this.suggestEl=createDiv("suggestion-container"),this.suggestEl.style.width=`${e.clientWidth}px`,this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new q4(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",n=>{n.preventDefault()})}empty(){this.suggester.empty()}onInputChanged(){let c=this.modifyInput(this.inputEl.value),e=this.getSuggestions(c);e.length>0?this.suggester.setSuggestions(e.slice(0,this.limit)):this.onNoSuggestion(),this.open()}modifyInput(c){return c}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),document.body.appendChild(this.suggestEl),this.popper=D2(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(c){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));let e=this.promptEl.createDiv("prompt-instruction");for(let i of c)e.appendChild(i)}},I2=class extends O2{constructor(c,e){super(c.app,e.inputEl,c.iconManager.iconDefinitions);this.plugin=c;this.icons=c.iconManager.iconDefinitions,this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){let c=this.inputEl.value,e=this.icons.find(i=>i.name===c.trim());e!=this.icon&&(this.icon=e,this.icons&&this.onInputChanged())}getItemText(c){return c.name}onChooseItem(c){this.text.setValue(c.name),this.icon=c}selectSuggestion({item:c}){this.text.setValue(c.name),this.icon=c,this.onClose(),this.close()}renderSuggestion(c,e){let{item:i,match:n}=c||{},o=e.createDiv({cls:"suggestion-content icon"});if(!i){o.setText(this.emptyStateText),o.parentElement.addClass("is-selected");return}let r=n.matches.map(l=>createSpan("suggestion-highlight"));for(let l=0;ls[0]===l);if(f){let s=r[n.matches.indexOf(f)];o.appendChild(s),s.appendText(i.name.substring(f[0],f[1])),l+=f[1]-f[0]-1;continue}o.appendText(i.name[l])}let t=createDiv("suggestion-flair admonition-suggester-icon");t.appendChild(this.plugin.iconManager.getIconNode(i)??createDiv()),o.prepend(t),o.createDiv({cls:"suggestion-note",text:this.plugin.iconManager.getIconModuleName(i)})}getItems(){return this.icons}},U4=class extends O2{constructor(c,e,i){super(c.app,e.inputEl,i);this.plugin=c;this.admonitions=[...i],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){let c=this.inputEl.value,e=this.admonitions.find(i=>i.type===c.trim());e!=this.admonition&&(this.admonition=e,this.admonitions&&this.onInputChanged())}getItemText(c){return c.type}onChooseItem(c){this.text.setValue(c.type),this.admonition=c}selectSuggestion({item:c}){this.text.setValue(c.type),this.onClose(),this.close()}renderSuggestion(c,e){let{item:i,match:n}=c||{},o=e.createDiv({cls:"suggestion-content icon"});if(!i){o.setText(this.emptyStateText),o.parentElement.addClass("is-selected");return}let r=n.matches.map(l=>createSpan("suggestion-highlight"));for(let l=0;ls[0]===l);if(f){let s=r[n.matches.indexOf(f)];o.appendChild(s),s.appendText(i.type.substring(f[0],f[1])),l+=f[1]-f[0]-1;continue}o.appendText(i.type[l])}let t=createDiv("suggestion-flair admonition-suggester-icon");t.appendChild(this.plugin.iconManager.getIconNode(i.icon)??createDiv()).setAttribute("color",`rgb(${i.color})`),o.prepend(t)}getItems(){return this.admonitions}},r2=class extends q.Modal{constructor(c){super(c.app);this.plugin=c;this.collapse=this.plugin.data.autoCollapse?this.plugin.data.defaultCollapseType:"none";this.containerEl.addClass("insert-admonition-modal"),this.onOpen=()=>this.display(!0)}async display(c){let{contentEl:e}=this;e.empty(),new q.Setting(e).setName("Admonition Type").addText(t=>{t.setPlaceholder("Admonition Type").setValue(this.type);let l=new U4(this.plugin,t,this.plugin.admonitionArray),f=()=>{t.inputEl.value&&this.plugin.admonitions[t.inputEl.value]?(this.type=t.inputEl.value,this.title?.length||(this.title=this.type[0].toUpperCase()+this.type.slice(1).toLowerCase()),n.setValue(this.title)):(new q.Notice("No admonition type by that name exists."),t.inputEl.value=""),this.buildAdmonition()};t.inputEl.onblur=f,l.onClose=f,c&&(l.open(),t.inputEl.focus())});let n;new q.Setting(e).setName("Admonition Title").setDesc("Leave blank to render without a title.").addText(t=>{n=t,t.setValue(this.title),t.onChange(l=>{if(this.title=l,l.length==0?this.noTitle=!0:this.noTitle=!1,this.element){let f=this.plugin.admonitions[this.type],s=this.plugin.getAdmonitionElement(this.type,this.title,f.icon,f.injectColor??this.plugin.data.injectColor?f.color:null,this.collapse);s.createDiv({cls:"admonition-content",text:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla."}),this.element.replaceWith(s),this.element=s}})}),new q.Setting(e).setName("Make Collapsible").addDropdown(t=>{t.addOption("open","Open"),t.addOption("closed","Closed"),t.addOption("none","None"),t.setValue(this.collapse),t.onChange(l=>{this.collapse=l,this.buildAdmonition()})}),this.admonitionEl=this.contentEl.createDiv(),this.buildAdmonition(),new q.Setting(e).addButton(t=>t.setButtonText("Insert").setCta().onClick(()=>{this.insert=!0,this.close()})).addExtraButton(t=>{t.setIcon("cross").setTooltip("Cancel").onClick(()=>this.close()),t.extraSettingsEl.setAttr("tabindex",0),t.extraSettingsEl.onkeydown=l=>{l.key=="Enter"&&this.close()}})}buildAdmonition(){if(this.admonitionEl.empty(),this.type&&this.plugin.admonitions[this.type]){let c=this.plugin.admonitions[this.type];this.element=this.plugin.getAdmonitionElement(this.type,this.title,c.icon,c.injectColor??this.plugin.data.injectColor?c.color:null,this.collapse),this.element.createDiv({cls:"admonition-content",text:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla."}),this.admonitionEl.appendChild(this.element)}}};var W4='/*\nTHIS IS A GENERATED/BUNDLED FILE BY ESBUILD\nif you want to view the source, please visit the github repository of this plugin\n*/\n\nfunction T(n,e,i){let t=document.createElement(n);typeof e=="string"&&(e={cls:e});let o=e||{},l=o.cls,s=o.text,a=o.attr,r=o.title,d=o.value,c=o.type,g=i||o.parent,f=o.prepend,m=o.href;return l&&(Array.isArray(l)?t.className=l.join(" "):t.className=l),s&&(t.textContent=s),a&&Object.keys(a).forEach(p=>{let E=a[p];E!==null&&t.setAttribute(p,String(E))}),r&&(t.title=r),d&&(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLOptionElement)&&(t.value=d),c&&t instanceof HTMLStyleElement&&t.setAttribute("type",c),m&&(t instanceof HTMLAnchorElement||t instanceof HTMLLinkElement)&&(t.href=m),g&&(f?g.insertBefore(t,g.firstChild):g.appendChild(t)),t}var h=function(n,e){return T("div",n,e)};Node.prototype.createDiv=function(n,e){return h(n,this)};Node.prototype.createEl=function(n,e,i){return T(n,e,this)};Element.prototype.addClass=function(...n){let e=[];for(let i=0;i{y(),b()};function w(){return new Promise((n,e)=>{let i=document.querySelector(".markdown-preview-sizer");if(i)n(i);else{let t=new MutationObserver(o=>{for(let l of o)if(l.type=="childList"&&l.addedNodes.length){for(let s of Array.from(l.addedNodes))if(s instanceof HTMLDivElement){if(s.hasClass("publish-renderer")){let a=s.querySelector(".markdown-preview-sizer");a&&(t.disconnect(),n(a))}s.hasClass("markdown-preview-sizer")&&(t.disconnect(),n(i))}}});t.observe(document.body,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}})}async function b(){let n=await w();new MutationObserver(i=>{i.forEach(t=>{t.type=="childList"&&t.addedNodes.length&&t.addedNodes.forEach(o=>{if(o&&o instanceof HTMLDivElement&&!o.childElementCount){let l=new MutationObserver(s=>{for(let a of s)if(a.type=="childList"&&a.addedNodes.length)for(let r of Array.from(a.addedNodes))r instanceof HTMLPreElement&&(!M.has(r)&&Array.from(r.classList).some(d=>/language-ad-(\\w+)/.test(d))?(l.disconnect(),M.add(r),v(r)):(l.disconnect(),H(r)))});l.observe(o,{attributes:!1,childList:!0,characterData:!1,subtree:!1})}o&&o instanceof HTMLElement&&o.children.length&&o.firstElementChild instanceof HTMLPreElement&&H(o.firstElementChild)})})}).observe(n,{attributes:!1,childList:!0,subtree:!1})}function H(n){let e=new MutationObserver(i=>{i.forEach(t=>{t.target instanceof HTMLPreElement&&!M.has(t.target)&&t.type==="attributes"&&t.attributeName==="class"&&Array.from(t.target.classList).some(o=>/language-ad-(\\w+)/.test(o))&&(e.disconnect(),M.add(t.target),v(t.target))})});e.observe(n,{attributes:!0,childList:!1,characterData:!1,subtree:!1})}function v(n){let[,e]=n.classList.toString().match(/language-ad-(\\w+)/);if(!e||!(e in u.ADMONITION_ICON_MAP))return;let{title:i=e[0].toUpperCase()+e.slice(1).toLowerCase(),collapse:t,content:o,icon:l=u.ADMONITION_ICON_MAP[e].icon,color:s=u.ADMONITION_ICON_MAP[e].color}=N(e,n.innerText),a=L(e,i,l,s,t),d=a.createDiv("admonition-content-holder").createDiv("admonition-content");d.innerText=o,n.replaceWith(a)}function y(){let n=document.querySelectorAll("pre[class*=\'language-ad\']");if(!!n.length)for(let e of Array.from(n)){M.add(e);let[,i]=e.classList.toString().match(/language-ad-(\\w+)/);if(!i||!(i in u.ADMONITION_ICON_MAP))continue;let{title:t=i[0].toUpperCase()+i.slice(1).toLowerCase(),collapse:o,content:l,icon:s=u.ADMONITION_ICON_MAP[i].icon,color:a=u.ADMONITION_ICON_MAP[i].color}=N(i,e.innerText),r=L(i,t,s,a,o),c=r.createDiv("admonition-content-holder").createDiv("admonition-content");c.innerText=l,e.replaceWith(r)}}\n';var z3=J(require("obsidian"));var G4={};var _4={};var $4={};var Y4={};var B2={"Admonition Settings":"Admonition Settings","Use Obsidian's markdown syntax highlighter in admonition code blocks. This setting is experimental and could cause errors.":"Use Obsidian's markdown syntax highlighter in admonition code blocks. This setting is experimental and could cause errors.","Markdown Syntax Highlighting":"Markdown Syntax Highlighting","Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk.":"Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk."," Sync Links to Metadata Cache":" Sync Links to Metadata Cache","Allows admonitions to be created using ":"Allows admonitions to be created using "," or ":" or ",", instead of using a code block.":", instead of using a code block."," Enable Non-codeblock Admonitions":" Enable Non-codeblock Admonitions","Collapsible by Default":"Collapsible by Default","All admonitions will be collapsible by default. Use ":"All admonitions will be collapsible by default. Use "," to prevent.":" to prevent.","Default Collapse Type":"Default Collapse Type","Collapsible admonitions will be either opened or closed.":"Collapsible admonitions will be either opened or closed.","Add Copy Button":"Add Copy Button","Add a 'copy content' button to admonitions.":"Add a 'copy content' button to admonitions.","Add New":"Add New","Add a new Admonition type.":"Add a new Admonition type.","Add Additional":"Add Additional","Register Commands":"Register Commands","Unregister Commands":"Unregister Commands",Edit:"Edit",Delete:"Delete","Admonition Type":"Admonition Type","Admonition Title":"Admonition Title","This will be the default title for this admonition type.":"This will be the default title for this admonition type.","Admonition type cannot be empty.":"Admonition type cannot be empty.","Admonition type cannot include spaces.":"Admonition type cannot include spaces.","Types must be a valid CSS selector.":"Types must be a valid CSS selector.","Invalid icon name.":"Invalid icon name.","Icon cannot be empty.":"Icon cannot be empty.","Upload Image":"Upload Image","There was an error parsing the image.":"There was an error parsing the image.","Admonition Icon":"Admonition Icon",Color:"Color",Save:"Save","No Admonition Title by Default":"No Admonition Title by Default","The admonition will have no title unless ":"The admonition will have no title unless "," is explicitly provided.":" is explicitly provided.","Show Copy Button":"Show Copy Button","A copy button will be added to the admonition.":"A copy button will be added to the admonition.","Parse Titles as Markdown":"Parse Titles as Markdown","Admonition Titles will be rendered as markdown.":"Admonition Titles will be rendered as markdown."};var X4={};var K4={};var Q4={};var J4={};var c3={};var a3={};var e3={};var i3={};var n3={};var o3={};var t3={};var r3={};var l3={};var f3={};var s3={};var h3={};var m3={"Admonition Settings":"Admonition \u8BBE\u7F6E","Use Obsidian's markdown syntax highlighter in admonition code blocks. This setting is experimental and could cause errors.":"\u5728 admonition \u4EE3\u7801\u5757\u4E2D\u4F7F\u7528 Obsidian \u7684 markdown \u8BED\u6CD5\u9AD8\u4EAE\u3002\u8BE5\u8BBE\u7F6E\u4E3A\u5B9E\u9A8C\u6027\u9009\u9879\uFF0C\u53EF\u80FD\u4F1A\u5F15\u53D1\u9519\u8BEF\u3002","Markdown Syntax Highlighting":"Markdown \u8BED\u6CD5\u9AD8\u4EAE","Try to sync internal links to the metadata cache to display in graph view. This setting could have unintended consequences. Use at your own risk.":"\u5C1D\u8BD5\u5C06\u5185\u90E8\u94FE\u63A5\u540C\u6B65\u81F3 metadata \u7F13\u5B58\uFF0C\u4EE5\u4FBF\u5728\u56FE\u5F62\u89C6\u56FE\u4E2D\u663E\u793A\u3002\u8FD9\u4E2A\u8BBE\u7F6E\u53EF\u80FD\u4F1A\u4EA7\u751F\u610F\u60F3\u4E0D\u5230\u7684\u540E\u679C\u3002\u4F7F\u7528\u65F6\u8BF7\u81EA\u884C\u627F\u62C5\u98CE\u9669\u3002"," Sync Links to Metadata Cache":" \u540C\u6B65\u94FE\u63A5\u81F3 metadata \u7F13\u5B58","Allows admonitions to be created using ":"\u5141\u8BB8 admonitions \u521B\u5EFA\u4F7F\u7528\uFF0C"," or ":" \u6216 ",", instead of using a code block.":"\uFF0C\u800C\u975E\u4F7F\u7528\u4EE3\u7801\u5757\u3002"," Enable Non-codeblock Admonitions":" \u5141\u8BB8\u975E\u4EE3\u7801\u5757\u7684 Admonitions","Collapsible by Default":"\u9ED8\u8BA4\u6298\u53E0","All admonitions will be collapsible by default. Use ":"\u6240\u6709\u7684 admonitions \u9ED8\u8BA4\u53EF\u6298\u53E0\u3002\u4F7F\u7528 "," to prevent.":" \u6765\u963B\u6B62\u3002","Default Collapse Type":"\u9ED8\u8BA4\u53EF\u6298\u53E0\u7C7B\u578B","Collapsible admonitions will be either opened or closed.":"\u53EF\u6298\u53E0\u7684 admonitions \u5C06\u662F\u6253\u5F00\u7684\u6216\u662F\u5173\u95ED\u7684\u3002","Add Copy Button":"\u6DFB\u52A0\u590D\u5236\u6309\u94AE","Add a 'copy content' button to admonitions.":"\u4E3A admonitions \u65B0\u589E\u4E00\u4E2A\u201C\u590D\u5236\u5185\u5BB9\u201D\u6309\u94AE\u3002","Add New":"\u65B0\u589E","Add a new Admonition type.":"\u6DFB\u52A0\u4E00\u4E2A\u65B0\u7684 Admonition \u7C7B\u578B\u3002","Add Additional":"\u989D\u5916\u6DFB\u52A0","Register Commands":"\u6CE8\u518C\u547D\u4EE4","Unregister Commands":"\u6CE8\u9500\u547D\u4EE4",Edit:"\u7F16\u8F91",Delete:"\u5220\u9664","Admonition Type":"Admonition \u7C7B\u578B","Admonition Title":"Admonition \u540D\u79F0","This will be the default title for this admonition type.":"\u8FD9\u5C06\u4F1A\u6210\u4E3A\u8BE5\u7C7B\u578B admonition \u7684\u9ED8\u8BA4\u540D\u79F0\u3002","Admonition type cannot be empty.":"Admonition \u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Admonition type cannot include spaces.":"Admonition \u7C7B\u578B\u4E0D\u80FD\u5305\u542B\u7A7A\u683C","Types must be a valid CSS selector.":"\u7C7B\u578B\u5FC5\u987B\u4E3A\u5408\u6CD5\u7684 CSS \u9009\u62E9\u5668\u3002","Invalid icon name.":"\u975E\u6CD5\u56FE\u6807\u540D\u79F0\u3002","Icon cannot be empty.":"\u56FE\u6807\u4E0D\u80FD\u4E3A\u7A7A\u3002","Upload Image":"\u4E0A\u4F20\u56FE\u50CF","There was an error parsing the image.":"\u4E0A\u4F20\u56FE\u50CF\u65F6\u51FA\u9519\u4E86\u3002","Admonition Icon":"Admonition \u56FE\u6807",Color:"\u989C\u8272",Save:"\u4FDD\u5B58","No Admonition Title by Default":"\u65E0\u9ED8\u8BA4 Admonition \u540D\u79F0","The admonition will have no title unless ":"\u8BE5 admonition \u5C06\u6CA1\u6709\u540D\u79F0\uFF0C\u9664\u975E "," is explicitly provided.":" \u662F\u660E\u786E\u89C4\u5B9A\u7684\u3002","Show Copy Button":"\u663E\u793A\u590D\u5236\u6309\u94AE","A copy button will be added to the admonition.":"\u4E00\u4E2A\u590D\u5236\u6309\u94AE\u5C06\u88AB\u6DFB\u52A0\u81F3\u8BE5 admonition ","Parse Titles as Markdown":"\u5C06\u540D\u79F0\u8F6C\u53D8\u4E3A Markdown","Admonition Titles will be rendered as markdown.":"Admonition \u540D\u79F0\u5C06\u4EE5 markdown \u5F62\u5F0F\u5448\u73B0\u3002"};var v3={};var Z6={ar:G4,cs:_4,da:$4,de:Y4,en:B2,"en-gb":X4,es:K4,fr:Q4,hi:J4,id:c3,it:a3,ja:e3,ko:i3,nl:n3,nn:o3,pl:t3,pt:r3,"pt-br":l3,ro:f3,ru:s3,tr:h3,"zh-cn":m3,"zh-tw":v3},p3=Z6[z3.moment.locale()];function g(a){return p3&&p3[a]||B2[a]}var Z1=J(require("obsidian"));async function d3(a,c,e={cta:"Yes",secondary:"No"}){return new Promise((i,n)=>{try{let o=new u3(a,c,e);o.onClose=()=>{i(o.confirmed)},o.open()}catch{n()}})}var u3=class extends Z1.Modal{constructor(c,e,i){super(c);this.text=e;this.buttons=i;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:this.text});let c=this.contentEl.createDiv("fantasy-calendar-confirm-buttons");new Z1.ButtonComponent(c).setButtonText(this.buttons.cta).setCta().onClick(()=>{this.confirmed=!0,this.close()}),new Z1.ButtonComponent(c).setButtonText(this.buttons.secondary).onClick(()=>{this.close()})}onOpen(){this.display()}};var H1={octicons:"Octicons",rpg:"RPG Awesome"};var M3=(a=>c=>{try{a.querySelector(c)}catch{return!1}return!0})(document.createDocumentFragment()),l2=class extends u.PluginSettingTab{constructor(c,e){super(c,e);this.plugin=e;this.queue=[];this.converted=0}async display(){this.containerEl.empty(),this.containerEl.addClass("admonition-settings"),this.containerEl.createEl("h2",{text:g("Admonition Settings")});let c=this.containerEl.createDiv("admonitions-nested-settings");u.Platform.isMobile||new u.Setting(c).setName("Export Custom Types as CSS").setDesc("Export a CSS snippet for custom callout types.").addButton(i=>i.setIcon("download").onClick(()=>{let n=[`/* This snippet was auto-generated by the Admonitions plugin */ `],o=new Blob([this.plugin.calloutManager.generateCssString()],{type:"text/css"});createEl("a",{attr:{download:"custom_callouts.css",href:URL.createObjectURL(o)}}).click()}).setDisabled(!Object.keys(this.plugin.data.userAdmonitions).length)),new u.Setting(c).setName("Use CSS Snippet for Custom Callouts").setDesc("Instead of managing it internally, Admonitions will maintain a CSS snippet to enable your custom types for callouts.").addToggle(i=>i.setValue(this.plugin.data.useSnippet).onChange(n=>{this.plugin.data.useSnippet=n,this.plugin.saveSettings(),this.plugin.calloutManager.setUseSnippet()})),new u.Setting(c).setName(g("Add New")).setDesc("Add a new Admonition type. All custom Admonitions will also be usable as callouts.").addButton(i=>i.setTooltip(g("Add Additional")).setButtonText("+").onClick(async()=>{let o=new F(this.plugin);o.onClose=async()=>{if(o.saved){let r={type:o.type,color:o.color,icon:o.icon,command:!1,title:o.title,injectColor:o.injectColor,noTitle:o.noTitle,copy:o.copy};this.plugin.addAdmonition(r),this.plugin.calloutManager.addAdmonition(r),this.display()}},o.open()})),this.additionalEl=c.createDiv("additional"),this.buildTypes(),this.buildAdmonitions(this.containerEl.createEl("details",{cls:"admonitions-nested-settings",attr:{...this.plugin.data.open.admonitions?{open:!0}:{}}})),this.buildIcons(this.containerEl.createEl("details",{cls:"admonitions-nested-settings",attr:{...this.plugin.data.open.icons?{open:!0}:{}}})),this.buildOtherSyntaxes(this.containerEl.createEl("details",{cls:"admonitions-nested-settings",attr:{...this.plugin.data.open.other?{open:!0}:{}}})),this.buildAdvanced(this.containerEl.createEl("details",{cls:"admonitions-nested-settings",attr:{...this.plugin.data.open.advanced?{open:!0}:{}}})),this.containerEl.createDiv("coffee").createEl("a",{href:"https://www.buymeacoffee.com/valentine195"}).createEl("img",{attr:{src:"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=\u2615&slug=valentine195&button_colour=e3e7ef&font_colour=262626&font_family=Inter&outline_colour=262626&coffee_colour=ff0000"}})}buildAdmonitions(c){c.empty(),c.ontoggle=()=>{this.plugin.data.open.admonitions=c.open,this.plugin.saveSettings()};let e=c.createEl("summary");new u.Setting(e).setHeading().setName("Admonitions & Callouts"),e.createDiv("collapser").createDiv("handle"),new u.Setting(c).setName("Add Drop Shadow").setDesc("A drop shadow will be added to admonitions.").addToggle(i=>{i.setValue(this.plugin.data.dropShadow).onChange(async n=>{this.plugin.data.dropShadow=n,this.display(),await this.plugin.saveSettings()})}),new u.Setting(c).setName(g("Collapsible by Default")).setDesc(createFragment(i=>{i.createSpan({text:"All admonitions & callouts will be collapsible by default. Use "}),i.createEl("code",{text:"collapse: none"}),i.createSpan({text:g(" to prevent.")})})).addToggle(i=>{i.setValue(this.plugin.data.autoCollapse).onChange(async n=>{this.plugin.data.autoCollapse=n,this.display(),await this.plugin.saveSettings()})}),this.plugin.data.autoCollapse&&new u.Setting(c).setName(g("Default Collapse Type")).setDesc("Collapsible admonitions & callouts will be either opened or closed.").addDropdown(i=>{i.addOption("open","open"),i.addOption("closed","closed"),i.setValue(this.plugin.data.defaultCollapseType),i.onChange(async n=>{this.plugin.data.defaultCollapseType=n,await this.plugin.saveSettings()})}),new u.Setting(c).setName(g("Add Copy Button")).setDesc("Add a 'copy content' button to admonitions & callouts.").addToggle(i=>{i.setValue(this.plugin.data.copyButton),i.onChange(async n=>{this.plugin.data.copyButton=n,n||document.querySelectorAll(".admonition-content-copy").forEach(o=>{o.detach()}),await this.plugin.saveSettings()})}),new u.Setting(c).setName(g("Parse Titles as Markdown")).setDesc(g("Admonition Titles will be rendered as markdown.")).addToggle(i=>{i.setValue(this.plugin.data.parseTitles),i.onChange(async n=>{this.plugin.data.parseTitles=n,await this.plugin.saveSettings()})}),new u.Setting(c).setName("Set Admonition Colors").setDesc("Disable this setting to turn off admonition coloring by default. Can be overridden in the admonition definition.").addToggle(i=>i.setValue(this.plugin.data.injectColor).setTooltip(`${this.plugin.data.injectColor?"Disable":"Enable"} Admonition Color`).onChange(async n=>{this.plugin.data.injectColor=n,await this.plugin.saveSettings(),await this.buildTypes()})),new u.Setting(c).setName("Hide Empty Admonitions").setDesc("Any admonition that does not have content inside it will be hidden.").addToggle(i=>i.setValue(this.plugin.data.hideEmpty).onChange(async n=>{this.plugin.data.hideEmpty=n,await this.plugin.saveSettings(),await this.buildTypes()}))}buildIcons(c){c.empty(),c.ontoggle=()=>{this.plugin.data.open.icons=c.open,this.plugin.saveSettings()};let e=c.createEl("summary");new u.Setting(e).setHeading().setName("Icon Packs"),e.createDiv("collapser").createDiv("handle"),new u.Setting(c).setName("Use Font Awesome Icons").setDesc("Font Awesome Free icons will be available in the item picker. Existing Admonitions defined using Font Awesome icons will continue to work.").addToggle(r=>{r.setValue(this.plugin.data.useFontAwesome).onChange(t=>{this.plugin.data.useFontAwesome=t,this.plugin.iconManager.setIconDefinitions(),this.plugin.saveSettings()})});let i,n=Object.entries(H1).filter(([r])=>!this.plugin.data.icons.includes(r));new u.Setting(c).setName("Load Additional Icons").setDesc("Load an additional icon pack. This requires an internet connection.").addDropdown(r=>{if(!n.length){r.setDisabled(!0);return}for(let[t,l]of n)r.addOption(t,l);r.onChange(t=>i=t),i=r.getValue()}).addExtraButton(r=>{r.setIcon("plus-with-circle").setTooltip("Load").onClick(async()=>{!i||!i.length||(await this.plugin.iconManager.downloadIcon(i),this.buildIcons(c))}),n.length||r.setDisabled(!0)});let o=c.createDiv("admonitions-nested-settings");new u.Setting(o);for(let r of this.plugin.data.icons)new u.Setting(o).setName(H1[r]).addExtraButton(t=>{t.setIcon("reset").setTooltip("Redownload").onClick(async()=>{await this.plugin.iconManager.removeIcon(r),await this.plugin.iconManager.downloadIcon(r),this.buildIcons(c)})}).addExtraButton(t=>{t.setIcon("trash").onClick(async()=>{Object.values(this.plugin.data.userAdmonitions).find(l=>l.icon.type==r)&&!await d3(this.plugin.app,"You have Admonitions using icons from this pack. Are you sure you want to remove it?")||(await this.plugin.iconManager.removeIcon(r),this.buildIcons(c))})})}buildOtherSyntaxes(c){c.empty(),c.ontoggle=()=>{this.plugin.data.open.other=c.open,this.plugin.saveSettings()};let e=c.createEl("summary");new u.Setting(e).setHeading().setName("Additional Syntaxes"),e.createDiv("collapser").createDiv("handle"),c.createEl("p",{text:"Obsidian 0.14 has introduced Callout boxes to its core functionality using the same syntax as the Microsoft Document callouts.",cls:"setting-item"}),c.createEl("p",{text:"This has rendered the Microsoft Document syntax for Admonitions obsolete, but Admonitions can still be used to create and manage your custom callout types.",cls:"setting-item"}),c.createEl("p",{text:"Your existing code block Admonitions will always work!",cls:"setting-item"}),this.plugin.data.msDocConverted||new u.Setting(c).setName("Convert MSDoc Admonitions to Callouts").setDesc(createFragment(i=>{let n=i.createDiv("admonition-convert");(0,u.setIcon)(n.createSpan(),P1),n.createSpan({text:"This "}),n.createEl("strong",{text:"will"}),n.createSpan({text:" modify notes. Use at your own risk and please make backups."}),i.createEl("p",{text:"With large vaults, this could take awhile!"})})).addButton(i=>i.setButtonText("Convert").setCta().onClick(()=>{this.queue=this.plugin.app.vault.getMarkdownFiles(),this.notice=new u.Notice(createFragment(n=>{let o=n.createDiv("admonition-convert");o.createSpan({text:"Converting MS-doc admonitions..."}),(0,u.setIcon)(o.createSpan("admonition-convert-icon"),E1)}),0),this.checkAndReplace()})),new u.Setting(c).setName("Convert Codeblock Admonitions to Callouts").setDesc(createFragment(i=>{let n=i.createDiv("admonition-convert");(0,u.setIcon)(n.createSpan(),P1),n.createSpan({text:"This "}),n.createEl("strong",{text:"will"}),n.createSpan({text:" modify notes. Use at your own risk and please make backups."}),i.createEl("p",{text:"With large vaults, this could take awhile!"})})).addButton(i=>i.setButtonText("Convert").setCta().onClick(()=>{this.queue=this.plugin.app.vault.getMarkdownFiles(),this.notice=new u.Notice(createFragment(n=>{let o=n.createDiv("admonition-convert");o.createSpan({text:"Converting Codeblock admonitions..."}),(0,u.setIcon)(o.createSpan("admonition-convert-icon"),E1)}),0),this.converted=0,this.checkAndReplaceCodeBlocks()}))}async checkAndReplace(){if(!this.queue.length){this.converted?this.notice.setMessage(`${this.converted} MS-doc Admonitions converted!`):this.notice.setMessage("No MS-doc Admonitions found to convert."),this.plugin.data.msDocConverted=!0,this.plugin.saveSettings().then(()=>this.display()),setTimeout(()=>{this.notice.hide(),this.notice=void 0},2e3);return}setTimeout(async()=>{let c=this.queue.shift(),e=await this.app.vault.read(c);/> \[!([^ :]+)(?::[ ]?(.+))\](x|\+|\-)?/.test(e)&&(this.converted++,await this.plugin.app.vault.modify(c,e.replace(/> \[!([^ :]+)(?::[ ]?(.+))\](x|\+|\-)?/g,"> [!$1]$3 $2"))),this.checkAndReplace()})}async checkAndReplaceCodeBlocks(){if(!this.queue.length){this.converted?this.notice.setMessage(`${this.converted} Codeblock Admonitions converted!`):this.notice.setMessage("No Codeblock Admonitions found to convert."),this.display(),setTimeout(()=>{this.notice.hide(),this.notice=void 0},2e3);return}setTimeout(async()=>{let c=this.queue.shift(),e=await this.app.vault.read(c);/^(`{3,})ad-(\w+)([\s\S]*?)?\n^\1/m.test(e)&&(e=this.replaceCodeBlockInPlace(e),this.app.vault.modify(c,e)),this.checkAndReplaceCodeBlocks()})}replaceCodeBlockInPlace(c){let e=c.match(/^(`{3,})ad-(\w+)([\s\S]*?)?\n^\1/gm)??[];for(let i of e){let[,n]=i.match(/^`{3,}ad-(\w+)/),o="",r="";if(!n)continue;let t=[],l=!0;for(let s of i.split(` `).slice(1,-1)){if(l){if(/^title:/.test(s)){o=s.match(/^title:(.*)/)?.[1].trim()??n[0].toUpperCase()+n.slice(1).toLowerCase();continue}if(/^collapse:/.test(s)){r=(s.match(/^collapse:\s?(.*)/)?.[1].trim()??"open")=="open"?"+":"-";continue}/^(title|collapse|color|icon):/.test(s)||(l=!1)}t.push(s)}let f=t.join(` diff --git a/notes/.obsidian/plugins/obsidian-admonition/manifest.json b/notes/.obsidian/plugins/obsidian-admonition/manifest.json index 38ff906..f87b1ac 100644 --- a/notes/.obsidian/plugins/obsidian-admonition/manifest.json +++ b/notes/.obsidian/plugins/obsidian-admonition/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-admonition", "name": "Admonition", - "version": "9.0.3", + "version": "9.0.5", "minAppVersion": "0.14.0", "description": "Enhanced callouts for Obsidian.md", "author": "Jeremy Valentine", diff --git a/notes/.obsidian/plugins/obsidian-charts/main.js b/notes/.obsidian/plugins/obsidian-charts/main.js index a7ee9a0..d3ce046 100644 --- a/notes/.obsidian/plugins/obsidian-charts/main.js +++ b/notes/.obsidian/plugins/obsidian-charts/main.js @@ -3,15 +3,15 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source visit the plugins github repository (https://github.com/phibr0/obsidian-dictionary) */ -var Yp=Object.create;var ci=Object.defineProperty,Gp=Object.defineProperties,qp=Object.getOwnPropertyDescriptor,Up=Object.getOwnPropertyDescriptors,Xp=Object.getOwnPropertyNames,il=Object.getOwnPropertySymbols,Kp=Object.getPrototypeOf,sl=Object.prototype.hasOwnProperty,Zp=Object.prototype.propertyIsEnumerable;var rl=(n,t,e)=>t in n?ci(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,hi=(n,t)=>{for(var e in t||(t={}))sl.call(t,e)&&rl(n,e,t[e]);if(il)for(var e of il(t))Zp.call(t,e)&&rl(n,e,t[e]);return n},ui=(n,t)=>Gp(n,Up(t)),al=n=>ci(n,"__esModule",{value:!0});var Sr=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Jp=(n,t)=>{al(n);for(var e in t)ci(n,e,{get:t[e],enumerable:!0})},Qp=(n,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Xp(t))!sl.call(n,i)&&i!=="default"&&ci(n,i,{get:()=>t[i],enumerable:!(e=qp(t,i))||e.enumerable});return n},De=n=>Qp(al(ci(n!=null?Yp(Kp(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var vh=Sr((Sa,Ma)=>{(function(n,t){typeof Sa=="object"&&typeof Ma!="undefined"?Ma.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self,n.chroma=t())})(Sa,function(){"use strict";for(var n=function(h,f,g){return f===void 0&&(f=0),g===void 0&&(g=1),hg?g:h},t=n,e=function(h){h._clipped=!1,h._unclipped=h.slice(0);for(var f=0;f<=3;f++)f<3?((h[f]<0||h[f]>255)&&(h._clipped=!0),h[f]=t(h[f],0,255)):f===3&&(h[f]=t(h[f],0,1));return h},i={},s=0,r=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];s=3?Array.prototype.slice.call(h):l(h[0])=="object"&&f?f.split("").filter(function(g){return h[0][g]!==void 0}).map(function(g){return h[0][g]}):h[0]},u=o,d=function(h){if(h.length<2)return null;var f=h.length-1;return u(h[f])=="string"?h[f].toLowerCase():null},p=Math.PI,m={clip_rgb:e,limit:n,type:o,unpack:c,last:d,PI:p,TWOPI:p*2,PITHIRD:p/3,DEG2RAD:p/180,RAD2DEG:180/p},b={format:{},autodetect:[]},S=m.last,M=m.clip_rgb,E=m.type,L=b,$=function(){for(var f=[],g=arguments.length;g--;)f[g]=arguments[g];var _=this;if(E(f[0])==="object"&&f[0].constructor&&f[0].constructor===this.constructor)return f[0];var k=S(f),C=!1;if(!k){C=!0,L.sorted||(L.autodetect=L.autodetect.sort(function(z,W){return W.p-z.p}),L.sorted=!0);for(var x=0,O=L.autodetect;x4?h[4]:1;return C===1?[0,0,0,x]:[g>=1?0:255*(1-g)*(1-C),_>=1?0:255*(1-_)*(1-C),k>=1?0:255*(1-k)*(1-C),x]},wt=rt,st=B,Q=R,ht=b,ue=m.unpack,ie=m.type,fe=nt;Q.prototype.cmyk=function(){return fe(this._rgb)},st.cmyk=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Q,[null].concat(h,["cmyk"])))},ht.format.cmyk=wt,ht.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=ue(h,"cmyk"),ie(h)==="array"&&h.length===4)return"cmyk"}});var Ft=m.unpack,Vt=m.last,Bt=function(h){return Math.round(h*100)/100},jt=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Ft(h,"hsla"),_=Vt(h)||"lsa";return g[0]=Bt(g[0]||0),g[1]=Bt(g[1]*100)+"%",g[2]=Bt(g[2]*100)+"%",_==="hsla"||g.length>3&&g[3]<1?(g[3]=g.length>3?g[3]:1,_="hsla"):g.length=3,_+"("+g.join(",")+")"},Gt=jt,w=m.unpack,v=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=w(h,"rgba");var g=h[0],_=h[1],k=h[2];g/=255,_/=255,k/=255;var C=Math.min(g,_,k),x=Math.max(g,_,k),O=(x+C)/2,A,I;return x===C?(A=0,I=Number.NaN):A=O<.5?(x-C)/(x+C):(x-C)/(2-x-C),g==x?I=(_-k)/(x-C):_==x?I=2+(k-g)/(x-C):k==x&&(I=4+(g-_)/(x-C)),I*=60,I<0&&(I+=360),h.length>3&&h[3]!==void 0?[I,A,O,h[3]]:[I,A,O]},y=v,D=m.unpack,T=m.last,P=Gt,U=y,V=Math.round,X=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=D(h,"rgba"),_=T(h)||"rgb";return _.substr(0,3)=="hsl"?P(U(g),_):(g[0]=V(g[0]),g[1]=V(g[1]),g[2]=V(g[2]),(_==="rgba"||g.length>3&&g[3]<1)&&(g[3]=g.length>3?g[3]:1,_="rgba"),_+"("+g.slice(0,_==="rgb"?3:4).join(",")+")")},J=X,vt=m.unpack,Rt=Math.round,Ct=function(){for(var h,f=[],g=arguments.length;g--;)f[g]=arguments[g];f=vt(f,"hsl");var _=f[0],k=f[1],C=f[2],x,O,A;if(k===0)x=O=A=C*255;else{var I=[0,0,0],z=[0,0,0],W=C<.5?C*(1+k):C+k-C*k,j=2*C-W,K=_/360;I[0]=K+1/3,I[1]=K,I[2]=K-1/3;for(var q=0;q<3;q++)I[q]<0&&(I[q]+=1),I[q]>1&&(I[q]-=1),6*I[q]<1?z[q]=j+(W-j)*6*I[q]:2*I[q]<1?z[q]=W:3*I[q]<2?z[q]=j+(W-j)*(2/3-I[q])*6:z[q]=j;h=[Rt(z[0]*255),Rt(z[1]*255),Rt(z[2]*255)],x=h[0],O=h[1],A=h[2]}return f.length>3?[x,O,A,f[3]]:[x,O,A,1]},$t=Ct,zt=$t,se=b,ve=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,de=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,mn=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,Ee=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ze=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,ii=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,si=Math.round,Cn=function(h){h=h.toLowerCase().trim();var f;if(se.format.named)try{return se.format.named(h)}catch(q){}if(f=h.match(ve)){for(var g=f.slice(1,4),_=0;_<3;_++)g[_]=+g[_];return g[3]=1,g}if(f=h.match(de)){for(var k=f.slice(1,5),C=0;C<4;C++)k[C]=+k[C];return k}if(f=h.match(mn)){for(var x=f.slice(1,4),O=0;O<3;O++)x[O]=si(x[O]*2.55);return x[3]=1,x}if(f=h.match(Ee)){for(var A=f.slice(1,5),I=0;I<3;I++)A[I]=si(A[I]*2.55);return A[3]=+A[3],A}if(f=h.match(ze)){var z=f.slice(1,4);z[1]*=.01,z[2]*=.01;var W=zt(z);return W[3]=1,W}if(f=h.match(ii)){var j=f.slice(1,4);j[1]*=.01,j[2]*=.01;var K=zt(j);return K[3]=+f[4],K}};Cn.test=function(h){return ve.test(h)||de.test(h)||mn.test(h)||Ee.test(h)||ze.test(h)||ii.test(h)};var Be=Cn,bn=B,Tn=R,ri=b,Je=m.type,te=J,yt=Be;Tn.prototype.css=function(h){return te(this._rgb,h)},bn.css=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Tn,[null].concat(h,["css"])))},ri.format.css=yt,ri.autodetect.push({p:5,test:function(h){for(var f=[],g=arguments.length-1;g-- >0;)f[g]=arguments[g+1];if(!f.length&&Je(h)==="string"&&yt.test(h))return"css"}});var ee=R,qt=B,qi=b,Kh=m.unpack;qi.format.gl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Kh(h,"rgba");return g[0]*=255,g[1]*=255,g[2]*=255,g},qt.gl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(ee,[null].concat(h,["gl"])))},ee.prototype.gl=function(){var h=this._rgb;return[h[0]/255,h[1]/255,h[2]/255,h[3]]};var Zh=m.unpack,Jh=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Zh(h,"rgb"),_=g[0],k=g[1],C=g[2],x=Math.min(_,k,C),O=Math.max(_,k,C),A=O-x,I=A*100/255,z=x/(255-A)*100,W;return A===0?W=Number.NaN:(_===O&&(W=(k-C)/A),k===O&&(W=2+(C-_)/A),C===O&&(W=4+(_-k)/A),W*=60,W<0&&(W+=360)),[W,I,z]},Qh=Jh,tu=m.unpack,eu=Math.floor,nu=function(){for(var h,f,g,_,k,C,x=[],O=arguments.length;O--;)x[O]=arguments[O];x=tu(x,"hcg");var A=x[0],I=x[1],z=x[2],W,j,K;z=z*255;var q=I*255;if(I===0)W=j=K=z;else{A===360&&(A=0),A>360&&(A-=360),A<0&&(A+=360),A/=60;var lt=eu(A),ft=A-lt,mt=z*(1-I),xt=mt+q*(1-ft),Kt=mt+q*ft,Xt=mt+q;switch(lt){case 0:h=[Xt,Kt,mt],W=h[0],j=h[1],K=h[2];break;case 1:f=[xt,Xt,mt],W=f[0],j=f[1],K=f[2];break;case 2:g=[mt,Xt,Kt],W=g[0],j=g[1],K=g[2];break;case 3:_=[mt,xt,Xt],W=_[0],j=_[1],K=_[2];break;case 4:k=[Kt,mt,Xt],W=k[0],j=k[1],K=k[2];break;case 5:C=[Xt,mt,xt],W=C[0],j=C[1],K=C[2];break}}return[W,j,K,x.length>3?x[3]:1]},iu=nu,su=m.unpack,ru=m.type,au=B,Wa=R,Ya=b,ou=Qh;Wa.prototype.hcg=function(){return ou(this._rgb)},au.hcg=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Wa,[null].concat(h,["hcg"])))},Ya.format.hcg=iu,Ya.autodetect.push({p:1,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=su(h,"hcg"),ru(h)==="array"&&h.length===3)return"hcg"}});var lu=m.unpack,cu=m.last,Ui=Math.round,hu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=lu(h,"rgba"),_=g[0],k=g[1],C=g[2],x=g[3],O=cu(h)||"auto";x===void 0&&(x=1),O==="auto"&&(O=x<1?"rgba":"rgb"),_=Ui(_),k=Ui(k),C=Ui(C);var A=_<<16|k<<8|C,I="000000"+A.toString(16);I=I.substr(I.length-6);var z="0"+Ui(x*255).toString(16);switch(z=z.substr(z.length-2),O.toLowerCase()){case"rgba":return"#"+I+z;case"argb":return"#"+z+I;default:return"#"+I}},Ga=hu,uu=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,fu=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,du=function(h){if(h.match(uu)){(h.length===4||h.length===7)&&(h=h.substr(1)),h.length===3&&(h=h.split(""),h=h[0]+h[0]+h[1]+h[1]+h[2]+h[2]);var f=parseInt(h,16),g=f>>16,_=f>>8&255,k=f&255;return[g,_,k,1]}if(h.match(fu)){(h.length===5||h.length===9)&&(h=h.substr(1)),h.length===4&&(h=h.split(""),h=h[0]+h[0]+h[1]+h[1]+h[2]+h[2]+h[3]+h[3]);var C=parseInt(h,16),x=C>>24&255,O=C>>16&255,A=C>>8&255,I=Math.round((C&255)/255*100)/100;return[x,O,A,I]}throw new Error("unknown hex color: "+h)},qa=du,pu=B,Ua=R,gu=m.type,Xa=b,mu=Ga;Ua.prototype.hex=function(h){return mu(this._rgb,h)},pu.hex=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Ua,[null].concat(h,["hex"])))},Xa.format.hex=qa,Xa.autodetect.push({p:4,test:function(h){for(var f=[],g=arguments.length-1;g-- >0;)f[g]=arguments[g+1];if(!f.length&&gu(h)==="string"&&[3,4,5,6,7,8,9].indexOf(h.length)>=0)return"hex"}});var bu=m.unpack,Ka=m.TWOPI,vu=Math.min,_u=Math.sqrt,yu=Math.acos,xu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=bu(h,"rgb"),_=g[0],k=g[1],C=g[2];_/=255,k/=255,C/=255;var x,O=vu(_,k,C),A=(_+k+C)/3,I=A>0?1-O/A:0;return I===0?x=NaN:(x=(_-k+(_-C))/2,x/=_u((_-k)*(_-k)+(_-C)*(k-C)),x=yu(x),C>k&&(x=Ka-x),x/=Ka),[x*360,I,A]},wu=xu,ku=m.unpack,Zs=m.limit,Pn=m.TWOPI,Js=m.PITHIRD,On=Math.cos,Su=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=ku(h,"hsi");var g=h[0],_=h[1],k=h[2],C,x,O;return isNaN(g)&&(g=0),isNaN(_)&&(_=0),g>360&&(g-=360),g<0&&(g+=360),g/=360,g<1/3?(O=(1-_)/3,C=(1+_*On(Pn*g)/On(Js-Pn*g))/3,x=1-(O+C)):g<2/3?(g-=1/3,C=(1-_)/3,x=(1+_*On(Pn*g)/On(Js-Pn*g))/3,O=1-(C+x)):(g-=2/3,x=(1-_)/3,O=(1+_*On(Pn*g)/On(Js-Pn*g))/3,C=1-(x+O)),C=Zs(k*C*3),x=Zs(k*x*3),O=Zs(k*O*3),[C*255,x*255,O*255,h.length>3?h[3]:1]},Mu=Su,Cu=m.unpack,Tu=m.type,Pu=B,Za=R,Ja=b,Ou=wu;Za.prototype.hsi=function(){return Ou(this._rgb)},Pu.hsi=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Za,[null].concat(h,["hsi"])))},Ja.format.hsi=Mu,Ja.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Cu(h,"hsi"),Tu(h)==="array"&&h.length===3)return"hsi"}});var Eu=m.unpack,Du=m.type,Au=B,Qa=R,to=b,Ru=y;Qa.prototype.hsl=function(){return Ru(this._rgb)},Au.hsl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Qa,[null].concat(h,["hsl"])))},to.format.hsl=$t,to.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Eu(h,"hsl"),Du(h)==="array"&&h.length===3)return"hsl"}});var Lu=m.unpack,Fu=Math.min,Iu=Math.max,$u=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=Lu(h,"rgb");var g=h[0],_=h[1],k=h[2],C=Fu(g,_,k),x=Iu(g,_,k),O=x-C,A,I,z;return z=x/255,x===0?(A=Number.NaN,I=0):(I=O/x,g===x&&(A=(_-k)/O),_===x&&(A=2+(k-g)/O),k===x&&(A=4+(g-_)/O),A*=60,A<0&&(A+=360)),[A,I,z]},zu=$u,Bu=m.unpack,ju=Math.floor,Nu=function(){for(var h,f,g,_,k,C,x=[],O=arguments.length;O--;)x[O]=arguments[O];x=Bu(x,"hsv");var A=x[0],I=x[1],z=x[2],W,j,K;if(z*=255,I===0)W=j=K=z;else{A===360&&(A=0),A>360&&(A-=360),A<0&&(A+=360),A/=60;var q=ju(A),lt=A-q,ft=z*(1-I),mt=z*(1-I*lt),xt=z*(1-I*(1-lt));switch(q){case 0:h=[z,xt,ft],W=h[0],j=h[1],K=h[2];break;case 1:f=[mt,z,ft],W=f[0],j=f[1],K=f[2];break;case 2:g=[ft,z,xt],W=g[0],j=g[1],K=g[2];break;case 3:_=[ft,mt,z],W=_[0],j=_[1],K=_[2];break;case 4:k=[xt,ft,z],W=k[0],j=k[1],K=k[2];break;case 5:C=[z,ft,mt],W=C[0],j=C[1],K=C[2];break}}return[W,j,K,x.length>3?x[3]:1]},Hu=Nu,Vu=m.unpack,Wu=m.type,Yu=B,eo=R,no=b,Gu=zu;eo.prototype.hsv=function(){return Gu(this._rgb)},Yu.hsv=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(eo,[null].concat(h,["hsv"])))},no.format.hsv=Hu,no.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Vu(h,"hsv"),Wu(h)==="array"&&h.length===3)return"hsv"}});var Xi={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},En=Xi,qu=m.unpack,io=Math.pow,Uu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=qu(h,"rgb"),_=g[0],k=g[1],C=g[2],x=Xu(_,k,C),O=x[0],A=x[1],I=x[2],z=116*A-16;return[z<0?0:z,500*(O-A),200*(A-I)]},Qs=function(h){return(h/=255)<=.04045?h/12.92:io((h+.055)/1.055,2.4)},tr=function(h){return h>En.t3?io(h,1/3):h/En.t2+En.t0},Xu=function(h,f,g){h=Qs(h),f=Qs(f),g=Qs(g);var _=tr((.4124564*h+.3575761*f+.1804375*g)/En.Xn),k=tr((.2126729*h+.7151522*f+.072175*g)/En.Yn),C=tr((.0193339*h+.119192*f+.9503041*g)/En.Zn);return[_,k,C]},so=Uu,Dn=Xi,Ku=m.unpack,Zu=Math.pow,Ju=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=Ku(h,"lab");var g=h[0],_=h[1],k=h[2],C,x,O,A,I,z;return x=(g+16)/116,C=isNaN(_)?x:x+_/500,O=isNaN(k)?x:x-k/200,x=Dn.Yn*nr(x),C=Dn.Xn*nr(C),O=Dn.Zn*nr(O),A=er(3.2404542*C-1.5371385*x-.4985314*O),I=er(-.969266*C+1.8760108*x+.041556*O),z=er(.0556434*C-.2040259*x+1.0572252*O),[A,I,z,h.length>3?h[3]:1]},er=function(h){return 255*(h<=.00304?12.92*h:1.055*Zu(h,1/2.4)-.055)},nr=function(h){return h>Dn.t1?h*h*h:Dn.t2*(h-Dn.t0)},ro=Ju,Qu=m.unpack,tf=m.type,ef=B,ao=R,oo=b,nf=so;ao.prototype.lab=function(){return nf(this._rgb)},ef.lab=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(ao,[null].concat(h,["lab"])))},oo.format.lab=ro,oo.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Qu(h,"lab"),tf(h)==="array"&&h.length===3)return"lab"}});var sf=m.unpack,rf=m.RAD2DEG,af=Math.sqrt,of=Math.atan2,lf=Math.round,cf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=sf(h,"lab"),_=g[0],k=g[1],C=g[2],x=af(k*k+C*C),O=(of(C,k)*rf+360)%360;return lf(x*1e4)===0&&(O=Number.NaN),[_,x,O]},lo=cf,hf=m.unpack,uf=so,ff=lo,df=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=hf(h,"rgb"),_=g[0],k=g[1],C=g[2],x=uf(_,k,C),O=x[0],A=x[1],I=x[2];return ff(O,A,I)},pf=df,gf=m.unpack,mf=m.DEG2RAD,bf=Math.sin,vf=Math.cos,_f=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=gf(h,"lch"),_=g[0],k=g[1],C=g[2];return isNaN(C)&&(C=0),C=C*mf,[_,vf(C)*k,bf(C)*k]},co=_f,yf=m.unpack,xf=co,wf=ro,kf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=yf(h,"lch");var g=h[0],_=h[1],k=h[2],C=xf(g,_,k),x=C[0],O=C[1],A=C[2],I=wf(x,O,A),z=I[0],W=I[1],j=I[2];return[z,W,j,h.length>3?h[3]:1]},ho=kf,Sf=m.unpack,Mf=ho,Cf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Sf(h,"hcl").reverse();return Mf.apply(void 0,g)},Tf=Cf,Pf=m.unpack,Of=m.type,uo=B,Ki=R,ir=b,fo=pf;Ki.prototype.lch=function(){return fo(this._rgb)},Ki.prototype.hcl=function(){return fo(this._rgb).reverse()},uo.lch=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Ki,[null].concat(h,["lch"])))},uo.hcl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Ki,[null].concat(h,["hcl"])))},ir.format.lch=ho,ir.format.hcl=Tf,["lch","hcl"].forEach(function(h){return ir.autodetect.push({p:2,test:function(){for(var f=[],g=arguments.length;g--;)f[g]=arguments[g];if(f=Pf(f,h),Of(f)==="array"&&f.length===3)return h}})});var Ef={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},po=Ef,Df=R,go=b,Af=m.type,ai=po,Rf=qa,Lf=Ga;Df.prototype.name=function(){for(var h=Lf(this._rgb,"rgb"),f=0,g=Object.keys(ai);f0;)f[g]=arguments[g+1];if(!f.length&&Af(h)==="string"&&ai[h.toLowerCase()])return"named"}});var Ff=m.unpack,If=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Ff(h,"rgb"),_=g[0],k=g[1],C=g[2];return(_<<16)+(k<<8)+C},$f=If,zf=m.type,Bf=function(h){if(zf(h)=="number"&&h>=0&&h<=16777215){var f=h>>16,g=h>>8&255,_=h&255;return[f,g,_,1]}throw new Error("unknown num color: "+h)},jf=Bf,Nf=B,mo=R,bo=b,Hf=m.type,Vf=$f;mo.prototype.num=function(){return Vf(this._rgb)},Nf.num=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(mo,[null].concat(h,["num"])))},bo.format.num=jf,bo.autodetect.push({p:5,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h.length===1&&Hf(h[0])==="number"&&h[0]>=0&&h[0]<=16777215)return"num"}});var Wf=B,sr=R,vo=b,_o=m.unpack,yo=m.type,xo=Math.round;sr.prototype.rgb=function(h){return h===void 0&&(h=!0),h===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(xo)},sr.prototype.rgba=function(h){return h===void 0&&(h=!0),this._rgb.slice(0,4).map(function(f,g){return g<3?h===!1?f:xo(f):f})},Wf.rgb=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(sr,[null].concat(h,["rgb"])))},vo.format.rgb=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=_o(h,"rgba");return g[3]===void 0&&(g[3]=1),g},vo.autodetect.push({p:3,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=_o(h,"rgba"),yo(h)==="array"&&(h.length===3||h.length===4&&yo(h[3])=="number"&&h[3]>=0&&h[3]<=1))return"rgb"}});var Zi=Math.log,Yf=function(h){var f=h/100,g,_,k;return f<66?(g=255,_=f<6?0:-155.25485562709179-.44596950469579133*(_=f-2)+104.49216199393888*Zi(_),k=f<20?0:-254.76935184120902+.8274096064007395*(k=f-10)+115.67994401066147*Zi(k)):(g=351.97690566805693+.114206453784165*(g=f-55)-40.25366309332127*Zi(g),_=325.4494125711974+.07943456536662342*(_=f-50)-28.0852963507957*Zi(_),k=255),[g,_,k,1]},wo=Yf,Gf=wo,qf=m.unpack,Uf=Math.round,Xf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];for(var g=qf(h,"rgb"),_=g[0],k=g[2],C=1e3,x=4e4,O=.4,A;x-C>O;){A=(x+C)*.5;var I=Gf(A);I[2]/I[0]>=k/_?x=A:C=A}return Uf(A)},Kf=Xf,rr=B,Ji=R,ar=b,Zf=Kf;Ji.prototype.temp=Ji.prototype.kelvin=Ji.prototype.temperature=function(){return Zf(this._rgb)},rr.temp=rr.kelvin=rr.temperature=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Ji,[null].concat(h,["temp"])))},ar.format.temp=ar.format.kelvin=ar.format.temperature=wo;var Jf=m.unpack,or=Math.cbrt,Qf=Math.pow,td=Math.sign,ed=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Jf(h,"rgb"),_=g[0],k=g[1],C=g[2],x=[lr(_/255),lr(k/255),lr(C/255)],O=x[0],A=x[1],I=x[2],z=or(.4122214708*O+.5363325363*A+.0514459929*I),W=or(.2119034982*O+.6806995451*A+.1073969566*I),j=or(.0883024619*O+.2817188376*A+.6299787005*I);return[.2104542553*z+.793617785*W-.0040720468*j,1.9779984951*z-2.428592205*W+.4505937099*j,.0259040371*z+.7827717662*W-.808675766*j]},ko=ed;function lr(h){var f=Math.abs(h);return f<.04045?h/12.92:(td(h)||1)*Qf((f+.055)/1.055,2.4)}var nd=m.unpack,Qi=Math.pow,id=Math.sign,sd=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=nd(h,"lab");var g=h[0],_=h[1],k=h[2],C=Qi(g+.3963377774*_+.2158037573*k,3),x=Qi(g-.1055613458*_-.0638541728*k,3),O=Qi(g-.0894841775*_-1.291485548*k,3);return[255*cr(4.0767416621*C-3.3077115913*x+.2309699292*O),255*cr(-1.2684380046*C+2.6097574011*x-.3413193965*O),255*cr(-.0041960863*C-.7034186147*x+1.707614701*O),h.length>3?h[3]:1]},So=sd;function cr(h){var f=Math.abs(h);return f>.0031308?(id(h)||1)*(1.055*Qi(f,1/2.4)-.055):h*12.92}var rd=m.unpack,ad=m.type,od=B,Mo=R,Co=b,ld=ko;Mo.prototype.oklab=function(){return ld(this._rgb)},od.oklab=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Mo,[null].concat(h,["oklab"])))},Co.format.oklab=So,Co.autodetect.push({p:3,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=rd(h,"oklab"),ad(h)==="array"&&h.length===3)return"oklab"}});var cd=m.unpack,hd=ko,ud=lo,fd=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=cd(h,"rgb"),_=g[0],k=g[1],C=g[2],x=hd(_,k,C),O=x[0],A=x[1],I=x[2];return ud(O,A,I)},dd=fd,pd=m.unpack,gd=co,md=So,bd=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=pd(h,"lch");var g=h[0],_=h[1],k=h[2],C=gd(g,_,k),x=C[0],O=C[1],A=C[2],I=md(x,O,A),z=I[0],W=I[1],j=I[2];return[z,W,j,h.length>3?h[3]:1]},vd=bd,_d=m.unpack,yd=m.type,xd=B,To=R,Po=b,wd=dd;To.prototype.oklch=function(){return wd(this._rgb)},xd.oklch=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(To,[null].concat(h,["oklch"])))},Po.format.oklch=vd,Po.autodetect.push({p:3,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=_d(h,"oklch"),yd(h)==="array"&&h.length===3)return"oklch"}});var Oo=R,kd=m.type;Oo.prototype.alpha=function(h,f){return f===void 0&&(f=!1),h!==void 0&&kd(h)==="number"?f?(this._rgb[3]=h,this):new Oo([this._rgb[0],this._rgb[1],this._rgb[2],h],"rgb"):this._rgb[3]};var Sd=R;Sd.prototype.clipped=function(){return this._rgb._clipped||!1};var vn=R,Md=Xi;vn.prototype.darken=function(h){h===void 0&&(h=1);var f=this,g=f.lab();return g[0]-=Md.Kn*h,new vn(g,"lab").alpha(f.alpha(),!0)},vn.prototype.brighten=function(h){return h===void 0&&(h=1),this.darken(-h)},vn.prototype.darker=vn.prototype.darken,vn.prototype.brighter=vn.prototype.brighten;var Cd=R;Cd.prototype.get=function(h){var f=h.split("."),g=f[0],_=f[1],k=this[g]();if(_){var C=g.indexOf(_)-(g.substr(0,2)==="ok"?2:0);if(C>-1)return k[C];throw new Error("unknown channel "+_+" in mode "+g)}else return k};var An=R,Td=m.type,Pd=Math.pow,Od=1e-7,Ed=20;An.prototype.luminance=function(h){if(h!==void 0&&Td(h)==="number"){if(h===0)return new An([0,0,0,this._rgb[3]],"rgb");if(h===1)return new An([255,255,255,this._rgb[3]],"rgb");var f=this.luminance(),g="rgb",_=Ed,k=function(x,O){var A=x.interpolate(O,.5,g),I=A.luminance();return Math.abs(h-I)h?k(x,A):k(A,O)},C=(f>h?k(new An([0,0,0]),this):k(this,new An([255,255,255]))).rgb();return new An(C.concat([this._rgb[3]]))}return Dd.apply(void 0,this._rgb.slice(0,3))};var Dd=function(h,f,g){return h=hr(h),f=hr(f),g=hr(g),.2126*h+.7152*f+.0722*g},hr=function(h){return h/=255,h<=.03928?h/12.92:Pd((h+.055)/1.055,2.4)},pe={},Eo=R,Do=m.type,ts=pe,Ao=function(h,f,g){g===void 0&&(g=.5);for(var _=[],k=arguments.length-3;k-- >0;)_[k]=arguments[k+3];var C=_[0]||"lrgb";if(!ts[C]&&!_.length&&(C=Object.keys(ts)[0]),!ts[C])throw new Error("interpolation mode "+C+" is not defined");return Do(h)!=="object"&&(h=new Eo(h)),Do(f)!=="object"&&(f=new Eo(f)),ts[C](h,f,g).alpha(h.alpha()+g*(f.alpha()-h.alpha()))},Ro=R,Ad=Ao;Ro.prototype.mix=Ro.prototype.interpolate=function(h,f){f===void 0&&(f=.5);for(var g=[],_=arguments.length-2;_-- >0;)g[_]=arguments[_+2];return Ad.apply(void 0,[this,h,f].concat(g))};var Lo=R;Lo.prototype.premultiply=function(h){h===void 0&&(h=!1);var f=this._rgb,g=f[3];return h?(this._rgb=[f[0]*g,f[1]*g,f[2]*g,g],this):new Lo([f[0]*g,f[1]*g,f[2]*g,g],"rgb")};var ur=R,Rd=Xi;ur.prototype.saturate=function(h){h===void 0&&(h=1);var f=this,g=f.lch();return g[1]+=Rd.Kn*h,g[1]<0&&(g[1]=0),new ur(g,"lch").alpha(f.alpha(),!0)},ur.prototype.desaturate=function(h){return h===void 0&&(h=1),this.saturate(-h)};var Fo=R,Io=m.type;Fo.prototype.set=function(h,f,g){g===void 0&&(g=!1);var _=h.split("."),k=_[0],C=_[1],x=this[k]();if(C){var O=k.indexOf(C)-(k.substr(0,2)==="ok"?2:0);if(O>-1){if(Io(f)=="string")switch(f.charAt(0)){case"+":x[O]+=+f;break;case"-":x[O]+=+f;break;case"*":x[O]*=+f.substr(1);break;case"/":x[O]/=+f.substr(1);break;default:x[O]=+f}else if(Io(f)==="number")x[O]=f;else throw new Error("unsupported value for Color.set");var A=new Fo(x,k);return g?(this._rgb=A._rgb,this):A}throw new Error("unknown channel "+C+" in mode "+k)}else return x};var Ld=R,Fd=function(h,f,g){var _=h._rgb,k=f._rgb;return new Ld(_[0]+g*(k[0]-_[0]),_[1]+g*(k[1]-_[1]),_[2]+g*(k[2]-_[2]),"rgb")};pe.rgb=Fd;var Id=R,fr=Math.sqrt,Rn=Math.pow,$d=function(h,f,g){var _=h._rgb,k=_[0],C=_[1],x=_[2],O=f._rgb,A=O[0],I=O[1],z=O[2];return new Id(fr(Rn(k,2)*(1-g)+Rn(A,2)*g),fr(Rn(C,2)*(1-g)+Rn(I,2)*g),fr(Rn(x,2)*(1-g)+Rn(z,2)*g),"rgb")};pe.lrgb=$d;var zd=R,Bd=function(h,f,g){var _=h.lab(),k=f.lab();return new zd(_[0]+g*(k[0]-_[0]),_[1]+g*(k[1]-_[1]),_[2]+g*(k[2]-_[2]),"lab")};pe.lab=Bd;var $o=R,Ln=function(h,f,g,_){var k,C,x,O;_==="hsl"?(x=h.hsl(),O=f.hsl()):_==="hsv"?(x=h.hsv(),O=f.hsv()):_==="hcg"?(x=h.hcg(),O=f.hcg()):_==="hsi"?(x=h.hsi(),O=f.hsi()):_==="lch"||_==="hcl"?(_="hcl",x=h.hcl(),O=f.hcl()):_==="oklch"&&(x=h.oklch().reverse(),O=f.oklch().reverse());var A,I,z,W,j,K;(_.substr(0,1)==="h"||_==="oklch")&&(k=x,A=k[0],z=k[1],j=k[2],C=O,I=C[0],W=C[1],K=C[2]);var q,lt,ft,mt;return!isNaN(A)&&!isNaN(I)?(I>A&&I-A>180?mt=I-(A+360):I180?mt=I+360-A:mt=I-A,lt=A+g*mt):isNaN(A)?isNaN(I)?lt=Number.NaN:(lt=I,(j==1||j==0)&&_!="hsv"&&(q=W)):(lt=A,(K==1||K==0)&&_!="hsv"&&(q=z)),q===void 0&&(q=z+g*(W-z)),ft=j+g*(K-j),_==="oklch"?new $o([ft,q,lt],_):new $o([lt,q,ft],_)},jd=Ln,zo=function(h,f,g){return jd(h,f,g,"lch")};pe.lch=zo,pe.hcl=zo;var Nd=R,Hd=function(h,f,g){var _=h.num(),k=f.num();return new Nd(_+g*(k-_),"num")};pe.num=Hd;var Vd=Ln,Wd=function(h,f,g){return Vd(h,f,g,"hcg")};pe.hcg=Wd;var Yd=Ln,Gd=function(h,f,g){return Yd(h,f,g,"hsi")};pe.hsi=Gd;var qd=Ln,Ud=function(h,f,g){return qd(h,f,g,"hsl")};pe.hsl=Ud;var Xd=Ln,Kd=function(h,f,g){return Xd(h,f,g,"hsv")};pe.hsv=Kd;var Zd=R,Jd=function(h,f,g){var _=h.oklab(),k=f.oklab();return new Zd(_[0]+g*(k[0]-_[0]),_[1]+g*(k[1]-_[1]),_[2]+g*(k[2]-_[2]),"oklab")};pe.oklab=Jd;var Qd=Ln,tp=function(h,f,g){return Qd(h,f,g,"oklch")};pe.oklch=tp;var dr=R,ep=m.clip_rgb,pr=Math.pow,gr=Math.sqrt,mr=Math.PI,Bo=Math.cos,jo=Math.sin,np=Math.atan2,ip=function(h,f,g){f===void 0&&(f="lrgb"),g===void 0&&(g=null);var _=h.length;g||(g=Array.from(new Array(_)).map(function(){return 1}));var k=_/g.reduce(function(lt,ft){return lt+ft});if(g.forEach(function(lt,ft){g[ft]*=k}),h=h.map(function(lt){return new dr(lt)}),f==="lrgb")return sp(h,g);for(var C=h.shift(),x=C.get(f),O=[],A=0,I=0,z=0;z=360;)q-=360;x[K]=q}else x[K]=x[K]/O[K];return j/=_,new dr(x,f).alpha(j>.99999?1:j,!0)},sp=function(h,f){for(var g=h.length,_=[0,0,0,0],k=0;k.9999999&&(_[3]=1),new dr(ep(_))},we=B,Fn=m.type,rp=Math.pow,br=function(h){var f="rgb",g=we("#ccc"),_=0,k=[0,1],C=[],x=[0,0],O=!1,A=[],I=!1,z=0,W=1,j=!1,K={},q=!0,lt=1,ft=function(N){if(N=N||["#fff","#000"],N&&Fn(N)==="string"&&we.brewer&&we.brewer[N.toLowerCase()]&&(N=we.brewer[N.toLowerCase()]),Fn(N)==="array"){N.length===1&&(N=[N[0],N[0]]),N=N.slice(0);for(var et=0;et=O[ut];)ut++;return ut-1}return 0},xt=function(N){return N},Kt=function(N){return N},Xt=function(N,et){var ut,ct;if(et==null&&(et=!1),isNaN(N)||N===null)return g;if(et)ct=N;else if(O&&O.length>2){var Zt=mt(N);ct=Zt/(O.length-2)}else W!==z?ct=(N-z)/(W-z):ct=1;ct=Kt(ct),et||(ct=xt(ct)),lt!==1&&(ct=rp(ct,lt)),ct=x[0]+ct*(1-x[0]-x[1]),ct=Math.min(1,Math.max(0,ct));var Dt=Math.floor(ct*1e4);if(q&&K[Dt])ut=K[Dt];else{if(Fn(A)==="array")for(var bt=0;bt=kt&&bt===C.length-1){ut=A[bt];break}if(ct>kt&&ct2){var bt=N.map(function(St,Tt){return Tt/(N.length-1)}),kt=N.map(function(St){return(St-z)/(W-z)});kt.every(function(St,Tt){return bt[Tt]===St})||(Kt=function(St){if(St<=0||St>=1)return St;for(var Tt=0;St>=kt[Tt+1];)Tt++;var Se=(St-kt[Tt])/(kt[Tt+1]-kt[Tt]),en=bt[Tt]+Se*(bt[Tt+1]-bt[Tt]);return en})}}return k=[z,W],gt},gt.mode=function(N){return arguments.length?(f=N,re(),gt):f},gt.range=function(N,et){return ft(N),gt},gt.out=function(N){return I=N,gt},gt.spread=function(N){return arguments.length?(_=N,gt):_},gt.correctLightness=function(N){return N==null&&(N=!0),j=N,re(),j?xt=function(et){for(var ut=Xt(0,!0).lab()[0],ct=Xt(1,!0).lab()[0],Zt=ut>ct,Dt=Xt(et,!0).lab()[0],bt=ut+(ct-ut)*et,kt=Dt-bt,St=0,Tt=1,Se=20;Math.abs(kt)>.01&&Se-- >0;)(function(){return Zt&&(kt*=-1),kt<0?(St=et,et+=(Tt-et)*.5):(Tt=et,et+=(St-et)*.5),Dt=Xt(et,!0).lab()[0],kt=Dt-bt})();return et}:xt=function(et){return et},gt},gt.padding=function(N){return N!=null?(Fn(N)==="number"&&(N=[N,N]),x=N,gt):x},gt.colors=function(N,et){arguments.length<2&&(et="hex");var ut=[];if(arguments.length===0)ut=A.slice(0);else if(N===1)ut=[gt(.5)];else if(N>1){var ct=k[0],Zt=k[1]-ct;ut=ap(0,N,!1).map(function(Tt){return gt(ct+Tt/(N-1)*Zt)})}else{h=[];var Dt=[];if(O&&O.length>2)for(var bt=1,kt=O.length,St=1<=kt;St?btkt;St?bt++:bt--)Dt.push((O[bt-1]+O[bt])*.5);else Dt=k;ut=Dt.map(function(Tt){return gt(Tt)})}return we[et]&&(ut=ut.map(function(Tt){return Tt[et]()})),ut},gt.cache=function(N){return N!=null?(q=N,gt):q},gt.gamma=function(N){return N!=null?(lt=N,gt):lt},gt.nodata=function(N){return N!=null?(g=we(N),gt):g},gt};function ap(h,f,g){for(var _=[],k=hC;k?x++:x--)_.push(x);return _}var oi=R,op=br,lp=function(h){for(var f=[1,1],g=1;g=5){var I,z,W;I=h.map(function(j){return j.lab()}),W=h.length-1,z=lp(W),k=function(j){var K=1-j,q=[0,1,2].map(function(lt){return I.reduce(function(ft,mt,xt){return ft+z[xt]*Math.pow(K,W-xt)*Math.pow(j,xt)*mt[lt]},0)});return new oi(q,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return k},hp=function(h){var f=cp(h);return f.scale=function(){return op(f)},f},vr=B,ke=function(h,f,g){if(!ke[g])throw new Error("unknown blend mode "+g);return ke[g](h,f)},Qe=function(h){return function(f,g){var _=vr(g).rgb(),k=vr(f).rgb();return vr.rgb(h(_,k))}},tn=function(h){return function(f,g){var _=[];return _[0]=h(f[0],g[0]),_[1]=h(f[1],g[1]),_[2]=h(f[2],g[2]),_}},up=function(h){return h},fp=function(h,f){return h*f/255},dp=function(h,f){return h>f?f:h},pp=function(h,f){return h>f?h:f},gp=function(h,f){return 255*(1-(1-h/255)*(1-f/255))},mp=function(h,f){return f<128?2*h*f/255:255*(1-2*(1-h/255)*(1-f/255))},bp=function(h,f){return 255*(1-(1-f/255)/(h/255))},vp=function(h,f){return h===255?255:(h=255*(f/255)/(1-h/255),h>255?255:h)};ke.normal=Qe(tn(up)),ke.multiply=Qe(tn(fp)),ke.screen=Qe(tn(gp)),ke.overlay=Qe(tn(mp)),ke.darken=Qe(tn(dp)),ke.lighten=Qe(tn(pp)),ke.dodge=Qe(tn(vp)),ke.burn=Qe(tn(bp));for(var _p=ke,_r=m.type,yp=m.clip_rgb,xp=m.TWOPI,wp=Math.pow,kp=Math.sin,Sp=Math.cos,No=B,Mp=function(h,f,g,_,k){h===void 0&&(h=300),f===void 0&&(f=-1.5),g===void 0&&(g=1),_===void 0&&(_=1),k===void 0&&(k=[0,1]);var C=0,x;_r(k)==="array"?x=k[1]-k[0]:(x=0,k=[k,k]);var O=function(A){var I=xp*((h+120)/360+f*A),z=wp(k[0]+x*A,_),W=C!==0?g[0]+A*C:g,j=W*z*(1-z)/2,K=Sp(I),q=kp(I),lt=z+j*(-.14861*K+1.78277*q),ft=z+j*(-.29227*K-.90649*q),mt=z+j*(1.97294*K);return No(yp([lt*255,ft*255,mt*255,1]))};return O.start=function(A){return A==null?h:(h=A,O)},O.rotations=function(A){return A==null?f:(f=A,O)},O.gamma=function(A){return A==null?_:(_=A,O)},O.hue=function(A){return A==null?g:(g=A,_r(g)==="array"?(C=g[1]-g[0],C===0&&(g=g[1])):C=0,O)},O.lightness=function(A){return A==null?k:(_r(A)==="array"?(k=A,x=A[1]-A[0]):(k=[A,A],x=0),O)},O.scale=function(){return No.scale(O)},O.hue(g),O},Cp=R,Tp="0123456789abcdef",Pp=Math.floor,Op=Math.random,Ep=function(){for(var h="#",f=0;f<6;f++)h+=Tp.charAt(Pp(Op()*16));return new Cp(h,"hex")},yr=o,Ho=Math.log,Dp=Math.pow,Ap=Math.floor,Rp=Math.abs,Vo=function(h,f){f===void 0&&(f=null);var g={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return yr(h)==="object"&&(h=Object.values(h)),h.forEach(function(_){f&&yr(_)==="object"&&(_=_[f]),_!=null&&!isNaN(_)&&(g.values.push(_),g.sum+=_,_g.max&&(g.max=_),g.count+=1)}),g.domain=[g.min,g.max],g.limits=function(_,k){return Wo(g,_,k)},g},Wo=function(h,f,g){f===void 0&&(f="equal"),g===void 0&&(g=7),yr(h)=="array"&&(h=Vo(h));var _=h.min,k=h.max,C=h.values.sort(function(wr,kr){return wr-kr});if(g===1)return[_,k];var x=[];if(f.substr(0,1)==="c"&&(x.push(_),x.push(k)),f.substr(0,1)==="e"){x.push(_);for(var O=1;O 0");var A=Math.LOG10E*Ho(_),I=Math.LOG10E*Ho(k);x.push(_);for(var z=1;z200&&(Kt=!1)}for(var nn={},In=0;In_?(g+.05)/(_+.05):(_+.05)/(g+.05)},qo=R,je=Math.sqrt,Nt=Math.pow,Fp=Math.min,Ip=Math.max,Uo=Math.atan2,Xo=Math.abs,es=Math.cos,Ko=Math.sin,$p=Math.exp,Zo=Math.PI,zp=function(h,f,g,_,k){g===void 0&&(g=1),_===void 0&&(_=1),k===void 0&&(k=1);var C=function(yn){return 360*yn/(2*Zo)},x=function(yn){return 2*Zo*yn/360};h=new qo(h),f=new qo(f);var O=Array.from(h.lab()),A=O[0],I=O[1],z=O[2],W=Array.from(f.lab()),j=W[0],K=W[1],q=W[2],lt=(A+j)/2,ft=je(Nt(I,2)+Nt(z,2)),mt=je(Nt(K,2)+Nt(q,2)),xt=(ft+mt)/2,Kt=.5*(1-je(Nt(xt,7)/(Nt(xt,7)+Nt(25,7)))),Xt=I*(1+Kt),re=K*(1+Kt),gt=je(Nt(Xt,2)+Nt(z,2)),N=je(Nt(re,2)+Nt(q,2)),et=(gt+N)/2,ut=C(Uo(z,Xt)),ct=C(Uo(q,re)),Zt=ut>=0?ut:ut+360,Dt=ct>=0?ct:ct+360,bt=Xo(Zt-Dt)>180?(Zt+Dt+360)/2:(Zt+Dt)/2,kt=1-.17*es(x(bt-30))+.24*es(x(2*bt))+.32*es(x(3*bt+6))-.2*es(x(4*bt-63)),St=Dt-Zt;St=Xo(St)<=180?St:Dt<=Zt?St+360:St-360,St=2*je(gt*N)*Ko(x(St)/2);var Tt=j-A,Se=N-gt,en=1+.015*Nt(lt-50,2)/je(20+Nt(lt-50,2)),nn=1+.045*et,In=1+.015*et*kt,$n=30*$p(-Nt((bt-275)/25,2)),Ne=2*je(Nt(et,7)/(Nt(et,7)+Nt(25,7))),_n=-Ne*Ko(2*x($n)),li=je(Nt(Tt/(g*en),2)+Nt(Se/(_*nn),2)+Nt(St/(k*In),2)+_n*(Se/(_*nn))*(St/(k*In)));return Ip(0,Fp(100,li))},Jo=R,Bp=function(h,f,g){g===void 0&&(g="lab"),h=new Jo(h),f=new Jo(f);var _=h.get(g),k=f.get(g),C=0;for(var x in _){var O=(_[x]||0)-(k[x]||0);C+=O*O}return Math.sqrt(C)},jp=R,Np=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];try{return new(Function.prototype.bind.apply(jp,[null].concat(h))),!0}catch(g){return!1}},Qo=B,tl=br,Hp={cool:function(){return tl([Qo.hsl(180,1,.9),Qo.hsl(250,.7,.4)])},hot:function(){return tl(["#000","#f00","#ff0","#fff"]).mode("rgb")}},ns={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},xr=0,el=Object.keys(ns);xr{(function(n,t){typeof Bs=="object"&&typeof xh!="undefined"?t(Bs):typeof define=="function"&&define.amd?define("@ts-stack/markdown",["exports"],t):(n=typeof globalThis!="undefined"?globalThis:n||self,t((n["ts-stack"]=n["ts-stack"]||{},n["ts-stack"].markdown={})))})(Bs,function(n){"use strict";var t=function(){function w(v,y){y===void 0&&(y=""),this.source=v.source,this.flags=y}return w.prototype.setGroup=function(v,y){var D=typeof y=="string"?y:y.source;return D=D.replace(/(^|[^\[])\^/g,"$1"),this.source=this.source.replace(v,D),this},w.prototype.getRegexp=function(){return new RegExp(this.source,this.flags)},w}();var e=/[&<>"']/,i=/[&<>"']/g,s={"&":"&","<":"<",">":">",'"':""","'":"'"},r=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g;function o(w,v){if(v){if(e.test(w))return w.replace(i,function(y){return s[y]})}else if(r.test(w))return w.replace(a,function(y){return s[y]});return w}function l(w){return w.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(v,y){return y=y.toLowerCase(),y==="colon"?":":y.charAt(0)==="#"?y.charAt(1)==="x"?String.fromCharCode(parseInt(y.substring(2),16)):String.fromCharCode(+y.substring(1)):""})}n.TokenType=void 0,function(w){w[w.space=1]="space",w[w.text=2]="text",w[w.paragraph=3]="paragraph",w[w.heading=4]="heading",w[w.listStart=5]="listStart",w[w.listEnd=6]="listEnd",w[w.looseItemStart=7]="looseItemStart",w[w.looseItemEnd=8]="looseItemEnd",w[w.listItemStart=9]="listItemStart",w[w.listItemEnd=10]="listItemEnd",w[w.blockquoteStart=11]="blockquoteStart",w[w.blockquoteEnd=12]="blockquoteEnd",w[w.code=13]="code",w[w.table=14]="table",w[w.html=15]="html",w[w.hr=16]="hr"}(n.TokenType||(n.TokenType={}));var c=function(){function w(){this.gfm=!0,this.tables=!0,this.breaks=!1,this.pedantic=!1,this.sanitize=!1,this.mangle=!0,this.smartLists=!1,this.silent=!1,this.langPrefix="lang-",this.smartypants=!1,this.headerPrefix="",this.xhtml=!1,this.escape=o,this.unescape=l}return w}();var u=function(w,v){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,D){y.__proto__=D}||function(y,D){for(var T in D)Object.prototype.hasOwnProperty.call(D,T)&&(y[T]=D[T])},u(w,v)};function d(w,v){if(typeof v!="function"&&v!==null)throw new TypeError("Class extends value "+String(v)+" is not a constructor or null");u(w,v);function y(){this.constructor=w}w.prototype=v===null?Object.create(v):(y.prototype=v.prototype,new y)}var p=function(){return p=Object.assign||function(v){for(var y,D=1,T=arguments.length;D=0;V--)(U=w[V])&&(P=(T<3?U(P):T>3?U(v,y,P):U(v,y))||P);return T>3&&P&&Object.defineProperty(v,y,P),P}function S(w,v){return function(y,D){v(y,D,w)}}function M(w,v){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(w,v)}function E(w,v,y,D){function T(P){return P instanceof y?P:new y(function(U){U(P)})}return new(y||(y=Promise))(function(P,U){function V(vt){try{J(D.next(vt))}catch(Rt){U(Rt)}}function X(vt){try{J(D.throw(vt))}catch(Rt){U(Rt)}}function J(vt){vt.done?P(vt.value):T(vt.value).then(V,X)}J((D=D.apply(w,v||[])).next())})}function L(w,v){var y={label:0,sent:function(){if(P[0]&1)throw P[1];return P[1]},trys:[],ops:[]},D,T,P,U;return U={next:V(0),throw:V(1),return:V(2)},typeof Symbol=="function"&&(U[Symbol.iterator]=function(){return this}),U;function V(J){return function(vt){return X([J,vt])}}function X(J){if(D)throw new TypeError("Generator is already executing.");for(;y;)try{if(D=1,T&&(P=J[0]&2?T.return:J[0]?T.throw||((P=T.return)&&P.call(T),0):T.next)&&!(P=P.call(T,J[1])).done)return P;switch(T=0,P&&(J=[J[0]&2,P.value]),J[0]){case 0:case 1:P=J;break;case 4:return y.label++,{value:J[1],done:!1};case 5:y.label++,T=J[1],J=[0];continue;case 7:J=y.ops.pop(),y.trys.pop();continue;default:if(P=y.trys,!(P=P.length>0&&P[P.length-1])&&(J[0]===6||J[0]===2)){y=0;continue}if(J[0]===3&&(!P||J[1]>P[0]&&J[1]=w.length&&(w=void 0),{value:w&&w[D++],done:!w}}};throw new TypeError(v?"Object is not iterable.":"Symbol.iterator is not defined.")}function B(w,v){var y=typeof Symbol=="function"&&w[Symbol.iterator];if(!y)return w;var D=y.call(w),T,P=[],U;try{for(;(v===void 0||v-- >0)&&!(T=D.next()).done;)P.push(T.value)}catch(V){U={error:V}}finally{try{T&&!T.done&&(y=D.return)&&y.call(D)}finally{if(U)throw U.error}}return P}function H(){for(var w=[],v=0;v1||V(Ct,$t)})})}function V(Ct,$t){try{X(D[Ct]($t))}catch(zt){Rt(P[0][3],zt)}}function X(Ct){Ct.value instanceof nt?Promise.resolve(Ct.value.v).then(J,vt):Rt(P[0][2],Ct)}function J(Ct){V("next",Ct)}function vt(Ct){V("throw",Ct)}function Rt(Ct,$t){Ct($t),P.shift(),P.length&&V(P[0][0],P[0][1])}}function rt(w){var v,y;return v={},D("next"),D("throw",function(T){throw T}),D("return"),v[Symbol.iterator]=function(){return this},v;function D(T,P){v[T]=w[T]?function(U){return(y=!y)?{value:nt(w[T](U)),done:T==="return"}:P?P(U):U}:P}}function wt(w){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var v=w[Symbol.asyncIterator],y;return v?v.call(w):(w=typeof F=="function"?F(w):w[Symbol.iterator](),y={},D("next"),D("throw"),D("return"),y[Symbol.asyncIterator]=function(){return this},y);function D(P){y[P]=w[P]&&function(U){return new Promise(function(V,X){U=w[P](U),T(V,X,U.done,U.value)})}}function T(P,U,V,X){Promise.resolve(X).then(function(J){P({value:J,done:V})},U)}}function st(w,v){return Object.defineProperty?Object.defineProperty(w,"raw",{value:v}):w.raw=v,w}var Q=Object.create?function(w,v){Object.defineProperty(w,"default",{enumerable:!0,value:v})}:function(w,v){w.default=v};function ht(w){if(w&&w.__esModule)return w;var v={};if(w!=null)for(var y in w)y!=="default"&&Object.prototype.hasOwnProperty.call(w,y)&&$(v,w,y);return Q(v,w),v}function ue(w){return w&&w.__esModule?w:{default:w}}function ie(w,v){if(!v.has(w))throw new TypeError("attempted to get private field on non-instance");return v.get(w)}function fe(w,v,y){if(!v.has(w))throw new TypeError("attempted to set private field on non-instance");return v.set(w,y),y}var Ft=function(){function w(v){this.options=v||jt.options}return w.prototype.code=function(v,y,D,T){if(this.options.highlight){var P=this.options.highlight(v,y);P!=null&&P!==v&&(D=!0,v=P)}var U=D?v:this.options.escape(v,!0);if(!y)return` -
`+U+`
+var Xp=Object.create;var li=Object.defineProperty,Kp=Object.defineProperties,Zp=Object.getOwnPropertyDescriptor,Jp=Object.getOwnPropertyDescriptors,Qp=Object.getOwnPropertyNames,al=Object.getOwnPropertySymbols,tg=Object.getPrototypeOf,ol=Object.prototype.hasOwnProperty,eg=Object.prototype.propertyIsEnumerable;var ll=(n,t,e)=>t in n?li(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ci=(n,t)=>{for(var e in t||(t={}))ol.call(t,e)&&ll(n,e,t[e]);if(al)for(var e of al(t))eg.call(t,e)&&ll(n,e,t[e]);return n},hi=(n,t)=>Kp(n,Jp(t)),cl=n=>li(n,"__esModule",{value:!0});var Sr=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),ng=(n,t)=>{cl(n);for(var e in t)li(n,e,{get:t[e],enumerable:!0})},ig=(n,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Qp(t))!ol.call(n,i)&&i!=="default"&&li(n,i,{get:()=>t[i],enumerable:!(e=Zp(t,i))||e.enumerable});return n},De=n=>ig(cl(li(n!=null?Xp(tg(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var wh=Sr((Ta,Pa)=>{(function(n,t){typeof Ta=="object"&&typeof Pa!="undefined"?Pa.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self,n.chroma=t())})(Ta,function(){"use strict";for(var n=function(h,f,g){return f===void 0&&(f=0),g===void 0&&(g=1),hg?g:h},t=n,e=function(h){h._clipped=!1,h._unclipped=h.slice(0);for(var f=0;f<=3;f++)f<3?((h[f]<0||h[f]>255)&&(h._clipped=!0),h[f]=t(h[f],0,255)):f===3&&(h[f]=t(h[f],0,1));return h},i={},s=0,r=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];s=3?Array.prototype.slice.call(h):l(h[0])=="object"&&f?f.split("").filter(function(g){return h[0][g]!==void 0}).map(function(g){return h[0][g]}):h[0]},u=o,d=function(h){if(h.length<2)return null;var f=h.length-1;return u(h[f])=="string"?h[f].toLowerCase():null},m=Math.PI,p={clip_rgb:e,limit:n,type:o,unpack:c,last:d,PI:m,TWOPI:m*2,PITHIRD:m/3,DEG2RAD:m/180,RAD2DEG:180/m},b={format:{},autodetect:[]},k=p.last,M=p.clip_rgb,T=p.type,R=b,$=function(){for(var f=[],g=arguments.length;g--;)f[g]=arguments[g];var _=this;if(T(f[0])==="object"&&f[0].constructor&&f[0].constructor===this.constructor)return f[0];var S=k(f),C=!1;if(!S){C=!0,R.sorted||(R.autodetect=R.autodetect.sort(function(B,W){return W.p-B.p}),R.sorted=!0);for(var x=0,E=R.autodetect;x4?h[4]:1;return C===1?[0,0,0,x]:[g>=1?0:255*(1-g)*(1-C),_>=1?0:255*(1-_)*(1-C),S>=1?0:255*(1-S)*(1-C),x]},wt=st,rt=z,U=L,_t=b,Ct=p.unpack,se=p.type,we=et;U.prototype.cmyk=function(){return we(this._rgb)},rt.cmyk=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(U,[null].concat(h,["cmyk"])))},_t.format.cmyk=wt,_t.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Ct(h,"cmyk"),se(h)==="array"&&h.length===4)return"cmyk"}});var It=p.unpack,Wt=p.last,jt=function(h){return Math.round(h*100)/100},Nt=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=It(h,"hsla"),_=Wt(h)||"lsa";return g[0]=jt(g[0]||0),g[1]=jt(g[1]*100)+"%",g[2]=jt(g[2]*100)+"%",_==="hsla"||g.length>3&&g[3]<1?(g[3]=g.length>3?g[3]:1,_="hsla"):g.length=3,_+"("+g.join(",")+")"},qt=Nt,w=p.unpack,v=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=w(h,"rgba");var g=h[0],_=h[1],S=h[2];g/=255,_/=255,S/=255;var C=Math.min(g,_,S),x=Math.max(g,_,S),E=(x+C)/2,A,I;return x===C?(A=0,I=Number.NaN):A=E<.5?(x-C)/(x+C):(x-C)/(2-x-C),g==x?I=(_-S)/(x-C):_==x?I=2+(S-g)/(x-C):S==x&&(I=4+(g-_)/(x-C)),I*=60,I<0&&(I+=360),h.length>3&&h[3]!==void 0?[I,A,E,h[3]]:[I,A,E]},y=v,D=p.unpack,P=p.last,O=qt,K=y,V=Math.round,Z=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=D(h,"rgba"),_=P(h)||"rgb";return _.substr(0,3)=="hsl"?O(K(g),_):(g[0]=V(g[0]),g[1]=V(g[1]),g[2]=V(g[2]),(_==="rgba"||g.length>3&&g[3]<1)&&(g[3]=g.length>3?g[3]:1,_="rgba"),_+"("+g.slice(0,_==="rgb"?3:4).join(",")+")")},Q=Z,vt=p.unpack,Rt=Math.round,Tt=function(){for(var h,f=[],g=arguments.length;g--;)f[g]=arguments[g];f=vt(f,"hsl");var _=f[0],S=f[1],C=f[2],x,E,A;if(S===0)x=E=A=C*255;else{var I=[0,0,0],B=[0,0,0],W=C<.5?C*(1+S):C+S-C*S,j=2*C-W,J=_/360;I[0]=J+1/3,I[1]=J,I[2]=J-1/3;for(var X=0;X<3;X++)I[X]<0&&(I[X]+=1),I[X]>1&&(I[X]-=1),6*I[X]<1?B[X]=j+(W-j)*6*I[X]:2*I[X]<1?B[X]=W:3*I[X]<2?B[X]=j+(W-j)*(2/3-I[X])*6:B[X]=j;h=[Rt(B[0]*255),Rt(B[1]*255),Rt(B[2]*255)],x=h[0],E=h[1],A=h[2]}return f.length>3?[x,E,A,f[3]]:[x,E,A,1]},zt=Tt,Bt=zt,re=b,be=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,fe=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,mn=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,Ee=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,Be=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,ni=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ii=Math.round,Tn=function(h){h=h.toLowerCase().trim();var f;if(re.format.named)try{return re.format.named(h)}catch(X){}if(f=h.match(be)){for(var g=f.slice(1,4),_=0;_<3;_++)g[_]=+g[_];return g[3]=1,g}if(f=h.match(fe)){for(var S=f.slice(1,5),C=0;C<4;C++)S[C]=+S[C];return S}if(f=h.match(mn)){for(var x=f.slice(1,4),E=0;E<3;E++)x[E]=ii(x[E]*2.55);return x[3]=1,x}if(f=h.match(Ee)){for(var A=f.slice(1,5),I=0;I<3;I++)A[I]=ii(A[I]*2.55);return A[3]=+A[3],A}if(f=h.match(Be)){var B=f.slice(1,4);B[1]*=.01,B[2]*=.01;var W=Bt(B);return W[3]=1,W}if(f=h.match(ni)){var j=f.slice(1,4);j[1]*=.01,j[2]*=.01;var J=Bt(j);return J[3]=+f[4],J}};Tn.test=function(h){return be.test(h)||fe.test(h)||mn.test(h)||Ee.test(h)||Be.test(h)||ni.test(h)};var je=Tn,bn=z,Pn=L,si=b,Je=p.type,ee=Q,yt=je;Pn.prototype.css=function(h){return ee(this._rgb,h)},bn.css=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Pn,[null].concat(h,["css"])))},si.format.css=yt,si.autodetect.push({p:5,test:function(h){for(var f=[],g=arguments.length-1;g-- >0;)f[g]=arguments[g+1];if(!f.length&&Je(h)==="string"&&yt.test(h))return"css"}});var ne=L,Ut=z,Gi=b,tu=p.unpack;Gi.format.gl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=tu(h,"rgba");return g[0]*=255,g[1]*=255,g[2]*=255,g},Ut.gl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(ne,[null].concat(h,["gl"])))},ne.prototype.gl=function(){var h=this._rgb;return[h[0]/255,h[1]/255,h[2]/255,h[3]]};var eu=p.unpack,nu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=eu(h,"rgb"),_=g[0],S=g[1],C=g[2],x=Math.min(_,S,C),E=Math.max(_,S,C),A=E-x,I=A*100/255,B=x/(255-A)*100,W;return A===0?W=Number.NaN:(_===E&&(W=(S-C)/A),S===E&&(W=2+(C-_)/A),C===E&&(W=4+(_-S)/A),W*=60,W<0&&(W+=360)),[W,I,B]},iu=nu,su=p.unpack,ru=Math.floor,au=function(){for(var h,f,g,_,S,C,x=[],E=arguments.length;E--;)x[E]=arguments[E];x=su(x,"hcg");var A=x[0],I=x[1],B=x[2],W,j,J;B=B*255;var X=I*255;if(I===0)W=j=J=B;else{A===360&&(A=0),A>360&&(A-=360),A<0&&(A+=360),A/=60;var lt=ru(A),ut=A-lt,gt=B*(1-I),xt=gt+X*(1-ut),Zt=gt+X*ut,Kt=gt+X;switch(lt){case 0:h=[Kt,Zt,gt],W=h[0],j=h[1],J=h[2];break;case 1:f=[xt,Kt,gt],W=f[0],j=f[1],J=f[2];break;case 2:g=[gt,Kt,Zt],W=g[0],j=g[1],J=g[2];break;case 3:_=[gt,xt,Kt],W=_[0],j=_[1],J=_[2];break;case 4:S=[Zt,gt,Kt],W=S[0],j=S[1],J=S[2];break;case 5:C=[Kt,gt,xt],W=C[0],j=C[1],J=C[2];break}}return[W,j,J,x.length>3?x[3]:1]},ou=au,lu=p.unpack,cu=p.type,hu=z,qa=L,Ua=b,uu=iu;qa.prototype.hcg=function(){return uu(this._rgb)},hu.hcg=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(qa,[null].concat(h,["hcg"])))},Ua.format.hcg=ou,Ua.autodetect.push({p:1,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=lu(h,"hcg"),cu(h)==="array"&&h.length===3)return"hcg"}});var fu=p.unpack,du=p.last,qi=Math.round,pu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=fu(h,"rgba"),_=g[0],S=g[1],C=g[2],x=g[3],E=du(h)||"auto";x===void 0&&(x=1),E==="auto"&&(E=x<1?"rgba":"rgb"),_=qi(_),S=qi(S),C=qi(C);var A=_<<16|S<<8|C,I="000000"+A.toString(16);I=I.substr(I.length-6);var B="0"+qi(x*255).toString(16);switch(B=B.substr(B.length-2),E.toLowerCase()){case"rgba":return"#"+I+B;case"argb":return"#"+B+I;default:return"#"+I}},Xa=pu,gu=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,mu=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,bu=function(h){if(h.match(gu)){(h.length===4||h.length===7)&&(h=h.substr(1)),h.length===3&&(h=h.split(""),h=h[0]+h[0]+h[1]+h[1]+h[2]+h[2]);var f=parseInt(h,16),g=f>>16,_=f>>8&255,S=f&255;return[g,_,S,1]}if(h.match(mu)){(h.length===5||h.length===9)&&(h=h.substr(1)),h.length===4&&(h=h.split(""),h=h[0]+h[0]+h[1]+h[1]+h[2]+h[2]+h[3]+h[3]);var C=parseInt(h,16),x=C>>24&255,E=C>>16&255,A=C>>8&255,I=Math.round((C&255)/255*100)/100;return[x,E,A,I]}throw new Error("unknown hex color: "+h)},Ka=bu,vu=z,Za=L,_u=p.type,Ja=b,yu=Xa;Za.prototype.hex=function(h){return yu(this._rgb,h)},vu.hex=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Za,[null].concat(h,["hex"])))},Ja.format.hex=Ka,Ja.autodetect.push({p:4,test:function(h){for(var f=[],g=arguments.length-1;g-- >0;)f[g]=arguments[g+1];if(!f.length&&_u(h)==="string"&&[3,4,5,6,7,8,9].indexOf(h.length)>=0)return"hex"}});var xu=p.unpack,Qa=p.TWOPI,wu=Math.min,ku=Math.sqrt,Su=Math.acos,Mu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=xu(h,"rgb"),_=g[0],S=g[1],C=g[2];_/=255,S/=255,C/=255;var x,E=wu(_,S,C),A=(_+S+C)/3,I=A>0?1-E/A:0;return I===0?x=NaN:(x=(_-S+(_-C))/2,x/=ku((_-S)*(_-S)+(_-C)*(S-C)),x=Su(x),C>S&&(x=Qa-x),x/=Qa),[x*360,I,A]},Cu=Mu,Tu=p.unpack,Zs=p.limit,On=p.TWOPI,Js=p.PITHIRD,En=Math.cos,Pu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=Tu(h,"hsi");var g=h[0],_=h[1],S=h[2],C,x,E;return isNaN(g)&&(g=0),isNaN(_)&&(_=0),g>360&&(g-=360),g<0&&(g+=360),g/=360,g<1/3?(E=(1-_)/3,C=(1+_*En(On*g)/En(Js-On*g))/3,x=1-(E+C)):g<2/3?(g-=1/3,C=(1-_)/3,x=(1+_*En(On*g)/En(Js-On*g))/3,E=1-(C+x)):(g-=2/3,x=(1-_)/3,E=(1+_*En(On*g)/En(Js-On*g))/3,C=1-(x+E)),C=Zs(S*C*3),x=Zs(S*x*3),E=Zs(S*E*3),[C*255,x*255,E*255,h.length>3?h[3]:1]},Ou=Pu,Eu=p.unpack,Du=p.type,Au=z,to=L,eo=b,Lu=Cu;to.prototype.hsi=function(){return Lu(this._rgb)},Au.hsi=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(to,[null].concat(h,["hsi"])))},eo.format.hsi=Ou,eo.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Eu(h,"hsi"),Du(h)==="array"&&h.length===3)return"hsi"}});var Ru=p.unpack,Fu=p.type,Iu=z,no=L,io=b,$u=y;no.prototype.hsl=function(){return $u(this._rgb)},Iu.hsl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(no,[null].concat(h,["hsl"])))},io.format.hsl=zt,io.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=Ru(h,"hsl"),Fu(h)==="array"&&h.length===3)return"hsl"}});var zu=p.unpack,Bu=Math.min,ju=Math.max,Nu=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=zu(h,"rgb");var g=h[0],_=h[1],S=h[2],C=Bu(g,_,S),x=ju(g,_,S),E=x-C,A,I,B;return B=x/255,x===0?(A=Number.NaN,I=0):(I=E/x,g===x&&(A=(_-S)/E),_===x&&(A=2+(S-g)/E),S===x&&(A=4+(g-_)/E),A*=60,A<0&&(A+=360)),[A,I,B]},Hu=Nu,Vu=p.unpack,Wu=Math.floor,Yu=function(){for(var h,f,g,_,S,C,x=[],E=arguments.length;E--;)x[E]=arguments[E];x=Vu(x,"hsv");var A=x[0],I=x[1],B=x[2],W,j,J;if(B*=255,I===0)W=j=J=B;else{A===360&&(A=0),A>360&&(A-=360),A<0&&(A+=360),A/=60;var X=Wu(A),lt=A-X,ut=B*(1-I),gt=B*(1-I*lt),xt=B*(1-I*(1-lt));switch(X){case 0:h=[B,xt,ut],W=h[0],j=h[1],J=h[2];break;case 1:f=[gt,B,ut],W=f[0],j=f[1],J=f[2];break;case 2:g=[ut,B,xt],W=g[0],j=g[1],J=g[2];break;case 3:_=[ut,gt,B],W=_[0],j=_[1],J=_[2];break;case 4:S=[xt,ut,B],W=S[0],j=S[1],J=S[2];break;case 5:C=[B,ut,gt],W=C[0],j=C[1],J=C[2];break}}return[W,j,J,x.length>3?x[3]:1]},Gu=Yu,qu=p.unpack,Uu=p.type,Xu=z,so=L,ro=b,Ku=Hu;so.prototype.hsv=function(){return Ku(this._rgb)},Xu.hsv=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(so,[null].concat(h,["hsv"])))},ro.format.hsv=Gu,ro.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=qu(h,"hsv"),Uu(h)==="array"&&h.length===3)return"hsv"}});var Ui={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},Dn=Ui,Zu=p.unpack,ao=Math.pow,Ju=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Zu(h,"rgb"),_=g[0],S=g[1],C=g[2],x=Qu(_,S,C),E=x[0],A=x[1],I=x[2],B=116*A-16;return[B<0?0:B,500*(E-A),200*(A-I)]},Qs=function(h){return(h/=255)<=.04045?h/12.92:ao((h+.055)/1.055,2.4)},tr=function(h){return h>Dn.t3?ao(h,1/3):h/Dn.t2+Dn.t0},Qu=function(h,f,g){h=Qs(h),f=Qs(f),g=Qs(g);var _=tr((.4124564*h+.3575761*f+.1804375*g)/Dn.Xn),S=tr((.2126729*h+.7151522*f+.072175*g)/Dn.Yn),C=tr((.0193339*h+.119192*f+.9503041*g)/Dn.Zn);return[_,S,C]},oo=Ju,An=Ui,tf=p.unpack,ef=Math.pow,nf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=tf(h,"lab");var g=h[0],_=h[1],S=h[2],C,x,E,A,I,B;return x=(g+16)/116,C=isNaN(_)?x:x+_/500,E=isNaN(S)?x:x-S/200,x=An.Yn*nr(x),C=An.Xn*nr(C),E=An.Zn*nr(E),A=er(3.2404542*C-1.5371385*x-.4985314*E),I=er(-.969266*C+1.8760108*x+.041556*E),B=er(.0556434*C-.2040259*x+1.0572252*E),[A,I,B,h.length>3?h[3]:1]},er=function(h){return 255*(h<=.00304?12.92*h:1.055*ef(h,1/2.4)-.055)},nr=function(h){return h>An.t1?h*h*h:An.t2*(h-An.t0)},lo=nf,sf=p.unpack,rf=p.type,af=z,co=L,ho=b,of=oo;co.prototype.lab=function(){return of(this._rgb)},af.lab=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(co,[null].concat(h,["lab"])))},ho.format.lab=lo,ho.autodetect.push({p:2,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=sf(h,"lab"),rf(h)==="array"&&h.length===3)return"lab"}});var lf=p.unpack,cf=p.RAD2DEG,hf=Math.sqrt,uf=Math.atan2,ff=Math.round,df=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=lf(h,"lab"),_=g[0],S=g[1],C=g[2],x=hf(S*S+C*C),E=(uf(C,S)*cf+360)%360;return ff(x*1e4)===0&&(E=Number.NaN),[_,x,E]},uo=df,pf=p.unpack,gf=oo,mf=uo,bf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=pf(h,"rgb"),_=g[0],S=g[1],C=g[2],x=gf(_,S,C),E=x[0],A=x[1],I=x[2];return mf(E,A,I)},vf=bf,_f=p.unpack,yf=p.DEG2RAD,xf=Math.sin,wf=Math.cos,kf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=_f(h,"lch"),_=g[0],S=g[1],C=g[2];return isNaN(C)&&(C=0),C=C*yf,[_,wf(C)*S,xf(C)*S]},fo=kf,Sf=p.unpack,Mf=fo,Cf=lo,Tf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=Sf(h,"lch");var g=h[0],_=h[1],S=h[2],C=Mf(g,_,S),x=C[0],E=C[1],A=C[2],I=Cf(x,E,A),B=I[0],W=I[1],j=I[2];return[B,W,j,h.length>3?h[3]:1]},po=Tf,Pf=p.unpack,Of=po,Ef=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Pf(h,"hcl").reverse();return Of.apply(void 0,g)},Df=Ef,Af=p.unpack,Lf=p.type,go=z,Xi=L,ir=b,mo=vf;Xi.prototype.lch=function(){return mo(this._rgb)},Xi.prototype.hcl=function(){return mo(this._rgb).reverse()},go.lch=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Xi,[null].concat(h,["lch"])))},go.hcl=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Xi,[null].concat(h,["hcl"])))},ir.format.lch=po,ir.format.hcl=Df,["lch","hcl"].forEach(function(h){return ir.autodetect.push({p:2,test:function(){for(var f=[],g=arguments.length;g--;)f[g]=arguments[g];if(f=Af(f,h),Lf(f)==="array"&&f.length===3)return h}})});var Rf={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},bo=Rf,Ff=L,vo=b,If=p.type,ri=bo,$f=Ka,zf=Xa;Ff.prototype.name=function(){for(var h=zf(this._rgb,"rgb"),f=0,g=Object.keys(ri);f0;)f[g]=arguments[g+1];if(!f.length&&If(h)==="string"&&ri[h.toLowerCase()])return"named"}});var Bf=p.unpack,jf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=Bf(h,"rgb"),_=g[0],S=g[1],C=g[2];return(_<<16)+(S<<8)+C},Nf=jf,Hf=p.type,Vf=function(h){if(Hf(h)=="number"&&h>=0&&h<=16777215){var f=h>>16,g=h>>8&255,_=h&255;return[f,g,_,1]}throw new Error("unknown num color: "+h)},Wf=Vf,Yf=z,_o=L,yo=b,Gf=p.type,qf=Nf;_o.prototype.num=function(){return qf(this._rgb)},Yf.num=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(_o,[null].concat(h,["num"])))},yo.format.num=Wf,yo.autodetect.push({p:5,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h.length===1&&Gf(h[0])==="number"&&h[0]>=0&&h[0]<=16777215)return"num"}});var Uf=z,sr=L,xo=b,wo=p.unpack,ko=p.type,So=Math.round;sr.prototype.rgb=function(h){return h===void 0&&(h=!0),h===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(So)},sr.prototype.rgba=function(h){return h===void 0&&(h=!0),this._rgb.slice(0,4).map(function(f,g){return g<3?h===!1?f:So(f):f})},Uf.rgb=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(sr,[null].concat(h,["rgb"])))},xo.format.rgb=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=wo(h,"rgba");return g[3]===void 0&&(g[3]=1),g},xo.autodetect.push({p:3,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=wo(h,"rgba"),ko(h)==="array"&&(h.length===3||h.length===4&&ko(h[3])=="number"&&h[3]>=0&&h[3]<=1))return"rgb"}});var Ki=Math.log,Xf=function(h){var f=h/100,g,_,S;return f<66?(g=255,_=f<6?0:-155.25485562709179-.44596950469579133*(_=f-2)+104.49216199393888*Ki(_),S=f<20?0:-254.76935184120902+.8274096064007395*(S=f-10)+115.67994401066147*Ki(S)):(g=351.97690566805693+.114206453784165*(g=f-55)-40.25366309332127*Ki(g),_=325.4494125711974+.07943456536662342*(_=f-50)-28.0852963507957*Ki(_),S=255),[g,_,S,1]},Mo=Xf,Kf=Mo,Zf=p.unpack,Jf=Math.round,Qf=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];for(var g=Zf(h,"rgb"),_=g[0],S=g[2],C=1e3,x=4e4,E=.4,A;x-C>E;){A=(x+C)*.5;var I=Kf(A);I[2]/I[0]>=S/_?x=A:C=A}return Jf(A)},td=Qf,rr=z,Zi=L,ar=b,ed=td;Zi.prototype.temp=Zi.prototype.kelvin=Zi.prototype.temperature=function(){return ed(this._rgb)},rr.temp=rr.kelvin=rr.temperature=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Zi,[null].concat(h,["temp"])))},ar.format.temp=ar.format.kelvin=ar.format.temperature=Mo;var nd=p.unpack,or=Math.cbrt,id=Math.pow,sd=Math.sign,rd=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=nd(h,"rgb"),_=g[0],S=g[1],C=g[2],x=[lr(_/255),lr(S/255),lr(C/255)],E=x[0],A=x[1],I=x[2],B=or(.4122214708*E+.5363325363*A+.0514459929*I),W=or(.2119034982*E+.6806995451*A+.1073969566*I),j=or(.0883024619*E+.2817188376*A+.6299787005*I);return[.2104542553*B+.793617785*W-.0040720468*j,1.9779984951*B-2.428592205*W+.4505937099*j,.0259040371*B+.7827717662*W-.808675766*j]},Co=rd;function lr(h){var f=Math.abs(h);return f<.04045?h/12.92:(sd(h)||1)*id((f+.055)/1.055,2.4)}var ad=p.unpack,Ji=Math.pow,od=Math.sign,ld=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=ad(h,"lab");var g=h[0],_=h[1],S=h[2],C=Ji(g+.3963377774*_+.2158037573*S,3),x=Ji(g-.1055613458*_-.0638541728*S,3),E=Ji(g-.0894841775*_-1.291485548*S,3);return[255*cr(4.0767416621*C-3.3077115913*x+.2309699292*E),255*cr(-1.2684380046*C+2.6097574011*x-.3413193965*E),255*cr(-.0041960863*C-.7034186147*x+1.707614701*E),h.length>3?h[3]:1]},To=ld;function cr(h){var f=Math.abs(h);return f>.0031308?(od(h)||1)*(1.055*Ji(f,1/2.4)-.055):h*12.92}var cd=p.unpack,hd=p.type,ud=z,Po=L,Oo=b,fd=Co;Po.prototype.oklab=function(){return fd(this._rgb)},ud.oklab=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Po,[null].concat(h,["oklab"])))},Oo.format.oklab=To,Oo.autodetect.push({p:3,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=cd(h,"oklab"),hd(h)==="array"&&h.length===3)return"oklab"}});var dd=p.unpack,pd=Co,gd=uo,md=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];var g=dd(h,"rgb"),_=g[0],S=g[1],C=g[2],x=pd(_,S,C),E=x[0],A=x[1],I=x[2];return gd(E,A,I)},bd=md,vd=p.unpack,_d=fo,yd=To,xd=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];h=vd(h,"lch");var g=h[0],_=h[1],S=h[2],C=_d(g,_,S),x=C[0],E=C[1],A=C[2],I=yd(x,E,A),B=I[0],W=I[1],j=I[2];return[B,W,j,h.length>3?h[3]:1]},wd=xd,kd=p.unpack,Sd=p.type,Md=z,Eo=L,Do=b,Cd=bd;Eo.prototype.oklch=function(){return Cd(this._rgb)},Md.oklch=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];return new(Function.prototype.bind.apply(Eo,[null].concat(h,["oklch"])))},Do.format.oklch=wd,Do.autodetect.push({p:3,test:function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];if(h=kd(h,"oklch"),Sd(h)==="array"&&h.length===3)return"oklch"}});var Ao=L,Td=p.type;Ao.prototype.alpha=function(h,f){return f===void 0&&(f=!1),h!==void 0&&Td(h)==="number"?f?(this._rgb[3]=h,this):new Ao([this._rgb[0],this._rgb[1],this._rgb[2],h],"rgb"):this._rgb[3]};var Pd=L;Pd.prototype.clipped=function(){return this._rgb._clipped||!1};var vn=L,Od=Ui;vn.prototype.darken=function(h){h===void 0&&(h=1);var f=this,g=f.lab();return g[0]-=Od.Kn*h,new vn(g,"lab").alpha(f.alpha(),!0)},vn.prototype.brighten=function(h){return h===void 0&&(h=1),this.darken(-h)},vn.prototype.darker=vn.prototype.darken,vn.prototype.brighter=vn.prototype.brighten;var Ed=L;Ed.prototype.get=function(h){var f=h.split("."),g=f[0],_=f[1],S=this[g]();if(_){var C=g.indexOf(_)-(g.substr(0,2)==="ok"?2:0);if(C>-1)return S[C];throw new Error("unknown channel "+_+" in mode "+g)}else return S};var Ln=L,Dd=p.type,Ad=Math.pow,Ld=1e-7,Rd=20;Ln.prototype.luminance=function(h){if(h!==void 0&&Dd(h)==="number"){if(h===0)return new Ln([0,0,0,this._rgb[3]],"rgb");if(h===1)return new Ln([255,255,255,this._rgb[3]],"rgb");var f=this.luminance(),g="rgb",_=Rd,S=function(x,E){var A=x.interpolate(E,.5,g),I=A.luminance();return Math.abs(h-I)h?S(x,A):S(A,E)},C=(f>h?S(new Ln([0,0,0]),this):S(this,new Ln([255,255,255]))).rgb();return new Ln(C.concat([this._rgb[3]]))}return Fd.apply(void 0,this._rgb.slice(0,3))};var Fd=function(h,f,g){return h=hr(h),f=hr(f),g=hr(g),.2126*h+.7152*f+.0722*g},hr=function(h){return h/=255,h<=.03928?h/12.92:Ad((h+.055)/1.055,2.4)},de={},Lo=L,Ro=p.type,Qi=de,Fo=function(h,f,g){g===void 0&&(g=.5);for(var _=[],S=arguments.length-3;S-- >0;)_[S]=arguments[S+3];var C=_[0]||"lrgb";if(!Qi[C]&&!_.length&&(C=Object.keys(Qi)[0]),!Qi[C])throw new Error("interpolation mode "+C+" is not defined");return Ro(h)!=="object"&&(h=new Lo(h)),Ro(f)!=="object"&&(f=new Lo(f)),Qi[C](h,f,g).alpha(h.alpha()+g*(f.alpha()-h.alpha()))},Io=L,Id=Fo;Io.prototype.mix=Io.prototype.interpolate=function(h,f){f===void 0&&(f=.5);for(var g=[],_=arguments.length-2;_-- >0;)g[_]=arguments[_+2];return Id.apply(void 0,[this,h,f].concat(g))};var $o=L;$o.prototype.premultiply=function(h){h===void 0&&(h=!1);var f=this._rgb,g=f[3];return h?(this._rgb=[f[0]*g,f[1]*g,f[2]*g,g],this):new $o([f[0]*g,f[1]*g,f[2]*g,g],"rgb")};var ur=L,$d=Ui;ur.prototype.saturate=function(h){h===void 0&&(h=1);var f=this,g=f.lch();return g[1]+=$d.Kn*h,g[1]<0&&(g[1]=0),new ur(g,"lch").alpha(f.alpha(),!0)},ur.prototype.desaturate=function(h){return h===void 0&&(h=1),this.saturate(-h)};var zo=L,Bo=p.type;zo.prototype.set=function(h,f,g){g===void 0&&(g=!1);var _=h.split("."),S=_[0],C=_[1],x=this[S]();if(C){var E=S.indexOf(C)-(S.substr(0,2)==="ok"?2:0);if(E>-1){if(Bo(f)=="string")switch(f.charAt(0)){case"+":x[E]+=+f;break;case"-":x[E]+=+f;break;case"*":x[E]*=+f.substr(1);break;case"/":x[E]/=+f.substr(1);break;default:x[E]=+f}else if(Bo(f)==="number")x[E]=f;else throw new Error("unsupported value for Color.set");var A=new zo(x,S);return g?(this._rgb=A._rgb,this):A}throw new Error("unknown channel "+C+" in mode "+S)}else return x};var zd=L,Bd=function(h,f,g){var _=h._rgb,S=f._rgb;return new zd(_[0]+g*(S[0]-_[0]),_[1]+g*(S[1]-_[1]),_[2]+g*(S[2]-_[2]),"rgb")};de.rgb=Bd;var jd=L,fr=Math.sqrt,Rn=Math.pow,Nd=function(h,f,g){var _=h._rgb,S=_[0],C=_[1],x=_[2],E=f._rgb,A=E[0],I=E[1],B=E[2];return new jd(fr(Rn(S,2)*(1-g)+Rn(A,2)*g),fr(Rn(C,2)*(1-g)+Rn(I,2)*g),fr(Rn(x,2)*(1-g)+Rn(B,2)*g),"rgb")};de.lrgb=Nd;var Hd=L,Vd=function(h,f,g){var _=h.lab(),S=f.lab();return new Hd(_[0]+g*(S[0]-_[0]),_[1]+g*(S[1]-_[1]),_[2]+g*(S[2]-_[2]),"lab")};de.lab=Vd;var jo=L,Fn=function(h,f,g,_){var S,C,x,E;_==="hsl"?(x=h.hsl(),E=f.hsl()):_==="hsv"?(x=h.hsv(),E=f.hsv()):_==="hcg"?(x=h.hcg(),E=f.hcg()):_==="hsi"?(x=h.hsi(),E=f.hsi()):_==="lch"||_==="hcl"?(_="hcl",x=h.hcl(),E=f.hcl()):_==="oklch"&&(x=h.oklch().reverse(),E=f.oklch().reverse());var A,I,B,W,j,J;(_.substr(0,1)==="h"||_==="oklch")&&(S=x,A=S[0],B=S[1],j=S[2],C=E,I=C[0],W=C[1],J=C[2]);var X,lt,ut,gt;return!isNaN(A)&&!isNaN(I)?(I>A&&I-A>180?gt=I-(A+360):I180?gt=I+360-A:gt=I-A,lt=A+g*gt):isNaN(A)?isNaN(I)?lt=Number.NaN:(lt=I,(j==1||j==0)&&_!="hsv"&&(X=W)):(lt=A,(J==1||J==0)&&_!="hsv"&&(X=B)),X===void 0&&(X=B+g*(W-B)),ut=j+g*(J-j),_==="oklch"?new jo([ut,X,lt],_):new jo([lt,X,ut],_)},Wd=Fn,No=function(h,f,g){return Wd(h,f,g,"lch")};de.lch=No,de.hcl=No;var Yd=L,Gd=function(h,f,g){var _=h.num(),S=f.num();return new Yd(_+g*(S-_),"num")};de.num=Gd;var qd=Fn,Ud=function(h,f,g){return qd(h,f,g,"hcg")};de.hcg=Ud;var Xd=Fn,Kd=function(h,f,g){return Xd(h,f,g,"hsi")};de.hsi=Kd;var Zd=Fn,Jd=function(h,f,g){return Zd(h,f,g,"hsl")};de.hsl=Jd;var Qd=Fn,tp=function(h,f,g){return Qd(h,f,g,"hsv")};de.hsv=tp;var ep=L,np=function(h,f,g){var _=h.oklab(),S=f.oklab();return new ep(_[0]+g*(S[0]-_[0]),_[1]+g*(S[1]-_[1]),_[2]+g*(S[2]-_[2]),"oklab")};de.oklab=np;var ip=Fn,sp=function(h,f,g){return ip(h,f,g,"oklch")};de.oklch=sp;var dr=L,rp=p.clip_rgb,pr=Math.pow,gr=Math.sqrt,mr=Math.PI,Ho=Math.cos,Vo=Math.sin,ap=Math.atan2,op=function(h,f,g){f===void 0&&(f="lrgb"),g===void 0&&(g=null);var _=h.length;g||(g=Array.from(new Array(_)).map(function(){return 1}));var S=_/g.reduce(function(lt,ut){return lt+ut});if(g.forEach(function(lt,ut){g[ut]*=S}),h=h.map(function(lt){return new dr(lt)}),f==="lrgb")return lp(h,g);for(var C=h.shift(),x=C.get(f),E=[],A=0,I=0,B=0;B=360;)X-=360;x[J]=X}else x[J]=x[J]/E[J];return j/=_,new dr(x,f).alpha(j>.99999?1:j,!0)},lp=function(h,f){for(var g=h.length,_=[0,0,0,0],S=0;S.9999999&&(_[3]=1),new dr(rp(_))},ke=z,In=p.type,cp=Math.pow,br=function(h){var f="rgb",g=ke("#ccc"),_=0,S=[0,1],C=[],x=[0,0],E=!1,A=[],I=!1,B=0,W=1,j=!1,J={},X=!0,lt=1,ut=function(N){if(N=N||["#fff","#000"],N&&In(N)==="string"&&ke.brewer&&ke.brewer[N.toLowerCase()]&&(N=ke.brewer[N.toLowerCase()]),In(N)==="array"){N.length===1&&(N=[N[0],N[0]]),N=N.slice(0);for(var nt=0;nt=E[ht];)ht++;return ht-1}return 0},xt=function(N){return N},Zt=function(N){return N},Kt=function(N,nt){var ht,ct;if(nt==null&&(nt=!1),isNaN(N)||N===null)return g;if(nt)ct=N;else if(E&&E.length>2){var Jt=gt(N);ct=Jt/(E.length-2)}else W!==B?ct=(N-B)/(W-B):ct=1;ct=Zt(ct),nt||(ct=xt(ct)),lt!==1&&(ct=cp(ct,lt)),ct=x[0]+ct*(1-x[0]-x[1]),ct=Math.min(1,Math.max(0,ct));var At=Math.floor(ct*1e4);if(X&&J[At])ht=J[At];else{if(In(A)==="array")for(var mt=0;mt=kt&&mt===C.length-1){ht=A[mt];break}if(ct>kt&&ct2){var mt=N.map(function(St,Pt){return Pt/(N.length-1)}),kt=N.map(function(St){return(St-B)/(W-B)});kt.every(function(St,Pt){return mt[Pt]===St})||(Zt=function(St){if(St<=0||St>=1)return St;for(var Pt=0;St>=kt[Pt+1];)Pt++;var Me=(St-kt[Pt])/(kt[Pt+1]-kt[Pt]),en=mt[Pt]+Me*(mt[Pt+1]-mt[Pt]);return en})}}return S=[B,W],pt},pt.mode=function(N){return arguments.length?(f=N,ae(),pt):f},pt.range=function(N,nt){return ut(N),pt},pt.out=function(N){return I=N,pt},pt.spread=function(N){return arguments.length?(_=N,pt):_},pt.correctLightness=function(N){return N==null&&(N=!0),j=N,ae(),j?xt=function(nt){for(var ht=Kt(0,!0).lab()[0],ct=Kt(1,!0).lab()[0],Jt=ht>ct,At=Kt(nt,!0).lab()[0],mt=ht+(ct-ht)*nt,kt=At-mt,St=0,Pt=1,Me=20;Math.abs(kt)>.01&&Me-- >0;)(function(){return Jt&&(kt*=-1),kt<0?(St=nt,nt+=(Pt-nt)*.5):(Pt=nt,nt+=(St-nt)*.5),At=Kt(nt,!0).lab()[0],kt=At-mt})();return nt}:xt=function(nt){return nt},pt},pt.padding=function(N){return N!=null?(In(N)==="number"&&(N=[N,N]),x=N,pt):x},pt.colors=function(N,nt){arguments.length<2&&(nt="hex");var ht=[];if(arguments.length===0)ht=A.slice(0);else if(N===1)ht=[pt(.5)];else if(N>1){var ct=S[0],Jt=S[1]-ct;ht=hp(0,N,!1).map(function(Pt){return pt(ct+Pt/(N-1)*Jt)})}else{h=[];var At=[];if(E&&E.length>2)for(var mt=1,kt=E.length,St=1<=kt;St?mtkt;St?mt++:mt--)At.push((E[mt-1]+E[mt])*.5);else At=S;ht=At.map(function(Pt){return pt(Pt)})}return ke[nt]&&(ht=ht.map(function(Pt){return Pt[nt]()})),ht},pt.cache=function(N){return N!=null?(X=N,pt):X},pt.gamma=function(N){return N!=null?(lt=N,pt):lt},pt.nodata=function(N){return N!=null?(g=ke(N),pt):g},pt};function hp(h,f,g){for(var _=[],S=hC;S?x++:x--)_.push(x);return _}var ai=L,up=br,fp=function(h){for(var f=[1,1],g=1;g=5){var I,B,W;I=h.map(function(j){return j.lab()}),W=h.length-1,B=fp(W),S=function(j){var J=1-j,X=[0,1,2].map(function(lt){return I.reduce(function(ut,gt,xt){return ut+B[xt]*Math.pow(J,W-xt)*Math.pow(j,xt)*gt[lt]},0)});return new ai(X,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return S},pp=function(h){var f=dp(h);return f.scale=function(){return up(f)},f},vr=z,Se=function(h,f,g){if(!Se[g])throw new Error("unknown blend mode "+g);return Se[g](h,f)},Qe=function(h){return function(f,g){var _=vr(g).rgb(),S=vr(f).rgb();return vr.rgb(h(_,S))}},tn=function(h){return function(f,g){var _=[];return _[0]=h(f[0],g[0]),_[1]=h(f[1],g[1]),_[2]=h(f[2],g[2]),_}},gp=function(h){return h},mp=function(h,f){return h*f/255},bp=function(h,f){return h>f?f:h},vp=function(h,f){return h>f?h:f},_p=function(h,f){return 255*(1-(1-h/255)*(1-f/255))},yp=function(h,f){return f<128?2*h*f/255:255*(1-2*(1-h/255)*(1-f/255))},xp=function(h,f){return 255*(1-(1-f/255)/(h/255))},wp=function(h,f){return h===255?255:(h=255*(f/255)/(1-h/255),h>255?255:h)};Se.normal=Qe(tn(gp)),Se.multiply=Qe(tn(mp)),Se.screen=Qe(tn(_p)),Se.overlay=Qe(tn(yp)),Se.darken=Qe(tn(bp)),Se.lighten=Qe(tn(vp)),Se.dodge=Qe(tn(wp)),Se.burn=Qe(tn(xp));for(var kp=Se,_r=p.type,Sp=p.clip_rgb,Mp=p.TWOPI,Cp=Math.pow,Tp=Math.sin,Pp=Math.cos,Wo=z,Op=function(h,f,g,_,S){h===void 0&&(h=300),f===void 0&&(f=-1.5),g===void 0&&(g=1),_===void 0&&(_=1),S===void 0&&(S=[0,1]);var C=0,x;_r(S)==="array"?x=S[1]-S[0]:(x=0,S=[S,S]);var E=function(A){var I=Mp*((h+120)/360+f*A),B=Cp(S[0]+x*A,_),W=C!==0?g[0]+A*C:g,j=W*B*(1-B)/2,J=Pp(I),X=Tp(I),lt=B+j*(-.14861*J+1.78277*X),ut=B+j*(-.29227*J-.90649*X),gt=B+j*(1.97294*J);return Wo(Sp([lt*255,ut*255,gt*255,1]))};return E.start=function(A){return A==null?h:(h=A,E)},E.rotations=function(A){return A==null?f:(f=A,E)},E.gamma=function(A){return A==null?_:(_=A,E)},E.hue=function(A){return A==null?g:(g=A,_r(g)==="array"?(C=g[1]-g[0],C===0&&(g=g[1])):C=0,E)},E.lightness=function(A){return A==null?S:(_r(A)==="array"?(S=A,x=A[1]-A[0]):(S=[A,A],x=0),E)},E.scale=function(){return Wo.scale(E)},E.hue(g),E},Ep=L,Dp="0123456789abcdef",Ap=Math.floor,Lp=Math.random,Rp=function(){for(var h="#",f=0;f<6;f++)h+=Dp.charAt(Ap(Lp()*16));return new Ep(h,"hex")},yr=o,Yo=Math.log,Fp=Math.pow,Ip=Math.floor,$p=Math.abs,Go=function(h,f){f===void 0&&(f=null);var g={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return yr(h)==="object"&&(h=Object.values(h)),h.forEach(function(_){f&&yr(_)==="object"&&(_=_[f]),_!=null&&!isNaN(_)&&(g.values.push(_),g.sum+=_,_g.max&&(g.max=_),g.count+=1)}),g.domain=[g.min,g.max],g.limits=function(_,S){return qo(g,_,S)},g},qo=function(h,f,g){f===void 0&&(f="equal"),g===void 0&&(g=7),yr(h)=="array"&&(h=Go(h));var _=h.min,S=h.max,C=h.values.sort(function(wr,kr){return wr-kr});if(g===1)return[_,S];var x=[];if(f.substr(0,1)==="c"&&(x.push(_),x.push(S)),f.substr(0,1)==="e"){x.push(_);for(var E=1;E 0");var A=Math.LOG10E*Yo(_),I=Math.LOG10E*Yo(S);x.push(_);for(var B=1;B200&&(Zt=!1)}for(var nn={},$n=0;$n_?(g+.05)/(_+.05):(_+.05)/(g+.05)},Ko=L,Ne=Math.sqrt,Ht=Math.pow,Bp=Math.min,jp=Math.max,Zo=Math.atan2,Jo=Math.abs,ts=Math.cos,Qo=Math.sin,Np=Math.exp,tl=Math.PI,Hp=function(h,f,g,_,S){g===void 0&&(g=1),_===void 0&&(_=1),S===void 0&&(S=1);var C=function(yn){return 360*yn/(2*tl)},x=function(yn){return 2*tl*yn/360};h=new Ko(h),f=new Ko(f);var E=Array.from(h.lab()),A=E[0],I=E[1],B=E[2],W=Array.from(f.lab()),j=W[0],J=W[1],X=W[2],lt=(A+j)/2,ut=Ne(Ht(I,2)+Ht(B,2)),gt=Ne(Ht(J,2)+Ht(X,2)),xt=(ut+gt)/2,Zt=.5*(1-Ne(Ht(xt,7)/(Ht(xt,7)+Ht(25,7)))),Kt=I*(1+Zt),ae=J*(1+Zt),pt=Ne(Ht(Kt,2)+Ht(B,2)),N=Ne(Ht(ae,2)+Ht(X,2)),nt=(pt+N)/2,ht=C(Zo(B,Kt)),ct=C(Zo(X,ae)),Jt=ht>=0?ht:ht+360,At=ct>=0?ct:ct+360,mt=Jo(Jt-At)>180?(Jt+At+360)/2:(Jt+At)/2,kt=1-.17*ts(x(mt-30))+.24*ts(x(2*mt))+.32*ts(x(3*mt+6))-.2*ts(x(4*mt-63)),St=At-Jt;St=Jo(St)<=180?St:At<=Jt?St+360:St-360,St=2*Ne(pt*N)*Qo(x(St)/2);var Pt=j-A,Me=N-pt,en=1+.015*Ht(lt-50,2)/Ne(20+Ht(lt-50,2)),nn=1+.045*nt,$n=1+.015*nt*kt,zn=30*Np(-Ht((mt-275)/25,2)),He=2*Ne(Ht(nt,7)/(Ht(nt,7)+Ht(25,7))),_n=-He*Qo(2*x(zn)),oi=Ne(Ht(Pt/(g*en),2)+Ht(Me/(_*nn),2)+Ht(St/(S*$n),2)+_n*(Me/(_*nn))*(St/(S*$n)));return jp(0,Bp(100,oi))},el=L,Vp=function(h,f,g){g===void 0&&(g="lab"),h=new el(h),f=new el(f);var _=h.get(g),S=f.get(g),C=0;for(var x in _){var E=(_[x]||0)-(S[x]||0);C+=E*E}return Math.sqrt(C)},Wp=L,Yp=function(){for(var h=[],f=arguments.length;f--;)h[f]=arguments[f];try{return new(Function.prototype.bind.apply(Wp,[null].concat(h))),!0}catch(g){return!1}},nl=z,il=br,Gp={cool:function(){return il([nl.hsl(180,1,.9),nl.hsl(250,.7,.4)])},hot:function(){return il(["#000","#f00","#ff0","#fff"]).mode("rgb")}},es={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},xr=0,sl=Object.keys(es);xr{(function(n,t){typeof Bs=="object"&&typeof Mh!="undefined"?t(Bs):typeof define=="function"&&define.amd?define("@ts-stack/markdown",["exports"],t):(n=typeof globalThis!="undefined"?globalThis:n||self,t((n["ts-stack"]=n["ts-stack"]||{},n["ts-stack"].markdown={})))})(Bs,function(n){"use strict";var t=function(){function w(v,y){y===void 0&&(y=""),this.source=v.source,this.flags=y}return w.prototype.setGroup=function(v,y){var D=typeof y=="string"?y:y.source;return D=D.replace(/(^|[^\[])\^/g,"$1"),this.source=this.source.replace(v,D),this},w.prototype.getRegexp=function(){return new RegExp(this.source,this.flags)},w}();var e=/[&<>"']/,i=/[&<>"']/g,s={"&":"&","<":"<",">":">",'"':""","'":"'"},r=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g;function o(w,v){if(v){if(e.test(w))return w.replace(i,function(y){return s[y]})}else if(r.test(w))return w.replace(a,function(y){return s[y]});return w}function l(w){return w.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(v,y){return y=y.toLowerCase(),y==="colon"?":":y.charAt(0)==="#"?y.charAt(1)==="x"?String.fromCharCode(parseInt(y.substring(2),16)):String.fromCharCode(+y.substring(1)):""})}n.TokenType=void 0,function(w){w[w.space=1]="space",w[w.text=2]="text",w[w.paragraph=3]="paragraph",w[w.heading=4]="heading",w[w.listStart=5]="listStart",w[w.listEnd=6]="listEnd",w[w.looseItemStart=7]="looseItemStart",w[w.looseItemEnd=8]="looseItemEnd",w[w.listItemStart=9]="listItemStart",w[w.listItemEnd=10]="listItemEnd",w[w.blockquoteStart=11]="blockquoteStart",w[w.blockquoteEnd=12]="blockquoteEnd",w[w.code=13]="code",w[w.table=14]="table",w[w.html=15]="html",w[w.hr=16]="hr"}(n.TokenType||(n.TokenType={}));var c=function(){function w(){this.gfm=!0,this.tables=!0,this.breaks=!1,this.pedantic=!1,this.sanitize=!1,this.mangle=!0,this.smartLists=!1,this.silent=!1,this.langPrefix="lang-",this.smartypants=!1,this.headerPrefix="",this.xhtml=!1,this.escape=o,this.unescape=l}return w}();var u=function(w,v){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,D){y.__proto__=D}||function(y,D){for(var P in D)Object.prototype.hasOwnProperty.call(D,P)&&(y[P]=D[P])},u(w,v)};function d(w,v){if(typeof v!="function"&&v!==null)throw new TypeError("Class extends value "+String(v)+" is not a constructor or null");u(w,v);function y(){this.constructor=w}w.prototype=v===null?Object.create(v):(y.prototype=v.prototype,new y)}var m=function(){return m=Object.assign||function(v){for(var y,D=1,P=arguments.length;D=0;V--)(K=w[V])&&(O=(P<3?K(O):P>3?K(v,y,O):K(v,y))||O);return P>3&&O&&Object.defineProperty(v,y,O),O}function k(w,v){return function(y,D){v(y,D,w)}}function M(w,v){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(w,v)}function T(w,v,y,D){function P(O){return O instanceof y?O:new y(function(K){K(O)})}return new(y||(y=Promise))(function(O,K){function V(vt){try{Q(D.next(vt))}catch(Rt){K(Rt)}}function Z(vt){try{Q(D.throw(vt))}catch(Rt){K(Rt)}}function Q(vt){vt.done?O(vt.value):P(vt.value).then(V,Z)}Q((D=D.apply(w,v||[])).next())})}function R(w,v){var y={label:0,sent:function(){if(O[0]&1)throw O[1];return O[1]},trys:[],ops:[]},D,P,O,K;return K={next:V(0),throw:V(1),return:V(2)},typeof Symbol=="function"&&(K[Symbol.iterator]=function(){return this}),K;function V(Q){return function(vt){return Z([Q,vt])}}function Z(Q){if(D)throw new TypeError("Generator is already executing.");for(;y;)try{if(D=1,P&&(O=Q[0]&2?P.return:Q[0]?P.throw||((O=P.return)&&O.call(P),0):P.next)&&!(O=O.call(P,Q[1])).done)return O;switch(P=0,O&&(Q=[Q[0]&2,O.value]),Q[0]){case 0:case 1:O=Q;break;case 4:return y.label++,{value:Q[1],done:!1};case 5:y.label++,P=Q[1],Q=[0];continue;case 7:Q=y.ops.pop(),y.trys.pop();continue;default:if(O=y.trys,!(O=O.length>0&&O[O.length-1])&&(Q[0]===6||Q[0]===2)){y=0;continue}if(Q[0]===3&&(!O||Q[1]>O[0]&&Q[1]=w.length&&(w=void 0),{value:w&&w[D++],done:!w}}};throw new TypeError(v?"Object is not iterable.":"Symbol.iterator is not defined.")}function z(w,v){var y=typeof Symbol=="function"&&w[Symbol.iterator];if(!y)return w;var D=y.call(w),P,O=[],K;try{for(;(v===void 0||v-- >0)&&!(P=D.next()).done;)O.push(P.value)}catch(V){K={error:V}}finally{try{P&&!P.done&&(y=D.return)&&y.call(D)}finally{if(K)throw K.error}}return O}function H(){for(var w=[],v=0;v1||V(Tt,zt)})})}function V(Tt,zt){try{Z(D[Tt](zt))}catch(Bt){Rt(O[0][3],Bt)}}function Z(Tt){Tt.value instanceof et?Promise.resolve(Tt.value.v).then(Q,vt):Rt(O[0][2],Tt)}function Q(Tt){V("next",Tt)}function vt(Tt){V("throw",Tt)}function Rt(Tt,zt){Tt(zt),O.shift(),O.length&&V(O[0][0],O[0][1])}}function st(w){var v,y;return v={},D("next"),D("throw",function(P){throw P}),D("return"),v[Symbol.iterator]=function(){return this},v;function D(P,O){v[P]=w[P]?function(K){return(y=!y)?{value:et(w[P](K)),done:P==="return"}:O?O(K):K}:O}}function wt(w){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var v=w[Symbol.asyncIterator],y;return v?v.call(w):(w=typeof F=="function"?F(w):w[Symbol.iterator](),y={},D("next"),D("throw"),D("return"),y[Symbol.asyncIterator]=function(){return this},y);function D(O){y[O]=w[O]&&function(K){return new Promise(function(V,Z){K=w[O](K),P(V,Z,K.done,K.value)})}}function P(O,K,V,Z){Promise.resolve(Z).then(function(Q){O({value:Q,done:V})},K)}}function rt(w,v){return Object.defineProperty?Object.defineProperty(w,"raw",{value:v}):w.raw=v,w}var U=Object.create?function(w,v){Object.defineProperty(w,"default",{enumerable:!0,value:v})}:function(w,v){w.default=v};function _t(w){if(w&&w.__esModule)return w;var v={};if(w!=null)for(var y in w)y!=="default"&&Object.prototype.hasOwnProperty.call(w,y)&&$(v,w,y);return U(v,w),v}function Ct(w){return w&&w.__esModule?w:{default:w}}function se(w,v){if(!v.has(w))throw new TypeError("attempted to get private field on non-instance");return v.get(w)}function we(w,v,y){if(!v.has(w))throw new TypeError("attempted to set private field on non-instance");return v.set(w,y),y}var It=function(){function w(v){this.options=v||Nt.options}return w.prototype.code=function(v,y,D,P){if(this.options.highlight){var O=this.options.highlight(v,y);O!=null&&O!==v&&(D=!0,v=O)}var K=D?v:this.options.escape(v,!0);if(!y)return`
+
`+K+`
 
`;var V=this.options.langPrefix+this.options.escape(y,!0);return` -
'+U+`
+
'+K+`
 
`},w.prototype.blockquote=function(v){return`
`+v+`
-`},w.prototype.html=function(v){return v},w.prototype.heading=function(v,y,D){var T=this.options.headerPrefix+D.toLowerCase().replace(/[^\w]+/g,"-");return"'+v+" +`},w.prototype.html=function(v){return v},w.prototype.heading=function(v,y,D){var P=this.options.headerPrefix+D.toLowerCase().replace(/[^\w]+/g,"-");return"'+v+" `},w.prototype.hr=function(){return this.options.xhtml?`
`:`
`},w.prototype.list=function(v,y){var D=y?"ol":"ul";return` @@ -28,21 +28,21 @@ var Yp=Object.create;var ci=Object.defineProperty,Gp=Object.defineProperties,qp= `},w.prototype.tablerow=function(v){return` `+v+` -`},w.prototype.tablecell=function(v,y){var D=y.header?"th":"td",T=y.align?"<"+D+' style="text-align:'+y.align+'">':"<"+D+">";return T+v+" -`},w.prototype.strong=function(v){return""+v+""},w.prototype.em=function(v){return""+v+""},w.prototype.codespan=function(v){return""+v+""},w.prototype.br=function(){return this.options.xhtml?"
":"
"},w.prototype.del=function(v){return""+v+""},w.prototype.link=function(v,y,D){if(this.options.sanitize){var T=void 0;try{T=decodeURIComponent(this.options.unescape(v)).replace(/[^\w:]/g,"").toLowerCase()}catch(U){return D}if(T.indexOf("javascript:")===0||T.indexOf("vbscript:")===0||T.indexOf("data:")===0)return D}var P='",P},w.prototype.image=function(v,y,D){var T=''+D+'":">",T},w.prototype.text=function(v){return v},w}();var Vt=function(){function w(v,y,D,T){if(D===void 0&&(D=jt.options),this.staticThis=v,this.links=y,this.options=D,this.renderer=T||this.options.renderer||new Ft(this.options),!this.links)throw new Error("InlineLexer requires 'links' parameter.");this.setRules()}return w.output=function(v,y,D){var T=new this(this,y,D);return T.output(v)},w.getRulesBase=function(){if(this.rulesBase)return this.rulesBase;var v={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ <>]+(@|:\/)[^ <>]+)>/,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^<'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)([\s\S]*?[^`])\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/};return v.link=new t(v.link).setGroup("inside",v._inside).setGroup("href",v._href).getRegexp(),v.reflink=new t(v.reflink).setGroup("inside",v._inside).getRegexp(),this.rulesBase=v},w.getRulesPedantic=function(){return this.rulesPedantic?this.rulesPedantic:this.rulesPedantic=Object.assign(Object.assign({},this.getRulesBase()),{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/})},w.getRulesGfm=function(){if(this.rulesGfm)return this.rulesGfm;var v=this.getRulesBase(),y=new t(v.escape).setGroup("])","~|])").getRegexp(),D=new t(v.text).setGroup("]|","~]|").setGroup("|","|https?://|").getRegexp();return this.rulesGfm=Object.assign(Object.assign({},v),{escape:y,url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:D})},w.getRulesBreaks=function(){if(this.rulesBreaks)return this.rulesBreaks;var v=this.getRulesGfm(),y=this.getRulesGfm();return this.rulesBreaks=Object.assign(Object.assign({},y),{br:new t(v.br).setGroup("{2,}","*").getRegexp(),text:new t(y.text).setGroup("{2,}","*").getRegexp()})},w.prototype.setRules=function(){this.options.gfm?this.options.breaks?this.rules=this.staticThis.getRulesBreaks():this.rules=this.staticThis.getRulesGfm():this.options.pedantic?this.rules=this.staticThis.getRulesPedantic():this.rules=this.staticThis.getRulesBase(),this.hasRulesGfm=this.rules.url!==void 0},w.prototype.output=function(v){v=v;for(var y,D="";v;){if(y=this.rules.escape.exec(v)){v=v.substring(y[0].length),D+=y[1];continue}if(y=this.rules.autolink.exec(v)){var T=void 0,P=void 0;v=v.substring(y[0].length),y[2]==="@"?(T=this.options.escape(y[1].charAt(6)===":"?this.mangle(y[1].substring(7)):this.mangle(y[1])),P=this.mangle("mailto:")+T):(T=this.options.escape(y[1]),P=T),D+=this.renderer.link(P,null,T);continue}if(!this.inLink&&this.hasRulesGfm&&(y=this.rules.url.exec(v))){var T=void 0,P=void 0;v=v.substring(y[0].length),T=this.options.escape(y[1]),P=T,D+=this.renderer.link(P,null,T);continue}if(y=this.rules.tag.exec(v)){!this.inLink&&/^/i.test(y[0])&&(this.inLink=!1),v=v.substring(y[0].length),D+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(y[0]):this.options.escape(y[0]):y[0];continue}if(y=this.rules.link.exec(v)){v=v.substring(y[0].length),this.inLink=!0,D+=this.outputLink(y,{href:y[2],title:y[3]}),this.inLink=!1;continue}if((y=this.rules.reflink.exec(v))||(y=this.rules.nolink.exec(v))){v=v.substring(y[0].length);var U=(y[2]||y[1]).replace(/\s+/g," "),V=this.links[U.toLowerCase()];if(!V||!V.href){D+=y[0].charAt(0),v=y[0].substring(1)+v;continue}this.inLink=!0,D+=this.outputLink(y,V),this.inLink=!1;continue}if(y=this.rules.strong.exec(v)){v=v.substring(y[0].length),D+=this.renderer.strong(this.output(y[2]||y[1]));continue}if(y=this.rules.em.exec(v)){v=v.substring(y[0].length),D+=this.renderer.em(this.output(y[2]||y[1]));continue}if(y=this.rules.code.exec(v)){v=v.substring(y[0].length),D+=this.renderer.codespan(this.options.escape(y[2].trim(),!0));continue}if(y=this.rules.br.exec(v)){v=v.substring(y[0].length),D+=this.renderer.br();continue}if(this.hasRulesGfm&&(y=this.rules.del.exec(v))){v=v.substring(y[0].length),D+=this.renderer.del(this.output(y[1]));continue}if(y=this.rules.text.exec(v)){v=v.substring(y[0].length),D+=this.renderer.text(this.options.escape(this.smartypants(y[0])));continue}if(v)throw new Error("Infinite loop on byte: "+v.charCodeAt(0))}return D},w.prototype.outputLink=function(v,y){var D=this.options.escape(y.href),T=y.title?this.options.escape(y.title):null;return v[0].charAt(0)!=="!"?this.renderer.link(D,T,this.output(v[1])):this.renderer.image(D,T,this.options.escape(v[1]))},w.prototype.smartypants=function(v){return this.options.smartypants?v.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026"):v},w.prototype.mangle=function(v){if(!this.options.mangle)return v;for(var y="",D=v.length,T=0;T.5&&(P="x"+v.charCodeAt(T).toString(16)),y+="&#"+P+";"}return y},w}();Vt.rulesBase=null,Vt.rulesPedantic=null,Vt.rulesGfm=null,Vt.rulesBreaks=null;var Bt=function(){function w(v){this.simpleRenderers=[],this.line=0,this.tokens=[],this.token=null,this.options=v||jt.options,this.renderer=this.options.renderer||new Ft(this.options)}return w.parse=function(v,y,D){var T=new this(D);return T.parse(y,v)},w.prototype.parse=function(v,y){this.inlineLexer=new Vt(Vt,v,this.options,this.renderer),this.tokens=y.reverse();for(var D="";this.next();)D+=this.tok();return D},w.prototype.debug=function(v,y){this.inlineLexer=new Vt(Vt,v,this.options,this.renderer),this.tokens=y.reverse();for(var D="";this.next();){var T=this.tok();this.token.line=this.line+=T.split(` -`).length-1,D+=T}return D},w.prototype.next=function(){return this.token=this.tokens.pop()},w.prototype.getNextElement=function(){return this.tokens[this.tokens.length-1]},w.prototype.parseText=function(){for(var v=this.token.text,y;(y=this.getNextElement())&&y.type==n.TokenType.text;)v+=` -`+this.next().text;return this.inlineLexer.output(v)},w.prototype.tok=function(){var v,y;switch(this.token.type){case n.TokenType.space:return"";case n.TokenType.paragraph:return this.renderer.paragraph(this.inlineLexer.output(this.token.text));case n.TokenType.text:return this.options.isNoP?this.parseText():this.renderer.paragraph(this.parseText());case n.TokenType.heading:return this.renderer.heading(this.inlineLexer.output(this.token.text),this.token.depth,this.token.text);case n.TokenType.listStart:{for(var D="",T=this.token.ordered;this.next().type!=n.TokenType.listEnd;)D+=this.tok();return this.renderer.list(D,T)}case n.TokenType.listItemStart:{for(var D="";this.next().type!=n.TokenType.listItemEnd;)D+=this.token.type==n.TokenType.text?this.parseText():this.tok();return this.renderer.listitem(D)}case n.TokenType.looseItemStart:{for(var D="";this.next().type!=n.TokenType.listItemEnd;)D+=this.tok();return this.renderer.listitem(D)}case n.TokenType.code:return this.renderer.code(this.token.text,this.token.lang,this.token.escaped,this.token.meta);case n.TokenType.table:{var P="",D="",U=void 0;U="";for(var V=0;V':"<"+D+">";return P+v+" +`},w.prototype.strong=function(v){return""+v+""},w.prototype.em=function(v){return""+v+""},w.prototype.codespan=function(v){return""+v+""},w.prototype.br=function(){return this.options.xhtml?"
":"
"},w.prototype.del=function(v){return""+v+""},w.prototype.link=function(v,y,D){if(this.options.sanitize){var P=void 0;try{P=decodeURIComponent(this.options.unescape(v)).replace(/[^\w:]/g,"").toLowerCase()}catch(K){return D}if(P.indexOf("javascript:")===0||P.indexOf("vbscript:")===0||P.indexOf("data:")===0)return D}var O='
",O},w.prototype.image=function(v,y,D){var P=''+D+'":">",P},w.prototype.text=function(v){return v},w}();var Wt=function(){function w(v,y,D,P){if(D===void 0&&(D=Nt.options),this.staticThis=v,this.links=y,this.options=D,this.renderer=P||this.options.renderer||new It(this.options),!this.links)throw new Error("InlineLexer requires 'links' parameter.");this.setRules()}return w.output=function(v,y,D){var P=new this(this,y,D);return P.output(v)},w.getRulesBase=function(){if(this.rulesBase)return this.rulesBase;var v={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ <>]+(@|:\/)[^ <>]+)>/,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^<'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)([\s\S]*?[^`])\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/};return v.link=new t(v.link).setGroup("inside",v._inside).setGroup("href",v._href).getRegexp(),v.reflink=new t(v.reflink).setGroup("inside",v._inside).getRegexp(),this.rulesBase=v},w.getRulesPedantic=function(){return this.rulesPedantic?this.rulesPedantic:this.rulesPedantic=Object.assign(Object.assign({},this.getRulesBase()),{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/})},w.getRulesGfm=function(){if(this.rulesGfm)return this.rulesGfm;var v=this.getRulesBase(),y=new t(v.escape).setGroup("])","~|])").getRegexp(),D=new t(v.text).setGroup("]|","~]|").setGroup("|","|https?://|").getRegexp();return this.rulesGfm=Object.assign(Object.assign({},v),{escape:y,url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:D})},w.getRulesBreaks=function(){if(this.rulesBreaks)return this.rulesBreaks;var v=this.getRulesGfm(),y=this.getRulesGfm();return this.rulesBreaks=Object.assign(Object.assign({},y),{br:new t(v.br).setGroup("{2,}","*").getRegexp(),text:new t(y.text).setGroup("{2,}","*").getRegexp()})},w.prototype.setRules=function(){this.options.gfm?this.options.breaks?this.rules=this.staticThis.getRulesBreaks():this.rules=this.staticThis.getRulesGfm():this.options.pedantic?this.rules=this.staticThis.getRulesPedantic():this.rules=this.staticThis.getRulesBase(),this.hasRulesGfm=this.rules.url!==void 0},w.prototype.output=function(v){v=v;for(var y,D="";v;){if(y=this.rules.escape.exec(v)){v=v.substring(y[0].length),D+=y[1];continue}if(y=this.rules.autolink.exec(v)){var P=void 0,O=void 0;v=v.substring(y[0].length),y[2]==="@"?(P=this.options.escape(y[1].charAt(6)===":"?this.mangle(y[1].substring(7)):this.mangle(y[1])),O=this.mangle("mailto:")+P):(P=this.options.escape(y[1]),O=P),D+=this.renderer.link(O,null,P);continue}if(!this.inLink&&this.hasRulesGfm&&(y=this.rules.url.exec(v))){var P=void 0,O=void 0;v=v.substring(y[0].length),P=this.options.escape(y[1]),O=P,D+=this.renderer.link(O,null,P);continue}if(y=this.rules.tag.exec(v)){!this.inLink&&/^/i.test(y[0])&&(this.inLink=!1),v=v.substring(y[0].length),D+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(y[0]):this.options.escape(y[0]):y[0];continue}if(y=this.rules.link.exec(v)){v=v.substring(y[0].length),this.inLink=!0,D+=this.outputLink(y,{href:y[2],title:y[3]}),this.inLink=!1;continue}if((y=this.rules.reflink.exec(v))||(y=this.rules.nolink.exec(v))){v=v.substring(y[0].length);var K=(y[2]||y[1]).replace(/\s+/g," "),V=this.links[K.toLowerCase()];if(!V||!V.href){D+=y[0].charAt(0),v=y[0].substring(1)+v;continue}this.inLink=!0,D+=this.outputLink(y,V),this.inLink=!1;continue}if(y=this.rules.strong.exec(v)){v=v.substring(y[0].length),D+=this.renderer.strong(this.output(y[2]||y[1]));continue}if(y=this.rules.em.exec(v)){v=v.substring(y[0].length),D+=this.renderer.em(this.output(y[2]||y[1]));continue}if(y=this.rules.code.exec(v)){v=v.substring(y[0].length),D+=this.renderer.codespan(this.options.escape(y[2].trim(),!0));continue}if(y=this.rules.br.exec(v)){v=v.substring(y[0].length),D+=this.renderer.br();continue}if(this.hasRulesGfm&&(y=this.rules.del.exec(v))){v=v.substring(y[0].length),D+=this.renderer.del(this.output(y[1]));continue}if(y=this.rules.text.exec(v)){v=v.substring(y[0].length),D+=this.renderer.text(this.options.escape(this.smartypants(y[0])));continue}if(v)throw new Error("Infinite loop on byte: "+v.charCodeAt(0))}return D},w.prototype.outputLink=function(v,y){var D=this.options.escape(y.href),P=y.title?this.options.escape(y.title):null;return v[0].charAt(0)!=="!"?this.renderer.link(D,P,this.output(v[1])):this.renderer.image(D,P,this.options.escape(v[1]))},w.prototype.smartypants=function(v){return this.options.smartypants?v.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026"):v},w.prototype.mangle=function(v){if(!this.options.mangle)return v;for(var y="",D=v.length,P=0;P.5&&(O="x"+v.charCodeAt(P).toString(16)),y+="&#"+O+";"}return y},w}();Wt.rulesBase=null,Wt.rulesPedantic=null,Wt.rulesGfm=null,Wt.rulesBreaks=null;var jt=function(){function w(v){this.simpleRenderers=[],this.line=0,this.tokens=[],this.token=null,this.options=v||Nt.options,this.renderer=this.options.renderer||new It(this.options)}return w.parse=function(v,y,D){var P=new this(D);return P.parse(y,v)},w.prototype.parse=function(v,y){this.inlineLexer=new Wt(Wt,v,this.options,this.renderer),this.tokens=y.reverse();for(var D="";this.next();)D+=this.tok();return D},w.prototype.debug=function(v,y){this.inlineLexer=new Wt(Wt,v,this.options,this.renderer),this.tokens=y.reverse();for(var D="";this.next();){var P=this.tok();this.token.line=this.line+=P.split(` +`).length-1,D+=P}return D},w.prototype.next=function(){return this.token=this.tokens.pop()},w.prototype.getNextElement=function(){return this.tokens[this.tokens.length-1]},w.prototype.parseText=function(){for(var v=this.token.text,y;(y=this.getNextElement())&&y.type==n.TokenType.text;)v+=` +`+this.next().text;return this.inlineLexer.output(v)},w.prototype.tok=function(){var v,y;switch(this.token.type){case n.TokenType.space:return"";case n.TokenType.paragraph:return this.renderer.paragraph(this.inlineLexer.output(this.token.text));case n.TokenType.text:return this.options.isNoP?this.parseText():this.renderer.paragraph(this.parseText());case n.TokenType.heading:return this.renderer.heading(this.inlineLexer.output(this.token.text),this.token.depth,this.token.text);case n.TokenType.listStart:{for(var D="",P=this.token.ordered;this.next().type!=n.TokenType.listEnd;)D+=this.tok();return this.renderer.list(D,P)}case n.TokenType.listItemStart:{for(var D="";this.next().type!=n.TokenType.listItemEnd;)D+=this.token.type==n.TokenType.text?this.parseText():this.tok();return this.renderer.listitem(D)}case n.TokenType.looseItemStart:{for(var D="";this.next().type!=n.TokenType.listItemEnd;)D+=this.tok();return this.renderer.listitem(D)}case n.TokenType.code:return this.renderer.code(this.token.text,this.token.lang,this.token.escaped,this.token.meta);case n.TokenType.table:{var O="",D="",K=void 0;K="";for(var V=0;VAn error occured:

"+this.options.escape(v.message+"",!0)+"
";throw v},w}();jt.options=new c,jt.simpleRenderers=[];var Gt=function(){function w(v,y){this.staticThis=v,this.links={},this.tokens=[],this.options=y||jt.options,this.setRules()}return w.lex=function(v,y,D,T){var P=new this(this,y);return P.getTokens(v,D,T)},w.getRulesBase=function(){if(this.rulesBase)return this.rulesBase;var v={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-]|\d+\.)/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};v.item=new t(v.item,"gm").setGroup(/bull/g,v.bullet).getRegexp(),v.list=new t(v.list).setGroup(/bull/g,v.bullet).setGroup("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))").setGroup("def","\\n+(?="+v.def.source+")").getRegexp();var y="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";return v.html=new t(v.html).setGroup("comment",//).setGroup("closed",/<(tag)[\s\S]+?<\/\1>/).setGroup("closing",/])*?>/).setGroup(/tag/g,y).getRegexp(),v.paragraph=new t(v.paragraph).setGroup("hr",v.hr).setGroup("heading",v.heading).setGroup("lheading",v.lheading).setGroup("blockquote",v.blockquote).setGroup("tag","<"+y).setGroup("def",v.def).getRegexp(),this.rulesBase=v},w.getRulesGfm=function(){if(this.rulesGfm)return this.rulesGfm;var v=this.getRulesBase(),y=Object.assign(Object.assign({},v),{fences:/^ *(`{3,}|~{3,})[ \.]*((\S+)? *[^\n]*)\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),D=y.fences.source.replace("\\1","\\2"),T=v.list.source.replace("\\1","\\3");return y.paragraph=new t(v.paragraph).setGroup("(?!","(?!"+D+"|"+T+"|").getRegexp(),this.rulesGfm=y},w.getRulesTable=function(){return this.rulesTables?this.rulesTables:this.rulesTables=Object.assign(Object.assign({},this.getRulesGfm()),{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/})},w.prototype.setRules=function(){this.options.gfm?this.options.tables?this.rules=this.staticThis.getRulesTable():this.rules=this.staticThis.getRulesGfm():this.rules=this.staticThis.getRulesBase(),this.hasRulesGfm=this.rules.fences!==void 0,this.hasRulesTables=this.rules.table!==void 0},w.prototype.getTokens=function(v,y,D){var T=v,P;t:for(;T;){if((P=this.rules.newline.exec(T))&&(T=T.substring(P[0].length),P[0].length>1&&this.tokens.push({type:n.TokenType.space})),P=this.rules.code.exec(T)){T=T.substring(P[0].length);var U=P[0].replace(/^ {4}/gm,"");this.tokens.push({type:n.TokenType.code,text:this.options.pedantic?U:U.replace(/\n+$/,"")});continue}if(this.hasRulesGfm&&(P=this.rules.fences.exec(T))){T=T.substring(P[0].length),this.tokens.push({type:n.TokenType.code,meta:P[2],lang:P[3],text:P[4]||""});continue}if(P=this.rules.heading.exec(T)){T=T.substring(P[0].length),this.tokens.push({type:n.TokenType.heading,depth:P[1].length,text:P[2]});continue}if(y&&this.hasRulesTables&&(P=this.rules.nptable.exec(T))){T=T.substring(P[0].length);for(var V={type:n.TokenType.table,header:P[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:P[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:[]},X=0;X ?/gm,"");this.getTokens(vt),this.tokens.push({type:n.TokenType.blockquoteEnd});continue}if(P=this.rules.list.exec(T)){T=T.substring(P[0].length);var Rt=P[2];this.tokens.push({type:n.TokenType.listStart,ordered:Rt.length>1});for(var vt=P[0].match(this.rules.item),Ct=vt.length,$t=!1,zt=void 0,se=void 0,ve=void 0,X=0;X1&&se.length>1)&&(T=vt.slice(X+1).join(` -`)+T,X=Ct-1)),ve=$t||/\n\n(?!\s*$)/.test(V),X!==Ct-1&&($t=V.charAt(V.length-1)===` -`,ve||(ve=$t)),this.tokens.push({type:ve?n.TokenType.looseItemStart:n.TokenType.listItemStart}),this.getTokens(V,!1,D),this.tokens.push({type:n.TokenType.listItemEnd})}this.tokens.push({type:n.TokenType.listEnd});continue}if(P=this.rules.html.exec(T)){T=T.substring(P[0].length);var de=P[1],mn=de==="pre"||de==="script"||de==="style";this.tokens.push({type:this.options.sanitize?n.TokenType.paragraph:n.TokenType.html,pre:!this.options.sanitizer&&mn,text:P[0]});continue}if(y&&(P=this.rules.def.exec(T))){T=T.substring(P[0].length),this.links[P[1].toLowerCase()]={href:P[2],title:P[3]};continue}if(y&&this.hasRulesTables&&(P=this.rules.table.exec(T))){T=T.substring(P[0].length);for(var V={type:n.TokenType.table,header:P[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:P[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:[]},X=0;X0?n.TokenType.paragraph:n.TokenType.text,text:P[1]});continue}if(P=this.rules.text.exec(T)){T=T.substring(P[0].length),this.tokens.push({type:n.TokenType.text,text:P[0]});continue}if(T)throw new Error("Infinite loop on byte: "+T.charCodeAt(0)+(", near text '"+T.slice(0,30)+"...'"))}return{tokens:this.tokens,links:this.links}},w}();Gt.simpleRules=[],Gt.rulesBase=null,Gt.rulesGfm=null,Gt.rulesTables=null,n.BlockLexer=Gt,n.ExtendRegexp=t,n.InlineLexer=Vt,n.Marked=jt,n.MarkedOptions=c,n.Parser=Bt,n.Renderer=Ft,n.escape=o,n.unescape=l,Object.defineProperty(n,"__esModule",{value:!0})})});var kh=Sr(ti=>{"use strict";var gv=ti&&ti.__extends||function(){var n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,s){i.__proto__=s}||function(i,s){for(var r in s)s.hasOwnProperty(r)&&(i[r]=s[r])},n(t,e)};return function(t,e){n(t,e);function i(){this.constructor=t}t.prototype=e===null?Object.create(e):(i.prototype=e.prototype,new i)}}();Object.defineProperty(ti,"__esModule",{value:!0});ti.Extractor=void 0;var Ca=wh(),mv=function(n){gv(t,n);function t(e,i){var s=n.call(this)||this;return s.lowercaseKeys=i??!1,s.reset(e),s}return Object.defineProperty(t.prototype,"tables",{get:function(){return this.extractedTables},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"objects",{get:function(){var e=this;return this.extractedTables.map(function(i){return t.tableToObject(i,e.lowercaseKeys)})},enumerable:!1,configurable:!0}),t.prototype.reset=function(e){e===void 0&&(e="rows"),this.mode=e,this.currentRow=[],this.currentTable=[],this.extractedTables=[]},t.prototype.table=function(e,i){return this.extractedTables.push(this.mode==="rows"?this.currentTable:t.transposeTable(this.currentTable)),this.currentTable=[],n.prototype.table.call(this,e,i)},t.prototype.tablerow=function(e){return this.currentTable.push(this.currentRow),this.currentRow=[],n.prototype.tablerow.call(this,e)},t.prototype.tablecell=function(e,i){return this.currentRow.push(e),n.prototype.tablecell.call(this,e,i)},t.transposeTable=function(e){for(var i=[],s=e.length,r=e[0].length,a=0;a0?r[0]:null},t.extractAllObjects=function(e,i,s){var r=t.createExtractor(e,i,s);return r.objects},t.extractTable=function(e,i,s){var r=t.extractAllTables(e,i,s);return r.length>0?r[0]:null},t.extractAllTables=function(e,i,s){var r=t.createExtractor(e,i,s);return r.tables},t.extract=function(e,i,s){var r=t.createExtractor(e,i,s);return r.objects.length>0?JSON.stringify(r.objects[0]):null},t.extractAll=function(e,i,s){var r=t.createExtractor(e,i,s);return r.objects.map(function(a){return JSON.stringify(a)})},t}(Ca.Renderer);ti.Extractor=mv});Jp(exports,{default:()=>Va});var Oe=De(require("obsidian"));var Mr=function(){return typeof window=="undefined"?function(n){return n()}:window.requestAnimationFrame}();function Cr(n,t,e){let i=e||(a=>Array.prototype.slice.call(a)),s=!1,r=[];return function(...a){r=i(a),s||(s=!0,Mr.call(window,()=>{s=!1,n.apply(t,r)}))}}function ol(n,t){let e;return function(...i){return t?(clearTimeout(e),e=setTimeout(n,t,i)):n.apply(this,i),t}}var is=n=>n==="start"?"left":n==="end"?"right":"center",Jt=(n,t,e)=>n==="start"?t:n==="end"?e:(t+e)/2,ll=(n,t,e,i)=>n===(i?"left":"right")?e:n==="center"?(t+e)/2:t;function Ae(){}var cl=function(){let n=0;return function(){return n++}}();function _t(n){return n===null||typeof n=="undefined"}function Ot(n){if(Array.isArray&&Array.isArray(n))return!0;let t=Object.prototype.toString.call(n);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function pt(n){return n!==null&&Object.prototype.toString.call(n)==="[object Object]"}var It=n=>(typeof n=="number"||n instanceof Number)&&isFinite(+n);function ge(n,t){return It(n)?n:t}function at(n,t){return typeof n=="undefined"?t:n}var hl=(n,t)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100:n/t,Tr=(n,t)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100*t:+n;function Et(n,t,e){if(n&&typeof n.call=="function")return n.apply(e,t)}function Mt(n,t,e,i){let s,r,a;if(Ot(n))if(r=n.length,i)for(s=r-1;s>=0;s--)t.call(e,n[s],s);else for(s=0;se;)n=n[t.slice(e,i)],e=i+1,i=fl(t,e);return n}function rs(n){return n.charAt(0).toUpperCase()+n.slice(1)}var me=n=>typeof n!="undefined",Ve=n=>typeof n=="function",Pr=(n,t)=>{if(n.size!==t.size)return!1;for(let e of n)if(!t.has(e))return!1;return!0};function dl(n){return n.type==="mouseup"||n.type==="click"||n.type==="contextmenu"}var At=Math.PI,Pt=2*At,sg=Pt+At,as=Number.POSITIVE_INFINITY,rg=At/180,Lt=At/2,di=At/4,pl=At*2/3,be=Math.log10,Me=Math.sign;function Or(n){let t=Math.round(n);n=Nn(n,t,n/1e3)?t:n;let e=Math.pow(10,Math.floor(be(n))),i=n/e;return(i<=1?1:i<=2?2:i<=5?5:10)*e}function gl(n){let t=[],e=Math.sqrt(n),i;for(i=1;is-r).pop(),t}function jn(n){return!isNaN(parseFloat(n))&&isFinite(n)}function Nn(n,t,e){return Math.abs(n-t)=n}function Er(n,t,e){let i,s,r;for(i=0,s=n.length;il&&c=Math.min(t,e)-i&&n<=Math.max(t,e)+i}var cs=n=>n===0||n===1,vl=(n,t,e)=>-(Math.pow(2,10*(n-=1))*Math.sin((n-t)*Pt/e)),_l=(n,t,e)=>Math.pow(2,-10*n)*Math.sin((n-t)*Pt/e)+1,Vn={linear:n=>n,easeInQuad:n=>n*n,easeOutQuad:n=>-n*(n-2),easeInOutQuad:n=>(n/=.5)<1?.5*n*n:-.5*(--n*(n-2)-1),easeInCubic:n=>n*n*n,easeOutCubic:n=>(n-=1)*n*n+1,easeInOutCubic:n=>(n/=.5)<1?.5*n*n*n:.5*((n-=2)*n*n+2),easeInQuart:n=>n*n*n*n,easeOutQuart:n=>-((n-=1)*n*n*n-1),easeInOutQuart:n=>(n/=.5)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2),easeInQuint:n=>n*n*n*n*n,easeOutQuint:n=>(n-=1)*n*n*n*n+1,easeInOutQuint:n=>(n/=.5)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2),easeInSine:n=>-Math.cos(n*Lt)+1,easeOutSine:n=>Math.sin(n*Lt),easeInOutSine:n=>-.5*(Math.cos(At*n)-1),easeInExpo:n=>n===0?0:Math.pow(2,10*(n-1)),easeOutExpo:n=>n===1?1:-Math.pow(2,-10*n)+1,easeInOutExpo:n=>cs(n)?n:n<.5?.5*Math.pow(2,10*(n*2-1)):.5*(-Math.pow(2,-10*(n*2-1))+2),easeInCirc:n=>n>=1?n:-(Math.sqrt(1-n*n)-1),easeOutCirc:n=>Math.sqrt(1-(n-=1)*n),easeInOutCirc:n=>(n/=.5)<1?-.5*(Math.sqrt(1-n*n)-1):.5*(Math.sqrt(1-(n-=2)*n)+1),easeInElastic:n=>cs(n)?n:vl(n,.075,.3),easeOutElastic:n=>cs(n)?n:_l(n,.075,.3),easeInOutElastic(n){let t=.1125,e=.45;return cs(n)?n:n<.5?.5*vl(n*2,t,e):.5+.5*_l(n*2-1,t,e)},easeInBack(n){let t=1.70158;return n*n*((t+1)*n-t)},easeOutBack(n){let t=1.70158;return(n-=1)*n*((t+1)*n+t)+1},easeInOutBack(n){let t=1.70158;return(n/=.5)<1?.5*(n*n*(((t*=1.525)+1)*n-t)):.5*((n-=2)*n*(((t*=1.525)+1)*n+t)+2)},easeInBounce:n=>1-Vn.easeOutBounce(1-n),easeOutBounce(n){let t=7.5625,e=2.75;return n<1/e?t*n*n:n<2/e?t*(n-=1.5/e)*n+.75:n<2.5/e?t*(n-=2.25/e)*n+.9375:t*(n-=2.625/e)*n+.984375},easeInOutBounce:n=>n<.5?Vn.easeInBounce(n*2)*.5:Vn.easeOutBounce(n*2-1)*.5+.5};function pi(n){return n+.5|0}var sn=(n,t,e)=>Math.max(Math.min(n,e),t);function gi(n){return sn(pi(n*2.55),0,255)}function rn(n){return sn(pi(n*255),0,255)}function We(n){return sn(pi(n/2.55)/100,0,1)}function yl(n){return sn(pi(n*100),0,100)}var ye={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},Rr=[..."0123456789ABCDEF"],og=n=>Rr[n&15],lg=n=>Rr[(n&240)>>4]+Rr[n&15],hs=n=>(n&240)>>4==(n&15),cg=n=>hs(n.r)&&hs(n.g)&&hs(n.b)&&hs(n.a);function hg(n){var t=n.length,e;return n[0]==="#"&&(t===4||t===5?e={r:255&ye[n[1]]*17,g:255&ye[n[2]]*17,b:255&ye[n[3]]*17,a:t===5?ye[n[4]]*17:255}:(t===7||t===9)&&(e={r:ye[n[1]]<<4|ye[n[2]],g:ye[n[3]]<<4|ye[n[4]],b:ye[n[5]]<<4|ye[n[6]],a:t===9?ye[n[7]]<<4|ye[n[8]]:255})),e}var ug=(n,t)=>n<255?t(n):"";function fg(n){var t=cg(n)?og:lg;return n?"#"+t(n.r)+t(n.g)+t(n.b)+ug(n.a,t):void 0}var dg=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function xl(n,t,e){let i=t*Math.min(e,1-e),s=(r,a=(r+n/30)%12)=>e-i*Math.max(Math.min(a-3,9-a,1),-1);return[s(0),s(8),s(4)]}function pg(n,t,e){let i=(s,r=(s+n/60)%6)=>e-e*t*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function gg(n,t,e){let i=xl(n,1,.5),s;for(t+e>1&&(s=1/(t+e),t*=s,e*=s),s=0;s<3;s++)i[s]*=1-t-e,i[s]+=t;return i}function mg(n,t,e,i,s){return n===s?(t-e)/i+(t.5?u/(2-r-a):u/(r+a),l=mg(e,i,s,u,r),l=l*60+.5),[l|0,c||0,o]}function Fr(n,t,e,i){return(Array.isArray(t)?n(t[0],t[1],t[2]):n(t,e,i)).map(rn)}function Ir(n,t,e){return Fr(xl,n,t,e)}function bg(n,t,e){return Fr(gg,n,t,e)}function vg(n,t,e){return Fr(pg,n,t,e)}function wl(n){return(n%360+360)%360}function _g(n){let t=dg.exec(n),e=255,i;if(!t)return;t[5]!==i&&(e=t[6]?gi(+t[5]):rn(+t[5]));let s=wl(+t[2]),r=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?i=bg(s,r,a):t[1]==="hsv"?i=vg(s,r,a):i=Ir(s,r,a),{r:i[0],g:i[1],b:i[2],a:e}}function yg(n,t){var e=Lr(n);e[0]=wl(e[0]+t),e=Ir(e),n.r=e[0],n.g=e[1],n.b=e[2]}function xg(n){if(!n)return;let t=Lr(n),e=t[0],i=yl(t[1]),s=yl(t[2]);return n.a<255?`hsla(${e}, ${i}%, ${s}%, ${We(n.a)})`:`hsl(${e}, ${i}%, ${s}%)`}var kl={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Sl={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function wg(){let n={},t=Object.keys(Sl),e=Object.keys(kl),i,s,r,a,o;for(i=0;i>16&255,r>>8&255,r&255]}return n}var us;function kg(n){us||(us=wg(),us.transparent=[0,0,0,0]);let t=us[n.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var Sg=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Mg(n){let t=Sg.exec(n),e=255,i,s,r;if(!!t){if(t[7]!==i){let a=+t[7];e=t[8]?gi(a):sn(a*255,0,255)}return i=+t[1],s=+t[3],r=+t[5],i=255&(t[2]?gi(i):sn(i,0,255)),s=255&(t[4]?gi(s):sn(s,0,255)),r=255&(t[6]?gi(r):sn(r,0,255)),{r:i,g:s,b:r,a:e}}}function Cg(n){return n&&(n.a<255?`rgba(${n.r}, ${n.g}, ${n.b}, ${We(n.a)})`:`rgb(${n.r}, ${n.g}, ${n.b})`)}var $r=n=>n<=.0031308?n*12.92:Math.pow(n,1/2.4)*1.055-.055,Wn=n=>n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4);function Tg(n,t,e){let i=Wn(We(n.r)),s=Wn(We(n.g)),r=Wn(We(n.b));return{r:rn($r(i+e*(Wn(We(t.r))-i))),g:rn($r(s+e*(Wn(We(t.g))-s))),b:rn($r(r+e*(Wn(We(t.b))-r))),a:n.a+e*(t.a-n.a)}}function fs(n,t,e){if(n){let i=Lr(n);i[t]=Math.max(0,Math.min(i[t]+i[t]*e,t===0?360:1)),i=Ir(i),n.r=i[0],n.g=i[1],n.b=i[2]}}function Ml(n,t){return n&&Object.assign(t||{},n)}function Cl(n){var t={r:0,g:0,b:0,a:255};return Array.isArray(n)?n.length>=3&&(t={r:n[0],g:n[1],b:n[2],a:255},n.length>3&&(t.a=rn(n[3]))):(t=Ml(n,{r:0,g:0,b:0,a:1}),t.a=rn(t.a)),t}function Pg(n){return n.charAt(0)==="r"?Mg(n):_g(n)}var mi=class{constructor(t){if(t instanceof mi)return t;let e=typeof t,i;e==="object"?i=Cl(t):e==="string"&&(i=hg(t)||kg(t)||Pg(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=Ml(this._rgb);return t&&(t.a=We(t.a)),t}set rgb(t){this._rgb=Cl(t)}rgbString(){return this._valid?Cg(this._rgb):void 0}hexString(){return this._valid?fg(this._rgb):void 0}hslString(){return this._valid?xg(this._rgb):void 0}mix(t,e){if(t){let i=this.rgb,s=t.rgb,r,a=e===r?.5:e,o=2*a-1,l=i.a-s.a,c=((o*l==-1?o:(o+l)/(1+o*l))+1)/2;r=1-c,i.r=255&c*i.r+r*s.r+.5,i.g=255&c*i.g+r*s.g+.5,i.b=255&c*i.b+r*s.b+.5,i.a=a*i.a+(1-a)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=Tg(this._rgb,t._rgb,e)),this}clone(){return new mi(this.rgb)}alpha(t){return this._rgb.a=rn(t),this}clearer(t){let e=this._rgb;return e.a*=1-t,this}greyscale(){let t=this._rgb,e=pi(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=e,this}opaquer(t){let e=this._rgb;return e.a*=1+t,this}negate(){let t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return fs(this._rgb,2,t),this}darken(t){return fs(this._rgb,2,-t),this}saturate(t){return fs(this._rgb,1,t),this}desaturate(t){return fs(this._rgb,1,-t),this}rotate(t){return yg(this._rgb,t),this}};function Tl(n){return new mi(n)}function Pl(n){if(n&&typeof n=="object"){let t=n.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function zr(n){return Pl(n)?n:Tl(n)}function Br(n){return Pl(n)?n:Tl(n).saturate(.5).darken(.1).hexString()}var an=Object.create(null),ds=Object.create(null);function bi(n,t){if(!t)return n;let e=t.split(".");for(let i=0,s=e.length;ie.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,i)=>Br(i.backgroundColor),this.hoverBorderColor=(e,i)=>Br(i.borderColor),this.hoverColor=(e,i)=>Br(i.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return jr(this,t,e)}get(t){return bi(this,t)}describe(t,e){return jr(ds,t,e)}override(t,e){return jr(an,t,e)}route(t,e,i,s){let r=bi(this,t),a=bi(this,i),o="_"+e;Object.defineProperties(r,{[o]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){let l=this[o],c=a[s];return pt(l)?Object.assign({},c,l):at(l,c)},set(l){this[o]=l}}})}},dt=new Ol({_scriptable:n=>!n.startsWith("on"),_indexable:n=>n!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function Og(n){return!n||_t(n.size)||_t(n.family)?null:(n.style?n.style+" ":"")+(n.weight?n.weight+" ":"")+n.size+"px "+n.family}function vi(n,t,e,i,s){let r=t[s];return r||(r=t[s]=n.measureText(s).width,e.push(s)),r>i&&(i=r),i}function El(n,t,e,i){i=i||{};let s=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(s=i.data={},r=i.garbageCollect=[],i.font=t),n.save(),n.font=t;let a=0,o=e.length,l,c,u,d,p;for(l=0;le.length){for(l=0;l0&&n.stroke()}}function Yn(n,t,e){return e=e||.5,!t||n&&n.x>t.left-e&&n.xt.top-e&&n.y0&&r.strokeColor!=="",l,c;for(n.save(),n.font=s.string,Eg(n,r),l=0;l+n||0;function ps(n,t){let e={},i=pt(t),s=i?Object.keys(t):t,r=pt(n)?i?a=>at(n[a],n[t[a]]):a=>n[a]:()=>n;for(let a of s)e[a]=Fg(r(a));return e}function Hr(n){return ps(n,{top:"y",right:"x",bottom:"y",left:"x"})}function cn(n){return ps(n,["topLeft","topRight","bottomLeft","bottomRight"])}function Qt(n){let t=Hr(n);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function Ht(n,t){n=n||{},t=t||dt.font;let e=at(n.size,t.size);typeof e=="string"&&(e=parseInt(e,10));let i=at(n.style,t.style);i&&!(""+i).match(Rg)&&(console.warn('Invalid font style specified: "'+i+'"'),i="");let s={family:at(n.family,t.family),lineHeight:Lg(at(n.lineHeight,t.lineHeight),e),size:e,style:i,weight:at(n.weight,t.weight),string:""};return s.string=Og(s),s}function qn(n,t,e,i){let s=!0,r,a,o;for(r=0,a=n.length;re&&o===0?0:o+l;return{min:a(i,-Math.abs(r)),max:a(s,r)}}function Ye(n,t){return Object.assign(Object.create(n),t)}function gs(n,t,e){e=e||(a=>n[a]1;)r=s+i>>1,e(r)?s=r:i=r;return{lo:s,hi:i}}var Le=(n,t,e)=>gs(n,e,i=>n[i][t]gs(n,e,i=>n[i][t]>=e);function Fl(n,t,e){let i=0,s=n.length;for(;ii&&n[s-1]>e;)s--;return i>0||s{let i="_onData"+rs(e),s=n[e];Object.defineProperty(n,e,{configurable:!0,enumerable:!1,value(...r){let a=s.apply(this,r);return n._chartjs.listeners.forEach(o=>{typeof o[i]=="function"&&o[i](...r)}),a}})})}function Vr(n,t){let e=n._chartjs;if(!e)return;let i=e.listeners,s=i.indexOf(t);s!==-1&&i.splice(s,1),!(i.length>0)&&(Il.forEach(r=>{delete n[r]}),delete n._chartjs)}function Wr(n){let t=new Set,e,i;for(e=0,i=n.length;en[0]){me(i)||(i=Nl("_fallback",n));let r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:n,_rootScopes:e,_fallback:i,_getTarget:s,override:a=>ms([a,...n],t,e,i)};return new Proxy(r,{deleteProperty(a,o){return delete a[o],delete a._keys,delete n[0][o],!0},get(a,o){return zl(a,o,()=>Vg(o,t,n,a))},getOwnPropertyDescriptor(a,o){return Reflect.getOwnPropertyDescriptor(a._scopes[0],o)},getPrototypeOf(){return Reflect.getPrototypeOf(n[0])},has(a,o){return Hl(a).includes(o)},ownKeys(a){return Hl(a)},set(a,o,l){let c=a._storage||(a._storage=s());return a[o]=c[o]=l,delete a._keys,!0}})}function xn(n,t,e,i){let s={_cacheable:!1,_proxy:n,_context:t,_subProxy:e,_stack:new Set,_descriptors:Yr(n,i),setContext:r=>xn(n,r,e,i),override:r=>xn(n.override(r),t,e,i)};return new Proxy(s,{deleteProperty(r,a){return delete r[a],delete n[a],!0},get(r,a,o){return zl(r,a,()=>$g(r,a,o))},getOwnPropertyDescriptor(r,a){return r._descriptors.allKeys?Reflect.has(n,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(n,a)},getPrototypeOf(){return Reflect.getPrototypeOf(n)},has(r,a){return Reflect.has(n,a)},ownKeys(){return Reflect.ownKeys(n)},set(r,a,o){return n[a]=o,delete r[a],!0}})}function Yr(n,t={scriptable:!0,indexable:!0}){let{_scriptable:e=t.scriptable,_indexable:i=t.indexable,_allKeys:s=t.allKeys}=n;return{allKeys:s,scriptable:e,indexable:i,isScriptable:Ve(e)?e:()=>e,isIndexable:Ve(i)?i:()=>i}}var Ig=(n,t)=>n?n+rs(t):t,Gr=(n,t)=>pt(t)&&n!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function zl(n,t,e){if(Object.prototype.hasOwnProperty.call(n,t))return n[t];let i=e();return n[t]=i,i}function $g(n,t,e){let{_proxy:i,_context:s,_subProxy:r,_descriptors:a}=n,o=i[t];return Ve(o)&&a.isScriptable(t)&&(o=zg(t,o,n,e)),Ot(o)&&o.length&&(o=Bg(t,o,n,a.isIndexable)),Gr(t,o)&&(o=xn(o,s,r&&r[t],a)),o}function zg(n,t,e,i){let{_proxy:s,_context:r,_subProxy:a,_stack:o}=e;if(o.has(n))throw new Error("Recursion detected: "+Array.from(o).join("->")+"->"+n);return o.add(n),t=t(r,a||i),o.delete(n),Gr(n,t)&&(t=qr(s._scopes,s,n,t)),t}function Bg(n,t,e,i){let{_proxy:s,_context:r,_subProxy:a,_descriptors:o}=e;if(me(r.index)&&i(n))t=t[r.index%t.length];else if(pt(t[0])){let l=t,c=s._scopes.filter(u=>u!==l);t=[];for(let u of l){let d=qr(c,s,n,u);t.push(xn(d,r,a&&a[n],o))}}return t}function Bl(n,t,e){return Ve(n)?n(t,e):n}var jg=(n,t)=>n===!0?t:typeof n=="string"?He(t,n):void 0;function Ng(n,t,e,i,s){for(let r of t){let a=jg(e,r);if(a){n.add(a);let o=Bl(a._fallback,e,s);if(me(o)&&o!==e&&o!==i)return o}else if(a===!1&&me(i)&&e!==i)return null}return!1}function qr(n,t,e,i){let s=t._rootScopes,r=Bl(t._fallback,e,i),a=[...n,...s],o=new Set;o.add(i);let l=jl(o,a,e,r||e,i);return l===null||me(r)&&r!==e&&(l=jl(o,a,r,l,i),l===null)?!1:ms(Array.from(o),[""],s,r,()=>Hg(t,e,i))}function jl(n,t,e,i,s){for(;e;)e=Ng(n,t,e,i,s);return e}function Hg(n,t,e){let i=n._getTarget();t in i||(i[t]={});let s=i[t];return Ot(s)&&pt(e)?e:s}function Vg(n,t,e,i){let s;for(let r of t)if(s=Nl(Ig(r,n),e),me(s))return Gr(n,s)?qr(e,i,n,s):s}function Nl(n,t){for(let e of t){if(!e)continue;let i=e[n];if(me(i))return i}}function Hl(n){let t=n._keys;return t||(t=n._keys=Wg(n._scopes)),t}function Wg(n){let t=new Set;for(let e of n)for(let i of Object.keys(e).filter(s=>!s.startsWith("_")))t.add(i);return Array.from(t)}function Ur(n,t,e,i){let{iScale:s}=n,{key:r="r"}=this._parsing,a=new Array(i),o,l,c,u;for(o=0,l=i;otn==="x"?"y":"x";function Gg(n,t,e,i){let s=n.skip?t:n,r=t,a=e.skip?t:e,o=ls(r,s),l=ls(a,r),c=o/(o+l),u=l/(o+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;let d=i*c,p=i*u;return{previous:{x:r.x-d*(a.x-s.x),y:r.y-d*(a.y-s.y)},next:{x:r.x+p*(a.x-s.x),y:r.y+p*(a.y-s.y)}}}function qg(n,t,e){let i=n.length,s,r,a,o,l,c=Un(n,0);for(let u=0;u!c.skip)),t.cubicInterpolationMode==="monotone")Xg(n,s);else{let c=i?n[n.length-1]:n[0];for(r=0,a=n.length;rwindow.getComputedStyle(n,null);function Zg(n,t){return ys(n).getPropertyValue(t)}var Jg=["top","right","bottom","left"];function wn(n,t,e){let i={};e=e?"-"+e:"";for(let s=0;s<4;s++){let r=Jg[s];i[r]=parseFloat(n[t+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}var Qg=(n,t,e)=>(n>0||t>0)&&(!e||!e.shadowRoot);function tm(n,t){let e=n.touches,i=e&&e.length?e[0]:n,{offsetX:s,offsetY:r}=i,a=!1,o,l;if(Qg(s,r,n.target))o=s,l=r;else{let c=t.getBoundingClientRect();o=i.clientX-c.left,l=i.clientY-c.top,a=!0}return{x:o,y:l,box:a}}function hn(n,t){if("native"in n)return n;let{canvas:e,currentDevicePixelRatio:i}=t,s=ys(e),r=s.boxSizing==="border-box",a=wn(s,"padding"),o=wn(s,"border","width"),{x:l,y:c,box:u}=tm(n,e),d=a.left+(u&&o.left),p=a.top+(u&&o.top),{width:m,height:b}=t;return r&&(m-=a.width+o.width,b-=a.height+o.height),{x:Math.round((l-d)/m*e.width/i),y:Math.round((c-p)/b*e.height/i)}}function em(n,t,e){let i,s;if(t===void 0||e===void 0){let r=vs(n);if(!r)t=n.clientWidth,e=n.clientHeight;else{let a=r.getBoundingClientRect(),o=ys(r),l=wn(o,"border","width"),c=wn(o,"padding");t=a.width-c.width-l.width,e=a.height-c.height-l.height,i=_s(o.maxWidth,r,"clientWidth"),s=_s(o.maxHeight,r,"clientHeight")}}return{width:t,height:e,maxWidth:i||as,maxHeight:s||as}}var Kr=n=>Math.round(n*10)/10;function Yl(n,t,e,i){let s=ys(n),r=wn(s,"margin"),a=_s(s.maxWidth,n,"clientWidth")||as,o=_s(s.maxHeight,n,"clientHeight")||as,l=em(n,t,e),{width:c,height:u}=l;if(s.boxSizing==="content-box"){let d=wn(s,"border","width"),p=wn(s,"padding");c-=p.width+d.width,u-=p.height+d.height}return c=Math.max(0,c-r.width),u=Math.max(0,i?Math.floor(c/i):u-r.height),c=Kr(Math.min(c,a,l.maxWidth)),u=Kr(Math.min(u,o,l.maxHeight)),c&&!u&&(u=Kr(c/2)),{width:c,height:u}}function Zr(n,t,e){let i=t||1,s=Math.floor(n.height*i),r=Math.floor(n.width*i);n.height=s/i,n.width=r/i;let a=n.canvas;return a.style&&(e||!a.style.height&&!a.style.width)&&(a.style.height=`${n.height}px`,a.style.width=`${n.width}px`),n.currentDevicePixelRatio!==i||a.height!==s||a.width!==r?(n.currentDevicePixelRatio=i,a.height=s,a.width=r,n.ctx.setTransform(i,0,0,i,0,0),!0):!1}var Gl=function(){let n=!1;try{let t={get passive(){return n=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){}return n}();function Jr(n,t){let e=Zg(n,t),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function un(n,t,e,i){return{x:n.x+e*(t.x-n.x),y:n.y+e*(t.y-n.y)}}function ql(n,t,e,i){return{x:n.x+e*(t.x-n.x),y:i==="middle"?e<.5?n.y:t.y:i==="after"?e<1?n.y:t.y:e>0?t.y:n.y}}function Ul(n,t,e,i){let s={x:n.cp2x,y:n.cp2y},r={x:t.cp1x,y:t.cp1y},a=un(n,s,e),o=un(s,r,e),l=un(r,t,e),c=un(a,o,e),u=un(o,l,e);return un(c,u,e)}var Xl=new Map;function nm(n,t){t=t||{};let e=n+JSON.stringify(t),i=Xl.get(e);return i||(i=new Intl.NumberFormat(n,t),Xl.set(e,i)),i}function Xn(n,t,e){return nm(t,e).format(n)}var im=function(n,t){return{x(e){return n+n+t-e},setWidth(e){t=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,i){return e-i},leftForLtr(e,i){return e-i}}},sm=function(){return{x(n){return n},setWidth(n){},textAlign(n){return n},xPlus(n,t){return n+t},leftForLtr(n,t){return n}}};function kn(n,t,e){return n?im(t,e):sm()}function Qr(n,t){let e,i;(t==="ltr"||t==="rtl")&&(e=n.canvas.style,i=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",t,"important"),n.prevTextDirection=i)}function ta(n,t){t!==void 0&&(delete n.prevTextDirection,n.canvas.style.setProperty("direction",t[0],t[1]))}function Kl(n){return n==="angle"?{between:Hn,compare:ag,normalize:ae}:{between:Re,compare:(t,e)=>t-e,normalize:t=>t}}function Zl({start:n,end:t,count:e,loop:i,style:s}){return{start:n%e,end:t%e,loop:i&&(t-n+1)%e==0,style:s}}function rm(n,t,e){let{property:i,start:s,end:r}=e,{between:a,normalize:o}=Kl(i),l=t.length,{start:c,end:u,loop:d}=n,p,m;if(d){for(c+=l,u+=l,p=0,m=l;pl(s,$,E)&&o(s,$)!==0,F=()=>o(r,E)===0||l(r,$,E),B=()=>S||R(),H=()=>!S||F();for(let G=u,Z=u;G<=d;++G)L=t[G%a],!L.skip&&(E=c(L[i]),E!==$&&(S=l(E,s,r),M===null&&B()&&(M=o(E,s)===0?G:Z),M!==null&&H()&&(b.push(Zl({start:M,end:G,loop:p,count:a,style:m})),M=null),Z=G,$=E));return M!==null&&b.push(Zl({start:M,end:d,loop:p,count:a,style:m})),b}function na(n,t){let e=[],i=n.segments;for(let s=0;ss&&n[r%t].skip;)r--;return r%=t,{start:s,end:r}}function om(n,t,e,i){let s=n.length,r=[],a=t,o=n[t],l;for(l=t+1;l<=e;++l){let c=n[l%s];c.skip||c.stop?o.skip||(i=!1,r.push({start:t%s,end:(l-1)%s,loop:i}),t=a=c.stop?l:null):(a=l,o.skip&&(t=l)),o=c}return a!==null&&r.push({start:t%s,end:a%s,loop:i}),r}function Jl(n,t){let e=n.points,i=n.options.spanGaps,s=e.length;if(!s)return[];let r=!!n._loop,{start:a,end:o}=am(e,s,r,i);if(i===!0)return Ql(n,[{start:a,end:o,loop:r}],e,t);let l=oo({chart:t,initial:e.initial,numSteps:a,currentStep:Math.min(i-e.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=Mr.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;let r=i.items,a=r.length-1,o=!1,l;for(;a>=0;--a)l=r[a],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(t),o=!0):(r[a]=r[r.length-1],r.pop());o&&(s.draw(),this._notify(s,i,t,"progress")),r.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=r.length}),this._lastDate=t,e===0&&(this._running=!1)}_getAnims(t){let e=this._charts,i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){!e||!e.length||this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){let e=this._charts.get(t);!e||(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;let e=this._charts.get(t);return!(!e||!e.running||!e.items.length)}stop(t){let e=this._charts.get(t);if(!e||!e.items.length)return;let i=e.items,s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}},Ge=new ec,nc="transparent",hm={boolean(n,t,e){return e>.5?t:n},color(n,t,e){let i=zr(n||nc),s=i.valid&&zr(t||nc);return s&&s.valid?s.mix(i,e).hexString():t},number(n,t,e){return n+(t-n)*e}},ic=class{constructor(t,e,i,s){let r=e[i];s=qn([t.to,s,r,t.from]);let a=qn([t.from,r,s]);this._active=!0,this._fn=t.fn||hm[t.type||typeof a],this._easing=Vn[t.easing]||Vn.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=a,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);let s=this._target[this._prop],r=i-this._start,a=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=r,this._loop=!!t.loop,this._to=qn([t.to,e,s,t.from]),this._from=qn([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){let e=t-this._start,i=this._duration,s=this._prop,r=this._from,a=this._loop,o=this._to,l;if(this._active=r!==o&&(a||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(r,o,l)}wait(){let t=this._promises||(this._promises=[]);return new Promise((e,i)=>{t.push({res:e,rej:i})})}_notify(t){let e=t?"res":"rej",i=this._promises||[];for(let s=0;sn!=="onProgress"&&n!=="onComplete"&&n!=="fn"});dt.set("animations",{colors:{type:"color",properties:fm},numbers:{type:"number",properties:um}});dt.describe("animations",{_fallback:"animation"});dt.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>n|0}}}});var ia=class{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!pt(t))return;let e=this._properties;Object.getOwnPropertyNames(t).forEach(i=>{let s=t[i];if(!pt(s))return;let r={};for(let a of dm)r[a]=s[a];(Ot(s.properties)&&s.properties||[i]).forEach(a=>{(a===i||!e.has(a))&&e.set(a,r)})})}_animateOptions(t,e){let i=e.options,s=gm(t,i);if(!s)return[];let r=this._createAnimations(s,i);return i.$shared&&pm(t.options.$animations,i).then(()=>{t.options=i},()=>{}),r}_createAnimations(t,e){let i=this._properties,s=[],r=t.$animations||(t.$animations={}),a=Object.keys(e),o=Date.now(),l;for(l=a.length-1;l>=0;--l){let c=a[l];if(c.charAt(0)==="$")continue;if(c==="options"){s.push(...this._animateOptions(t,e));continue}let u=e[c],d=r[c],p=i.get(c);if(d)if(p&&d.active()){d.update(p,u,o);continue}else d.cancel();if(!p||!p.duration){t[c]=u;continue}r[c]=d=new ic(p,t,c,u),s.push(d)}return s}update(t,e){if(this._properties.size===0){Object.assign(t,e);return}let i=this._createAnimations(t,e);if(i.length)return Ge.add(this._chart,i),!0}};function pm(n,t){let e=[],i=Object.keys(t);for(let s=0;s0||!e&&r<0)return s.index}return null}function cc(n,t){let{chart:e,_cachedMeta:i}=n,s=e._stacks||(e._stacks={}),{iScale:r,vScale:a,index:o}=i,l=r.axis,c=a.axis,u=_m(r,a,i),d=t.length,p;for(let m=0;me[i].axis===t).shift()}function wm(n,t){return Ye(n,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function km(n,t,e){return Ye(n,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:e,index:t,mode:"default",type:"data"})}function wi(n,t){let e=n.controller.index,i=n.vScale&&n.vScale.axis;if(!!i){t=t||n._parsed;for(let s of t){let r=s._stacks;if(!r||r[i]===void 0||r[i][e]===void 0)return;delete r[i][e]}}}var ra=n=>n==="reset"||n==="none",hc=(n,t)=>t?n:Object.assign({},n),Sm=(n,t,e)=>n&&!t.hidden&&t._stacked&&{keys:rc(e,!0),values:null},Ce=class{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){let t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=oc(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&wi(this._cachedMeta),this.index=t}linkScales(){let t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(d,p,m,b)=>d==="x"?p:d==="r"?b:m,r=e.xAxisID=at(i.xAxisID,sa(t,"x")),a=e.yAxisID=at(i.yAxisID,sa(t,"y")),o=e.rAxisID=at(i.rAxisID,sa(t,"r")),l=e.indexAxis,c=e.iAxisID=s(l,r,a,o),u=e.vAxisID=s(l,a,r,o);e.xScale=this.getScaleForId(r),e.yScale=this.getScaleForId(a),e.rScale=this.getScaleForId(o),e.iScale=this.getScaleForId(c),e.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){let e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){let t=this._cachedMeta;this._data&&Vr(this._data,this),t._stacked&&wi(t)}_dataCheck(){let t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(pt(e))this._data=vm(e);else if(i!==e){if(i){Vr(i,this);let s=this._cachedMeta;wi(s),s._parsed=[]}e&&Object.isExtensible(e)&&$l(e,this),this._syncList=[],this._data=e}}addElements(){let t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){let e=this._cachedMeta,i=this.getDataset(),s=!1;this._dataCheck();let r=e._stacked;e._stacked=oc(e.vScale,e),e.stack!==i.stack&&(s=!0,wi(e),e.stack=i.stack),this._resyncElements(t),(s||r!==e._stacked)&&cc(this,e._parsed)}configure(){let t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){let{_cachedMeta:i,_data:s}=this,{iScale:r,_stacked:a}=i,o=r.axis,l=t===0&&e===s.length?!0:i._sorted,c=t>0&&i._parsed[t-1],u,d,p;if(this._parsing===!1)i._parsed=s,i._sorted=!0,p=s;else{Ot(s[t])?p=this.parseArrayData(i,s,t,e):pt(s[t])?p=this.parseObjectData(i,s,t,e):p=this.parsePrimitiveData(i,s,t,e);let m=()=>d[o]===null||c&&d[o]S||d=0;--p)if(!b()){this.updateRangeFromParsed(c,t,m,l);break}}return c}getAllParsedValues(t){let e=this._cachedMeta._parsed,i=[],s,r,a;for(s=0,r=e.length;s=0&&tthis.getContext(i,s),S=c.resolveNamedOptions(p,m,b,d);return S.$shared&&(S.$shared=l,r[a]=Object.freeze(hc(S,l))),S}_resolveAnimations(t,e,i){let s=this.chart,r=this._cachedDataOpts,a=`animation-${e}`,o=r[a];if(o)return o;let l;if(s.options.animation!==!1){let u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,e),p=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(p,this.getContext(t,i,e))}let c=new ia(s,l&&l.animations);return l&&l._cacheable&&(r[a]=Object.freeze(c)),c}getSharedOptions(t){if(!!t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||ra(t)||this.chart._animationsDisabled}updateElement(t,e,i,s){ra(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!ra(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;let r=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(r)||r})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){let e=this._data,i=this._cachedMeta.data;for(let[o,l,c]of this._syncList)this[o](l,c);this._syncList=[];let s=i.length,r=e.length,a=Math.min(r,s);a&&this.parse(0,a),r>s?this._insertElements(s,r-s,t):r{for(c.length+=e,o=c.length-1;o>=a;o--)c[o]=c[o-e]};for(l(r),o=t;os-r))}return n._cache.$bar}function Cm(n){let t=n.iScale,e=Mm(t,n.type),i=t._length,s,r,a,o,l=()=>{a===32767||a===-32768||(me(o)&&(i=Math.min(i,Math.abs(a-o)||i)),o=a)};for(s=0,r=e.length;s0?s[n-1]:null,o=nMath.abs(o)&&(l=o,c=a),t[e.axis]=c,t._custom={barStart:l,barEnd:c,start:s,end:r,min:a,max:o}}function uc(n,t,e,i){return Ot(n)?Om(n,t,e,i):t[e.axis]=e.parse(n,i),t}function fc(n,t,e,i){let s=n.iScale,r=n.vScale,a=s.getLabels(),o=s===r,l=[],c,u,d,p;for(c=e,u=e+i;c=e?1:-1)}function Dm(n){let t,e,i,s,r;return n.horizontal?(t=n.base>n.x,e="left",i="right"):(t=n.base=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){let e=this._cachedMeta,{xScale:i,yScale:s}=e,r=this.getParsed(t),a=i.getLabelForValue(r.x),o=s.getLabelForValue(r.y),l=r._custom;return{label:e.label,value:"("+a+", "+o+(l?", "+l:"")+")"}}update(t){let e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){let r=s==="reset",{iScale:a,vScale:o}=this._cachedMeta,l=this.resolveDataElementOptions(e,s),c=this.getSharedOptions(l),u=this.includeOptions(s,c),d=a.axis,p=o.axis;for(let m=e;mHn($,o,l,!0)?1:Math.max(R,R*e,F,F*e),b=($,R,F)=>Hn($,o,l,!0)?-1:Math.min(R,R*e,F,F*e),S=m(0,c,d),M=m(Lt,u,p),E=b(At,c,d),L=b(At+Lt,u,p);i=(S-E)/2,s=(M-L)/2,r=-(S+E)/2,a=-(M+L)/2}return{ratioX:i,ratioY:s,offsetX:r,offsetY:a}}var Sn=class extends Ce{constructor(t,e){super(t,e);this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){let i=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=i;else{let r=l=>+i[l];if(pt(i[t])){let{key:l="value"}=this._parsing;r=c=>+He(i[c],l)}let a,o;for(a=t,o=t+e;a0&&!isNaN(t)?Pt*(Math.abs(t)/e):0}getLabelAndValue(t){let e=this._cachedMeta,i=this.chart,s=i.data.labels||[],r=Xn(e._parsed[t],i.options.locale);return{label:s[t]||"",value:r}}getMaxBorderWidth(t){let e=0,i=this.chart,s,r,a,o,l;if(!t){for(s=0,r=i.data.datasets.length;sn!=="spacing",_indexable:n=>n!=="spacing"};Sn.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(n){let t=n.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=n.legend.options;return t.labels.map((i,s)=>{let a=n.getDatasetMeta(0).controller.getStyle(s);return{text:i,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,lineWidth:a.borderWidth,pointStyle:e,hidden:!n.getDataVisibility(s),index:s}})}return[]}},onClick(n,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(n){let t=n.label,e=": "+n.formattedValue;return Ot(t)?(t=t.slice(),t[0]+=e):t+=e,t}}}}};var Kn=class extends Ce{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){let e=this._cachedMeta,{dataset:i,data:s=[],_dataset:r}=e,a=this.chart._animationsDisabled,{start:o,count:l}=Im(e,s,a);this._drawStart=o,this._drawCount=l,$m(e)&&(o=0,l=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!r._decimated,i.points=s;let c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(i,void 0,{animated:!a,options:c},t),this.updateElements(s,o,l,t)}updateElements(t,e,i,s){let r=s==="reset",{iScale:a,vScale:o,_stacked:l,_dataset:c}=this._cachedMeta,u=this.resolveDataElementOptions(e,s),d=this.getSharedOptions(u),p=this.includeOptions(s,d),m=a.axis,b=o.axis,{spanGaps:S,segment:M}=this.options,E=jn(S)?S:Number.POSITIVE_INFINITY,L=this.chart._animationsDisabled||r||s==="none",$=e>0&&this.getParsed(e-1);for(let R=e;R0&&Math.abs(B[m]-$[m])>E,M&&(H.parsed=B,H.raw=c.data[R]),p&&(H.options=d||this.resolveDataElementOptions(R,F.active?"active":s)),L||this.updateElement(F,R,H,s),$=B}this.updateSharedOptions(d,s,u)}getMaxOverflow(){let t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;let r=s[0].size(this.resolveDataElementOptions(0)),a=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,r,a)/2}draw(){let t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}};Kn.id="line";Kn.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};Kn.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};function Im(n,t,e){let i=t.length,s=0,r=i;if(n._sorted){let{iScale:a,_parsed:o}=n,l=a.axis,{min:c,max:u,minDefined:d,maxDefined:p}=a.getUserBounds();d&&(s=Wt(Math.min(Le(o,a.axis,c).lo,e?i:Le(t,l,a.getPixelForValue(c)).lo),0,i-1)),p?r=Wt(Math.max(Le(o,a.axis,u).hi+1,e?0:Le(t,l,a.getPixelForValue(u)).hi+1),s,i)-s:r=i-s}return{start:s,count:r}}function $m(n){let{xScale:t,yScale:e,_scaleRanges:i}=n,s={xmin:t.min,xmax:t.max,ymin:e.min,ymax:e.max};if(!i)return n._scaleRanges=s,!0;let r=i.xmin!==t.min||i.xmax!==t.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,s),r}var Mi=class extends Ce{constructor(t,e){super(t,e);this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){let e=this._cachedMeta,i=this.chart,s=i.data.labels||[],r=Xn(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:r}}parseObjectData(t,e,i,s){return Ur.bind(this)(t,e,i,s)}update(t){let e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){let t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((i,s)=>{let r=this.getParsed(s).r;!isNaN(r)&&this.chart.getDataVisibility(s)&&(re.max&&(e.max=r))}),e}_updateRadius(){let t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),r=Math.max(s/2,0),a=Math.max(i.cutoutPercentage?r/100*i.cutoutPercentage:1,0),o=(r-a)/t.getVisibleDatasetCount();this.outerRadius=r-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){let r=s==="reset",a=this.chart,l=a.options.animation,c=this._cachedMeta.rScale,u=c.xCenter,d=c.yCenter,p=c.getIndexAngle(0)-.5*At,m=p,b,S=360/this.countVisibleElements();for(b=0;b{!isNaN(this.getParsed(s).r)&&this.chart.getDataVisibility(s)&&e++}),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?_e(this.resolveDataElementOptions(t,e).angle||i):0}};Mi.id="polarArea";Mi.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};Mi.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(n){let t=n.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=n.legend.options;return t.labels.map((i,s)=>{let a=n.getDatasetMeta(0).controller.getStyle(s);return{text:i,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,lineWidth:a.borderWidth,pointStyle:e,hidden:!n.getDataVisibility(s),index:s}})}return[]}},onClick(n,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(n){return n.chart.data.labels[n.dataIndex]+": "+n.formattedValue}}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};var xs=class extends Sn{};xs.id="pie";xs.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};var Ci=class extends Ce{getLabelAndValue(t){let e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return Ur.bind(this)(t,e,i,s)}update(t){let e=this._cachedMeta,i=e.dataset,s=e.data||[],r=e.iScale.getLabels();if(i.points=s,t!=="resize"){let a=this.resolveDatasetElementOptions(t);this.options.showLine||(a.borderWidth=0);let o={_loop:!0,_fullLoop:r.length===s.length,options:a};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){let r=this._cachedMeta.rScale,a=s==="reset";for(let o=e;o{l[a](t[e],s)&&(r.push({element:l,datasetIndex:c,index:u}),o=o||l.inRange(t.x,t.y,s))}),i&&!o?[]:r}var Vm={evaluateInteractionItems:Pi,modes:{index(n,t,e,i){let s=hn(t,n),r=e.axis||"x",a=e.includeInvisible||!1,o=e.intersect?la(n,s,r,i,a):ca(n,s,r,!1,i,a),l=[];return o.length?(n.getSortedVisibleDatasetMetas().forEach(c=>{let u=o[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(n,t,e,i){let s=hn(t,n),r=e.axis||"xy",a=e.includeInvisible||!1,o=e.intersect?la(n,s,r,i,a):ca(n,s,r,!1,i,a);if(o.length>0){let l=o[0].datasetIndex,c=n.getDatasetMeta(l).data;o=[];for(let u=0;ue.pos===t)}function bc(n,t){return n.filter(e=>mc.indexOf(e.pos)===-1&&e.box.axis===t)}function Ei(n,t){return n.sort((e,i)=>{let s=t?i:e,r=t?e:i;return s.weight===r.weight?s.index-r.index:s.weight-r.weight})}function Wm(n){let t=[],e,i,s,r,a,o;for(e=0,i=(n||[]).length;ec.box.fullSize),!0),i=Ei(Oi(t,"left"),!0),s=Ei(Oi(t,"right")),r=Ei(Oi(t,"top"),!0),a=Ei(Oi(t,"bottom")),o=bc(t,"x"),l=bc(t,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:s.concat(l).concat(a).concat(o),chartArea:Oi(t,"chartArea"),vertical:i.concat(s).concat(l),horizontal:r.concat(a).concat(o)}}function vc(n,t,e,i){return Math.max(n[e],t[e])+Math.max(n[i],t[i])}function _c(n,t){n.top=Math.max(n.top,t.top),n.left=Math.max(n.left,t.left),n.bottom=Math.max(n.bottom,t.bottom),n.right=Math.max(n.right,t.right)}function Um(n,t,e,i){let{pos:s,box:r}=e,a=n.maxPadding;if(!pt(s)){e.size&&(n[s]-=e.size);let d=i[e.stack]||{size:0,count:1};d.size=Math.max(d.size,e.horizontal?r.height:r.width),e.size=d.size/d.count,n[s]+=e.size}r.getPadding&&_c(a,r.getPadding());let o=Math.max(0,t.outerWidth-vc(a,n,"left","right")),l=Math.max(0,t.outerHeight-vc(a,n,"top","bottom")),c=o!==n.w,u=l!==n.h;return n.w=o,n.h=l,e.horizontal?{same:c,other:u}:{same:u,other:c}}function Xm(n){let t=n.maxPadding;function e(i){let s=Math.max(t[i]-n[i],0);return n[i]+=s,s}n.y+=e("top"),n.x+=e("left"),e("right"),e("bottom")}function Km(n,t){let e=t.maxPadding;function i(s){let r={left:0,top:0,right:0,bottom:0};return s.forEach(a=>{r[a]=Math.max(t[a],e[a])}),r}return i(n?["left","right"]:["top","bottom"])}function Di(n,t,e,i){let s=[],r,a,o,l,c,u;for(r=0,a=n.length,c=0;r{typeof S.beforeLayout=="function"&&S.beforeLayout()});let u=l.reduce((S,M)=>M.box.options&&M.box.options.display===!1?S:S+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:e,padding:s,availableWidth:r,availableHeight:a,vBoxMaxWidth:r/2/u,hBoxMaxHeight:a/2}),p=Object.assign({},s);_c(p,Qt(i));let m=Object.assign({maxPadding:p,w:r,h:a,x:s.left,y:s.top},s),b=Gm(l.concat(c),d);Di(o.fullSize,m,d,b),Di(l,m,d,b),Di(c,m,d,b)&&Di(l,m,d,b),Xm(m),yc(o.leftAndTop,m,d,b),m.x+=m.w,m.y+=m.h,yc(o.rightAndBottom,m,d,b),n.chartArea={left:m.left,top:m.top,right:m.left+m.w,bottom:m.top+m.h,height:m.h,width:m.w},Mt(o.chartArea,S=>{let M=S.box;Object.assign(M,n.chartArea),M.update(m.w,m.h,{left:0,top:0,right:0,bottom:0})})}},ha=class{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}},xc=class extends ha{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}},Ss="$chartjs",Zm={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},wc=n=>n===null||n==="";function Jm(n,t){let e=n.style,i=n.getAttribute("height"),s=n.getAttribute("width");if(n[Ss]={initial:{height:i,width:s,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",wc(s)){let r=Jr(n,"width");r!==void 0&&(n.width=r)}if(wc(i))if(n.style.height==="")n.height=n.width/(t||2);else{let r=Jr(n,"height");r!==void 0&&(n.height=r)}return n}var kc=Gl?{passive:!0}:!1;function Qm(n,t,e){n.addEventListener(t,e,kc)}function tb(n,t,e){n.canvas.removeEventListener(t,e,kc)}function eb(n,t){let e=Zm[n.type]||n.type,{x:i,y:s}=hn(n,t);return{type:e,chart:t,native:n,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Ms(n,t){for(let e of n)if(e===t||e.contains(t))return!0}function nb(n,t,e){let i=n.canvas,s=new MutationObserver(r=>{let a=!1;for(let o of r)a=a||Ms(o.addedNodes,i),a=a&&!Ms(o.removedNodes,i);a&&e()});return s.observe(document,{childList:!0,subtree:!0}),s}function ib(n,t,e){let i=n.canvas,s=new MutationObserver(r=>{let a=!1;for(let o of r)a=a||Ms(o.removedNodes,i),a=a&&!Ms(o.addedNodes,i);a&&e()});return s.observe(document,{childList:!0,subtree:!0}),s}var Ai=new Map,Sc=0;function Mc(){let n=window.devicePixelRatio;n!==Sc&&(Sc=n,Ai.forEach((t,e)=>{e.currentDevicePixelRatio!==n&&t()}))}function sb(n,t){Ai.size||window.addEventListener("resize",Mc),Ai.set(n,t)}function rb(n){Ai.delete(n),Ai.size||window.removeEventListener("resize",Mc)}function ab(n,t,e){let i=n.canvas,s=i&&vs(i);if(!s)return;let r=Cr((o,l)=>{let c=s.clientWidth;e(o,l),c{let l=o[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||r(c,u)});return a.observe(s),sb(n,r),a}function ua(n,t,e){e&&e.disconnect(),t==="resize"&&rb(n)}function ob(n,t,e){let i=n.canvas,s=Cr(r=>{n.ctx!==null&&e(eb(r,n))},n,r=>{let a=r[0];return[a,a.offsetX,a.offsetY]});return Qm(i,t,s),s}var Cc=class extends ha{acquireContext(t,e){let i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(Jm(t,e),i):null}releaseContext(t){let e=t.canvas;if(!e[Ss])return!1;let i=e[Ss].initial;["height","width"].forEach(r=>{let a=i[r];_t(a)?e.removeAttribute(r):e.setAttribute(r,a)});let s=i.style||{};return Object.keys(s).forEach(r=>{e.style[r]=s[r]}),e.width=e.width,delete e[Ss],!0}addEventListener(t,e,i){this.removeEventListener(t,e);let s=t.$proxies||(t.$proxies={}),a={attach:nb,detach:ib,resize:ab}[e]||ob;s[e]=a(t,e,i)}removeEventListener(t,e){let i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:ua,detach:ua,resize:ua}[e]||tb)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return Yl(t,e,i,s)}isAttached(t){let e=vs(t);return!!(e&&e.isConnected)}};function lb(n){return!Xr()||typeof OffscreenCanvas!="undefined"&&n instanceof OffscreenCanvas?xc:Cc}var xe=class{constructor(){this.x=void 0,this.y=void 0,this.active=!1,this.options=void 0,this.$animations=void 0}tooltipPosition(t){let{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return jn(this.x)&&jn(this.y)}getProps(t,e){let i=this.$animations;if(!e||!i)return this;let s={};return t.forEach(r=>{s[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),s}};xe.defaults={};xe.defaultRoutes=void 0;var Tc={values(n){return Ot(n)?n:""+n},numeric(n,t,e){if(n===0)return"0";let i=this.chart.options.locale,s,r=n;if(e.length>1){let c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(s="scientific"),r=cb(n,e)}let a=be(Math.abs(r)),o=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:s,minimumFractionDigits:o,maximumFractionDigits:o};return Object.assign(l,this.options.ticks.format),Xn(n,i,l)},logarithmic(n,t,e){if(n===0)return"0";let i=n/Math.pow(10,Math.floor(be(n)));return i===1||i===2||i===5?Tc.numeric.call(this,n,t,e):""}};function cb(n,t){let e=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(e)>=1&&n!==Math.floor(n)&&(e=n-Math.floor(n)),e}var Cs={formatters:Tc};dt.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,t)=>t.lineWidth,tickColor:(n,t)=>t.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Cs.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}});dt.route("scale.ticks","color","","color");dt.route("scale.grid","color","","borderColor");dt.route("scale.grid","borderColor","","borderColor");dt.route("scale.title","color","","color");dt.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&n!=="callback"&&n!=="parser",_indexable:n=>n!=="borderDash"&&n!=="tickBorderDash"});dt.describe("scales",{_fallback:"scale"});dt.describe("scale.ticks",{_scriptable:n=>n!=="backdropPadding"&&n!=="callback",_indexable:n=>n!=="backdropPadding"});function hb(n,t){let e=n.options.ticks,i=e.maxTicksLimit||ub(n),s=e.major.enabled?db(t):[],r=s.length,a=s[0],o=s[r-1],l=[];if(r>i)return pb(t,l,s,r/i),l;let c=fb(s,t,i);if(r>0){let u,d,p=r>1?Math.round((o-a)/(r-1)):null;for(Ts(t,l,c,_t(p)?0:a-p,a),u=0,d=r-1;us)return l}return Math.max(s,1)}function db(n){let t=[],e,i;for(e=0,i=n.length;en==="left"?"right":n==="right"?"left":n,Pc=(n,t,e)=>t==="top"||t==="left"?n[t]+e:n[t]-e;function Oc(n,t){let e=[],i=n.length/t,s=n.length,r=0;for(;ra+o)))return l}function vb(n,t){Mt(n,e=>{let i=e.gc,s=i.length/2,r;if(s>t){for(r=0;ri?i:e,i=s&&e>i?e:i,{min:ge(e,ge(i,e)),max:ge(i,ge(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Et(this.options.beforeUpdate,[this])}update(t,e,i){let{beginAtZero:s,grace:r,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Rl(this,r,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let l=o=r||i<=1||!this.isHorizontal()){this.labelRotation=s;return}let u=this._getLabelSizes(),d=u.widest.width,p=u.highest.height,m=Wt(this.chart.width-d,0,this.maxWidth);o=t.offset?this.maxWidth/i:m/(i-1),d+6>o&&(o=m/(i-(t.offset?.5:1)),l=this.maxHeight-Ri(t.grid)-e.padding-Ec(t.title,this.chart.options.font),c=Math.sqrt(d*d+p*p),a=os(Math.min(Math.asin(Wt((u.highest.height+6)/o,-1,1)),Math.asin(Wt(l/c,-1,1))-Math.asin(Wt(p/c,-1,1)))),a=Math.max(s,Math.min(r,a))),this.labelRotation=a}afterCalculateLabelRotation(){Et(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Et(this.options.beforeFit,[this])}fit(){let t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:r}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let l=Ec(s,e.options.font);if(o?(t.width=this.maxWidth,t.height=Ri(r)+l):(t.height=this.maxHeight,t.width=Ri(r)+l),i.display&&this.ticks.length){let{first:c,last:u,widest:d,highest:p}=this._getLabelSizes(),m=i.padding*2,b=_e(this.labelRotation),S=Math.cos(b),M=Math.sin(b);if(o){let E=i.mirror?0:M*d.width+S*p.height;t.height=Math.min(this.maxHeight,t.height+E+m)}else{let E=i.mirror?0:S*d.width+M*p.height;t.width=Math.min(this.maxWidth,t.width+E+m)}this._calculatePadding(c,u,M,S)}}this._handleMargins(),o?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){let{ticks:{align:r,padding:a},position:o}=this.options,l=this.labelRotation!==0,c=o!=="top"&&this.axis==="x";if(this.isHorizontal()){let u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1),p=0,m=0;l?c?(p=s*t.width,m=i*e.height):(p=i*t.height,m=s*e.width):r==="start"?m=e.width:r==="end"?p=t.width:r!=="inner"&&(p=t.width/2,m=e.width/2),this.paddingLeft=Math.max((p-u+a)*this.width/(this.width-u),0),this.paddingRight=Math.max((m-d+a)*this.width/(this.width-d),0)}else{let u=e.height/2,d=t.height/2;r==="start"?(u=0,d=t.height):r==="end"&&(u=e.height,d=0),this.paddingTop=u+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Et(this.options.afterFit,[this])}isHorizontal(){let{axis:t,position:e}=this.options;return e==="top"||e==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let e,i;for(e=0,i=t.length;e({width:r[H]||0,height:a[H]||0});return{first:B(0),last:B(e-1),widest:B(R),highest:B(F),widths:r,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){let e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);let e=this._startPixel+t*this._length;return bl(this._alignToPixels?on(this.chart,e,0):e)}getDecimalForPixel(t){let e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){let e=this.ticks||[];if(t>=0&&to*s?o/i:l/s:l*s0}_computeGridLineItems(t){let e=this.axis,i=this.chart,s=this.options,{grid:r,position:a}=s,o=r.offset,l=this.isHorizontal(),u=this.ticks.length+(o?1:0),d=Ri(r),p=[],m=r.setContext(this.getContext()),b=m.drawBorder?m.borderWidth:0,S=b/2,M=function(Q){return on(i,Q,b)},E,L,$,R,F,B,H,G,Z,nt,ot,rt;if(a==="top")E=M(this.bottom),B=this.bottom-d,G=E-S,nt=M(t.top)+S,rt=t.bottom;else if(a==="bottom")E=M(this.top),nt=t.top,rt=M(t.bottom)-S,B=E+S,G=this.top+d;else if(a==="left")E=M(this.right),F=this.right-d,H=E-S,Z=M(t.left)+S,ot=t.right;else if(a==="right")E=M(this.left),Z=t.left,ot=M(t.right)-S,F=E+S,H=this.left+d;else if(e==="x"){if(a==="center")E=M((t.top+t.bottom)/2+.5);else if(pt(a)){let Q=Object.keys(a)[0],ht=a[Q];E=M(this.chart.scales[Q].getPixelForValue(ht))}nt=t.top,rt=t.bottom,B=E+S,G=B+d}else if(e==="y"){if(a==="center")E=M((t.left+t.right)/2);else if(pt(a)){let Q=Object.keys(a)[0],ht=a[Q];E=M(this.chart.scales[Q].getPixelForValue(ht))}F=E-S,H=F-d,Z=t.left,ot=t.right}let wt=at(s.ticks.maxTicksLimit,u),st=Math.max(1,Math.ceil(u/wt));for(L=0;Lr.value===t);return s>=0?e.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){let e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t)),r,a,o=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,a=s.length;r{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(t){let e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[],r,a;for(r=0,a=e.length;r{let i=e.split("."),s=i.pop(),r=[n].concat(i).join("."),a=t[e].split("."),o=a.pop(),l=a.join(".");dt.route(r,s,l,o)})}function Mb(n){return"id"in n&&"defaults"in n}var Dc=class{constructor(){this.controllers=new Li(Ce,"datasets",!0),this.elements=new Li(xe,"elements"),this.plugins=new Li(Object,"plugins"),this.scales=new Li(fn,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach(s=>{let r=i||this._getRegistryForType(s);i||r.isForType(s)||r===this.plugins&&s.id?this._exec(t,r,s):Mt(s,a=>{let o=i||this._getRegistryForType(a);this._exec(t,o,a)})})}_exec(t,e,i){let s=rs(t);Et(i["before"+s],[],i),e[t](i),Et(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;er.filter(o=>!a.some(l=>o.plugin.id===l.plugin.id));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}};function Cb(n){let t=[],e=Object.keys(qe.plugins.items);for(let s=0;s{let l=i[o];if(!pt(l))return console.error(`Invalid scale configuration for scale: ${o}`);if(l._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${o}`);let c=da(o,l),u=Db(c,s),d=e.scales||{};r[c]=r[c]||o,a[o]=Bn(Object.create(null),[{axis:c},l,d[c],d[u]])}),n.data.datasets.forEach(o=>{let l=o.type||n.type,c=o.indexAxis||fa(l,t),d=(an[l]||{}).scales||{};Object.keys(d).forEach(p=>{let m=Eb(p,c),b=o[m+"AxisID"]||r[m]||m;a[b]=a[b]||Object.create(null),Bn(a[b],[{axis:m},i[b],d[p]])})}),Object.keys(a).forEach(o=>{let l=a[o];Bn(l,[dt.scales[l.type],dt.scale])}),a}function Rc(n){let t=n.options||(n.options={});t.plugins=at(t.plugins,{}),t.scales=Rb(n,t)}function Lc(n){return n=n||{},n.datasets=n.datasets||[],n.labels=n.labels||[],n}function Lb(n){return n=n||{},n.data=Lc(n.data),Rc(n),n}var Fc=new Map,Ic=new Set;function Ps(n,t){let e=Fc.get(n);return e||(e=t(),Fc.set(n,e),Ic.add(e)),e}var Fi=(n,t,e)=>{let i=He(t,e);i!==void 0&&n.add(i)},$c=class{constructor(t){this._config=Lb(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Lc(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){let t=this._config;this.clearCache(),Rc(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Ps(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return Ps(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return Ps(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){let e=t.id,i=this.type;return Ps(`${i}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){let i=this._scopeCache,s=i.get(t);return(!s||e)&&(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){let{options:s,type:r}=this,a=this._cachedScopes(t,i),o=a.get(e);if(o)return o;let l=new Set;e.forEach(u=>{t&&(l.add(t),u.forEach(d=>Fi(l,t,d))),u.forEach(d=>Fi(l,s,d)),u.forEach(d=>Fi(l,an[r]||{},d)),u.forEach(d=>Fi(l,dt,d)),u.forEach(d=>Fi(l,ds,d))});let c=Array.from(l);return c.length===0&&c.push(Object.create(null)),Ic.has(e)&&a.set(e,c),c}chartOptionScopes(){let{options:t,type:e}=this;return[t,an[e]||{},dt.datasets[e]||{},{type:e},dt,ds]}resolveNamedOptions(t,e,i,s=[""]){let r={$shared:!0},{resolver:a,subPrefixes:o}=zc(this._resolverCache,t,s),l=a;if(Ib(a,e)){r.$shared=!1,i=Ve(i)?i():i;let c=this.createResolver(t,i,o);l=xn(a,i,c)}for(let c of e)r[c]=l[c];return r}createResolver(t,e,i=[""],s){let{resolver:r}=zc(this._resolverCache,t,i);return pt(e)?xn(r,e,void 0,s):r}};function zc(n,t,e){let i=n.get(t);i||(i=new Map,n.set(t,i));let s=e.join(),r=i.get(s);return r||(r={resolver:ms(t,e),subPrefixes:e.filter(o=>!o.toLowerCase().includes("hover"))},i.set(s,r)),r}var Fb=n=>pt(n)&&Object.getOwnPropertyNames(n).reduce((t,e)=>t||Ve(n[e]),!1);function Ib(n,t){let{isScriptable:e,isIndexable:i}=Yr(n);for(let s of t){let r=e(s),a=i(s),o=(a||r)&&n[s];if(r&&(Ve(o)||Fb(o))||a&&Ot(o))return!0}return!1}var $b="3.8.0",zb=["top","bottom","left","right","chartArea"];function Bc(n,t){return n==="top"||n==="bottom"||zb.indexOf(n)===-1&&t==="x"}function jc(n,t){return function(e,i){return e[n]===i[n]?e[t]-i[t]:e[n]-i[n]}}function Nc(n){let t=n.chart,e=t.options.animation;t.notifyPlugins("afterRender"),Et(e&&e.onComplete,[n],t)}function Bb(n){let t=n.chart,e=t.options.animation;Et(e&&e.onProgress,[n],t)}function Hc(n){return Xr()&&typeof n=="string"?n=document.getElementById(n):n&&n.length&&(n=n[0]),n&&n.canvas&&(n=n.canvas),n}var Os={},Vc=n=>{let t=Hc(n);return Object.values(Os).filter(e=>e.canvas===t).pop()};function jb(n,t,e){let i=Object.keys(n);for(let s of i){let r=+s;if(r>=t){let a=n[s];delete n[s],(e>0||r>t)&&(n[r+e]=a)}}}function Nb(n,t,e,i){return!e||n.type==="mouseout"?null:i?t:n}var oe=class{constructor(t,e){let i=this.config=new $c(e),s=Hc(t),r=Vc(s);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas can be reused.");let a=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||lb(s)),this.platform.updateConfig(i);let o=this.platform.acquireContext(s,a.aspectRatio),l=o&&o.canvas,c=l&&l.height,u=l&&l.width;if(this.id=cl(),this.ctx=o,this.canvas=l,this.width=u,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Ac,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=ol(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],Os[this.id]=this,!o||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Ge.listen(this,"complete",Nc),Ge.listen(this,"progress",Bb),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:r}=this;return _t(t)?e&&r?r:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Zr(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Nr(this.canvas,this.ctx),this}stop(){return Ge.stop(this),this}resize(t,e){Ge.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){let i=this.options,s=this.canvas,r=i.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(s,t,e,r),o=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,!!Zr(this,o,!0)&&(this.notifyPlugins("resize",{size:a}),Et(i.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){let e=this.options.scales||{};Mt(e,(i,s)=>{i.id=s})}buildOrUpdateScales(){let t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce((a,o)=>(a[o]=!1,a),{}),r=[];e&&(r=r.concat(Object.keys(e).map(a=>{let o=e[a],l=da(a,o),c=l==="r",u=l==="x";return{options:o,dposition:c?"chartArea":u?"bottom":"left",dtype:c?"radialLinear":u?"category":"linear"}}))),Mt(r,a=>{let o=a.options,l=o.id,c=da(l,o),u=at(o.type,a.dtype);(o.position===void 0||Bc(o.position,c)!==Bc(a.dposition))&&(o.position=a.dposition),s[l]=!0;let d=null;if(l in i&&i[l].type===u)d=i[l];else{let p=qe.getScale(u);d=new p({id:l,type:u,ctx:this.ctx,chart:this}),i[d.id]=d}d.init(o,t)}),Mt(s,(a,o)=>{a||delete i[o]}),Mt(i,a=>{ne.configure(this,a,a.options),ne.addBox(this,a)})}_updateMetasets(){let t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort((s,r)=>s.index-r.index),i>e){for(let s=e;se.length&&delete this._stacks,t.forEach((i,s)=>{e.filter(r=>r===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){let t=[],e=this.data.datasets,i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){let e=this.config;e.update();let i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;let r=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let c=0,u=this.data.datasets.length;c{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(jc("z","_idx"));let{_active:o,_lastEvent:l}=this;l?this._eventHandler(l,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){Mt(this.scales,t=>{ne.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(!Pr(e,i)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(let{method:i,start:s,count:r}of e){let a=i==="_removeElements"?-r:r;jb(t,s,a)}}_getUniformDataChanges(){let t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];let e=this.data.datasets.length,i=r=>new Set(t.filter(a=>a[0]===r).map((a,o)=>o+","+a.splice(1).join(","))),s=i(0);for(let r=1;rr.split(",")).map(r=>({method:r[1],start:+r[2],count:+r[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;ne.update(this,this.width,this.height,t);let e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],Mt(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,r)=>{s._idx=r}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,i=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){let e=this.ctx,i=t._clip,s=!i.disabled,r=this.chartArea,a={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",a)!==!1&&(s&&yi(e,{left:i.left===!1?0:r.left-i.left,right:i.right===!1?this.width:r.right+i.right,top:i.top===!1?0:r.top-i.top,bottom:i.bottom===!1?this.height:r.bottom+i.bottom}),t.controller.draw(),s&&xi(e),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(t){return Yn(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){let r=Vm.modes[e];return typeof r=="function"?r(this,t,i,s):[]}getDatasetMeta(t){let e=this.data.datasets[t],i=this._metasets,s=i.filter(r=>r&&r._dataset===e).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ye(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){let e=this.data.datasets[t];if(!e)return!1;let i=this.getDatasetMeta(t);return typeof i.hidden=="boolean"?!i.hidden:!e.hidden}setDatasetVisibility(t,e){let i=this.getDatasetMeta(t);i.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){let s=i?"show":"hide",r=this.getDatasetMeta(t),a=r.controller._resolveAnimations(void 0,s);me(e)?(r.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),a.update(r,{visible:i}),this.update(o=>o.datasetIndex===t?s:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){let e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Ge.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,r,a),t[r]=a},s=(r,a,o)=>{r.offsetX=a,r.offsetY=o,this._eventHandler(r)};Mt(this.options.events,r=>i(r,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});let t=this._responsiveListeners,e=this.platform,i=(l,c)=>{e.addEventListener(this,l,c),t[l]=c},s=(l,c)=>{t[l]&&(e.removeEventListener(this,l,c),delete t[l])},r=(l,c)=>{this.canvas&&this.resize(l,c)},a,o=()=>{s("attach",o),this.attached=!0,this.resize(),i("resize",r),i("detach",a)};a=()=>{this.attached=!1,s("resize",r),this._stop(),this._resize(0,0),i("attach",o)},e.isAttached(this.canvas)?o():a()}unbindEvents(){Mt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Mt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){let s=i?"set":"remove",r,a,o,l;for(e==="dataset"&&(r=this.getDatasetMeta(t[0].datasetIndex),r.controller["_"+s+"DatasetHoverStyle"]()),o=0,l=t.length;o{let o=this.getDatasetMeta(r);if(!o)throw new Error("No dataset found at index "+r);return{datasetIndex:r,element:o.data[a],index:a}});!fi(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){let s=this.options.hover,r=(l,c)=>l.filter(u=>!c.some(d=>u.datasetIndex===d.datasetIndex&&u.index===d.index)),a=r(e,t),o=i?t:r(t,e);a.length&&this.updateHoverStyle(a,s.mode,!1),o.length&&s.mode&&this.updateHoverStyle(o,s.mode,!0)}_eventHandler(t,e){let i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=a=>(a.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;let r=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(r||i.changed)&&this.render(),this}_handleEvent(t,e,i){let{_active:s=[],options:r}=this,a=e,o=this._getActiveElements(t,s,i,a),l=dl(t),c=Nb(t,this._lastEvent,i,l);i&&(this._lastEvent=null,Et(r.onHover,[t,o,this],this),l&&Et(r.onClick,[t,o,this],this));let u=!fi(o,s);return(u||e)&&(this._active=o,this._updateHoverStyles(o,s,e)),this._lastEvent=c,u}_getActiveElements(t,e,i,s){if(t.type==="mouseout")return[];if(!i)return e;let r=this.options.hover;return this.getElementsAtEventForMode(t,r.mode,r,s)}},Wc=()=>Mt(oe.instances,n=>n._plugins.invalidate()),dn=!0;Object.defineProperties(oe,{defaults:{enumerable:dn,value:dt},instances:{enumerable:dn,value:Os},overrides:{enumerable:dn,value:an},registry:{enumerable:dn,value:qe},version:{enumerable:dn,value:$b},getChart:{enumerable:dn,value:Vc},register:{enumerable:dn,value:(...n)=>{qe.add(...n),Wc()}},unregister:{enumerable:dn,value:(...n)=>{qe.remove(...n),Wc()}}});function Yc(n,t,e){let{startAngle:i,pixelMargin:s,x:r,y:a,outerRadius:o,innerRadius:l}=t,c=s/o;n.beginPath(),n.arc(r,a,o,i-c,e+c),l>s?(c=s/l,n.arc(r,a,l,e+c,i-c,!0)):n.arc(r,a,s,e+Lt,i-Lt),n.closePath(),n.clip()}function Hb(n){return ps(n,["outerStart","outerEnd","innerStart","innerEnd"])}function Vb(n,t,e,i){let s=Hb(n.options.borderRadius),r=(e-t)/2,a=Math.min(r,i*t/2),o=l=>{let c=(e-Math.min(r,l))*i/2;return Wt(l,0,Math.min(r,c))};return{outerStart:o(s.outerStart),outerEnd:o(s.outerEnd),innerStart:Wt(s.innerStart,0,a),innerEnd:Wt(s.innerEnd,0,a)}}function Zn(n,t,e,i){return{x:e+n*Math.cos(t),y:i+n*Math.sin(t)}}function pa(n,t,e,i,s){let{x:r,y:a,startAngle:o,pixelMargin:l,innerRadius:c}=t,u=Math.max(t.outerRadius+i+e-l,0),d=c>0?c+i+e+l:0,p=0,m=s-o;if(i){let ht=c>0?c-i:0,ue=u>0?u-i:0,ie=(ht+ue)/2,fe=ie!==0?m*ie/(ie+i):m;p=(m-fe)/2}let b=Math.max(.001,m*u-e/At)/u,S=(m-b)/2,M=o+S+p,E=s-S-p,{outerStart:L,outerEnd:$,innerStart:R,innerEnd:F}=Vb(t,d,u,E-M),B=u-L,H=u-$,G=M+L/B,Z=E-$/H,nt=d+R,ot=d+F,rt=M+R/nt,wt=E-F/ot;if(n.beginPath(),n.arc(r,a,u,G,Z),$>0){let ht=Zn(H,Z,r,a);n.arc(ht.x,ht.y,$,Z,E+Lt)}let st=Zn(ot,E,r,a);if(n.lineTo(st.x,st.y),F>0){let ht=Zn(ot,wt,r,a);n.arc(ht.x,ht.y,F,E+Lt,wt+Math.PI)}if(n.arc(r,a,d,E-F/d,M+R/d,!0),R>0){let ht=Zn(nt,rt,r,a);n.arc(ht.x,ht.y,R,rt+Math.PI,M-Lt)}let Q=Zn(B,M,r,a);if(n.lineTo(Q.x,Q.y),L>0){let ht=Zn(B,G,r,a);n.arc(ht.x,ht.y,L,M-Lt,G)}n.closePath()}function Wb(n,t,e,i){let{fullCircles:s,startAngle:r,circumference:a}=t,o=t.endAngle;if(s){pa(n,t,e,i,r+Pt);for(let l=0;l=Pt||Hn(r,o,l),S=Re(a,c+p,u+p);return b&&S}getCenterPoint(t){let{x:e,y:i,startAngle:s,endAngle:r,innerRadius:a,outerRadius:o}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:l,spacing:c}=this.options,u=(s+r)/2,d=(a+o+c+l)/2;return{x:e+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){let{options:e,circumference:i}=this,s=(e.offset||0)/2,r=(e.spacing||0)/2;if(this.pixelMargin=e.borderAlign==="inner"?.33:0,this.fullCircles=i>Pt?Math.floor(i/Pt):0,i===0||this.innerRadius<0||this.outerRadius<0)return;t.save();let a=0;if(s){a=s/2;let l=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(l)*a,Math.sin(l)*a),this.circumference>=At&&(a=s)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;let o=Wb(t,this,a,r);Gb(t,this,a,r,o),t.restore()}};Ii.id="arc";Ii.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0};Ii.defaultRoutes={backgroundColor:"backgroundColor"};function Gc(n,t,e=t){n.lineCap=at(e.borderCapStyle,t.borderCapStyle),n.setLineDash(at(e.borderDash,t.borderDash)),n.lineDashOffset=at(e.borderDashOffset,t.borderDashOffset),n.lineJoin=at(e.borderJoinStyle,t.borderJoinStyle),n.lineWidth=at(e.borderWidth,t.borderWidth),n.strokeStyle=at(e.borderColor,t.borderColor)}function qb(n,t,e){n.lineTo(e.x,e.y)}function Ub(n){return n.stepped?Dl:n.tension||n.cubicInterpolationMode==="monotone"?Al:qb}function qc(n,t,e={}){let i=n.length,{start:s=0,end:r=i-1}=e,{start:a,end:o}=t,l=Math.max(s,a),c=Math.min(r,o),u=so&&r>o;return{count:i,start:l,loop:t.loop,ilen:c(a+(c?o-R:R))%r,$=()=>{S!==M&&(n.lineTo(u,M),n.lineTo(u,S),n.lineTo(u,E))};for(l&&(m=s[L(0)],n.moveTo(m.x,m.y)),p=0;p<=o;++p){if(m=s[L(p)],m.skip)continue;let R=m.x,F=m.y,B=R|0;B===b?(FM&&(M=F),u=(d*u+R)/++d):($(),n.lineTo(R,F),b=B,d=0,S=M=F),E=F}$()}function ga(n){let t=n.options,e=t.borderDash&&t.borderDash.length;return!n._decimated&&!n._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?Kb:Xb}function Zb(n){return n.stepped?ql:n.tension||n.cubicInterpolationMode==="monotone"?Ul:un}function Jb(n,t,e,i){let s=t._path;s||(s=t._path=new Path2D,t.path(s,e,i)&&s.closePath()),Gc(n,t.options),n.stroke(s)}function Qb(n,t,e,i){let{segments:s,options:r}=t,a=ga(t);for(let o of s)Gc(n,r,o.style),n.beginPath(),a(n,t,o,{start:e,end:e+i-1})&&n.closePath(),n.stroke()}var t0=typeof Path2D=="function";function e0(n,t,e,i){t0&&!t.options.segment?Jb(n,t,e,i):Qb(n,t,e,i)}var Ue=class extends xe{constructor(t){super();this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){let i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){let s=i.spanGaps?this._loop:this._fullLoop;Wl(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Jl(this,this.options.segment))}first(){let t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){let t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){let i=this.options,s=t[e],r=this.points,a=na(this,{property:e,start:s,end:s});if(!a.length)return;let o=[],l=Zb(i),c,u;for(c=0,u=a.length;cn!=="borderDash"&&n!=="fill"};function Uc(n,t,e,i){let s=n.options,{[e]:r}=n.getProps([e],i);return Math.abs(t-r)=e)return n.slice(t,t+e);let a=[],o=(e-2)/(r-2),l=0,c=t+e-1,u=t,d,p,m,b,S;for(a[l++]=n[u],d=0;dm&&(m=b,p=n[L],S=L);a[l++]=p,u=S}return a[l++]=n[c],a}function c0(n,t,e,i){let s=0,r=0,a,o,l,c,u,d,p,m,b,S,M=[],E=t+e-1,L=n[t].x,R=n[E].x-L;for(a=t;aS&&(S=c,p=a),s=(r*s+o.x)/++r;else{let B=a-1;if(!_t(d)&&!_t(p)){let H=Math.min(d,p),G=Math.max(d,p);H!==m&&H!==B&&M.push({...n[H],x:s}),G!==m&&G!==B&&M.push({...n[G],x:s})}a>0&&B!==m&&M.push(n[B]),M.push(o),u=F,r=0,b=S=c,d=p=m=a}}return M}function Kc(n){if(n._decimated){let t=n._data;delete n._decimated,delete n._data,Object.defineProperty(n,"data",{value:t})}}function Zc(n){n.data.datasets.forEach(t=>{Kc(t)})}function h0(n,t){let e=t.length,i=0,s,{iScale:r}=n,{min:a,max:o,minDefined:l,maxDefined:c}=r.getUserBounds();return l&&(i=Wt(Le(t,r.axis,a).lo,0,e-1)),c?s=Wt(Le(t,r.axis,o).hi+1,i,e)-i:s=e-i,{start:i,count:s}}var u0={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(n,t,e)=>{if(!e.enabled){Zc(n);return}let i=n.width;n.data.datasets.forEach((s,r)=>{let{_data:a,indexAxis:o}=s,l=n.getDatasetMeta(r),c=a||s.data;if(qn([o,n.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;let u=n.scales[l.xAxisID];if(u.type!=="linear"&&u.type!=="time"||n.options.parsing)return;let{start:d,count:p}=h0(l,c),m=e.threshold||4*i;if(p<=m){Kc(s);return}_t(a)&&(s._data=c,delete s.data,Object.defineProperty(s,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(S){this._data=S}}));let b;switch(e.algorithm){case"lttb":b=l0(c,d,p,i,e);break;case"min-max":b=c0(c,d,p,i);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}s._decimated=b})},destroy(n){Zc(n)}};function f0(n,t,e){let i=n.segments,s=n.points,r=t.points,a=[];for(let o of i){let{start:l,end:c}=o;c=_a(l,c,s);let u=va(e,s[l],s[c],o.loop);if(!t.segments){a.push({source:o,target:u,start:s[l],end:s[c]});continue}let d=na(t,u);for(let p of d){let m=va(e,r[p.start],r[p.end],p.loop),b=ea(o,s,m);for(let S of b)a.push({source:S,target:p,start:{[e]:Jc(u,m,"start",Math.max)},end:{[e]:Jc(u,m,"end",Math.min)}})}}return a}function va(n,t,e,i){if(i)return;let s=t[n],r=e[n];return n==="angle"&&(s=ae(s),r=ae(r)),{property:n,start:s,end:r}}function d0(n,t){let{x:e=null,y:i=null}=n||{},s=t.points,r=[];return t.segments.forEach(({start:a,end:o})=>{o=_a(a,o,s);let l=s[a],c=s[o];i!==null?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):e!==null&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}function _a(n,t,e){for(;t>n;t--){let i=e[t];if(!isNaN(i.x)&&!isNaN(i.y))break}return t}function Jc(n,t,e,i){return n&&t?i(n[e],t[e]):n?n[e]:t?t[e]:0}function Qc(n,t){let e=[],i=!1;return Ot(n)?(i=!0,e=n):e=d0(n,t),e.length?new Ue({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function p0(n,t,e){let s=n[t].fill,r=[t],a;if(!e)return s;for(;s!==!1&&r.indexOf(s)===-1;){if(!It(s))return s;if(a=n[s],!a)return!1;if(a.visible)return s;r.push(s),s=a.fill}return!1}function g0(n,t,e){let i=_0(n);if(pt(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return It(s)&&Math.floor(s)===s?m0(i[0],t,s,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function m0(n,t,e,i){return(n==="-"||n==="+")&&(e=t+e),e===t||e<0||e>=i?!1:e}function b0(n,t){let e=null;return n==="start"?e=t.bottom:n==="end"?e=t.top:pt(n)?e=t.getPixelForValue(n.value):t.getBasePixel&&(e=t.getBasePixel()),e}function v0(n,t,e){let i;return n==="start"?i=e:n==="end"?i=t.options.reverse?t.min:t.max:pt(n)?i=n.value:i=t.getBaseValue(),i}function _0(n){let t=n.options,e=t.fill,i=at(e&&e.target,e);return i===void 0&&(i=!!t.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function y0(n){let{scale:t,index:e,line:i}=n,s=[],r=i.segments,a=i.points,o=x0(t,e);o.push(Qc({x:null,y:t.bottom},i));for(let l=0;l=0;--a){let o=s[a].$filler;!o||(o.line.updateControlPoints(r,o.axis),i&&xa(n.ctx,o,r))}},beforeDatasetsDraw(n,t,e){if(e.drawTime!=="beforeDatasetsDraw")return;let i=n.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){let r=i[s].$filler;r&&xa(n.ctx,r,n.chartArea)}},beforeDatasetDraw(n,t,e){let i=t.meta.$filler;!i||i.fill===!1||e.drawTime!=="beforeDatasetDraw"||xa(n.ctx,i,n.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}},ih=(n,t)=>{let{boxHeight:e=t,boxWidth:i=t}=n;return n.usePointStyle&&(e=Math.min(e,t),i=Math.min(i,t)),{boxWidth:i,boxHeight:e,itemHeight:Math.max(t,e)}},A0=(n,t)=>n!==null&&t!==null&&n.datasetIndex===t.datasetIndex&&n.index===t.index,wa=class extends xe{constructor(t){super();this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let t=this.options.labels||{},e=Et(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(i=>t.filter(i,this.chart.data))),t.sort&&(e=e.sort((i,s)=>t.sort(i,s,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){let{options:t,ctx:e}=this;if(!t.display){this.width=this.height=0;return}let i=t.labels,s=Ht(i.font),r=s.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:l}=ih(i,r),c,u;e.font=s.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(a,r,o,l)+10):(u=this.maxHeight,c=this._fitCols(a,r,o,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(u,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){let{ctx:r,maxWidth:a,options:{labels:{padding:o}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=s+o,d=t;r.textAlign="left",r.textBaseline="middle";let p=-1,m=-u;return this.legendItems.forEach((b,S)=>{let M=i+e/2+r.measureText(b.text).width;(S===0||c[c.length-1]+M+2*o>a)&&(d+=u,c[c.length-(S>0?0:1)]=0,m+=u,p++),l[S]={left:0,top:m,row:p,width:M,height:s},c[c.length-1]+=M+o}),d}_fitCols(t,e,i,s){let{ctx:r,maxHeight:a,options:{labels:{padding:o}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=a-t,d=o,p=0,m=0,b=0,S=0;return this.legendItems.forEach((M,E)=>{let L=i+e/2+r.measureText(M.text).width;E>0&&m+s+2*o>u&&(d+=p+o,c.push({width:p,height:m}),b+=p+o,S++,p=m=0),l[E]={left:b,top:m,col:S,width:L,height:s},p=Math.max(p,L),m+=s+o}),d+=p,c.push({width:p,height:m}),d}adjustHitBoxes(){if(!this.options.display)return;let t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:r}}=this,a=kn(r,this.left,this.width);if(this.isHorizontal()){let o=0,l=Jt(i,this.left+s,this.right-this.lineWidths[o]);for(let c of e)o!==c.row&&(o=c.row,l=Jt(i,this.left+s,this.right-this.lineWidths[o])),c.top+=this.top+t+s,c.left=a.leftForLtr(a.x(l),c.width),l+=c.width+s}else{let o=0,l=Jt(i,this.top+t+s,this.bottom-this.columnSizes[o].height);for(let c of e)c.col!==o&&(o=c.col,l=Jt(i,this.top+t+s,this.bottom-this.columnSizes[o].height)),c.top=l,c.left+=this.left+s,c.left=a.leftForLtr(a.x(c.left),c.width),l+=c.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){let t=this.ctx;yi(t,this),this._draw(),xi(t)}}_draw(){let{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:r,labels:a}=t,o=dt.color,l=kn(t.rtl,this.left,this.width),c=Ht(a.font),{color:u,padding:d}=a,p=c.size,m=p/2,b;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=c.string;let{boxWidth:S,boxHeight:M,itemHeight:E}=ih(a,p),L=function(H,G,Z){if(isNaN(S)||S<=0||isNaN(M)||M<0)return;s.save();let nt=at(Z.lineWidth,1);if(s.fillStyle=at(Z.fillStyle,o),s.lineCap=at(Z.lineCap,"butt"),s.lineDashOffset=at(Z.lineDashOffset,0),s.lineJoin=at(Z.lineJoin,"miter"),s.lineWidth=nt,s.strokeStyle=at(Z.strokeStyle,o),s.setLineDash(at(Z.lineDash,[])),a.usePointStyle){let ot={radius:S*Math.SQRT2/2,pointStyle:Z.pointStyle,rotation:Z.rotation,borderWidth:nt},rt=l.xPlus(H,S/2),wt=G+m;_i(s,ot,rt,wt)}else{let ot=G+Math.max((p-M)/2,0),rt=l.leftForLtr(H,S),wt=cn(Z.borderRadius);s.beginPath(),Object.values(wt).some(st=>st!==0)?Gn(s,{x:rt,y:ot,w:S,h:M,radius:wt}):s.rect(rt,ot,S,M),s.fill(),nt!==0&&s.stroke()}s.restore()},$=function(H,G,Z){ln(s,Z.text,H,G+E/2,c,{strikethrough:Z.hidden,textAlign:l.textAlign(Z.textAlign)})},R=this.isHorizontal(),F=this._computeTitleHeight();R?b={x:Jt(r,this.left+d,this.right-i[0]),y:this.top+d+F,line:0}:b={x:this.left+d,y:Jt(r,this.top+F+d,this.bottom-e[0].height),line:0},Qr(this.ctx,t.textDirection);let B=E+d;this.legendItems.forEach((H,G)=>{s.strokeStyle=H.fontColor||u,s.fillStyle=H.fontColor||u;let Z=s.measureText(H.text).width,nt=l.textAlign(H.textAlign||(H.textAlign=a.textAlign)),ot=S+m+Z,rt=b.x,wt=b.y;l.setWidth(this.width),R?G>0&&rt+ot+d>this.right&&(wt=b.y+=B,b.line++,rt=b.x=Jt(r,this.left+d,this.right-i[b.line])):G>0&&wt+B>this.bottom&&(rt=b.x=rt+e[b.line].width+d,b.line++,wt=b.y=Jt(r,this.top+F+d,this.bottom-e[b.line].height));let st=l.x(rt);L(st,wt,H),rt=ll(nt,rt+S+m,R?rt+ot:this.right,t.rtl),$(l.x(rt),wt,H),R?b.x+=ot+d:b.y+=B}),ta(this.ctx,t.textDirection)}drawTitle(){let t=this.options,e=t.title,i=Ht(e.font),s=Qt(e.padding);if(!e.display)return;let r=kn(t.rtl,this.left,this.width),a=this.ctx,o=e.position,l=i.size/2,c=s.top+l,u,d=this.left,p=this.width;if(this.isHorizontal())p=Math.max(...this.lineWidths),u=this.top+c,d=Jt(t.align,d,this.right-p);else{let b=this.columnSizes.reduce((S,M)=>Math.max(S,M.height),0);u=c+Jt(t.align,this.top,this.bottom-b-t.labels.padding-this._computeTitleHeight())}let m=Jt(o,d,d+p);a.textAlign=r.textAlign(is(o)),a.textBaseline="middle",a.strokeStyle=e.color,a.fillStyle=e.color,a.font=i.string,ln(a,e.text,m,u,i)}_computeTitleHeight(){let t=this.options.title,e=Ht(t.font),i=Qt(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,r;if(Re(t,this.left,this.right)&&Re(e,this.top,this.bottom)){for(r=this.legendHitBoxes,i=0;in.chart.options.color,boxWidth:40,padding:10,generateLabels(n){let t=n.data.datasets,{labels:{usePointStyle:e,pointStyle:i,textAlign:s,color:r}}=n.legend.options;return n._getSortedDatasetMetas().map(a=>{let o=a.controller.getStyle(e?0:void 0),l=Qt(o.borderWidth);return{text:t[a.index].label,fillStyle:o.backgroundColor,fontColor:r,hidden:!a.visible,lineCap:o.borderCapStyle,lineDash:o.borderDash,lineDashOffset:o.borderDashOffset,lineJoin:o.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:o.borderColor,pointStyle:i||o.pointStyle,rotation:o.rotation,textAlign:s||o.textAlign,borderRadius:0,datasetIndex:a.index}},this)}},title:{color:n=>n.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:n=>!n.startsWith("on"),labels:{_scriptable:n=>!["generateLabels","filter","sort"].includes(n)}}},Es=class extends xe{constructor(t){super();this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){let i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=e;let s=Ot(i.text)?i.text.length:1;this._padding=Qt(i.padding);let r=s*Ht(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=r:this.width=r}isHorizontal(){let t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){let{top:e,left:i,bottom:s,right:r,options:a}=this,o=a.align,l=0,c,u,d;return this.isHorizontal()?(u=Jt(o,i,r),d=e+t,c=r-i):(a.position==="left"?(u=i+t,d=Jt(o,s,e),l=At*-.5):(u=r-t,d=Jt(o,e,s),l=At*.5),c=s-e),{titleX:u,titleY:d,maxWidth:c,rotation:l}}draw(){let t=this.ctx,e=this.options;if(!e.display)return;let i=Ht(e.font),r=i.lineHeight/2+this._padding.top,{titleX:a,titleY:o,maxWidth:l,rotation:c}=this._drawArgs(r);ln(t,e.text,0,0,i,{color:e.color,maxWidth:l,rotation:c,textAlign:is(e.align),textBaseline:"middle",translation:[a,o]})}};function F0(n,t){let e=new Es({ctx:n.ctx,options:t,chart:n});ne.configure(n,e,t),ne.addBox(n,e),n.titleBlock=e}var I0={id:"title",_element:Es,start(n,t,e){F0(n,e)},stop(n){let t=n.titleBlock;ne.removeBox(n,t),delete n.titleBlock},beforeUpdate(n,t,e){let i=n.titleBlock;ne.configure(n,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Ds=new WeakMap,$0={id:"subtitle",start(n,t,e){let i=new Es({ctx:n.ctx,options:e,chart:n});ne.configure(n,i,e),ne.addBox(n,i),Ds.set(n,i)},stop(n){ne.removeBox(n,Ds.get(n)),Ds.delete(n)},beforeUpdate(n,t,e){let i=Ds.get(n);ne.configure(n,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Bi={average(n){if(!n.length)return!1;let t,e,i=0,s=0,r=0;for(t=0,e=n.length;tAn error occured:

"+this.options.escape(v.message+"",!0)+"
";throw v},w}();Nt.options=new c,Nt.simpleRenderers=[];var qt=function(){function w(v,y){this.staticThis=v,this.links={},this.tokens=[],this.options=y||Nt.options,this.setRules()}return w.lex=function(v,y,D,P){var O=new this(this,y);return O.getTokens(v,D,P)},w.getRulesBase=function(){if(this.rulesBase)return this.rulesBase;var v={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-]|\d+\.)/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};v.item=new t(v.item,"gm").setGroup(/bull/g,v.bullet).getRegexp(),v.list=new t(v.list).setGroup(/bull/g,v.bullet).setGroup("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))").setGroup("def","\\n+(?="+v.def.source+")").getRegexp();var y="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";return v.html=new t(v.html).setGroup("comment",//).setGroup("closed",/<(tag)[\s\S]+?<\/\1>/).setGroup("closing",/])*?>/).setGroup(/tag/g,y).getRegexp(),v.paragraph=new t(v.paragraph).setGroup("hr",v.hr).setGroup("heading",v.heading).setGroup("lheading",v.lheading).setGroup("blockquote",v.blockquote).setGroup("tag","<"+y).setGroup("def",v.def).getRegexp(),this.rulesBase=v},w.getRulesGfm=function(){if(this.rulesGfm)return this.rulesGfm;var v=this.getRulesBase(),y=Object.assign(Object.assign({},v),{fences:/^ *(`{3,}|~{3,})[ \.]*((\S+)? *[^\n]*)\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),D=y.fences.source.replace("\\1","\\2"),P=v.list.source.replace("\\1","\\3");return y.paragraph=new t(v.paragraph).setGroup("(?!","(?!"+D+"|"+P+"|").getRegexp(),this.rulesGfm=y},w.getRulesTable=function(){return this.rulesTables?this.rulesTables:this.rulesTables=Object.assign(Object.assign({},this.getRulesGfm()),{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/})},w.prototype.setRules=function(){this.options.gfm?this.options.tables?this.rules=this.staticThis.getRulesTable():this.rules=this.staticThis.getRulesGfm():this.rules=this.staticThis.getRulesBase(),this.hasRulesGfm=this.rules.fences!==void 0,this.hasRulesTables=this.rules.table!==void 0},w.prototype.getTokens=function(v,y,D){var P=v,O;t:for(;P;){if((O=this.rules.newline.exec(P))&&(P=P.substring(O[0].length),O[0].length>1&&this.tokens.push({type:n.TokenType.space})),O=this.rules.code.exec(P)){P=P.substring(O[0].length);var K=O[0].replace(/^ {4}/gm,"");this.tokens.push({type:n.TokenType.code,text:this.options.pedantic?K:K.replace(/\n+$/,"")});continue}if(this.hasRulesGfm&&(O=this.rules.fences.exec(P))){P=P.substring(O[0].length),this.tokens.push({type:n.TokenType.code,meta:O[2],lang:O[3],text:O[4]||""});continue}if(O=this.rules.heading.exec(P)){P=P.substring(O[0].length),this.tokens.push({type:n.TokenType.heading,depth:O[1].length,text:O[2]});continue}if(y&&this.hasRulesTables&&(O=this.rules.nptable.exec(P))){P=P.substring(O[0].length);for(var V={type:n.TokenType.table,header:O[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:O[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:[]},Z=0;Z ?/gm,"");this.getTokens(vt),this.tokens.push({type:n.TokenType.blockquoteEnd});continue}if(O=this.rules.list.exec(P)){P=P.substring(O[0].length);var Rt=O[2];this.tokens.push({type:n.TokenType.listStart,ordered:Rt.length>1});for(var vt=O[0].match(this.rules.item),Tt=vt.length,zt=!1,Bt=void 0,re=void 0,be=void 0,Z=0;Z1&&re.length>1)&&(P=vt.slice(Z+1).join(` +`)+P,Z=Tt-1)),be=zt||/\n\n(?!\s*$)/.test(V),Z!==Tt-1&&(zt=V.charAt(V.length-1)===` +`,be||(be=zt)),this.tokens.push({type:be?n.TokenType.looseItemStart:n.TokenType.listItemStart}),this.getTokens(V,!1,D),this.tokens.push({type:n.TokenType.listItemEnd})}this.tokens.push({type:n.TokenType.listEnd});continue}if(O=this.rules.html.exec(P)){P=P.substring(O[0].length);var fe=O[1],mn=fe==="pre"||fe==="script"||fe==="style";this.tokens.push({type:this.options.sanitize?n.TokenType.paragraph:n.TokenType.html,pre:!this.options.sanitizer&&mn,text:O[0]});continue}if(y&&(O=this.rules.def.exec(P))){P=P.substring(O[0].length),this.links[O[1].toLowerCase()]={href:O[2],title:O[3]};continue}if(y&&this.hasRulesTables&&(O=this.rules.table.exec(P))){P=P.substring(O[0].length);for(var V={type:n.TokenType.table,header:O[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:O[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:[]},Z=0;Z0?n.TokenType.paragraph:n.TokenType.text,text:O[1]});continue}if(O=this.rules.text.exec(P)){P=P.substring(O[0].length),this.tokens.push({type:n.TokenType.text,text:O[0]});continue}if(P)throw new Error("Infinite loop on byte: "+P.charCodeAt(0)+(", near text '"+P.slice(0,30)+"...'"))}return{tokens:this.tokens,links:this.links}},w}();qt.simpleRules=[],qt.rulesBase=null,qt.rulesGfm=null,qt.rulesTables=null,n.BlockLexer=qt,n.ExtendRegexp=t,n.InlineLexer=Wt,n.Marked=Nt,n.MarkedOptions=c,n.Parser=jt,n.Renderer=It,n.escape=o,n.unescape=l,Object.defineProperty(n,"__esModule",{value:!0})})});var Th=Sr(Qn=>{"use strict";var bv=Qn&&Qn.__extends||function(){var n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,s){i.__proto__=s}||function(i,s){for(var r in s)s.hasOwnProperty(r)&&(i[r]=s[r])},n(t,e)};return function(t,e){n(t,e);function i(){this.constructor=t}t.prototype=e===null?Object.create(e):(i.prototype=e.prototype,new i)}}();Object.defineProperty(Qn,"__esModule",{value:!0});Qn.Extractor=void 0;var Oa=Ch(),vv=function(n){bv(t,n);function t(e,i){var s=n.call(this)||this;return s.lowercaseKeys=i??!1,s.reset(e),s}return Object.defineProperty(t.prototype,"tables",{get:function(){return this.extractedTables},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"objects",{get:function(){var e=this;return this.extractedTables.map(function(i){return t.tableToObject(i,e.lowercaseKeys)})},enumerable:!1,configurable:!0}),t.prototype.reset=function(e){e===void 0&&(e="rows"),this.mode=e,this.currentRow=[],this.currentTable=[],this.extractedTables=[]},t.prototype.table=function(e,i){return this.extractedTables.push(this.mode==="rows"?this.currentTable:t.transposeTable(this.currentTable)),this.currentTable=[],n.prototype.table.call(this,e,i)},t.prototype.tablerow=function(e){return this.currentTable.push(this.currentRow),this.currentRow=[],n.prototype.tablerow.call(this,e)},t.prototype.tablecell=function(e,i){return this.currentRow.push(e),n.prototype.tablecell.call(this,e,i)},t.transposeTable=function(e){for(var i=[],s=e.length,r=e[0].length,a=0;a0?r[0]:null},t.extractAllObjects=function(e,i,s){var r=t.createExtractor(e,i,s);return r.objects},t.extractTable=function(e,i,s){var r=t.extractAllTables(e,i,s);return r.length>0?r[0]:null},t.extractAllTables=function(e,i,s){var r=t.createExtractor(e,i,s);return r.tables},t.extract=function(e,i,s){var r=t.createExtractor(e,i,s);return r.objects.length>0?JSON.stringify(r.objects[0]):null},t.extractAll=function(e,i,s){var r=t.createExtractor(e,i,s);return r.objects.map(function(a){return JSON.stringify(a)})},t}(Oa.Renderer);Qn.Extractor=vv});ng(exports,{default:()=>Ga});var Oe=De(require("obsidian"));function Ae(){}var hl=function(){let n=0;return function(){return n++}}();function bt(n){return n===null||typeof n=="undefined"}function Et(n){if(Array.isArray&&Array.isArray(n))return!0;let t=Object.prototype.toString.call(n);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function ft(n){return n!==null&&Object.prototype.toString.call(n)==="[object Object]"}var $t=n=>(typeof n=="number"||n instanceof Number)&&isFinite(+n);function pe(n,t){return $t(n)?n:t}function at(n,t){return typeof n=="undefined"?t:n}var ul=(n,t)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100:n/t,Mr=(n,t)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100*t:+n;function Dt(n,t,e){if(n&&typeof n.call=="function")return n.apply(e,t)}function Mt(n,t,e,i){let s,r,a;if(Et(n))if(r=n.length,i)for(s=r-1;s>=0;s--)t.call(e,n[s],s);else for(s=0;sn,x:n=>n.x,y:n=>n.y};function Ve(n,t){return(dl[t]||(dl[t]=ag(t)))(n)}function ag(n){let t=og(n);return e=>{for(let i of t){if(i==="")break;e=e&&e[i]}return e}}function og(n){let t=n.split("."),e=[],i="";for(let s of t)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}function is(n){return n.charAt(0).toUpperCase()+n.slice(1)}var ge=n=>typeof n!="undefined",We=n=>typeof n=="function",Cr=(n,t)=>{if(n.size!==t.size)return!1;for(let e of n)if(!t.has(e))return!1;return!0};function pl(n){return n.type==="mouseup"||n.type==="click"||n.type==="contextmenu"}var Lt=Math.PI,Ot=2*Lt,lg=Ot+Lt,ss=Number.POSITIVE_INFINITY,cg=Lt/180,Ft=Lt/2,fi=Lt/4,gl=Lt*2/3,me=Math.log10,Ce=Math.sign;function Tr(n){let t=Math.round(n);n=Nn(n,t,n/1e3)?t:n;let e=Math.pow(10,Math.floor(me(n))),i=n/e;return(i<=1?1:i<=2?2:i<=5?5:10)*e}function ml(n){let t=[],e=Math.sqrt(n),i;for(i=1;is-r).pop(),t}function xn(n){return!isNaN(parseFloat(n))&&isFinite(n)}function Nn(n,t,e){return Math.abs(n-t)=n}function Pr(n,t,e){let i,s,r;for(i=0,s=n.length;il&&c=Math.min(t,e)-i&&n<=Math.max(t,e)+i}function os(n,t,e){e=e||(a=>n[a]1;)r=s+i>>1,e(r)?s=r:i=r;return{lo:s,hi:i}}var Re=(n,t,e,i)=>os(n,e,i?s=>n[s][t]<=e:s=>n[s][t]os(n,e,i=>n[i][t]>=e);function yl(n,t,e){let i=0,s=n.length;for(;ii&&n[s-1]>e;)s--;return i>0||s{let i="_onData"+is(e),s=n[e];Object.defineProperty(n,e,{configurable:!0,enumerable:!1,value(...r){let a=s.apply(this,r);return n._chartjs.listeners.forEach(o=>{typeof o[i]=="function"&&o[i](...r)}),a}})})}function Dr(n,t){let e=n._chartjs;if(!e)return;let i=e.listeners,s=i.indexOf(t);s!==-1&&i.splice(s,1),!(i.length>0)&&(xl.forEach(r=>{delete n[r]}),delete n._chartjs)}function Ar(n){let t=new Set,e,i;for(e=0,i=n.length;eArray.prototype.slice.call(a)),s=!1,r=[];return function(...a){r=i(a),s||(s=!0,Lr.call(window,()=>{s=!1,n.apply(t,r)}))}}function kl(n,t){let e;return function(...i){return t?(clearTimeout(e),e=setTimeout(n,t,i)):n.apply(this,i),t}}var ls=n=>n==="start"?"left":n==="end"?"right":"center",Qt=(n,t,e)=>n==="start"?t:n==="end"?e:(t+e)/2,Sl=(n,t,e,i)=>n===(i?"left":"right")?e:n==="center"?(t+e)/2:t;function Fr(n,t,e){let i=t.length,s=0,r=i;if(n._sorted){let{iScale:a,_parsed:o}=n,l=a.axis,{min:c,max:u,minDefined:d,maxDefined:m}=a.getUserBounds();d&&(s=Yt(Math.min(Re(o,a.axis,c).lo,e?i:Re(t,l,a.getPixelForValue(c)).lo),0,i-1)),m?r=Yt(Math.max(Re(o,a.axis,u,!0).hi+1,e?0:Re(t,l,a.getPixelForValue(u),!0).hi+1),s,i)-s:r=i-s}return{start:s,count:r}}function Ir(n){let{xScale:t,yScale:e,_scaleRanges:i}=n,s={xmin:t.min,xmax:t.max,ymin:e.min,ymax:e.max};if(!i)return n._scaleRanges=s,!0;let r=i.xmin!==t.min||i.xmax!==t.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,s),r}var cs=n=>n===0||n===1,Ml=(n,t,e)=>-(Math.pow(2,10*(n-=1))*Math.sin((n-t)*Ot/e)),Cl=(n,t,e)=>Math.pow(2,-10*n)*Math.sin((n-t)*Ot/e)+1,Vn={linear:n=>n,easeInQuad:n=>n*n,easeOutQuad:n=>-n*(n-2),easeInOutQuad:n=>(n/=.5)<1?.5*n*n:-.5*(--n*(n-2)-1),easeInCubic:n=>n*n*n,easeOutCubic:n=>(n-=1)*n*n+1,easeInOutCubic:n=>(n/=.5)<1?.5*n*n*n:.5*((n-=2)*n*n+2),easeInQuart:n=>n*n*n*n,easeOutQuart:n=>-((n-=1)*n*n*n-1),easeInOutQuart:n=>(n/=.5)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2),easeInQuint:n=>n*n*n*n*n,easeOutQuint:n=>(n-=1)*n*n*n*n+1,easeInOutQuint:n=>(n/=.5)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2),easeInSine:n=>-Math.cos(n*Ft)+1,easeOutSine:n=>Math.sin(n*Ft),easeInOutSine:n=>-.5*(Math.cos(Lt*n)-1),easeInExpo:n=>n===0?0:Math.pow(2,10*(n-1)),easeOutExpo:n=>n===1?1:-Math.pow(2,-10*n)+1,easeInOutExpo:n=>cs(n)?n:n<.5?.5*Math.pow(2,10*(n*2-1)):.5*(-Math.pow(2,-10*(n*2-1))+2),easeInCirc:n=>n>=1?n:-(Math.sqrt(1-n*n)-1),easeOutCirc:n=>Math.sqrt(1-(n-=1)*n),easeInOutCirc:n=>(n/=.5)<1?-.5*(Math.sqrt(1-n*n)-1):.5*(Math.sqrt(1-(n-=2)*n)+1),easeInElastic:n=>cs(n)?n:Ml(n,.075,.3),easeOutElastic:n=>cs(n)?n:Cl(n,.075,.3),easeInOutElastic(n){let t=.1125,e=.45;return cs(n)?n:n<.5?.5*Ml(n*2,t,e):.5+.5*Cl(n*2-1,t,e)},easeInBack(n){let t=1.70158;return n*n*((t+1)*n-t)},easeOutBack(n){let t=1.70158;return(n-=1)*n*((t+1)*n+t)+1},easeInOutBack(n){let t=1.70158;return(n/=.5)<1?.5*(n*n*(((t*=1.525)+1)*n-t)):.5*((n-=2)*n*(((t*=1.525)+1)*n+t)+2)},easeInBounce:n=>1-Vn.easeOutBounce(1-n),easeOutBounce(n){let t=7.5625,e=2.75;return n<1/e?t*n*n:n<2/e?t*(n-=1.5/e)*n+.75:n<2.5/e?t*(n-=2.25/e)*n+.9375:t*(n-=2.625/e)*n+.984375},easeInOutBounce:n=>n<.5?Vn.easeInBounce(n*2)*.5:Vn.easeOutBounce(n*2-1)*.5+.5};function di(n){return n+.5|0}var sn=(n,t,e)=>Math.max(Math.min(n,e),t);function pi(n){return sn(di(n*2.55),0,255)}function rn(n){return sn(di(n*255),0,255)}function Ye(n){return sn(di(n/2.55)/100,0,1)}function Tl(n){return sn(di(n*100),0,100)}var _e={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},$r=[..."0123456789ABCDEF"],ug=n=>$r[n&15],fg=n=>$r[(n&240)>>4]+$r[n&15],hs=n=>(n&240)>>4==(n&15),dg=n=>hs(n.r)&&hs(n.g)&&hs(n.b)&&hs(n.a);function pg(n){var t=n.length,e;return n[0]==="#"&&(t===4||t===5?e={r:255&_e[n[1]]*17,g:255&_e[n[2]]*17,b:255&_e[n[3]]*17,a:t===5?_e[n[4]]*17:255}:(t===7||t===9)&&(e={r:_e[n[1]]<<4|_e[n[2]],g:_e[n[3]]<<4|_e[n[4]],b:_e[n[5]]<<4|_e[n[6]],a:t===9?_e[n[7]]<<4|_e[n[8]]:255})),e}var gg=(n,t)=>n<255?t(n):"";function mg(n){var t=dg(n)?ug:fg;return n?"#"+t(n.r)+t(n.g)+t(n.b)+gg(n.a,t):void 0}var bg=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Pl(n,t,e){let i=t*Math.min(e,1-e),s=(r,a=(r+n/30)%12)=>e-i*Math.max(Math.min(a-3,9-a,1),-1);return[s(0),s(8),s(4)]}function vg(n,t,e){let i=(s,r=(s+n/60)%6)=>e-e*t*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function _g(n,t,e){let i=Pl(n,1,.5),s;for(t+e>1&&(s=1/(t+e),t*=s,e*=s),s=0;s<3;s++)i[s]*=1-t-e,i[s]+=t;return i}function yg(n,t,e,i,s){return n===s?(t-e)/i+(t.5?u/(2-r-a):u/(r+a),l=yg(e,i,s,u,r),l=l*60+.5),[l|0,c||0,o]}function Br(n,t,e,i){return(Array.isArray(t)?n(t[0],t[1],t[2]):n(t,e,i)).map(rn)}function jr(n,t,e){return Br(Pl,n,t,e)}function xg(n,t,e){return Br(_g,n,t,e)}function wg(n,t,e){return Br(vg,n,t,e)}function Ol(n){return(n%360+360)%360}function kg(n){let t=bg.exec(n),e=255,i;if(!t)return;t[5]!==i&&(e=t[6]?pi(+t[5]):rn(+t[5]));let s=Ol(+t[2]),r=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?i=xg(s,r,a):t[1]==="hsv"?i=wg(s,r,a):i=jr(s,r,a),{r:i[0],g:i[1],b:i[2],a:e}}function Sg(n,t){var e=zr(n);e[0]=Ol(e[0]+t),e=jr(e),n.r=e[0],n.g=e[1],n.b=e[2]}function Mg(n){if(!n)return;let t=zr(n),e=t[0],i=Tl(t[1]),s=Tl(t[2]);return n.a<255?`hsla(${e}, ${i}%, ${s}%, ${Ye(n.a)})`:`hsl(${e}, ${i}%, ${s}%)`}var El={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Dl={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Cg(){let n={},t=Object.keys(Dl),e=Object.keys(El),i,s,r,a,o;for(i=0;i>16&255,r>>8&255,r&255]}return n}var us;function Tg(n){us||(us=Cg(),us.transparent=[0,0,0,0]);let t=us[n.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var Pg=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Og(n){let t=Pg.exec(n),e=255,i,s,r;if(!!t){if(t[7]!==i){let a=+t[7];e=t[8]?pi(a):sn(a*255,0,255)}return i=+t[1],s=+t[3],r=+t[5],i=255&(t[2]?pi(i):sn(i,0,255)),s=255&(t[4]?pi(s):sn(s,0,255)),r=255&(t[6]?pi(r):sn(r,0,255)),{r:i,g:s,b:r,a:e}}}function Eg(n){return n&&(n.a<255?`rgba(${n.r}, ${n.g}, ${n.b}, ${Ye(n.a)})`:`rgb(${n.r}, ${n.g}, ${n.b})`)}var Nr=n=>n<=.0031308?n*12.92:Math.pow(n,1/2.4)*1.055-.055,Wn=n=>n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4);function Dg(n,t,e){let i=Wn(Ye(n.r)),s=Wn(Ye(n.g)),r=Wn(Ye(n.b));return{r:rn(Nr(i+e*(Wn(Ye(t.r))-i))),g:rn(Nr(s+e*(Wn(Ye(t.g))-s))),b:rn(Nr(r+e*(Wn(Ye(t.b))-r))),a:n.a+e*(t.a-n.a)}}function fs(n,t,e){if(n){let i=zr(n);i[t]=Math.max(0,Math.min(i[t]+i[t]*e,t===0?360:1)),i=jr(i),n.r=i[0],n.g=i[1],n.b=i[2]}}function Al(n,t){return n&&Object.assign(t||{},n)}function Ll(n){var t={r:0,g:0,b:0,a:255};return Array.isArray(n)?n.length>=3&&(t={r:n[0],g:n[1],b:n[2],a:255},n.length>3&&(t.a=rn(n[3]))):(t=Al(n,{r:0,g:0,b:0,a:1}),t.a=rn(t.a)),t}function Ag(n){return n.charAt(0)==="r"?Og(n):kg(n)}var gi=class{constructor(t){if(t instanceof gi)return t;let e=typeof t,i;e==="object"?i=Ll(t):e==="string"&&(i=pg(t)||Tg(t)||Ag(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=Al(this._rgb);return t&&(t.a=Ye(t.a)),t}set rgb(t){this._rgb=Ll(t)}rgbString(){return this._valid?Eg(this._rgb):void 0}hexString(){return this._valid?mg(this._rgb):void 0}hslString(){return this._valid?Mg(this._rgb):void 0}mix(t,e){if(t){let i=this.rgb,s=t.rgb,r,a=e===r?.5:e,o=2*a-1,l=i.a-s.a,c=((o*l==-1?o:(o+l)/(1+o*l))+1)/2;r=1-c,i.r=255&c*i.r+r*s.r+.5,i.g=255&c*i.g+r*s.g+.5,i.b=255&c*i.b+r*s.b+.5,i.a=a*i.a+(1-a)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=Dg(this._rgb,t._rgb,e)),this}clone(){return new gi(this.rgb)}alpha(t){return this._rgb.a=rn(t),this}clearer(t){let e=this._rgb;return e.a*=1-t,this}greyscale(){let t=this._rgb,e=di(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=e,this}opaquer(t){let e=this._rgb;return e.a*=1+t,this}negate(){let t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return fs(this._rgb,2,t),this}darken(t){return fs(this._rgb,2,-t),this}saturate(t){return fs(this._rgb,1,t),this}desaturate(t){return fs(this._rgb,1,-t),this}rotate(t){return Sg(this._rgb,t),this}};function Rl(n){return new gi(n)}function Fl(n){if(n&&typeof n=="object"){let t=n.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function Hr(n){return Fl(n)?n:Rl(n)}function Vr(n){return Fl(n)?n:Rl(n).saturate(.5).darken(.1).hexString()}var an=Object.create(null),ds=Object.create(null);function mi(n,t){if(!t)return n;let e=t.split(".");for(let i=0,s=e.length;ie.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,i)=>Vr(i.backgroundColor),this.hoverBorderColor=(e,i)=>Vr(i.borderColor),this.hoverColor=(e,i)=>Vr(i.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return Wr(this,t,e)}get(t){return mi(this,t)}describe(t,e){return Wr(ds,t,e)}override(t,e){return Wr(an,t,e)}route(t,e,i,s){let r=mi(this,t),a=mi(this,i),o="_"+e;Object.defineProperties(r,{[o]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){let l=this[o],c=a[s];return ft(l)?Object.assign({},c,l):at(l,c)},set(l){this[o]=l}}})}},dt=new Il({_scriptable:n=>!n.startsWith("on"),_indexable:n=>n!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function Lg(n){return!n||bt(n.size)||bt(n.family)?null:(n.style?n.style+" ":"")+(n.weight?n.weight+" ":"")+n.size+"px "+n.family}function bi(n,t,e,i,s){let r=t[s];return r||(r=t[s]=n.measureText(s).width,e.push(s)),r>i&&(i=r),i}function $l(n,t,e,i){i=i||{};let s=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(s=i.data={},r=i.garbageCollect=[],i.font=t),n.save(),n.font=t;let a=0,o=e.length,l,c,u,d,m;for(l=0;le.length){for(l=0;l0&&n.stroke()}}function Yn(n,t,e){return e=e||.5,!t||n&&n.x>t.left-e&&n.xt.top-e&&n.y0&&r.strokeColor!=="",l,c;for(n.save(),n.font=s.string,Rg(n,r),l=0;l+n||0;function gs(n,t){let e={},i=ft(t),s=i?Object.keys(t):t,r=ft(n)?i?a=>at(n[a],n[t[a]]):a=>n[a]:()=>n;for(let a of s)e[a]=Bg(r(a));return e}function qr(n){return gs(n,{top:"y",right:"x",bottom:"y",left:"x"})}function cn(n){return gs(n,["topLeft","topRight","bottomLeft","bottomRight"])}function te(n){let t=qr(n);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function Vt(n,t){n=n||{},t=t||dt.font;let e=at(n.size,t.size);typeof e=="string"&&(e=parseInt(e,10));let i=at(n.style,t.style);i&&!(""+i).match($g)&&(console.warn('Invalid font style specified: "'+i+'"'),i="");let s={family:at(n.family,t.family),lineHeight:zg(at(n.lineHeight,t.lineHeight),e),size:e,style:i,weight:at(n.weight,t.weight),string:""};return s.string=Lg(s),s}function qn(n,t,e,i){let s=!0,r,a,o;for(r=0,a=n.length;re&&o===0?0:o+l;return{min:a(i,-Math.abs(r)),max:a(s,r)}}function Ge(n,t){return Object.assign(Object.create(n),t)}function ms(n,t=[""],e=n,i,s=()=>n[0]){ge(i)||(i=Wl("_fallback",n));let r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:n,_rootScopes:e,_fallback:i,_getTarget:s,override:a=>ms([a,...n],t,e,i)};return new Proxy(r,{deleteProperty(a,o){return delete a[o],delete a._keys,delete n[0][o],!0},get(a,o){return Nl(a,o,()=>qg(o,t,n,a))},getOwnPropertyDescriptor(a,o){return Reflect.getOwnPropertyDescriptor(a._scopes[0],o)},getPrototypeOf(){return Reflect.getPrototypeOf(n[0])},has(a,o){return Yl(a).includes(o)},ownKeys(a){return Yl(a)},set(a,o,l){let c=a._storage||(a._storage=s());return a[o]=c[o]=l,delete a._keys,!0}})}function wn(n,t,e,i){let s={_cacheable:!1,_proxy:n,_context:t,_subProxy:e,_stack:new Set,_descriptors:Ur(n,i),setContext:r=>wn(n,r,e,i),override:r=>wn(n.override(r),t,e,i)};return new Proxy(s,{deleteProperty(r,a){return delete r[a],delete n[a],!0},get(r,a,o){return Nl(r,a,()=>Ng(r,a,o))},getOwnPropertyDescriptor(r,a){return r._descriptors.allKeys?Reflect.has(n,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(n,a)},getPrototypeOf(){return Reflect.getPrototypeOf(n)},has(r,a){return Reflect.has(n,a)},ownKeys(){return Reflect.ownKeys(n)},set(r,a,o){return n[a]=o,delete r[a],!0}})}function Ur(n,t={scriptable:!0,indexable:!0}){let{_scriptable:e=t.scriptable,_indexable:i=t.indexable,_allKeys:s=t.allKeys}=n;return{allKeys:s,scriptable:e,indexable:i,isScriptable:We(e)?e:()=>e,isIndexable:We(i)?i:()=>i}}var jg=(n,t)=>n?n+is(t):t,Xr=(n,t)=>ft(t)&&n!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Nl(n,t,e){if(Object.prototype.hasOwnProperty.call(n,t))return n[t];let i=e();return n[t]=i,i}function Ng(n,t,e){let{_proxy:i,_context:s,_subProxy:r,_descriptors:a}=n,o=i[t];return We(o)&&a.isScriptable(t)&&(o=Hg(t,o,n,e)),Et(o)&&o.length&&(o=Vg(t,o,n,a.isIndexable)),Xr(t,o)&&(o=wn(o,s,r&&r[t],a)),o}function Hg(n,t,e,i){let{_proxy:s,_context:r,_subProxy:a,_stack:o}=e;if(o.has(n))throw new Error("Recursion detected: "+Array.from(o).join("->")+"->"+n);return o.add(n),t=t(r,a||i),o.delete(n),Xr(n,t)&&(t=Kr(s._scopes,s,n,t)),t}function Vg(n,t,e,i){let{_proxy:s,_context:r,_subProxy:a,_descriptors:o}=e;if(ge(r.index)&&i(n))t=t[r.index%t.length];else if(ft(t[0])){let l=t,c=s._scopes.filter(u=>u!==l);t=[];for(let u of l){let d=Kr(c,s,n,u);t.push(wn(d,r,a&&a[n],o))}}return t}function Hl(n,t,e){return We(n)?n(t,e):n}var Wg=(n,t)=>n===!0?t:typeof n=="string"?Ve(t,n):void 0;function Yg(n,t,e,i,s){for(let r of t){let a=Wg(e,r);if(a){n.add(a);let o=Hl(a._fallback,e,s);if(ge(o)&&o!==e&&o!==i)return o}else if(a===!1&&ge(i)&&e!==i)return null}return!1}function Kr(n,t,e,i){let s=t._rootScopes,r=Hl(t._fallback,e,i),a=[...n,...s],o=new Set;o.add(i);let l=Vl(o,a,e,r||e,i);return l===null||ge(r)&&r!==e&&(l=Vl(o,a,r,l,i),l===null)?!1:ms(Array.from(o),[""],s,r,()=>Gg(t,e,i))}function Vl(n,t,e,i,s){for(;e;)e=Yg(n,t,e,i,s);return e}function Gg(n,t,e){let i=n._getTarget();t in i||(i[t]={});let s=i[t];return Et(s)&&ft(e)?e:s}function qg(n,t,e,i){let s;for(let r of t)if(s=Wl(jg(r,n),e),ge(s))return Xr(n,s)?Kr(e,i,n,s):s}function Wl(n,t){for(let e of t){if(!e)continue;let i=e[n];if(ge(i))return i}}function Yl(n){let t=n._keys;return t||(t=n._keys=Ug(n._scopes)),t}function Ug(n){let t=new Set;for(let e of n)for(let i of Object.keys(e).filter(s=>!s.startsWith("_")))t.add(i);return Array.from(t)}function Zr(n,t,e,i){let{iScale:s}=n,{key:r="r"}=this._parsing,a=new Array(i),o,l,c,u;for(o=0,l=i;otn==="x"?"y":"x";function Kg(n,t,e,i){let s=n.skip?t:n,r=t,a=e.skip?t:e,o=as(r,s),l=as(a,r),c=o/(o+l),u=l/(o+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;let d=i*c,m=i*u;return{previous:{x:r.x-d*(a.x-s.x),y:r.y-d*(a.y-s.y)},next:{x:r.x+m*(a.x-s.x),y:r.y+m*(a.y-s.y)}}}function Zg(n,t,e){let i=n.length,s,r,a,o,l,c=Un(n,0);for(let u=0;u!c.skip)),t.cubicInterpolationMode==="monotone")Qg(n,s);else{let c=i?n[n.length-1]:n[0];for(r=0,a=n.length;rwindow.getComputedStyle(n,null);function em(n,t){return ys(n).getPropertyValue(t)}var nm=["top","right","bottom","left"];function kn(n,t,e){let i={};e=e?"-"+e:"";for(let s=0;s<4;s++){let r=nm[s];i[r]=parseFloat(n[t+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}var im=(n,t,e)=>(n>0||t>0)&&(!e||!e.shadowRoot);function sm(n,t){let e=n.touches,i=e&&e.length?e[0]:n,{offsetX:s,offsetY:r}=i,a=!1,o,l;if(im(s,r,n.target))o=s,l=r;else{let c=t.getBoundingClientRect();o=i.clientX-c.left,l=i.clientY-c.top,a=!0}return{x:o,y:l,box:a}}function hn(n,t){if("native"in n)return n;let{canvas:e,currentDevicePixelRatio:i}=t,s=ys(e),r=s.boxSizing==="border-box",a=kn(s,"padding"),o=kn(s,"border","width"),{x:l,y:c,box:u}=sm(n,e),d=a.left+(u&&o.left),m=a.top+(u&&o.top),{width:p,height:b}=t;return r&&(p-=a.width+o.width,b-=a.height+o.height),{x:Math.round((l-d)/p*e.width/i),y:Math.round((c-m)/b*e.height/i)}}function rm(n,t,e){let i,s;if(t===void 0||e===void 0){let r=vs(n);if(!r)t=n.clientWidth,e=n.clientHeight;else{let a=r.getBoundingClientRect(),o=ys(r),l=kn(o,"border","width"),c=kn(o,"padding");t=a.width-c.width-l.width,e=a.height-c.height-l.height,i=_s(o.maxWidth,r,"clientWidth"),s=_s(o.maxHeight,r,"clientHeight")}}return{width:t,height:e,maxWidth:i||ss,maxHeight:s||ss}}var Qr=n=>Math.round(n*10)/10;function Ul(n,t,e,i){let s=ys(n),r=kn(s,"margin"),a=_s(s.maxWidth,n,"clientWidth")||ss,o=_s(s.maxHeight,n,"clientHeight")||ss,l=rm(n,t,e),{width:c,height:u}=l;if(s.boxSizing==="content-box"){let d=kn(s,"border","width"),m=kn(s,"padding");c-=m.width+d.width,u-=m.height+d.height}return c=Math.max(0,c-r.width),u=Math.max(0,i?Math.floor(c/i):u-r.height),c=Qr(Math.min(c,a,l.maxWidth)),u=Qr(Math.min(u,o,l.maxHeight)),c&&!u&&(u=Qr(c/2)),{width:c,height:u}}function ta(n,t,e){let i=t||1,s=Math.floor(n.height*i),r=Math.floor(n.width*i);n.height=s/i,n.width=r/i;let a=n.canvas;return a.style&&(e||!a.style.height&&!a.style.width)&&(a.style.height=`${n.height}px`,a.style.width=`${n.width}px`),n.currentDevicePixelRatio!==i||a.height!==s||a.width!==r?(n.currentDevicePixelRatio=i,a.height=s,a.width=r,n.ctx.setTransform(i,0,0,i,0,0),!0):!1}var Xl=function(){let n=!1;try{let t={get passive(){return n=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){}return n}();function ea(n,t){let e=em(n,t),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function un(n,t,e,i){return{x:n.x+e*(t.x-n.x),y:n.y+e*(t.y-n.y)}}function Kl(n,t,e,i){return{x:n.x+e*(t.x-n.x),y:i==="middle"?e<.5?n.y:t.y:i==="after"?e<1?n.y:t.y:e>0?t.y:n.y}}function Zl(n,t,e,i){let s={x:n.cp2x,y:n.cp2y},r={x:t.cp1x,y:t.cp1y},a=un(n,s,e),o=un(s,r,e),l=un(r,t,e),c=un(a,o,e),u=un(o,l,e);return un(c,u,e)}var Jl=new Map;function am(n,t){t=t||{};let e=n+JSON.stringify(t),i=Jl.get(e);return i||(i=new Intl.NumberFormat(n,t),Jl.set(e,i)),i}function Xn(n,t,e){return am(t,e).format(n)}var om=function(n,t){return{x(e){return n+n+t-e},setWidth(e){t=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,i){return e-i},leftForLtr(e,i){return e-i}}},lm=function(){return{x(n){return n},setWidth(n){},textAlign(n){return n},xPlus(n,t){return n+t},leftForLtr(n,t){return n}}};function Sn(n,t,e){return n?om(t,e):lm()}function na(n,t){let e,i;(t==="ltr"||t==="rtl")&&(e=n.canvas.style,i=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",t,"important"),n.prevTextDirection=i)}function ia(n,t){t!==void 0&&(delete n.prevTextDirection,n.canvas.style.setProperty("direction",t[0],t[1]))}function Ql(n){return n==="angle"?{between:Hn,compare:hg,normalize:oe}:{between:Le,compare:(t,e)=>t-e,normalize:t=>t}}function tc({start:n,end:t,count:e,loop:i,style:s}){return{start:n%e,end:t%e,loop:i&&(t-n+1)%e==0,style:s}}function cm(n,t,e){let{property:i,start:s,end:r}=e,{between:a,normalize:o}=Ql(i),l=t.length,{start:c,end:u,loop:d}=n,m,p;if(d){for(c+=l,u+=l,m=0,p=l;ml(s,$,T)&&o(s,$)!==0,F=()=>o(r,T)===0||l(r,$,T),z=()=>k||L(),H=()=>!k||F();for(let G=u,q=u;G<=d;++G)R=t[G%a],!R.skip&&(T=c(R[i]),T!==$&&(k=l(T,s,r),M===null&&z()&&(M=o(T,s)===0?G:q),M!==null&&H()&&(b.push(tc({start:M,end:G,loop:m,count:a,style:p})),M=null),q=G,$=T));return M!==null&&b.push(tc({start:M,end:d,loop:m,count:a,style:p})),b}function ra(n,t){let e=[],i=n.segments;for(let s=0;ss&&n[r%t].skip;)r--;return r%=t,{start:s,end:r}}function um(n,t,e,i){let s=n.length,r=[],a=t,o=n[t],l;for(l=t+1;l<=e;++l){let c=n[l%s];c.skip||c.stop?o.skip||(i=!1,r.push({start:t%s,end:(l-1)%s,loop:i}),t=a=c.stop?l:null):(a=l,o.skip&&(t=l)),o=c}return a!==null&&r.push({start:t%s,end:a%s,loop:i}),r}function ec(n,t){let e=n.points,i=n.options.spanGaps,s=e.length;if(!s)return[];let r=!!n._loop,{start:a,end:o}=hm(e,s,r,i);if(i===!0)return nc(n,[{start:a,end:o,loop:r}],e,t);let l=oo({chart:t,initial:e.initial,numSteps:a,currentStep:Math.min(i-e.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=Lr.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;let r=i.items,a=r.length-1,o=!1,l;for(;a>=0;--a)l=r[a],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(t),o=!0):(r[a]=r[r.length-1],r.pop());o&&(s.draw(),this._notify(s,i,t,"progress")),r.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=r.length}),this._lastDate=t,e===0&&(this._running=!1)}_getAnims(t){let e=this._charts,i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){!e||!e.length||this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){let e=this._charts.get(t);!e||(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;let e=this._charts.get(t);return!(!e||!e.running||!e.items.length)}stop(t){let e=this._charts.get(t);if(!e||!e.items.length)return;let i=e.items,s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}},qe=new sc,rc="transparent",pm={boolean(n,t,e){return e>.5?t:n},color(n,t,e){let i=Hr(n||rc),s=i.valid&&Hr(t||rc);return s&&s.valid?s.mix(i,e).hexString():t},number(n,t,e){return n+(t-n)*e}},ac=class{constructor(t,e,i,s){let r=e[i];s=qn([t.to,s,r,t.from]);let a=qn([t.from,r,s]);this._active=!0,this._fn=t.fn||pm[t.type||typeof a],this._easing=Vn[t.easing]||Vn.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=a,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);let s=this._target[this._prop],r=i-this._start,a=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=r,this._loop=!!t.loop,this._to=qn([t.to,e,s,t.from]),this._from=qn([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){let e=t-this._start,i=this._duration,s=this._prop,r=this._from,a=this._loop,o=this._to,l;if(this._active=r!==o&&(a||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(r,o,l)}wait(){let t=this._promises||(this._promises=[]);return new Promise((e,i)=>{t.push({res:e,rej:i})})}_notify(t){let e=t?"res":"rej",i=this._promises||[];for(let s=0;sn!=="onProgress"&&n!=="onComplete"&&n!=="fn"});dt.set("animations",{colors:{type:"color",properties:mm},numbers:{type:"number",properties:gm}});dt.describe("animations",{_fallback:"animation"});dt.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>n|0}}}});var aa=class{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!ft(t))return;let e=this._properties;Object.getOwnPropertyNames(t).forEach(i=>{let s=t[i];if(!ft(s))return;let r={};for(let a of bm)r[a]=s[a];(Et(s.properties)&&s.properties||[i]).forEach(a=>{(a===i||!e.has(a))&&e.set(a,r)})})}_animateOptions(t,e){let i=e.options,s=_m(t,i);if(!s)return[];let r=this._createAnimations(s,i);return i.$shared&&vm(t.options.$animations,i).then(()=>{t.options=i},()=>{}),r}_createAnimations(t,e){let i=this._properties,s=[],r=t.$animations||(t.$animations={}),a=Object.keys(e),o=Date.now(),l;for(l=a.length-1;l>=0;--l){let c=a[l];if(c.charAt(0)==="$")continue;if(c==="options"){s.push(...this._animateOptions(t,e));continue}let u=e[c],d=r[c],m=i.get(c);if(d)if(m&&d.active()){d.update(m,u,o);continue}else d.cancel();if(!m||!m.duration){t[c]=u;continue}r[c]=d=new ac(m,t,c,u),s.push(d)}return s}update(t,e){if(this._properties.size===0){Object.assign(t,e);return}let i=this._createAnimations(t,e);if(i.length)return qe.add(this._chart,i),!0}};function vm(n,t){let e=[],i=Object.keys(t);for(let s=0;s0||!e&&r<0)return s.index}return null}function fc(n,t){let{chart:e,_cachedMeta:i}=n,s=e._stacks||(e._stacks={}),{iScale:r,vScale:a,index:o}=i,l=r.axis,c=a.axis,u=km(r,a,i),d=t.length,m;for(let p=0;pe[i].axis===t).shift()}function Cm(n,t){return Ge(n,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function Tm(n,t,e){return Ge(n,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:e,index:t,mode:"default",type:"data"})}function yi(n,t){let e=n.controller.index,i=n.vScale&&n.vScale.axis;if(!!i){t=t||n._parsed;for(let s of t){let r=s._stacks;if(!r||r[i]===void 0||r[i][e]===void 0)return;delete r[i][e]}}}var la=n=>n==="reset"||n==="none",dc=(n,t)=>t?n:Object.assign({},n),Pm=(n,t,e)=>n&&!t.hidden&&t._stacked&&{keys:lc(e,!0),values:null},ye=class{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){let t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=hc(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&yi(this._cachedMeta),this.index=t}linkScales(){let t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(d,m,p,b)=>d==="x"?m:d==="r"?b:p,r=e.xAxisID=at(i.xAxisID,oa(t,"x")),a=e.yAxisID=at(i.yAxisID,oa(t,"y")),o=e.rAxisID=at(i.rAxisID,oa(t,"r")),l=e.indexAxis,c=e.iAxisID=s(l,r,a,o),u=e.vAxisID=s(l,a,r,o);e.xScale=this.getScaleForId(r),e.yScale=this.getScaleForId(a),e.rScale=this.getScaleForId(o),e.iScale=this.getScaleForId(c),e.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){let e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){let t=this._cachedMeta;this._data&&Dr(this._data,this),t._stacked&&yi(t)}_dataCheck(){let t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(ft(e))this._data=wm(e);else if(i!==e){if(i){Dr(i,this);let s=this._cachedMeta;yi(s),s._parsed=[]}e&&Object.isExtensible(e)&&wl(e,this),this._syncList=[],this._data=e}}addElements(){let t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){let e=this._cachedMeta,i=this.getDataset(),s=!1;this._dataCheck();let r=e._stacked;e._stacked=hc(e.vScale,e),e.stack!==i.stack&&(s=!0,yi(e),e.stack=i.stack),this._resyncElements(t),(s||r!==e._stacked)&&fc(this,e._parsed)}configure(){let t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){let{_cachedMeta:i,_data:s}=this,{iScale:r,_stacked:a}=i,o=r.axis,l=t===0&&e===s.length?!0:i._sorted,c=t>0&&i._parsed[t-1],u,d,m;if(this._parsing===!1)i._parsed=s,i._sorted=!0,m=s;else{Et(s[t])?m=this.parseArrayData(i,s,t,e):ft(s[t])?m=this.parseObjectData(i,s,t,e):m=this.parsePrimitiveData(i,s,t,e);let p=()=>d[o]===null||c&&d[o]k||d=0;--m)if(!b()){this.updateRangeFromParsed(c,t,p,l);break}}return c}getAllParsedValues(t){let e=this._cachedMeta._parsed,i=[],s,r,a;for(s=0,r=e.length;s=0&&tthis.getContext(i,s),k=c.resolveNamedOptions(m,p,b,d);return k.$shared&&(k.$shared=l,r[a]=Object.freeze(dc(k,l))),k}_resolveAnimations(t,e,i){let s=this.chart,r=this._cachedDataOpts,a=`animation-${e}`,o=r[a];if(o)return o;let l;if(s.options.animation!==!1){let u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,e),m=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(m,this.getContext(t,i,e))}let c=new aa(s,l&&l.animations);return l&&l._cacheable&&(r[a]=Object.freeze(c)),c}getSharedOptions(t){if(!!t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||la(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){let i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,r=this.getSharedOptions(i),a=this.includeOptions(e,r)||r!==s;return this.updateSharedOptions(r,e,i),{sharedOptions:r,includeOptions:a}}updateElement(t,e,i,s){la(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!la(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;let r=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(r)||r})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){let e=this._data,i=this._cachedMeta.data;for(let[o,l,c]of this._syncList)this[o](l,c);this._syncList=[];let s=i.length,r=e.length,a=Math.min(r,s);a&&this.parse(0,a),r>s?this._insertElements(s,r-s,t):r{for(c.length+=e,o=c.length-1;o>=a;o--)c[o]=c[o-e]};for(l(r),o=t;os-r))}return n._cache.$bar}function Em(n){let t=n.iScale,e=Om(t,n.type),i=t._length,s,r,a,o,l=()=>{a===32767||a===-32768||(ge(o)&&(i=Math.min(i,Math.abs(a-o)||i)),o=a)};for(s=0,r=e.length;s0?s[n-1]:null,o=nMath.abs(o)&&(l=o,c=a),t[e.axis]=c,t._custom={barStart:l,barEnd:c,start:s,end:r,min:a,max:o}}function pc(n,t,e,i){return Et(n)?Lm(n,t,e,i):t[e.axis]=e.parse(n,i),t}function gc(n,t,e,i){let s=n.iScale,r=n.vScale,a=s.getLabels(),o=s===r,l=[],c,u,d,m;for(c=e,u=e+i;c=e?1:-1)}function Fm(n){let t,e,i,s,r;return n.horizontal?(t=n.base>n.x,e="left",i="right"):(t=n.basel.controller.options.grouped),r=i.options.stacked,a=[],o=l=>{let c=l.controller.getParsed(e),u=c&&c[l.vScale.axis];if(bt(u)||isNaN(u))return!0};for(let l of s)if(!(e!==void 0&&o(l))&&((r===!1||a.indexOf(l.stack)===-1||r===void 0&&l.stack===void 0)&&a.push(l.stack),l.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){let s=this._getStacks(t,i),r=e!==void 0?s.indexOf(e):-1;return r===-1?s.length-1:r}_getRuler(){let t=this.options,e=this._cachedMeta,i=e.iScale,s=[],r,a;for(r=0,a=e.data.length;r=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){let e=this._cachedMeta,{xScale:i,yScale:s}=e,r=this.getParsed(t),a=i.getLabelForValue(r.x),o=s.getLabelForValue(r.y),l=r._custom;return{label:e.label,value:"("+a+", "+o+(l?", "+l:"")+")"}}update(t){let e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){let r=s==="reset",{iScale:a,vScale:o}=this._cachedMeta,{sharedOptions:l,includeOptions:c}=this._getSharedOptions(e,s),u=a.axis,d=o.axis;for(let m=e;mHn($,o,l,!0)?1:Math.max(L,L*e,F,F*e),b=($,L,F)=>Hn($,o,l,!0)?-1:Math.min(L,L*e,F,F*e),k=p(0,c,d),M=p(Ft,u,m),T=b(Lt,c,d),R=b(Lt+Ft,u,m);i=(k-T)/2,s=(M-R)/2,r=-(k+T)/2,a=-(M+R)/2}return{ratioX:i,ratioY:s,offsetX:r,offsetY:a}}var Mn=class extends ye{constructor(t,e){super(t,e);this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){let i=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=i;else{let r=l=>+i[l];if(ft(i[t])){let{key:l="value"}=this._parsing;r=c=>+Ve(i[c],l)}let a,o;for(a=t,o=t+e;a0&&!isNaN(t)?Ot*(Math.abs(t)/e):0}getLabelAndValue(t){let e=this._cachedMeta,i=this.chart,s=i.data.labels||[],r=Xn(e._parsed[t],i.options.locale);return{label:s[t]||"",value:r}}getMaxBorderWidth(t){let e=0,i=this.chart,s,r,a,o,l;if(!t){for(s=0,r=i.data.datasets.length;sn!=="spacing",_indexable:n=>n!=="spacing"};Mn.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(n){let t=n.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=n.legend.options;return t.labels.map((i,s)=>{let a=n.getDatasetMeta(0).controller.getStyle(s);return{text:i,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,lineWidth:a.borderWidth,pointStyle:e,hidden:!n.getDataVisibility(s),index:s}})}return[]}},onClick(n,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(n){let t=n.label,e=": "+n.formattedValue;return Et(t)?(t=t.slice(),t[0]+=e):t+=e,t}}}}};var ki=class extends ye{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){let e=this._cachedMeta,{dataset:i,data:s=[],_dataset:r}=e,a=this.chart._animationsDisabled,{start:o,count:l}=Fr(e,s,a);this._drawStart=o,this._drawCount=l,Ir(e)&&(o=0,l=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!r._decimated,i.points=s;let c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(i,void 0,{animated:!a,options:c},t),this.updateElements(s,o,l,t)}updateElements(t,e,i,s){let r=s==="reset",{iScale:a,vScale:o,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:u,includeOptions:d}=this._getSharedOptions(e,s),m=a.axis,p=o.axis,{spanGaps:b,segment:k}=this.options,M=xn(b)?b:Number.POSITIVE_INFINITY,T=this.chart._animationsDisabled||r||s==="none",R=e>0&&this.getParsed(e-1);for(let $=e;$0&&Math.abs(F[m]-R[m])>M,k&&(z.parsed=F,z.raw=c.data[$]),d&&(z.options=u||this.resolveDataElementOptions($,L.active?"active":s)),T||this.updateElement(L,$,z,s),R=F}}getMaxOverflow(){let t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;let r=s[0].size(this.resolveDataElementOptions(0)),a=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,r,a)/2}draw(){let t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}};ki.id="line";ki.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};ki.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};var Si=class extends ye{constructor(t,e){super(t,e);this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){let e=this._cachedMeta,i=this.chart,s=i.data.labels||[],r=Xn(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:r}}parseObjectData(t,e,i,s){return Zr.bind(this)(t,e,i,s)}update(t){let e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){let t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((i,s)=>{let r=this.getParsed(s).r;!isNaN(r)&&this.chart.getDataVisibility(s)&&(re.max&&(e.max=r))}),e}_updateRadius(){let t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),r=Math.max(s/2,0),a=Math.max(i.cutoutPercentage?r/100*i.cutoutPercentage:1,0),o=(r-a)/t.getVisibleDatasetCount();this.outerRadius=r-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){let r=s==="reset",a=this.chart,l=a.options.animation,c=this._cachedMeta.rScale,u=c.xCenter,d=c.yCenter,m=c.getIndexAngle(0)-.5*Lt,p=m,b,k=360/this.countVisibleElements();for(b=0;b{!isNaN(this.getParsed(s).r)&&this.chart.getDataVisibility(s)&&e++}),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?ve(this.resolveDataElementOptions(t,e).angle||i):0}};Si.id="polarArea";Si.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};Si.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(n){let t=n.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=n.legend.options;return t.labels.map((i,s)=>{let a=n.getDatasetMeta(0).controller.getStyle(s);return{text:i,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,lineWidth:a.borderWidth,pointStyle:e,hidden:!n.getDataVisibility(s),index:s}})}return[]}},onClick(n,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(n){return n.chart.data.labels[n.dataIndex]+": "+n.formattedValue}}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};var xs=class extends Mn{};xs.id="pie";xs.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};var Mi=class extends ye{getLabelAndValue(t){let e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return Zr.bind(this)(t,e,i,s)}update(t){let e=this._cachedMeta,i=e.dataset,s=e.data||[],r=e.iScale.getLabels();if(i.points=s,t!=="resize"){let a=this.resolveDatasetElementOptions(t);this.options.showLine||(a.borderWidth=0);let o={_loop:!0,_fullLoop:r.length===s.length,options:a};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){let r=this._cachedMeta.rScale,a=s==="reset";for(let o=e;o{s[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),s}};xe.defaults={};xe.defaultRoutes=void 0;var vc={values(n){return Et(n)?n:""+n},numeric(n,t,e){if(n===0)return"0";let i=this.chart.options.locale,s,r=n;if(e.length>1){let c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(s="scientific"),r=jm(n,e)}let a=me(Math.abs(r)),o=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:s,minimumFractionDigits:o,maximumFractionDigits:o};return Object.assign(l,this.options.ticks.format),Xn(n,i,l)},logarithmic(n,t,e){if(n===0)return"0";let i=n/Math.pow(10,Math.floor(me(n)));return i===1||i===2||i===5?vc.numeric.call(this,n,t,e):""}};function jm(n,t){let e=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(e)>=1&&n!==Math.floor(n)&&(e=n-Math.floor(n)),e}var ws={formatters:vc};dt.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,t)=>t.lineWidth,tickColor:(n,t)=>t.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ws.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}});dt.route("scale.ticks","color","","color");dt.route("scale.grid","color","","borderColor");dt.route("scale.grid","borderColor","","borderColor");dt.route("scale.title","color","","color");dt.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&n!=="callback"&&n!=="parser",_indexable:n=>n!=="borderDash"&&n!=="tickBorderDash"});dt.describe("scales",{_fallback:"scale"});dt.describe("scale.ticks",{_scriptable:n=>n!=="backdropPadding"&&n!=="callback",_indexable:n=>n!=="backdropPadding"});function Nm(n,t){let e=n.options.ticks,i=e.maxTicksLimit||Hm(n),s=e.major.enabled?Wm(t):[],r=s.length,a=s[0],o=s[r-1],l=[];if(r>i)return Ym(t,l,s,r/i),l;let c=Vm(s,t,i);if(r>0){let u,d,m=r>1?Math.round((o-a)/(r-1)):null;for(ks(t,l,c,bt(m)?0:a-m,a),u=0,d=r-1;us)return l}return Math.max(s,1)}function Wm(n){let t=[],e,i;for(e=0,i=n.length;en==="left"?"right":n==="right"?"left":n,_c=(n,t,e)=>t==="top"||t==="left"?n[t]+e:n[t]-e;function yc(n,t){let e=[],i=n.length/t,s=n.length,r=0;for(;ra+o)))return l}function Xm(n,t){Mt(n,e=>{let i=e.gc,s=i.length/2,r;if(s>t){for(r=0;ri?i:e,i=s&&e>i?e:i,{min:pe(e,pe(i,e)),max:pe(i,pe(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Dt(this.options.beforeUpdate,[this])}update(t,e,i){let{beginAtZero:s,grace:r,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=jl(this,r,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let l=o=r||i<=1||!this.isHorizontal()){this.labelRotation=s;return}let u=this._getLabelSizes(),d=u.widest.width,m=u.highest.height,p=Yt(this.chart.width-d,0,this.maxWidth);o=t.offset?this.maxWidth/i:p/(i-1),d+6>o&&(o=p/(i-(t.offset?.5:1)),l=this.maxHeight-Ci(t.grid)-e.padding-xc(t.title,this.chart.options.font),c=Math.sqrt(d*d+m*m),a=rs(Math.min(Math.asin(Yt((u.highest.height+6)/o,-1,1)),Math.asin(Yt(l/c,-1,1))-Math.asin(Yt(m/c,-1,1)))),a=Math.max(s,Math.min(r,a))),this.labelRotation=a}afterCalculateLabelRotation(){Dt(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Dt(this.options.beforeFit,[this])}fit(){let t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:r}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let l=xc(s,e.options.font);if(o?(t.width=this.maxWidth,t.height=Ci(r)+l):(t.height=this.maxHeight,t.width=Ci(r)+l),i.display&&this.ticks.length){let{first:c,last:u,widest:d,highest:m}=this._getLabelSizes(),p=i.padding*2,b=ve(this.labelRotation),k=Math.cos(b),M=Math.sin(b);if(o){let T=i.mirror?0:M*d.width+k*m.height;t.height=Math.min(this.maxHeight,t.height+T+p)}else{let T=i.mirror?0:k*d.width+M*m.height;t.width=Math.min(this.maxWidth,t.width+T+p)}this._calculatePadding(c,u,M,k)}}this._handleMargins(),o?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){let{ticks:{align:r,padding:a},position:o}=this.options,l=this.labelRotation!==0,c=o!=="top"&&this.axis==="x";if(this.isHorizontal()){let u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1),m=0,p=0;l?c?(m=s*t.width,p=i*e.height):(m=i*t.height,p=s*e.width):r==="start"?p=e.width:r==="end"?m=t.width:r!=="inner"&&(m=t.width/2,p=e.width/2),this.paddingLeft=Math.max((m-u+a)*this.width/(this.width-u),0),this.paddingRight=Math.max((p-d+a)*this.width/(this.width-d),0)}else{let u=e.height/2,d=t.height/2;r==="start"?(u=0,d=t.height):r==="end"&&(u=e.height,d=0),this.paddingTop=u+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Dt(this.options.afterFit,[this])}isHorizontal(){let{axis:t,position:e}=this.options;return e==="top"||e==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let e,i;for(e=0,i=t.length;e({width:r[H]||0,height:a[H]||0});return{first:z(0),last:z(e-1),widest:z(L),highest:z(F),widths:r,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){let e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);let e=this._startPixel+t*this._length;return vl(this._alignToPixels?on(this.chart,e,0):e)}getDecimalForPixel(t){let e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){let e=this.ticks||[];if(t>=0&&to*s?o/i:l/s:l*s0}_computeGridLineItems(t){let e=this.axis,i=this.chart,s=this.options,{grid:r,position:a}=s,o=r.offset,l=this.isHorizontal(),u=this.ticks.length+(o?1:0),d=Ci(r),m=[],p=r.setContext(this.getContext()),b=p.drawBorder?p.borderWidth:0,k=b/2,M=function(U){return on(i,U,b)},T,R,$,L,F,z,H,G,q,et,ot,st;if(a==="top")T=M(this.bottom),z=this.bottom-d,G=T-k,et=M(t.top)+k,st=t.bottom;else if(a==="bottom")T=M(this.top),et=t.top,st=M(t.bottom)-k,z=T+k,G=this.top+d;else if(a==="left")T=M(this.right),F=this.right-d,H=T-k,q=M(t.left)+k,ot=t.right;else if(a==="right")T=M(this.left),q=t.left,ot=M(t.right)-k,F=T+k,H=this.left+d;else if(e==="x"){if(a==="center")T=M((t.top+t.bottom)/2+.5);else if(ft(a)){let U=Object.keys(a)[0],_t=a[U];T=M(this.chart.scales[U].getPixelForValue(_t))}et=t.top,st=t.bottom,z=T+k,G=z+d}else if(e==="y"){if(a==="center")T=M((t.left+t.right)/2);else if(ft(a)){let U=Object.keys(a)[0],_t=a[U];T=M(this.chart.scales[U].getPixelForValue(_t))}F=T-k,H=F-d,q=t.left,ot=t.right}let wt=at(s.ticks.maxTicksLimit,u),rt=Math.max(1,Math.ceil(u/wt));for(R=0;Rr.value===t);return s>=0?e.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){let e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t)),r,a,o=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,a=s.length;r{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(t){let e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[],r,a;for(r=0,a=e.length;r{let i=e.split("."),s=i.pop(),r=[n].concat(i).join("."),a=t[e].split("."),o=a.pop(),l=a.join(".");dt.route(r,s,l,o)})}function nb(n){return"id"in n&&"defaults"in n}var wc=class{constructor(){this.controllers=new Ti(ye,"datasets",!0),this.elements=new Ti(xe,"elements"),this.plugins=new Ti(Object,"plugins"),this.scales=new Ti(fn,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach(s=>{let r=i||this._getRegistryForType(s);i||r.isForType(s)||r===this.plugins&&s.id?this._exec(t,r,s):Mt(s,a=>{let o=i||this._getRegistryForType(a);this._exec(t,o,a)})})}_exec(t,e,i){let s=is(t);Dt(i["before"+s],[],i),e[t](i),Dt(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;e0&&this.getParsed(e-1);for(let L=e;L0&&Math.abs(z[p]-$[p])>T,M&&(H.parsed=z,H.raw=c.data[L]),m&&(H.options=d||this.resolveDataElementOptions(L,F.active?"active":s)),R||this.updateElement(F,L,H,s),$=z}this.updateSharedOptions(d,s,u)}getMaxOverflow(){let t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let o=0;for(let l=e.length-1;l>=0;--l)o=Math.max(o,e[l].size(this.resolveDataElementOptions(l))/2);return o>0&&o}let i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;let r=e[0].size(this.resolveDataElementOptions(0)),a=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,r,a)/2}};Pi.id="scatter";Pi.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};Pi.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title(){return""},label(n){return"("+n.label+", "+n.formattedValue+")"}}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var ib=Object.freeze({__proto__:null,BarController:xi,BubbleController:wi,DoughnutController:Mn,LineController:ki,PolarAreaController:Si,PieController:xs,RadarController:Mi,ScatterController:Pi});function Cn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}var Ss=class{constructor(t){this.options=t||{}}init(t){}formats(){return Cn()}parse(t,e){return Cn()}format(t,e){return Cn()}add(t,e,i){return Cn()}diff(t,e,i){return Cn()}startOf(t,e,i){return Cn()}endOf(t,e){return Cn()}};Ss.override=function(n){Object.assign(Ss.prototype,n)};var ha={_date:Ss};function sb(n,t,e,i){let{controller:s,data:r,_sorted:a}=n,o=s._cachedMeta.iScale;if(o&&t===o.axis&&t!=="r"&&a&&r.length){let l=o._reversePixels?_l:Re;if(i){if(s._sharedOptions){let c=r[0],u=typeof c.getRange=="function"&&c.getRange(t);if(u){let d=l(r,t,e-u),m=l(r,t,e+u);return{lo:d.lo,hi:m.hi}}}}else return l(r,t,e)}return{lo:0,hi:r.length-1}}function Oi(n,t,e,i,s){let r=n.getSortedVisibleDatasetMetas(),a=e[t];for(let o=0,l=r.length;o{l[a](t[e],s)&&(r.push({element:l,datasetIndex:c,index:u}),o=o||l.inRange(t.x,t.y,s))}),i&&!o?[]:r}var lb={evaluateInteractionItems:Oi,modes:{index(n,t,e,i){let s=hn(t,n),r=e.axis||"x",a=e.includeInvisible||!1,o=e.intersect?ua(n,s,r,i,a):fa(n,s,r,!1,i,a),l=[];return o.length?(n.getSortedVisibleDatasetMetas().forEach(c=>{let u=o[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(n,t,e,i){let s=hn(t,n),r=e.axis||"xy",a=e.includeInvisible||!1,o=e.intersect?ua(n,s,r,i,a):fa(n,s,r,!1,i,a);if(o.length>0){let l=o[0].datasetIndex,c=n.getDatasetMeta(l).data;o=[];for(let u=0;ue.pos===t)}function Mc(n,t){return n.filter(e=>Sc.indexOf(e.pos)===-1&&e.box.axis===t)}function Di(n,t){return n.sort((e,i)=>{let s=t?i:e,r=t?e:i;return s.weight===r.weight?s.index-r.index:s.weight-r.weight})}function cb(n){let t=[],e,i,s,r,a,o;for(e=0,i=(n||[]).length;ec.box.fullSize),!0),i=Di(Ei(t,"left"),!0),s=Di(Ei(t,"right")),r=Di(Ei(t,"top"),!0),a=Di(Ei(t,"bottom")),o=Mc(t,"x"),l=Mc(t,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:s.concat(l).concat(a).concat(o),chartArea:Ei(t,"chartArea"),vertical:i.concat(s).concat(l),horizontal:r.concat(a).concat(o)}}function Cc(n,t,e,i){return Math.max(n[e],t[e])+Math.max(n[i],t[i])}function Tc(n,t){n.top=Math.max(n.top,t.top),n.left=Math.max(n.left,t.left),n.bottom=Math.max(n.bottom,t.bottom),n.right=Math.max(n.right,t.right)}function db(n,t,e,i){let{pos:s,box:r}=e,a=n.maxPadding;if(!ft(s)){e.size&&(n[s]-=e.size);let d=i[e.stack]||{size:0,count:1};d.size=Math.max(d.size,e.horizontal?r.height:r.width),e.size=d.size/d.count,n[s]+=e.size}r.getPadding&&Tc(a,r.getPadding());let o=Math.max(0,t.outerWidth-Cc(a,n,"left","right")),l=Math.max(0,t.outerHeight-Cc(a,n,"top","bottom")),c=o!==n.w,u=l!==n.h;return n.w=o,n.h=l,e.horizontal?{same:c,other:u}:{same:u,other:c}}function pb(n){let t=n.maxPadding;function e(i){let s=Math.max(t[i]-n[i],0);return n[i]+=s,s}n.y+=e("top"),n.x+=e("left"),e("right"),e("bottom")}function gb(n,t){let e=t.maxPadding;function i(s){let r={left:0,top:0,right:0,bottom:0};return s.forEach(a=>{r[a]=Math.max(t[a],e[a])}),r}return i(n?["left","right"]:["top","bottom"])}function Ai(n,t,e,i){let s=[],r,a,o,l,c,u;for(r=0,a=n.length,c=0;r{typeof k.beforeLayout=="function"&&k.beforeLayout()});let u=l.reduce((k,M)=>M.box.options&&M.box.options.display===!1?k:k+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:e,padding:s,availableWidth:r,availableHeight:a,vBoxMaxWidth:r/2/u,hBoxMaxHeight:a/2}),m=Object.assign({},s);Tc(m,te(i));let p=Object.assign({maxPadding:m,w:r,h:a,x:s.left,y:s.top},s),b=ub(l.concat(c),d);Ai(o.fullSize,p,d,b),Ai(l,p,d,b),Ai(c,p,d,b)&&Ai(l,p,d,b),pb(p),Pc(o.leftAndTop,p,d,b),p.x+=p.w,p.y+=p.h,Pc(o.rightAndBottom,p,d,b),n.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Mt(o.chartArea,k=>{let M=k.box;Object.assign(M,n.chartArea),M.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}},da=class{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}},Oc=class extends da{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}},Cs="$chartjs",mb={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Ec=n=>n===null||n==="";function bb(n,t){let e=n.style,i=n.getAttribute("height"),s=n.getAttribute("width");if(n[Cs]={initial:{height:i,width:s,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",Ec(s)){let r=ea(n,"width");r!==void 0&&(n.width=r)}if(Ec(i))if(n.style.height==="")n.height=n.width/(t||2);else{let r=ea(n,"height");r!==void 0&&(n.height=r)}return n}var Dc=Xl?{passive:!0}:!1;function vb(n,t,e){n.addEventListener(t,e,Dc)}function _b(n,t,e){n.canvas.removeEventListener(t,e,Dc)}function yb(n,t){let e=mb[n.type]||n.type,{x:i,y:s}=hn(n,t);return{type:e,chart:t,native:n,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Ts(n,t){for(let e of n)if(e===t||e.contains(t))return!0}function xb(n,t,e){let i=n.canvas,s=new MutationObserver(r=>{let a=!1;for(let o of r)a=a||Ts(o.addedNodes,i),a=a&&!Ts(o.removedNodes,i);a&&e()});return s.observe(document,{childList:!0,subtree:!0}),s}function wb(n,t,e){let i=n.canvas,s=new MutationObserver(r=>{let a=!1;for(let o of r)a=a||Ts(o.removedNodes,i),a=a&&!Ts(o.addedNodes,i);a&&e()});return s.observe(document,{childList:!0,subtree:!0}),s}var Li=new Map,Ac=0;function Lc(){let n=window.devicePixelRatio;n!==Ac&&(Ac=n,Li.forEach((t,e)=>{e.currentDevicePixelRatio!==n&&t()}))}function kb(n,t){Li.size||window.addEventListener("resize",Lc),Li.set(n,t)}function Sb(n){Li.delete(n),Li.size||window.removeEventListener("resize",Lc)}function Mb(n,t,e){let i=n.canvas,s=i&&vs(i);if(!s)return;let r=Rr((o,l)=>{let c=s.clientWidth;e(o,l),c{let l=o[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||r(c,u)});return a.observe(s),kb(n,r),a}function pa(n,t,e){e&&e.disconnect(),t==="resize"&&Sb(n)}function Cb(n,t,e){let i=n.canvas,s=Rr(r=>{n.ctx!==null&&e(yb(r,n))},n,r=>{let a=r[0];return[a,a.offsetX,a.offsetY]});return vb(i,t,s),s}var Rc=class extends da{acquireContext(t,e){let i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(bb(t,e),i):null}releaseContext(t){let e=t.canvas;if(!e[Cs])return!1;let i=e[Cs].initial;["height","width"].forEach(r=>{let a=i[r];bt(a)?e.removeAttribute(r):e.setAttribute(r,a)});let s=i.style||{};return Object.keys(s).forEach(r=>{e.style[r]=s[r]}),e.width=e.width,delete e[Cs],!0}addEventListener(t,e,i){this.removeEventListener(t,e);let s=t.$proxies||(t.$proxies={}),a={attach:xb,detach:wb,resize:Mb}[e]||Cb;s[e]=a(t,e,i)}removeEventListener(t,e){let i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:pa,detach:pa,resize:pa}[e]||_b)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return Ul(t,e,i,s)}isAttached(t){let e=vs(t);return!!(e&&e.isConnected)}};function Tb(n){return!Jr()||typeof OffscreenCanvas!="undefined"&&n instanceof OffscreenCanvas?Oc:Rc}var Fc=class{constructor(){this._init=[]}notify(t,e,i,s){e==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));let r=s?this._descriptors(t).filter(s):this._descriptors(t),a=this._notify(r,t,e,i);return e==="afterDestroy"&&(this._notify(r,t,"stop"),this._notify(this._init,t,"uninstall")),a}_notify(t,e,i,s){s=s||{};for(let r of t){let a=r.plugin,o=a[i],l=[e,s,r.options];if(Dt(o,l,a)===!1&&s.cancelable)return!1}return!0}invalidate(){bt(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;let e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){let i=t&&t.config,s=at(i.options&&i.options.plugins,{}),r=Pb(i);return s===!1&&!e?[]:Eb(t,r,s,e)}_notifyStateChanges(t){let e=this._oldCache||[],i=this._cache,s=(r,a)=>r.filter(o=>!a.some(l=>o.plugin.id===l.plugin.id));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}};function Pb(n){let t={},e=[],i=Object.keys(Fe.plugins.items);for(let r=0;r{let l=i[o];if(!ft(l))return console.error(`Invalid scale configuration for scale: ${o}`);if(l._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${o}`);let c=ma(o,l),u=Lb(c,s),d=e.scales||{};r[c]=r[c]||o,a[o]=jn(Object.create(null),[{axis:c},l,d[c],d[u]])}),n.data.datasets.forEach(o=>{let l=o.type||n.type,c=o.indexAxis||ga(l,t),d=(an[l]||{}).scales||{};Object.keys(d).forEach(m=>{let p=Ab(m,c),b=o[p+"AxisID"]||r[p]||p;a[b]=a[b]||Object.create(null),jn(a[b],[{axis:p},i[b],d[m]])})}),Object.keys(a).forEach(o=>{let l=a[o];jn(l,[dt.scales[l.type],dt.scale])}),a}function Ic(n){let t=n.options||(n.options={});t.plugins=at(t.plugins,{}),t.scales=Fb(n,t)}function $c(n){return n=n||{},n.datasets=n.datasets||[],n.labels=n.labels||[],n}function Ib(n){return n=n||{},n.data=$c(n.data),Ic(n),n}var zc=new Map,Bc=new Set;function Ps(n,t){let e=zc.get(n);return e||(e=t(),zc.set(n,e),Bc.add(e)),e}var Ri=(n,t,e)=>{let i=Ve(t,e);i!==void 0&&n.add(i)},jc=class{constructor(t){this._config=Ib(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=$c(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){let t=this._config;this.clearCache(),Ic(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Ps(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return Ps(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return Ps(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){let e=t.id,i=this.type;return Ps(`${i}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){let i=this._scopeCache,s=i.get(t);return(!s||e)&&(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){let{options:s,type:r}=this,a=this._cachedScopes(t,i),o=a.get(e);if(o)return o;let l=new Set;e.forEach(u=>{t&&(l.add(t),u.forEach(d=>Ri(l,t,d))),u.forEach(d=>Ri(l,s,d)),u.forEach(d=>Ri(l,an[r]||{},d)),u.forEach(d=>Ri(l,dt,d)),u.forEach(d=>Ri(l,ds,d))});let c=Array.from(l);return c.length===0&&c.push(Object.create(null)),Bc.has(e)&&a.set(e,c),c}chartOptionScopes(){let{options:t,type:e}=this;return[t,an[e]||{},dt.datasets[e]||{},{type:e},dt,ds]}resolveNamedOptions(t,e,i,s=[""]){let r={$shared:!0},{resolver:a,subPrefixes:o}=Nc(this._resolverCache,t,s),l=a;if(zb(a,e)){r.$shared=!1,i=We(i)?i():i;let c=this.createResolver(t,i,o);l=wn(a,i,c)}for(let c of e)r[c]=l[c];return r}createResolver(t,e,i=[""],s){let{resolver:r}=Nc(this._resolverCache,t,i);return ft(e)?wn(r,e,void 0,s):r}};function Nc(n,t,e){let i=n.get(t);i||(i=new Map,n.set(t,i));let s=e.join(),r=i.get(s);return r||(r={resolver:ms(t,e),subPrefixes:e.filter(o=>!o.toLowerCase().includes("hover"))},i.set(s,r)),r}var $b=n=>ft(n)&&Object.getOwnPropertyNames(n).reduce((t,e)=>t||We(n[e]),!1);function zb(n,t){let{isScriptable:e,isIndexable:i}=Ur(n);for(let s of t){let r=e(s),a=i(s),o=(a||r)&&n[s];if(r&&(We(o)||$b(o))||a&&Et(o))return!0}return!1}var Bb="3.9.1",jb=["top","bottom","left","right","chartArea"];function Hc(n,t){return n==="top"||n==="bottom"||jb.indexOf(n)===-1&&t==="x"}function Vc(n,t){return function(e,i){return e[n]===i[n]?e[t]-i[t]:e[n]-i[n]}}function Wc(n){let t=n.chart,e=t.options.animation;t.notifyPlugins("afterRender"),Dt(e&&e.onComplete,[n],t)}function Nb(n){let t=n.chart,e=t.options.animation;Dt(e&&e.onProgress,[n],t)}function Yc(n){return Jr()&&typeof n=="string"?n=document.getElementById(n):n&&n.length&&(n=n[0]),n&&n.canvas&&(n=n.canvas),n}var Os={},Gc=n=>{let t=Yc(n);return Object.values(Os).filter(e=>e.canvas===t).pop()};function Hb(n,t,e){let i=Object.keys(n);for(let s of i){let r=+s;if(r>=t){let a=n[s];delete n[s],(e>0||r>t)&&(n[r+e]=a)}}}function Vb(n,t,e,i){return!e||n.type==="mouseout"?null:i?t:n}var le=class{constructor(t,e){let i=this.config=new jc(e),s=Yc(t),r=Gc(s);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas with ID '"+r.canvas.id+"' can be reused.");let a=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Tb(s)),this.platform.updateConfig(i);let o=this.platform.acquireContext(s,a.aspectRatio),l=o&&o.canvas,c=l&&l.height,u=l&&l.width;if(this.id=hl(),this.ctx=o,this.canvas=l,this.width=u,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Fc,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=kl(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],Os[this.id]=this,!o||!l){console.error("Failed to create chart: can't acquire context from the given item");return}qe.listen(this,"complete",Wc),qe.listen(this,"progress",Nb),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:r}=this;return bt(t)?e&&r?r:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ta(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Yr(this.canvas,this.ctx),this}stop(){return qe.stop(this),this}resize(t,e){qe.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){let i=this.options,s=this.canvas,r=i.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(s,t,e,r),o=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,!!ta(this,o,!0)&&(this.notifyPlugins("resize",{size:a}),Dt(i.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){let e=this.options.scales||{};Mt(e,(i,s)=>{i.id=s})}buildOrUpdateScales(){let t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce((a,o)=>(a[o]=!1,a),{}),r=[];e&&(r=r.concat(Object.keys(e).map(a=>{let o=e[a],l=ma(a,o),c=l==="r",u=l==="x";return{options:o,dposition:c?"chartArea":u?"bottom":"left",dtype:c?"radialLinear":u?"category":"linear"}}))),Mt(r,a=>{let o=a.options,l=o.id,c=ma(l,o),u=at(o.type,a.dtype);(o.position===void 0||Hc(o.position,c)!==Hc(a.dposition))&&(o.position=a.dposition),s[l]=!0;let d=null;if(l in i&&i[l].type===u)d=i[l];else{let m=Fe.getScale(u);d=new m({id:l,type:u,ctx:this.ctx,chart:this}),i[d.id]=d}d.init(o,t)}),Mt(s,(a,o)=>{a||delete i[o]}),Mt(i,a=>{ie.configure(this,a,a.options),ie.addBox(this,a)})}_updateMetasets(){let t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort((s,r)=>s.index-r.index),i>e){for(let s=e;se.length&&delete this._stacks,t.forEach((i,s)=>{e.filter(r=>r===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){let t=[],e=this.data.datasets,i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){let e=this.config;e.update();let i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;let r=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let c=0,u=this.data.datasets.length;c{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Vc("z","_idx"));let{_active:o,_lastEvent:l}=this;l?this._eventHandler(l,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){Mt(this.scales,t=>{ie.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(!Cr(e,i)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(let{method:i,start:s,count:r}of e){let a=i==="_removeElements"?-r:r;Hb(t,s,a)}}_getUniformDataChanges(){let t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];let e=this.data.datasets.length,i=r=>new Set(t.filter(a=>a[0]===r).map((a,o)=>o+","+a.splice(1).join(","))),s=i(0);for(let r=1;rr.split(",")).map(r=>({method:r[1],start:+r[2],count:+r[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;ie.update(this,this.width,this.height,t);let e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],Mt(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,r)=>{s._idx=r}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,i=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){let e=this.ctx,i=t._clip,s=!i.disabled,r=this.chartArea,a={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",a)!==!1&&(s&&vi(e,{left:i.left===!1?0:r.left-i.left,right:i.right===!1?this.width:r.right+i.right,top:i.top===!1?0:r.top-i.top,bottom:i.bottom===!1?this.height:r.bottom+i.bottom}),t.controller.draw(),s&&_i(e),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(t){return Yn(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){let r=lb.modes[e];return typeof r=="function"?r(this,t,i,s):[]}getDatasetMeta(t){let e=this.data.datasets[t],i=this._metasets,s=i.filter(r=>r&&r._dataset===e).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ge(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){let e=this.data.datasets[t];if(!e)return!1;let i=this.getDatasetMeta(t);return typeof i.hidden=="boolean"?!i.hidden:!e.hidden}setDatasetVisibility(t,e){let i=this.getDatasetMeta(t);i.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){let s=i?"show":"hide",r=this.getDatasetMeta(t),a=r.controller._resolveAnimations(void 0,s);ge(e)?(r.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),a.update(r,{visible:i}),this.update(o=>o.datasetIndex===t?s:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){let e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),qe.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,r,a),t[r]=a},s=(r,a,o)=>{r.offsetX=a,r.offsetY=o,this._eventHandler(r)};Mt(this.options.events,r=>i(r,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});let t=this._responsiveListeners,e=this.platform,i=(l,c)=>{e.addEventListener(this,l,c),t[l]=c},s=(l,c)=>{t[l]&&(e.removeEventListener(this,l,c),delete t[l])},r=(l,c)=>{this.canvas&&this.resize(l,c)},a,o=()=>{s("attach",o),this.attached=!0,this.resize(),i("resize",r),i("detach",a)};a=()=>{this.attached=!1,s("resize",r),this._stop(),this._resize(0,0),i("attach",o)},e.isAttached(this.canvas)?o():a()}unbindEvents(){Mt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Mt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){let s=i?"set":"remove",r,a,o,l;for(e==="dataset"&&(r=this.getDatasetMeta(t[0].datasetIndex),r.controller["_"+s+"DatasetHoverStyle"]()),o=0,l=t.length;o{let o=this.getDatasetMeta(r);if(!o)throw new Error("No dataset found at index "+r);return{datasetIndex:r,element:o.data[a],index:a}});!ui(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){let s=this.options.hover,r=(l,c)=>l.filter(u=>!c.some(d=>u.datasetIndex===d.datasetIndex&&u.index===d.index)),a=r(e,t),o=i?t:r(t,e);a.length&&this.updateHoverStyle(a,s.mode,!1),o.length&&s.mode&&this.updateHoverStyle(o,s.mode,!0)}_eventHandler(t,e){let i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=a=>(a.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;let r=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(r||i.changed)&&this.render(),this}_handleEvent(t,e,i){let{_active:s=[],options:r}=this,a=e,o=this._getActiveElements(t,s,i,a),l=pl(t),c=Vb(t,this._lastEvent,i,l);i&&(this._lastEvent=null,Dt(r.onHover,[t,o,this],this),l&&Dt(r.onClick,[t,o,this],this));let u=!ui(o,s);return(u||e)&&(this._active=o,this._updateHoverStyles(o,s,e)),this._lastEvent=c,u}_getActiveElements(t,e,i,s){if(t.type==="mouseout")return[];if(!i)return e;let r=this.options.hover;return this.getElementsAtEventForMode(t,r.mode,r,s)}},qc=()=>Mt(le.instances,n=>n._plugins.invalidate()),dn=!0;Object.defineProperties(le,{defaults:{enumerable:dn,value:dt},instances:{enumerable:dn,value:Os},overrides:{enumerable:dn,value:an},registry:{enumerable:dn,value:Fe},version:{enumerable:dn,value:Bb},getChart:{enumerable:dn,value:Gc},register:{enumerable:dn,value:(...n)=>{Fe.add(...n),qc()}},unregister:{enumerable:dn,value:(...n)=>{Fe.remove(...n),qc()}}});function Uc(n,t,e){let{startAngle:i,pixelMargin:s,x:r,y:a,outerRadius:o,innerRadius:l}=t,c=s/o;n.beginPath(),n.arc(r,a,o,i-c,e+c),l>s?(c=s/l,n.arc(r,a,l,e+c,i-c,!0)):n.arc(r,a,s,e+Ft,i-Ft),n.closePath(),n.clip()}function Wb(n){return gs(n,["outerStart","outerEnd","innerStart","innerEnd"])}function Yb(n,t,e,i){let s=Wb(n.options.borderRadius),r=(e-t)/2,a=Math.min(r,i*t/2),o=l=>{let c=(e-Math.min(r,l))*i/2;return Yt(l,0,Math.min(r,c))};return{outerStart:o(s.outerStart),outerEnd:o(s.outerEnd),innerStart:Yt(s.innerStart,0,a),innerEnd:Yt(s.innerEnd,0,a)}}function Kn(n,t,e,i){return{x:e+n*Math.cos(t),y:i+n*Math.sin(t)}}function ba(n,t,e,i,s,r){let{x:a,y:o,startAngle:l,pixelMargin:c,innerRadius:u}=t,d=Math.max(t.outerRadius+i+e-c,0),m=u>0?u+i+e+c:0,p=0,b=s-l;if(i){let U=u>0?u-i:0,_t=d>0?d-i:0,Ct=(U+_t)/2,se=Ct!==0?b*Ct/(Ct+i):b;p=(b-se)/2}let k=Math.max(.001,b*d-e/Lt)/d,M=(b-k)/2,T=l+M+p,R=s-M-p,{outerStart:$,outerEnd:L,innerStart:F,innerEnd:z}=Yb(t,m,d,R-T),H=d-$,G=d-L,q=T+$/H,et=R-L/G,ot=m+F,st=m+z,wt=T+F/ot,rt=R-z/st;if(n.beginPath(),r){if(n.arc(a,o,d,q,et),L>0){let Ct=Kn(G,et,a,o);n.arc(Ct.x,Ct.y,L,et,R+Ft)}let U=Kn(st,R,a,o);if(n.lineTo(U.x,U.y),z>0){let Ct=Kn(st,rt,a,o);n.arc(Ct.x,Ct.y,z,R+Ft,rt+Math.PI)}if(n.arc(a,o,m,R-z/m,T+F/m,!0),F>0){let Ct=Kn(ot,wt,a,o);n.arc(Ct.x,Ct.y,F,wt+Math.PI,T-Ft)}let _t=Kn(H,T,a,o);if(n.lineTo(_t.x,_t.y),$>0){let Ct=Kn(H,q,a,o);n.arc(Ct.x,Ct.y,$,T-Ft,q)}}else{n.moveTo(a,o);let U=Math.cos(q)*d+a,_t=Math.sin(q)*d+o;n.lineTo(U,_t);let Ct=Math.cos(et)*d+a,se=Math.sin(et)*d+o;n.lineTo(Ct,se)}n.closePath()}function Gb(n,t,e,i,s){let{fullCircles:r,startAngle:a,circumference:o}=t,l=t.endAngle;if(r){ba(n,t,e,i,a+Ot,s);for(let c=0;c=Ot||Hn(r,o,l),k=Le(a,c+m,u+m);return b&&k}getCenterPoint(t){let{x:e,y:i,startAngle:s,endAngle:r,innerRadius:a,outerRadius:o}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:l,spacing:c}=this.options,u=(s+r)/2,d=(a+o+c+l)/2;return{x:e+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){let{options:e,circumference:i}=this,s=(e.offset||0)/2,r=(e.spacing||0)/2,a=e.circular;if(this.pixelMargin=e.borderAlign==="inner"?.33:0,this.fullCircles=i>Ot?Math.floor(i/Ot):0,i===0||this.innerRadius<0||this.outerRadius<0)return;t.save();let o=0;if(s){o=s/2;let c=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(c)*o,Math.sin(c)*o),this.circumference>=Lt&&(o=s)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;let l=Gb(t,this,o,r,a);Ub(t,this,o,r,l,a),t.restore()}};Fi.id="arc";Fi.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0};Fi.defaultRoutes={backgroundColor:"backgroundColor"};function Xc(n,t,e=t){n.lineCap=at(e.borderCapStyle,t.borderCapStyle),n.setLineDash(at(e.borderDash,t.borderDash)),n.lineDashOffset=at(e.borderDashOffset,t.borderDashOffset),n.lineJoin=at(e.borderJoinStyle,t.borderJoinStyle),n.lineWidth=at(e.borderWidth,t.borderWidth),n.strokeStyle=at(e.borderColor,t.borderColor)}function Xb(n,t,e){n.lineTo(e.x,e.y)}function Kb(n){return n.stepped?zl:n.tension||n.cubicInterpolationMode==="monotone"?Bl:Xb}function Kc(n,t,e={}){let i=n.length,{start:s=0,end:r=i-1}=e,{start:a,end:o}=t,l=Math.max(s,a),c=Math.min(r,o),u=so&&r>o;return{count:i,start:l,loop:t.loop,ilen:c(a+(c?o-L:L))%r,$=()=>{k!==M&&(n.lineTo(u,M),n.lineTo(u,k),n.lineTo(u,T))};for(l&&(p=s[R(0)],n.moveTo(p.x,p.y)),m=0;m<=o;++m){if(p=s[R(m)],p.skip)continue;let L=p.x,F=p.y,z=L|0;z===b?(FM&&(M=F),u=(d*u+L)/++d):($(),n.lineTo(L,F),b=z,d=0,k=M=F),T=F}$()}function va(n){let t=n.options,e=t.borderDash&&t.borderDash.length;return!n._decimated&&!n._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?Jb:Zb}function Qb(n){return n.stepped?Kl:n.tension||n.cubicInterpolationMode==="monotone"?Zl:un}function t0(n,t,e,i){let s=t._path;s||(s=t._path=new Path2D,t.path(s,e,i)&&s.closePath()),Xc(n,t.options),n.stroke(s)}function e0(n,t,e,i){let{segments:s,options:r}=t,a=va(t);for(let o of s)Xc(n,r,o.style),n.beginPath(),a(n,t,o,{start:e,end:e+i-1})&&n.closePath(),n.stroke()}var n0=typeof Path2D=="function";function i0(n,t,e,i){n0&&!t.options.segment?t0(n,t,e,i):e0(n,t,e,i)}var Ue=class extends xe{constructor(t){super();this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){let i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){let s=i.spanGaps?this._loop:this._fullLoop;ql(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=ec(this,this.options.segment))}first(){let t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){let t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){let i=this.options,s=t[e],r=this.points,a=ra(this,{property:e,start:s,end:s});if(!a.length)return;let o=[],l=Qb(i),c,u;for(c=0,u=a.length;cn!=="borderDash"&&n!=="fill"};function Zc(n,t,e,i){let s=n.options,{[e]:r}=n.getProps([e],i);return Math.abs(t-r)=e)return n.slice(t,t+e);let a=[],o=(e-2)/(r-2),l=0,c=t+e-1,u=t,d,m,p,b,k;for(a[l++]=n[u],d=0;dp&&(p=b,m=n[R],k=R);a[l++]=m,u=k}return a[l++]=n[c],a}function u0(n,t,e,i){let s=0,r=0,a,o,l,c,u,d,m,p,b,k,M=[],T=t+e-1,R=n[t].x,L=n[T].x-R;for(a=t;ak&&(k=c,m=a),s=(r*s+o.x)/++r;else{let z=a-1;if(!bt(d)&&!bt(m)){let H=Math.min(d,m),G=Math.max(d,m);H!==p&&H!==z&&M.push({...n[H],x:s}),G!==p&&G!==z&&M.push({...n[G],x:s})}a>0&&z!==p&&M.push(n[z]),M.push(o),u=F,r=0,b=k=c,d=m=p=a}}return M}function Qc(n){if(n._decimated){let t=n._data;delete n._decimated,delete n._data,Object.defineProperty(n,"data",{value:t})}}function th(n){n.data.datasets.forEach(t=>{Qc(t)})}function f0(n,t){let e=t.length,i=0,s,{iScale:r}=n,{min:a,max:o,minDefined:l,maxDefined:c}=r.getUserBounds();return l&&(i=Yt(Re(t,r.axis,a).lo,0,e-1)),c?s=Yt(Re(t,r.axis,o).hi+1,i,e)-i:s=e-i,{start:i,count:s}}var d0={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(n,t,e)=>{if(!e.enabled){th(n);return}let i=n.width;n.data.datasets.forEach((s,r)=>{let{_data:a,indexAxis:o}=s,l=n.getDatasetMeta(r),c=a||s.data;if(qn([o,n.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;let u=n.scales[l.xAxisID];if(u.type!=="linear"&&u.type!=="time"||n.options.parsing)return;let{start:d,count:m}=f0(l,c),p=e.threshold||4*i;if(m<=p){Qc(s);return}bt(a)&&(s._data=c,delete s.data,Object.defineProperty(s,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(k){this._data=k}}));let b;switch(e.algorithm){case"lttb":b=h0(c,d,m,i,e);break;case"min-max":b=u0(c,d,m,i);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}s._decimated=b})},destroy(n){th(n)}};function p0(n,t,e){let i=n.segments,s=n.points,r=t.points,a=[];for(let o of i){let{start:l,end:c}=o;c=wa(l,c,s);let u=xa(e,s[l],s[c],o.loop);if(!t.segments){a.push({source:o,target:u,start:s[l],end:s[c]});continue}let d=ra(t,u);for(let m of d){let p=xa(e,r[m.start],r[m.end],m.loop),b=sa(o,s,p);for(let k of b)a.push({source:k,target:m,start:{[e]:eh(u,p,"start",Math.max)},end:{[e]:eh(u,p,"end",Math.min)}})}}return a}function xa(n,t,e,i){if(i)return;let s=t[n],r=e[n];return n==="angle"&&(s=oe(s),r=oe(r)),{property:n,start:s,end:r}}function g0(n,t){let{x:e=null,y:i=null}=n||{},s=t.points,r=[];return t.segments.forEach(({start:a,end:o})=>{o=wa(a,o,s);let l=s[a],c=s[o];i!==null?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):e!==null&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}function wa(n,t,e){for(;t>n;t--){let i=e[t];if(!isNaN(i.x)&&!isNaN(i.y))break}return t}function eh(n,t,e,i){return n&&t?i(n[e],t[e]):n?n[e]:t?t[e]:0}function nh(n,t){let e=[],i=!1;return Et(n)?(i=!0,e=n):e=g0(n,t),e.length?new Ue({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function ih(n){return n&&n.fill!==!1}function m0(n,t,e){let s=n[t].fill,r=[t],a;if(!e)return s;for(;s!==!1&&r.indexOf(s)===-1;){if(!$t(s))return s;if(a=n[s],!a)return!1;if(a.visible)return s;r.push(s),s=a.fill}return!1}function b0(n,t,e){let i=x0(n);if(ft(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return $t(s)&&Math.floor(s)===s?v0(i[0],t,s,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function v0(n,t,e,i){return(n==="-"||n==="+")&&(e=t+e),e===t||e<0||e>=i?!1:e}function _0(n,t){let e=null;return n==="start"?e=t.bottom:n==="end"?e=t.top:ft(n)?e=t.getPixelForValue(n.value):t.getBasePixel&&(e=t.getBasePixel()),e}function y0(n,t,e){let i;return n==="start"?i=e:n==="end"?i=t.options.reverse?t.min:t.max:ft(n)?i=n.value:i=t.getBaseValue(),i}function x0(n){let t=n.options,e=t.fill,i=at(e&&e.target,e);return i===void 0&&(i=!!t.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function w0(n){let{scale:t,index:e,line:i}=n,s=[],r=i.segments,a=i.points,o=k0(t,e);o.push(nh({x:null,y:t.bottom},i));for(let l=0;l=0;--a){let o=s[a].$filler;!o||(o.line.updateControlPoints(r,o.axis),i&&o.fill&&Sa(n.ctx,o,r))}},beforeDatasetsDraw(n,t,e){if(e.drawTime!=="beforeDatasetsDraw")return;let i=n.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){let r=i[s].$filler;ih(r)&&Sa(n.ctx,r,n.chartArea)}},beforeDatasetDraw(n,t,e){let i=t.meta.$filler;!ih(i)||e.drawTime!=="beforeDatasetDraw"||Sa(n.ctx,i,n.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}},oh=(n,t)=>{let{boxHeight:e=t,boxWidth:i=t}=n;return n.usePointStyle&&(e=Math.min(e,t),i=n.pointStyleWidth||Math.min(i,t)),{boxWidth:i,boxHeight:e,itemHeight:Math.max(t,e)}},R0=(n,t)=>n!==null&&t!==null&&n.datasetIndex===t.datasetIndex&&n.index===t.index,Ma=class extends xe{constructor(t){super();this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let t=this.options.labels||{},e=Dt(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(i=>t.filter(i,this.chart.data))),t.sort&&(e=e.sort((i,s)=>t.sort(i,s,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){let{options:t,ctx:e}=this;if(!t.display){this.width=this.height=0;return}let i=t.labels,s=Vt(i.font),r=s.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:l}=oh(i,r),c,u;e.font=s.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(a,r,o,l)+10):(u=this.maxHeight,c=this._fitCols(a,r,o,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(u,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){let{ctx:r,maxWidth:a,options:{labels:{padding:o}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=s+o,d=t;r.textAlign="left",r.textBaseline="middle";let m=-1,p=-u;return this.legendItems.forEach((b,k)=>{let M=i+e/2+r.measureText(b.text).width;(k===0||c[c.length-1]+M+2*o>a)&&(d+=u,c[c.length-(k>0?0:1)]=0,p+=u,m++),l[k]={left:0,top:p,row:m,width:M,height:s},c[c.length-1]+=M+o}),d}_fitCols(t,e,i,s){let{ctx:r,maxHeight:a,options:{labels:{padding:o}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=a-t,d=o,m=0,p=0,b=0,k=0;return this.legendItems.forEach((M,T)=>{let R=i+e/2+r.measureText(M.text).width;T>0&&p+s+2*o>u&&(d+=m+o,c.push({width:m,height:p}),b+=m+o,k++,m=p=0),l[T]={left:b,top:p,col:k,width:R,height:s},m=Math.max(m,R),p+=s+o}),d+=m,c.push({width:m,height:p}),d}adjustHitBoxes(){if(!this.options.display)return;let t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:r}}=this,a=Sn(r,this.left,this.width);if(this.isHorizontal()){let o=0,l=Qt(i,this.left+s,this.right-this.lineWidths[o]);for(let c of e)o!==c.row&&(o=c.row,l=Qt(i,this.left+s,this.right-this.lineWidths[o])),c.top+=this.top+t+s,c.left=a.leftForLtr(a.x(l),c.width),l+=c.width+s}else{let o=0,l=Qt(i,this.top+t+s,this.bottom-this.columnSizes[o].height);for(let c of e)c.col!==o&&(o=c.col,l=Qt(i,this.top+t+s,this.bottom-this.columnSizes[o].height)),c.top=l,c.left+=this.left+s,c.left=a.leftForLtr(a.x(c.left),c.width),l+=c.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){let t=this.ctx;vi(t,this),this._draw(),_i(t)}}_draw(){let{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:r,labels:a}=t,o=dt.color,l=Sn(t.rtl,this.left,this.width),c=Vt(a.font),{color:u,padding:d}=a,m=c.size,p=m/2,b;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=c.string;let{boxWidth:k,boxHeight:M,itemHeight:T}=oh(a,m),R=function(H,G,q){if(isNaN(k)||k<=0||isNaN(M)||M<0)return;s.save();let et=at(q.lineWidth,1);if(s.fillStyle=at(q.fillStyle,o),s.lineCap=at(q.lineCap,"butt"),s.lineDashOffset=at(q.lineDashOffset,0),s.lineJoin=at(q.lineJoin,"miter"),s.lineWidth=et,s.strokeStyle=at(q.strokeStyle,o),s.setLineDash(at(q.lineDash,[])),a.usePointStyle){let ot={radius:M*Math.SQRT2/2,pointStyle:q.pointStyle,rotation:q.rotation,borderWidth:et},st=l.xPlus(H,k/2),wt=G+p;Gr(s,ot,st,wt,a.pointStyleWidth&&k)}else{let ot=G+Math.max((m-M)/2,0),st=l.leftForLtr(H,k),wt=cn(q.borderRadius);s.beginPath(),Object.values(wt).some(rt=>rt!==0)?Gn(s,{x:st,y:ot,w:k,h:M,radius:wt}):s.rect(st,ot,k,M),s.fill(),et!==0&&s.stroke()}s.restore()},$=function(H,G,q){ln(s,q.text,H,G+T/2,c,{strikethrough:q.hidden,textAlign:l.textAlign(q.textAlign)})},L=this.isHorizontal(),F=this._computeTitleHeight();L?b={x:Qt(r,this.left+d,this.right-i[0]),y:this.top+d+F,line:0}:b={x:this.left+d,y:Qt(r,this.top+F+d,this.bottom-e[0].height),line:0},na(this.ctx,t.textDirection);let z=T+d;this.legendItems.forEach((H,G)=>{s.strokeStyle=H.fontColor||u,s.fillStyle=H.fontColor||u;let q=s.measureText(H.text).width,et=l.textAlign(H.textAlign||(H.textAlign=a.textAlign)),ot=k+p+q,st=b.x,wt=b.y;l.setWidth(this.width),L?G>0&&st+ot+d>this.right&&(wt=b.y+=z,b.line++,st=b.x=Qt(r,this.left+d,this.right-i[b.line])):G>0&&wt+z>this.bottom&&(st=b.x=st+e[b.line].width+d,b.line++,wt=b.y=Qt(r,this.top+F+d,this.bottom-e[b.line].height));let rt=l.x(st);R(rt,wt,H),st=Sl(et,st+k+p,L?st+ot:this.right,t.rtl),$(l.x(st),wt,H),L?b.x+=ot+d:b.y+=z}),ia(this.ctx,t.textDirection)}drawTitle(){let t=this.options,e=t.title,i=Vt(e.font),s=te(e.padding);if(!e.display)return;let r=Sn(t.rtl,this.left,this.width),a=this.ctx,o=e.position,l=i.size/2,c=s.top+l,u,d=this.left,m=this.width;if(this.isHorizontal())m=Math.max(...this.lineWidths),u=this.top+c,d=Qt(t.align,d,this.right-m);else{let b=this.columnSizes.reduce((k,M)=>Math.max(k,M.height),0);u=c+Qt(t.align,this.top,this.bottom-b-t.labels.padding-this._computeTitleHeight())}let p=Qt(o,d,d+m);a.textAlign=r.textAlign(ls(o)),a.textBaseline="middle",a.strokeStyle=e.color,a.fillStyle=e.color,a.font=i.string,ln(a,e.text,p,u,i)}_computeTitleHeight(){let t=this.options.title,e=Vt(t.font),i=te(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,r;if(Le(t,this.left,this.right)&&Le(e,this.top,this.bottom)){for(r=this.legendHitBoxes,i=0;in.chart.options.color,boxWidth:40,padding:10,generateLabels(n){let t=n.data.datasets,{labels:{usePointStyle:e,pointStyle:i,textAlign:s,color:r}}=n.legend.options;return n._getSortedDatasetMetas().map(a=>{let o=a.controller.getStyle(e?0:void 0),l=te(o.borderWidth);return{text:t[a.index].label,fillStyle:o.backgroundColor,fontColor:r,hidden:!a.visible,lineCap:o.borderCapStyle,lineDash:o.borderDash,lineDashOffset:o.borderDashOffset,lineJoin:o.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:o.borderColor,pointStyle:i||o.pointStyle,rotation:o.rotation,textAlign:s||o.textAlign,borderRadius:0,datasetIndex:a.index}},this)}},title:{color:n=>n.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:n=>!n.startsWith("on"),labels:{_scriptable:n=>!["generateLabels","filter","sort"].includes(n)}}},Es=class extends xe{constructor(t){super();this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){let i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=e;let s=Et(i.text)?i.text.length:1;this._padding=te(i.padding);let r=s*Vt(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=r:this.width=r}isHorizontal(){let t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){let{top:e,left:i,bottom:s,right:r,options:a}=this,o=a.align,l=0,c,u,d;return this.isHorizontal()?(u=Qt(o,i,r),d=e+t,c=r-i):(a.position==="left"?(u=i+t,d=Qt(o,s,e),l=Lt*-.5):(u=r-t,d=Qt(o,e,s),l=Lt*.5),c=s-e),{titleX:u,titleY:d,maxWidth:c,rotation:l}}draw(){let t=this.ctx,e=this.options;if(!e.display)return;let i=Vt(e.font),r=i.lineHeight/2+this._padding.top,{titleX:a,titleY:o,maxWidth:l,rotation:c}=this._drawArgs(r);ln(t,e.text,0,0,i,{color:e.color,maxWidth:l,rotation:c,textAlign:ls(e.align),textBaseline:"middle",translation:[a,o]})}};function $0(n,t){let e=new Es({ctx:n.ctx,options:t,chart:n});ie.configure(n,e,t),ie.addBox(n,e),n.titleBlock=e}var z0={id:"title",_element:Es,start(n,t,e){$0(n,e)},stop(n){let t=n.titleBlock;ie.removeBox(n,t),delete n.titleBlock},beforeUpdate(n,t,e){let i=n.titleBlock;ie.configure(n,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Ds=new WeakMap,B0={id:"subtitle",start(n,t,e){let i=new Es({ctx:n.ctx,options:e,chart:n});ie.configure(n,i,e),ie.addBox(n,i),Ds.set(n,i)},stop(n){ie.removeBox(n,Ds.get(n)),Ds.delete(n)},beforeUpdate(n,t,e){let i=Ds.get(n);ie.configure(n,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},zi={average(n){if(!n.length)return!1;let t,e,i=0,s=0,r=0;for(t=0,e=n.length;t-1?n.split(` -`):n}function z0(n,t){let{element:e,datasetIndex:i,index:s}=t,r=n.getDatasetMeta(i).controller,{label:a,value:o}=r.getLabelAndValue(s);return{chart:n,label:a,parsed:r.getParsed(s),raw:n.data.datasets[i].data[s],formattedValue:o,dataset:r.getDataset(),dataIndex:s,datasetIndex:i,element:e}}function sh(n,t){let e=n.chart.ctx,{body:i,footer:s,title:r}=n,{boxWidth:a,boxHeight:o}=t,l=Ht(t.bodyFont),c=Ht(t.titleFont),u=Ht(t.footerFont),d=r.length,p=s.length,m=i.length,b=Qt(t.padding),S=b.height,M=0,E=i.reduce((R,F)=>R+F.before.length+F.lines.length+F.after.length,0);if(E+=n.beforeBody.length+n.afterBody.length,d&&(S+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),E){let R=t.displayColors?Math.max(o,l.lineHeight):l.lineHeight;S+=m*R+(E-m)*l.lineHeight+(E-1)*t.bodySpacing}p&&(S+=t.footerMarginTop+p*u.lineHeight+(p-1)*t.footerSpacing);let L=0,$=function(R){M=Math.max(M,e.measureText(R).width+L)};return e.save(),e.font=c.string,Mt(n.title,$),e.font=l.string,Mt(n.beforeBody.concat(n.afterBody),$),L=t.displayColors?a+2+t.boxPadding:0,Mt(i,R=>{Mt(R.before,$),Mt(R.lines,$),Mt(R.after,$)}),L=0,e.font=u.string,Mt(n.footer,$),e.restore(),M+=b.width,{width:M,height:S}}function B0(n,t){let{y:e,height:i}=t;return en.height-i/2?"bottom":"center"}function j0(n,t,e,i){let{x:s,width:r}=i,a=e.caretSize+e.caretPadding;if(n==="left"&&s+r+a>t.width||n==="right"&&s-r-a<0)return!0}function N0(n,t,e,i){let{x:s,width:r}=e,{width:a,chartArea:{left:o,right:l}}=n,c="center";return i==="center"?c=s<=(o+l)/2?"left":"right":s<=r/2?c="left":s>=a-r/2&&(c="right"),j0(c,n,t,e)&&(c="center"),c}function rh(n,t,e){let i=e.yAlign||t.yAlign||B0(n,e);return{xAlign:e.xAlign||t.xAlign||N0(n,t,e,i),yAlign:i}}function H0(n,t){let{x:e,width:i}=n;return t==="right"?e-=i:t==="center"&&(e-=i/2),e}function V0(n,t,e){let{y:i,height:s}=n;return t==="top"?i+=e:t==="bottom"?i-=s+e:i-=s/2,i}function ah(n,t,e,i){let{caretSize:s,caretPadding:r,cornerRadius:a}=n,{xAlign:o,yAlign:l}=e,c=s+r,{topLeft:u,topRight:d,bottomLeft:p,bottomRight:m}=cn(a),b=H0(t,o),S=V0(t,l,c);return l==="center"?o==="left"?b+=c:o==="right"&&(b-=c):o==="left"?b-=Math.max(u,p)+s:o==="right"&&(b+=Math.max(d,m)+s),{x:Wt(b,0,i.width-t.width),y:Wt(S,0,i.height-t.height)}}function As(n,t,e){let i=Qt(e.padding);return t==="center"?n.x+n.width/2:t==="right"?n.x+n.width-i.right:n.x+i.left}function oh(n){return Fe([],Xe(n))}function W0(n,t,e){return Ye(n,{tooltip:t,tooltipItems:e,type:"tooltip"})}function lh(n,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?n.override(e):n}var Rs=class extends xe{constructor(t){super();this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,r=new ia(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(r)),r}getContext(){return this.$context||(this.$context=W0(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:i}=e,s=i.beforeTitle.apply(this,[t]),r=i.title.apply(this,[t]),a=i.afterTitle.apply(this,[t]),o=[];return o=Fe(o,Xe(s)),o=Fe(o,Xe(r)),o=Fe(o,Xe(a)),o}getBeforeBody(t,e){return oh(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){let{callbacks:i}=e,s=[];return Mt(t,r=>{let a={before:[],lines:[],after:[]},o=lh(i,r);Fe(a.before,Xe(o.beforeLabel.call(this,r))),Fe(a.lines,o.label.call(this,r)),Fe(a.after,Xe(o.afterLabel.call(this,r))),s.push(a)}),s}getAfterBody(t,e){return oh(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){let{callbacks:i}=e,s=i.beforeFooter.apply(this,[t]),r=i.footer.apply(this,[t]),a=i.afterFooter.apply(this,[t]),o=[];return o=Fe(o,Xe(s)),o=Fe(o,Xe(r)),o=Fe(o,Xe(a)),o}_createItems(t){let e=this._active,i=this.chart.data,s=[],r=[],a=[],o=[],l,c;for(l=0,c=e.length;lt.filter(u,d,p,i))),t.itemSort&&(o=o.sort((u,d)=>t.itemSort(u,d,i))),Mt(o,u=>{let d=lh(t.callbacks,u);s.push(d.labelColor.call(this,u)),r.push(d.labelPointStyle.call(this,u)),a.push(d.labelTextColor.call(this,u))}),this.labelColors=s,this.labelPointStyles=r,this.labelTextColors=a,this.dataPoints=o,o}update(t,e){let i=this.options.setContext(this.getContext()),s=this._active,r,a=[];if(!s.length)this.opacity!==0&&(r={opacity:0});else{let o=Bi[i.position].call(this,s,this._eventPosition);a=this._createItems(i),this.title=this.getTitle(a,i),this.beforeBody=this.getBeforeBody(a,i),this.body=this.getBody(a,i),this.afterBody=this.getAfterBody(a,i),this.footer=this.getFooter(a,i);let l=this._size=sh(this,i),c=Object.assign({},o,l),u=rh(this.chart,i,c),d=ah(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,r={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:o.x,caretY:o.y}}this._tooltipItems=a,this.$context=void 0,r&&this._resolveAnimations().update(this,r),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){let r=this.getCaretPosition(t,i,s);e.lineTo(r.x1,r.y1),e.lineTo(r.x2,r.y2),e.lineTo(r.x3,r.y3)}getCaretPosition(t,e,i){let{xAlign:s,yAlign:r}=this,{caretSize:a,cornerRadius:o}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=cn(o),{x:p,y:m}=t,{width:b,height:S}=e,M,E,L,$,R,F;return r==="center"?(R=m+S/2,s==="left"?(M=p,E=M-a,$=R+a,F=R-a):(M=p+b,E=M+a,$=R-a,F=R+a),L=M):(s==="left"?E=p+Math.max(l,u)+a:s==="right"?E=p+b-Math.max(c,d)-a:E=this.caretX,r==="top"?($=m,R=$-a,M=E-a,L=E+a):($=m+S,R=$+a,M=E+a,L=E-a),F=$),{x1:M,x2:E,x3:L,y1:$,y2:R,y3:F}}drawTitle(t,e,i){let s=this.title,r=s.length,a,o,l;if(r){let c=kn(i.rtl,this.x,this.width);for(t.x=As(this,i.titleAlign,i),e.textAlign=c.textAlign(i.titleAlign),e.textBaseline="middle",a=Ht(i.titleFont),o=i.titleSpacing,e.fillStyle=i.titleColor,e.font=a.string,l=0;l$!==0)?(t.beginPath(),t.fillStyle=r.multiKeyBackground,Gn(t,{x:M,y:S,w:c,h:l,radius:L}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),Gn(t,{x:E,y:S+1,w:c-2,h:l-2,radius:L}),t.fill()):(t.fillStyle=r.multiKeyBackground,t.fillRect(M,S,c,l),t.strokeRect(M,S,c,l),t.fillStyle=a.backgroundColor,t.fillRect(E,S+1,c-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){let{body:s}=this,{bodySpacing:r,bodyAlign:a,displayColors:o,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=Ht(i.bodyFont),p=d.lineHeight,m=0,b=kn(i.rtl,this.x,this.width),S=function(G){e.fillText(G,b.x(t.x+m),t.y+p/2),t.y+=p+r},M=b.textAlign(a),E,L,$,R,F,B,H;for(e.textAlign=a,e.textBaseline="middle",e.font=d.string,t.x=As(this,M,i),e.fillStyle=i.bodyColor,Mt(this.beforeBody,S),m=o&&M!=="right"?a==="center"?c/2+u:c+2+u:0,R=0,B=s.length;R0&&e.stroke()}_updateAnimationTarget(t){let e=this.chart,i=this.$animations,s=i&&i.x,r=i&&i.y;if(s||r){let a=Bi[t.position].call(this,this._active,this._eventPosition);if(!a)return;let o=this._size=sh(this,t),l=Object.assign({},a,this._size),c=rh(e,t,l),u=ah(t,l,c,e);(s._to!==u.x||r._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=o.width,this.height=o.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(t){let e=this.options.setContext(this.getContext()),i=this.opacity;if(!i)return;this._updateAnimationTarget(e);let s={width:this.width,height:this.height},r={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;let a=Qt(e.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&o&&(t.save(),t.globalAlpha=i,this.drawBackground(r,t,s,e),Qr(t,e.textDirection),r.y+=a.top,this.drawTitle(r,t,e),this.drawBody(r,t,e),this.drawFooter(r,t,e),ta(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){let i=this._active,s=t.map(({datasetIndex:o,index:l})=>{let c=this.chart.getDatasetMeta(o);if(!c)throw new Error("Cannot find a dataset at index "+o);return{datasetIndex:o,element:c.data[l],index:l}}),r=!fi(i,s),a=this._positionChanged(s,e);(r||a)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let s=this.options,r=this._active||[],a=this._getActiveElements(t,r,e,i),o=this._positionChanged(a,t),l=e||!fi(a,r)||o;return l&&(this._active=a,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,i,s){let r=this.options;if(t.type==="mouseout")return[];if(!s)return e;let a=this.chart.getElementsAtEventForMode(t,r.mode,r,i);return r.reverse&&a.reverse(),a}_positionChanged(t,e){let{caretX:i,caretY:s,options:r}=this,a=Bi[r.position].call(this,t,e);return a!==!1&&(i!==a.x||s!==a.y)}};Rs.positioners=Bi;var Y0={id:"tooltip",_element:Rs,positioners:Bi,afterInit(n,t,e){e&&(n.tooltip=new Rs({chart:n,options:e}))},beforeUpdate(n,t,e){n.tooltip&&n.tooltip.initialize(e)},reset(n,t,e){n.tooltip&&n.tooltip.initialize(e)},afterDraw(n){let t=n.tooltip;if(t&&t._willRender()){let e={tooltip:t};if(n.notifyPlugins("beforeTooltipDraw",e)===!1)return;t.draw(n.ctx),n.notifyPlugins("afterTooltipDraw",e)}},afterEvent(n,t){if(n.tooltip){let e=t.replay;n.tooltip.handleEvent(t.event,e,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(n,t)=>t.bodyFont.size,boxWidth:(n,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:Ae,title(n){if(n.length>0){let t=n[0],e=t.chart.data.labels,i=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndexn!=="filter"&&n!=="itemSort"&&n!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},G0=Object.freeze({__proto__:null,Decimation:u0,Filler:D0,Legend:L0,SubTitle:$0,Title:I0,Tooltip:Y0}),q0=(n,t,e,i)=>(typeof t=="string"?(e=n.push(t)-1,i.unshift({index:e,label:t})):isNaN(t)&&(e=null),e);function U0(n,t,e,i){let s=n.indexOf(t);if(s===-1)return q0(n,t,e,i);let r=n.lastIndexOf(t);return s!==r?e:s}var X0=(n,t)=>n===null?null:Wt(Math.round(n),0,t),ji=class extends fn{constructor(t){super(t);this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){let e=this._addedLabels;if(e.length){let i=this.getLabels();for(let{index:s,label:r}of e)i[s]===r&&i.splice(s,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(_t(t))return null;let i=this.getLabels();return e=isFinite(e)&&i[e]===t?e:U0(i,t,at(e,t),this._addedLabels),X0(e,i.length-1)}determineDataLimits(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),{min:i,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){let t=this.min,e=this.max,i=this.options.offset,s=[],r=this.getLabels();r=t===0&&e===r.length-1?r:r.slice(t,e+1),this._valueRange=Math.max(r.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let a=t;a<=e;a++)s.push({value:a});return s}getLabelForValue(t){let e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}};ji.id="category";ji.defaults={ticks:{callback:ji.prototype.getLabelForValue}};function K0(n,t){let e=[],i=1e-14,{bounds:s,step:r,min:a,max:o,precision:l,count:c,maxTicks:u,maxDigits:d,includeBounds:p}=n,m=r||1,b=u-1,{min:S,max:M}=t,E=!_t(a),L=!_t(o),$=!_t(c),R=(M-S)/(d+1),F=Or((M-S)/b/m)*m,B,H,G,Z;if(Fb&&(F=Or(Z*F/b/m)*m),_t(l)||(B=Math.pow(10,l),F=Math.ceil(F*B)/B),s==="ticks"?(H=Math.floor(S/F)*F,G=Math.ceil(M/F)*F):(H=S,G=M),E&&L&&r&&ml((o-a)/r,F/1e3)?(Z=Math.round(Math.min((o-a)/F,u)),F=(o-a)/Z,H=a,G=o):$?(H=E?a:H,G=L?o:G,Z=c-1,F=(G-H)/Z):(Z=(G-H)/F,Nn(Z,Math.round(Z),F/1e3)?Z=Math.round(Z):Z=Math.ceil(Z));let nt=Math.max(Dr(F),Dr(H));B=Math.pow(10,_t(l)?nt:l),H=Math.round(H*B)/B,G=Math.round(G*B)/B;let ot=0;for(E&&(p&&H!==a?(e.push({value:a}),Hs=e?s:l,o=l=>r=i?r:l;if(t){let l=Me(s),c=Me(r);l<0&&c<0?o(0):l>0&&c>0&&a(0)}if(s===r){let l=1;(r>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(l=Math.abs(r*.05)),o(r+l),t||a(s-l)}this.min=s,this.max=r}getTickLimit(){let t=this.options.ticks,{maxTicksLimit:e,stepSize:i}=t,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),e=e||11),e&&(s=Math.min(e,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){let t=this.options,e=t.ticks,i=this.getTickLimit();i=Math.max(2,i);let s={maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},r=this._range||this,a=K0(s,r);return t.bounds==="ticks"&&Er(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){let t=this.ticks,e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){let s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return Xn(t,this.chart.options.locale,this.options.ticks.format)}},Ls=class extends Ni{determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=It(t)?t:0,this.max=It(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){let t=this.isHorizontal(),e=t?this.width:this.height,i=_e(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,r=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,r.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}};Ls.id="linear";Ls.defaults={ticks:{callback:Cs.formatters.numeric}};function hh(n){return n/Math.pow(10,Math.floor(be(n)))===1}function Z0(n,t){let e=Math.floor(be(t.max)),i=Math.ceil(t.max/Math.pow(10,e)),s=[],r=ge(n.min,Math.pow(10,Math.floor(be(t.min)))),a=Math.floor(be(r)),o=Math.floor(r/Math.pow(10,a)),l=a<0?Math.pow(10,Math.abs(a)):1;do s.push({value:r,major:hh(r)}),++o,o===10&&(o=1,++a,l=a>=0?1:l),r=Math.round(o*Math.pow(10,a)*l)/l;while(a0?i:null}determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=It(t)?Math.max(0,t):null,this.max=It(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),i=this.min,s=this.max,r=l=>i=t?i:l,a=l=>s=e?s:l,o=(l,c)=>Math.pow(10,Math.floor(be(l))+c);i===s&&(i<=0?(r(1),a(10)):(r(o(i,-1)),a(o(s,1)))),i<=0&&r(o(s,-1)),s<=0&&a(o(i,1)),this._zero&&this.min!==this._suggestedMin&&i===o(this.min,0)&&r(o(i,-1)),this.min=i,this.max=s}buildTicks(){let t=this.options,e={min:this._userMin,max:this._userMax},i=Z0(e,this);return t.bounds==="ticks"&&Er(i,this,"value"),t.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}getLabelForValue(t){return t===void 0?"0":Xn(t,this.chart.options.locale,this.options.ticks.format)}configure(){let t=this.min;super.configure(),this._startValue=be(t),this._valueRange=be(this.max)-be(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(be(t)-this._startValue)/this._valueRange)}getValueForPixel(t){let e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}};Fs.id="logarithmic";Fs.defaults={ticks:{callback:Cs.formatters.logarithmic,major:{enabled:!0}}};function ka(n){let t=n.ticks;if(t.display&&n.display){let e=Qt(t.backdropPadding);return at(t.font&&t.font.size,dt.font.size)+e.height}return 0}function J0(n,t,e){return e=Ot(e)?e:[e],{w:El(n,t.string,e),h:e.length*t.lineHeight}}function uh(n,t,e,i,s){return n===i||n===s?{start:t-e/2,end:t+e/2}:ns?{start:t-e,end:t}:{start:t,end:t+e}}function Q0(n){let t={l:n.left+n._padding.left,r:n.right-n._padding.right,t:n.top+n._padding.top,b:n.bottom-n._padding.bottom},e=Object.assign({},t),i=[],s=[],r=n._pointLabels.length,a=n.options.pointLabels,o=a.centerPointLabels?At/r:0;for(let l=0;lt.r&&(o=(i.end-t.r)/r,n.r=Math.max(n.r,t.r+o)),s.startt.b&&(l=(s.end-t.b)/a,n.b=Math.max(n.b,t.b+l))}function ev(n,t,e){let i=[],s=n._pointLabels.length,r=n.options,a=ka(r)/2,o=n.drawingArea,l=r.pointLabels.centerPointLabels?At/s:0;for(let c=0;c270||e<90)&&(n-=t),n}function rv(n,t){let{ctx:e,options:{pointLabels:i}}=n;for(let s=t-1;s>=0;s--){let r=i.setContext(n.getPointLabelContext(s)),a=Ht(r.font),{x:o,y:l,textAlign:c,left:u,top:d,right:p,bottom:m}=n._pointLabelItems[s],{backdropColor:b}=r;if(!_t(b)){let S=cn(r.borderRadius),M=Qt(r.backdropPadding);e.fillStyle=b;let E=u-M.left,L=d-M.top,$=p-u+M.width,R=m-d+M.height;Object.values(S).some(F=>F!==0)?(e.beginPath(),Gn(e,{x:E,y:L,w:$,h:R,radius:S}),e.fill()):e.fillRect(E,L,$,R)}ln(e,n._pointLabels[s],o,l+a.lineHeight/2,a,{color:r.color,textAlign:c,textBaseline:"middle"})}}function fh(n,t,e,i){let{ctx:s}=n;if(e)s.arc(n.xCenter,n.yCenter,t,0,Pt);else{let r=n.getPointPosition(0,t);s.moveTo(r.x,r.y);for(let a=1;a{let s=Et(this.options.pointLabels.callback,[e,i],this);return s||s===0?s:""}).filter((e,i)=>this.chart.getDataVisibility(i))}fit(){let t=this.options;t.display&&t.pointLabels.display?Q0(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){let e=Pt/(this._pointLabels.length||1),i=this.options.startAngle||0;return ae(t*e+_e(i))}getDistanceFromCenterForValue(t){if(_t(t))return NaN;let e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(_t(t))return NaN;let e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){let e=this._pointLabels||[];if(t>=0&&t{if(u!==0){o=this.getDistanceFromCenterForValue(c.value);let d=s.setContext(this.getContext(u-1));av(this,d,o,r)}}),i.display){for(t.save(),a=r-1;a>=0;a--){let c=i.setContext(this.getPointLabelContext(a)),{color:u,lineWidth:d}=c;!d||!u||(t.lineWidth=d,t.strokeStyle=u,t.setLineDash(c.borderDash),t.lineDashOffset=c.borderDashOffset,o=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(a,o),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){let t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;let s=this.getIndexAngle(0),r,a;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((o,l)=>{if(l===0&&!e.reverse)return;let c=i.setContext(this.getContext(l)),u=Ht(c.font);if(r=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){t.font=u.string,a=t.measureText(o.label).width,t.fillStyle=c.backdropColor;let d=Qt(c.backdropPadding);t.fillRect(-a/2-d.left,-r-u.size/2-d.top,a+d.width,u.size+d.height)}ln(t,o.label,0,-r,u,{color:c.color})}),t.restore()}drawTitle(){}};Jn.id="radialLinear";Jn.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Cs.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(n){return n},padding:5,centerPointLabels:!1}};Jn.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};Jn.descriptors={angleLines:{_fallback:"grid"}};var Is={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},le=Object.keys(Is);function lv(n,t){return n-t}function dh(n,t){if(_t(t))return null;let e=n._adapter,{parser:i,round:s,isoWeekday:r}=n._parseOpts,a=t;return typeof i=="function"&&(a=i(a)),It(a)||(a=typeof i=="string"?e.parse(a,i):e.parse(a)),a===null?null:(s&&(a=s==="week"&&(jn(r)||r===!0)?e.startOf(a,"isoWeek",r):e.startOf(a,s)),+a)}function ph(n,t,e,i){let s=le.length;for(let r=le.indexOf(n);r=le.indexOf(e);r--){let a=le[r];if(Is[a].common&&n._adapter.diff(s,i,a)>=t-1)return a}return le[e?le.indexOf(e):0]}function hv(n){for(let t=le.indexOf(n)+1,e=le.length;t=t?e[i]:e[s];n[r]=!0}}function uv(n,t,e,i){let s=n._adapter,r=+s.startOf(t[0].value,i),a=t[t.length-1].value,o,l;for(o=r;o<=a;o=+s.add(o,1,i))l=e[o],l>=0&&(t[l].major=!0);return t}function mh(n,t,e){let i=[],s={},r=t.length,a,o;for(a=0;a+t.value))}initOffsets(t){let e=0,i=0,s,r;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?e=1-s:e=(this.getDecimalForValue(t[1])-s)/2,r=this.getDecimalForValue(t[t.length-1]),t.length===1?i=r:i=(r-this.getDecimalForValue(t[t.length-2]))/2);let a=t.length<3?.5:.25;e=Wt(e,0,a),i=Wt(i,0,a),this._offsets={start:e,end:i,factor:1/(e+1+i)}}_generate(){let t=this._adapter,e=this.min,i=this.max,s=this.options,r=s.time,a=r.unit||ph(r.minUnit,e,i,this._getLabelCapacity(e)),o=at(r.stepSize,1),l=a==="week"?r.isoWeekday:!1,c=jn(l)||l===!0,u={},d=e,p,m;if(c&&(d=+t.startOf(d,"isoWeek",l)),d=+t.startOf(d,c?"day":a),t.diff(i,e,a)>1e5*o)throw new Error(e+" and "+i+" are too far apart with stepSize of "+o+" "+a);let b=s.ticks.source==="data"&&this.getDataTimestamps();for(p=d,m=0;pS-M).map(S=>+S)}getLabelForValue(t){let e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,s){let r=this.options,a=r.time.displayFormats,o=this._unit,l=this._majorUnit,c=o&&a[o],u=l&&a[l],d=i[e],p=l&&u&&d&&d.major,m=this._adapter.format(t,s||(p?u:c)),b=r.ticks.callback;return b?Et(b,[m,e,i],this):m}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?o:1}getDataTimestamps(){let t=this._cache.data||[],e,i;if(t.length)return t;let s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(e=0,i=s.length;e=n[i].pos&&t<=n[s].pos&&({lo:i,hi:s}=Le(n,"pos",t)),{pos:r,time:o}=n[i],{pos:a,time:l}=n[s]):(t>=n[i].time&&t<=n[s].time&&({lo:i,hi:s}=Le(n,"time",t)),{time:r,pos:o}=n[i],{time:a,pos:l}=n[s]);let c=a-r;return c?o+(l-o)*(t-r)/c:o}var zs=class extends Qn{constructor(t){super(t);this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=$s(e,this.min),this._tableRange=$s(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){let{min:e,max:i}=this,s=[],r=[],a,o,l,c,u;for(a=0,o=t.length;a=e&&c<=i&&s.push(c);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(a=0,o=s.length;a(0,_h.default)(e.trim()).alpha(t).hex())}function Ze(n,t){var i,s;let e=t.createDiv({cls:"chart-error"});e.createEl("b",{text:"Couldn't render Chart:"}),e.createEl("pre").createEl("code",{text:(s=(i=n.toString)==null?void 0:i.call(n))!=null?s:n}),e.createEl("hr"),e.createEl("span").innerHTML="You might also want to look for further Errors in the Console: Press CTRL + SHIFT + I to open it."}function pv(n){for(var t=window.atob(n),e=t.length,i=new Uint8Array(e),s=0;sL+F.before.length+F.lines.length+F.after.length,0);if(T+=n.beforeBody.length+n.afterBody.length,d&&(k+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),T){let L=t.displayColors?Math.max(o,l.lineHeight):l.lineHeight;k+=p*L+(T-p)*l.lineHeight+(T-1)*t.bodySpacing}m&&(k+=t.footerMarginTop+m*u.lineHeight+(m-1)*t.footerSpacing);let R=0,$=function(L){M=Math.max(M,e.measureText(L).width+R)};return e.save(),e.font=c.string,Mt(n.title,$),e.font=l.string,Mt(n.beforeBody.concat(n.afterBody),$),R=t.displayColors?a+2+t.boxPadding:0,Mt(i,L=>{Mt(L.before,$),Mt(L.lines,$),Mt(L.after,$)}),R=0,e.font=u.string,Mt(n.footer,$),e.restore(),M+=b.width,{width:M,height:k}}function N0(n,t){let{y:e,height:i}=t;return en.height-i/2?"bottom":"center"}function H0(n,t,e,i){let{x:s,width:r}=i,a=e.caretSize+e.caretPadding;if(n==="left"&&s+r+a>t.width||n==="right"&&s-r-a<0)return!0}function V0(n,t,e,i){let{x:s,width:r}=e,{width:a,chartArea:{left:o,right:l}}=n,c="center";return i==="center"?c=s<=(o+l)/2?"left":"right":s<=r/2?c="left":s>=a-r/2&&(c="right"),H0(c,n,t,e)&&(c="center"),c}function ch(n,t,e){let i=e.yAlign||t.yAlign||N0(n,e);return{xAlign:e.xAlign||t.xAlign||V0(n,t,e,i),yAlign:i}}function W0(n,t){let{x:e,width:i}=n;return t==="right"?e-=i:t==="center"&&(e-=i/2),e}function Y0(n,t,e){let{y:i,height:s}=n;return t==="top"?i+=e:t==="bottom"?i-=s+e:i-=s/2,i}function hh(n,t,e,i){let{caretSize:s,caretPadding:r,cornerRadius:a}=n,{xAlign:o,yAlign:l}=e,c=s+r,{topLeft:u,topRight:d,bottomLeft:m,bottomRight:p}=cn(a),b=W0(t,o),k=Y0(t,l,c);return l==="center"?o==="left"?b+=c:o==="right"&&(b-=c):o==="left"?b-=Math.max(u,m)+s:o==="right"&&(b+=Math.max(d,p)+s),{x:Yt(b,0,i.width-t.width),y:Yt(k,0,i.height-t.height)}}function As(n,t,e){let i=te(e.padding);return t==="center"?n.x+n.width/2:t==="right"?n.x+n.width-i.right:n.x+i.left}function uh(n){return Ie([],Xe(n))}function G0(n,t,e){return Ge(n,{tooltip:t,tooltipItems:e,type:"tooltip"})}function fh(n,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?n.override(e):n}var Ls=class extends xe{constructor(t){super();this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,r=new aa(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(r)),r}getContext(){return this.$context||(this.$context=G0(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:i}=e,s=i.beforeTitle.apply(this,[t]),r=i.title.apply(this,[t]),a=i.afterTitle.apply(this,[t]),o=[];return o=Ie(o,Xe(s)),o=Ie(o,Xe(r)),o=Ie(o,Xe(a)),o}getBeforeBody(t,e){return uh(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){let{callbacks:i}=e,s=[];return Mt(t,r=>{let a={before:[],lines:[],after:[]},o=fh(i,r);Ie(a.before,Xe(o.beforeLabel.call(this,r))),Ie(a.lines,o.label.call(this,r)),Ie(a.after,Xe(o.afterLabel.call(this,r))),s.push(a)}),s}getAfterBody(t,e){return uh(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){let{callbacks:i}=e,s=i.beforeFooter.apply(this,[t]),r=i.footer.apply(this,[t]),a=i.afterFooter.apply(this,[t]),o=[];return o=Ie(o,Xe(s)),o=Ie(o,Xe(r)),o=Ie(o,Xe(a)),o}_createItems(t){let e=this._active,i=this.chart.data,s=[],r=[],a=[],o=[],l,c;for(l=0,c=e.length;lt.filter(u,d,m,i))),t.itemSort&&(o=o.sort((u,d)=>t.itemSort(u,d,i))),Mt(o,u=>{let d=fh(t.callbacks,u);s.push(d.labelColor.call(this,u)),r.push(d.labelPointStyle.call(this,u)),a.push(d.labelTextColor.call(this,u))}),this.labelColors=s,this.labelPointStyles=r,this.labelTextColors=a,this.dataPoints=o,o}update(t,e){let i=this.options.setContext(this.getContext()),s=this._active,r,a=[];if(!s.length)this.opacity!==0&&(r={opacity:0});else{let o=zi[i.position].call(this,s,this._eventPosition);a=this._createItems(i),this.title=this.getTitle(a,i),this.beforeBody=this.getBeforeBody(a,i),this.body=this.getBody(a,i),this.afterBody=this.getAfterBody(a,i),this.footer=this.getFooter(a,i);let l=this._size=lh(this,i),c=Object.assign({},o,l),u=ch(this.chart,i,c),d=hh(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,r={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:o.x,caretY:o.y}}this._tooltipItems=a,this.$context=void 0,r&&this._resolveAnimations().update(this,r),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){let r=this.getCaretPosition(t,i,s);e.lineTo(r.x1,r.y1),e.lineTo(r.x2,r.y2),e.lineTo(r.x3,r.y3)}getCaretPosition(t,e,i){let{xAlign:s,yAlign:r}=this,{caretSize:a,cornerRadius:o}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=cn(o),{x:m,y:p}=t,{width:b,height:k}=e,M,T,R,$,L,F;return r==="center"?(L=p+k/2,s==="left"?(M=m,T=M-a,$=L+a,F=L-a):(M=m+b,T=M+a,$=L-a,F=L+a),R=M):(s==="left"?T=m+Math.max(l,u)+a:s==="right"?T=m+b-Math.max(c,d)-a:T=this.caretX,r==="top"?($=p,L=$-a,M=T-a,R=T+a):($=p+k,L=$+a,M=T+a,R=T-a),F=$),{x1:M,x2:T,x3:R,y1:$,y2:L,y3:F}}drawTitle(t,e,i){let s=this.title,r=s.length,a,o,l;if(r){let c=Sn(i.rtl,this.x,this.width);for(t.x=As(this,i.titleAlign,i),e.textAlign=c.textAlign(i.titleAlign),e.textBaseline="middle",a=Vt(i.titleFont),o=i.titleSpacing,e.fillStyle=i.titleColor,e.font=a.string,l=0;l$!==0)?(t.beginPath(),t.fillStyle=r.multiKeyBackground,Gn(t,{x:M,y:k,w:c,h:l,radius:R}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),Gn(t,{x:T,y:k+1,w:c-2,h:l-2,radius:R}),t.fill()):(t.fillStyle=r.multiKeyBackground,t.fillRect(M,k,c,l),t.strokeRect(M,k,c,l),t.fillStyle=a.backgroundColor,t.fillRect(T,k+1,c-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){let{body:s}=this,{bodySpacing:r,bodyAlign:a,displayColors:o,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=Vt(i.bodyFont),m=d.lineHeight,p=0,b=Sn(i.rtl,this.x,this.width),k=function(G){e.fillText(G,b.x(t.x+p),t.y+m/2),t.y+=m+r},M=b.textAlign(a),T,R,$,L,F,z,H;for(e.textAlign=a,e.textBaseline="middle",e.font=d.string,t.x=As(this,M,i),e.fillStyle=i.bodyColor,Mt(this.beforeBody,k),p=o&&M!=="right"?a==="center"?c/2+u:c+2+u:0,L=0,z=s.length;L0&&e.stroke()}_updateAnimationTarget(t){let e=this.chart,i=this.$animations,s=i&&i.x,r=i&&i.y;if(s||r){let a=zi[t.position].call(this,this._active,this._eventPosition);if(!a)return;let o=this._size=lh(this,t),l=Object.assign({},a,this._size),c=ch(e,t,l),u=hh(t,l,c,e);(s._to!==u.x||r._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=o.width,this.height=o.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(t){let e=this.options.setContext(this.getContext()),i=this.opacity;if(!i)return;this._updateAnimationTarget(e);let s={width:this.width,height:this.height},r={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;let a=te(e.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&o&&(t.save(),t.globalAlpha=i,this.drawBackground(r,t,s,e),na(t,e.textDirection),r.y+=a.top,this.drawTitle(r,t,e),this.drawBody(r,t,e),this.drawFooter(r,t,e),ia(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){let i=this._active,s=t.map(({datasetIndex:o,index:l})=>{let c=this.chart.getDatasetMeta(o);if(!c)throw new Error("Cannot find a dataset at index "+o);return{datasetIndex:o,element:c.data[l],index:l}}),r=!ui(i,s),a=this._positionChanged(s,e);(r||a)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let s=this.options,r=this._active||[],a=this._getActiveElements(t,r,e,i),o=this._positionChanged(a,t),l=e||!ui(a,r)||o;return l&&(this._active=a,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,i,s){let r=this.options;if(t.type==="mouseout")return[];if(!s)return e;let a=this.chart.getElementsAtEventForMode(t,r.mode,r,i);return r.reverse&&a.reverse(),a}_positionChanged(t,e){let{caretX:i,caretY:s,options:r}=this,a=zi[r.position].call(this,t,e);return a!==!1&&(i!==a.x||s!==a.y)}};Ls.positioners=zi;var q0={id:"tooltip",_element:Ls,positioners:zi,afterInit(n,t,e){e&&(n.tooltip=new Ls({chart:n,options:e}))},beforeUpdate(n,t,e){n.tooltip&&n.tooltip.initialize(e)},reset(n,t,e){n.tooltip&&n.tooltip.initialize(e)},afterDraw(n){let t=n.tooltip;if(t&&t._willRender()){let e={tooltip:t};if(n.notifyPlugins("beforeTooltipDraw",e)===!1)return;t.draw(n.ctx),n.notifyPlugins("afterTooltipDraw",e)}},afterEvent(n,t){if(n.tooltip){let e=t.replay;n.tooltip.handleEvent(t.event,e,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(n,t)=>t.bodyFont.size,boxWidth:(n,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:Ae,title(n){if(n.length>0){let t=n[0],e=t.chart.data.labels,i=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndexn!=="filter"&&n!=="itemSort"&&n!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},U0=Object.freeze({__proto__:null,Decimation:d0,Filler:L0,Legend:I0,SubTitle:B0,Title:z0,Tooltip:q0}),X0=(n,t,e,i)=>(typeof t=="string"?(e=n.push(t)-1,i.unshift({index:e,label:t})):isNaN(t)&&(e=null),e);function K0(n,t,e,i){let s=n.indexOf(t);if(s===-1)return X0(n,t,e,i);let r=n.lastIndexOf(t);return s!==r?e:s}var Z0=(n,t)=>n===null?null:Yt(Math.round(n),0,t),Bi=class extends fn{constructor(t){super(t);this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){let e=this._addedLabels;if(e.length){let i=this.getLabels();for(let{index:s,label:r}of e)i[s]===r&&i.splice(s,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(bt(t))return null;let i=this.getLabels();return e=isFinite(e)&&i[e]===t?e:K0(i,t,at(e,t),this._addedLabels),Z0(e,i.length-1)}determineDataLimits(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),{min:i,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){let t=this.min,e=this.max,i=this.options.offset,s=[],r=this.getLabels();r=t===0&&e===r.length-1?r:r.slice(t,e+1),this._valueRange=Math.max(r.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let a=t;a<=e;a++)s.push({value:a});return s}getLabelForValue(t){let e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}};Bi.id="category";Bi.defaults={ticks:{callback:Bi.prototype.getLabelForValue}};function J0(n,t){let e=[],i=1e-14,{bounds:s,step:r,min:a,max:o,precision:l,count:c,maxTicks:u,maxDigits:d,includeBounds:m}=n,p=r||1,b=u-1,{min:k,max:M}=t,T=!bt(a),R=!bt(o),$=!bt(c),L=(M-k)/(d+1),F=Tr((M-k)/b/p)*p,z,H,G,q;if(Fb&&(F=Tr(q*F/b/p)*p),bt(l)||(z=Math.pow(10,l),F=Math.ceil(F*z)/z),s==="ticks"?(H=Math.floor(k/F)*F,G=Math.ceil(M/F)*F):(H=k,G=M),T&&R&&r&&bl((o-a)/r,F/1e3)?(q=Math.round(Math.min((o-a)/F,u)),F=(o-a)/q,H=a,G=o):$?(H=T?a:H,G=R?o:G,q=c-1,F=(G-H)/q):(q=(G-H)/F,Nn(q,Math.round(q),F/1e3)?q=Math.round(q):q=Math.ceil(q));let et=Math.max(Or(F),Or(H));z=Math.pow(10,bt(l)?et:l),H=Math.round(H*z)/z,G=Math.round(G*z)/z;let ot=0;for(T&&(m&&H!==a?(e.push({value:a}),Hs=e?s:l,o=l=>r=i?r:l;if(t){let l=Ce(s),c=Ce(r);l<0&&c<0?o(0):l>0&&c>0&&a(0)}if(s===r){let l=1;(r>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(l=Math.abs(r*.05)),o(r+l),t||a(s-l)}this.min=s,this.max=r}getTickLimit(){let t=this.options.ticks,{maxTicksLimit:e,stepSize:i}=t,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),e=e||11),e&&(s=Math.min(e,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){let t=this.options,e=t.ticks,i=this.getTickLimit();i=Math.max(2,i);let s={maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},r=this._range||this,a=J0(s,r);return t.bounds==="ticks"&&Pr(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){let t=this.ticks,e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){let s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return Xn(t,this.chart.options.locale,this.options.ticks.format)}},Rs=class extends ji{determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=$t(t)?t:0,this.max=$t(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){let t=this.isHorizontal(),e=t?this.width:this.height,i=ve(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,r=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,r.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}};Rs.id="linear";Rs.defaults={ticks:{callback:ws.formatters.numeric}};function ph(n){return n/Math.pow(10,Math.floor(me(n)))===1}function Q0(n,t){let e=Math.floor(me(t.max)),i=Math.ceil(t.max/Math.pow(10,e)),s=[],r=pe(n.min,Math.pow(10,Math.floor(me(t.min)))),a=Math.floor(me(r)),o=Math.floor(r/Math.pow(10,a)),l=a<0?Math.pow(10,Math.abs(a)):1;do s.push({value:r,major:ph(r)}),++o,o===10&&(o=1,++a,l=a>=0?1:l),r=Math.round(o*Math.pow(10,a)*l)/l;while(a0?i:null}determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=$t(t)?Math.max(0,t):null,this.max=$t(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),i=this.min,s=this.max,r=l=>i=t?i:l,a=l=>s=e?s:l,o=(l,c)=>Math.pow(10,Math.floor(me(l))+c);i===s&&(i<=0?(r(1),a(10)):(r(o(i,-1)),a(o(s,1)))),i<=0&&r(o(s,-1)),s<=0&&a(o(i,1)),this._zero&&this.min!==this._suggestedMin&&i===o(this.min,0)&&r(o(i,-1)),this.min=i,this.max=s}buildTicks(){let t=this.options,e={min:this._userMin,max:this._userMax},i=Q0(e,this);return t.bounds==="ticks"&&Pr(i,this,"value"),t.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}getLabelForValue(t){return t===void 0?"0":Xn(t,this.chart.options.locale,this.options.ticks.format)}configure(){let t=this.min;super.configure(),this._startValue=me(t),this._valueRange=me(this.max)-me(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(me(t)-this._startValue)/this._valueRange)}getValueForPixel(t){let e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}};Fs.id="logarithmic";Fs.defaults={ticks:{callback:ws.formatters.logarithmic,major:{enabled:!0}}};function Ca(n){let t=n.ticks;if(t.display&&n.display){let e=te(t.backdropPadding);return at(t.font&&t.font.size,dt.font.size)+e.height}return 0}function tv(n,t,e){return e=Et(e)?e:[e],{w:$l(n,t.string,e),h:e.length*t.lineHeight}}function gh(n,t,e,i,s){return n===i||n===s?{start:t-e/2,end:t+e/2}:ns?{start:t-e,end:t}:{start:t,end:t+e}}function ev(n){let t={l:n.left+n._padding.left,r:n.right-n._padding.right,t:n.top+n._padding.top,b:n.bottom-n._padding.bottom},e=Object.assign({},t),i=[],s=[],r=n._pointLabels.length,a=n.options.pointLabels,o=a.centerPointLabels?Lt/r:0;for(let l=0;lt.r&&(o=(i.end-t.r)/r,n.r=Math.max(n.r,t.r+o)),s.startt.b&&(l=(s.end-t.b)/a,n.b=Math.max(n.b,t.b+l))}function iv(n,t,e){let i=[],s=n._pointLabels.length,r=n.options,a=Ca(r)/2,o=n.drawingArea,l=r.pointLabels.centerPointLabels?Lt/s:0;for(let c=0;c270||e<90)&&(n-=t),n}function ov(n,t){let{ctx:e,options:{pointLabels:i}}=n;for(let s=t-1;s>=0;s--){let r=i.setContext(n.getPointLabelContext(s)),a=Vt(r.font),{x:o,y:l,textAlign:c,left:u,top:d,right:m,bottom:p}=n._pointLabelItems[s],{backdropColor:b}=r;if(!bt(b)){let k=cn(r.borderRadius),M=te(r.backdropPadding);e.fillStyle=b;let T=u-M.left,R=d-M.top,$=m-u+M.width,L=p-d+M.height;Object.values(k).some(F=>F!==0)?(e.beginPath(),Gn(e,{x:T,y:R,w:$,h:L,radius:k}),e.fill()):e.fillRect(T,R,$,L)}ln(e,n._pointLabels[s],o,l+a.lineHeight/2,a,{color:r.color,textAlign:c,textBaseline:"middle"})}}function mh(n,t,e,i){let{ctx:s}=n;if(e)s.arc(n.xCenter,n.yCenter,t,0,Ot);else{let r=n.getPointPosition(0,t);s.moveTo(r.x,r.y);for(let a=1;a{let s=Dt(this.options.pointLabels.callback,[e,i],this);return s||s===0?s:""}).filter((e,i)=>this.chart.getDataVisibility(i))}fit(){let t=this.options;t.display&&t.pointLabels.display?ev(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){let e=Ot/(this._pointLabels.length||1),i=this.options.startAngle||0;return oe(t*e+ve(i))}getDistanceFromCenterForValue(t){if(bt(t))return NaN;let e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(bt(t))return NaN;let e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){let e=this._pointLabels||[];if(t>=0&&t{if(u!==0){o=this.getDistanceFromCenterForValue(c.value);let d=s.setContext(this.getContext(u-1));lv(this,d,o,r)}}),i.display){for(t.save(),a=r-1;a>=0;a--){let c=i.setContext(this.getPointLabelContext(a)),{color:u,lineWidth:d}=c;!d||!u||(t.lineWidth=d,t.strokeStyle=u,t.setLineDash(c.borderDash),t.lineDashOffset=c.borderDashOffset,o=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(a,o),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){let t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;let s=this.getIndexAngle(0),r,a;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((o,l)=>{if(l===0&&!e.reverse)return;let c=i.setContext(this.getContext(l)),u=Vt(c.font);if(r=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){t.font=u.string,a=t.measureText(o.label).width,t.fillStyle=c.backdropColor;let d=te(c.backdropPadding);t.fillRect(-a/2-d.left,-r-u.size/2-d.top,a+d.width,u.size+d.height)}ln(t,o.label,0,-r,u,{color:c.color})}),t.restore()}drawTitle(){}};Zn.id="radialLinear";Zn.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ws.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(n){return n},padding:5,centerPointLabels:!1}};Zn.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};Zn.descriptors={angleLines:{_fallback:"grid"}};var Is={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ce=Object.keys(Is);function hv(n,t){return n-t}function bh(n,t){if(bt(t))return null;let e=n._adapter,{parser:i,round:s,isoWeekday:r}=n._parseOpts,a=t;return typeof i=="function"&&(a=i(a)),$t(a)||(a=typeof i=="string"?e.parse(a,i):e.parse(a)),a===null?null:(s&&(a=s==="week"&&(xn(r)||r===!0)?e.startOf(a,"isoWeek",r):e.startOf(a,s)),+a)}function vh(n,t,e,i){let s=ce.length;for(let r=ce.indexOf(n);r=ce.indexOf(e);r--){let a=ce[r];if(Is[a].common&&n._adapter.diff(s,i,a)>=t-1)return a}return ce[e?ce.indexOf(e):0]}function fv(n){for(let t=ce.indexOf(n)+1,e=ce.length;t=t?e[i]:e[s];n[r]=!0}}function dv(n,t,e,i){let s=n._adapter,r=+s.startOf(t[0].value,i),a=t[t.length-1].value,o,l;for(o=r;o<=a;o=+s.add(o,1,i))l=e[o],l>=0&&(t[l].major=!0);return t}function yh(n,t,e){let i=[],s={},r=t.length,a,o;for(a=0;a+t.value))}initOffsets(t){let e=0,i=0,s,r;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?e=1-s:e=(this.getDecimalForValue(t[1])-s)/2,r=this.getDecimalForValue(t[t.length-1]),t.length===1?i=r:i=(r-this.getDecimalForValue(t[t.length-2]))/2);let a=t.length<3?.5:.25;e=Yt(e,0,a),i=Yt(i,0,a),this._offsets={start:e,end:i,factor:1/(e+1+i)}}_generate(){let t=this._adapter,e=this.min,i=this.max,s=this.options,r=s.time,a=r.unit||vh(r.minUnit,e,i,this._getLabelCapacity(e)),o=at(r.stepSize,1),l=a==="week"?r.isoWeekday:!1,c=xn(l)||l===!0,u={},d=e,m,p;if(c&&(d=+t.startOf(d,"isoWeek",l)),d=+t.startOf(d,c?"day":a),t.diff(i,e,a)>1e5*o)throw new Error(e+" and "+i+" are too far apart with stepSize of "+o+" "+a);let b=s.ticks.source==="data"&&this.getDataTimestamps();for(m=d,p=0;mk-M).map(k=>+k)}getLabelForValue(t){let e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,s){let r=this.options,a=r.time.displayFormats,o=this._unit,l=this._majorUnit,c=o&&a[o],u=l&&a[l],d=i[e],m=l&&u&&d&&d.major,p=this._adapter.format(t,s||(m?u:c)),b=r.ticks.callback;return b?Dt(b,[p,e,i],this):p}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?o:1}getDataTimestamps(){let t=this._cache.data||[],e,i;if(t.length)return t;let s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(e=0,i=s.length;e=n[i].pos&&t<=n[s].pos&&({lo:i,hi:s}=Re(n,"pos",t)),{pos:r,time:o}=n[i],{pos:a,time:l}=n[s]):(t>=n[i].time&&t<=n[s].time&&({lo:i,hi:s}=Re(n,"time",t)),{time:r,pos:o}=n[i],{time:a,pos:l}=n[s]);let c=a-r;return c?o+(l-o)*(t-r)/c:o}var zs=class extends Jn{constructor(t){super(t);this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=$s(e,this.min),this._tableRange=$s(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){let{min:e,max:i}=this,s=[],r=[],a,o,l,c,u;for(a=0,o=t.length;a=e&&c<=i&&s.push(c);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(a=0,o=s.length;a(0,kh.default)(e.trim()).alpha(t).hex())}function Ze(n,t){var i,s;let e=t.createDiv({cls:"chart-error"});e.createEl("b",{text:"Couldn't render Chart:"}),e.createEl("pre").createEl("code",{text:(s=(i=n.toString)==null?void 0:i.call(n))!=null?s:n}),e.createEl("hr"),e.createEl("span").innerHTML="You might also want to look for further Errors in the Console: Press CTRL + SHIFT + I to open it."}function mv(n){for(var t=window.atob(n),e=t.length,i=new Uint8Array(e),s=0;s` - title: ${r.dataTitle} `)} width: 80% beginAtZero: true -\`\`\``;n.replaceSelection(s)}function Pa(n,t,e){let i;try{i=Mh.Extractor.extractObject(n,t,!1)}catch(a){throw new Sh.Notice("Table malformed"),a}let s=Object.keys(Object.values(i)[0]),r=Object.keys(i).map(a=>({dataTitle:a,data:Object.values(i[a])}));return e&&(r=r.filter(a=>e.contains(a.dataTitle))),{labels:s,dataFields:r}}oe.register(...bh);var Ns=class{constructor(t){this.plugin=t}async datasetPrep(t,e,i=!1){var c,u,d,p;let s=[];if(!t.id){let m=[];if(this.plugin.settings.themeable||i){let b=1;for(;;){let S=getComputedStyle(e).getPropertyValue(`--chart-color-${b}`);if(S)m.push(S),b++;else break}}for(let b=0;t.series.length>b;b++)s.push({label:(c=t.series[b].title)!=null?c:"",data:t.series[b].data,backgroundColor:t.labelColors?m.length?Ke(m,t.transparency):Ke(this.plugin.settings.colors,t.transparency):m.length?Ke(m,t.transparency)[b]:Ke(this.plugin.settings.colors,t.transparency)[b],borderColor:t.labelColors?m.length?m:this.plugin.settings.colors:m.length?m[b]:this.plugin.settings.colors[b],borderWidth:1,fill:t.fill?t.stacked?b==0?"origin":"-1":!0:!1,tension:(u=t.tension)!=null?u:0})}let r=t.time?{type:"time",time:{unit:t.time}}:null,a=t.labels,o=getComputedStyle(e).getPropertyValue("--background-modifier-border"),l;return oe.defaults.color=getComputedStyle(e).getPropertyValue("--text-muted"),oe.defaults.font.family=getComputedStyle(e).getPropertyValue("--mermaid-font"),oe.defaults.plugins=ui(hi({},oe.defaults.plugins),{legend:ui(hi({},oe.defaults.plugins.legend),{display:(d=t.legend)!=null?d:!0,position:(p=t.legendPosition)!=null?p:"top"})}),oe.defaults.layout.padding=t.padding,t.type=="radar"||t.type=="polarArea"?l={type:t.type,data:{labels:a,datasets:s},options:{scales:{r:ui(hi({},r),{grid:{color:o},beginAtZero:t.beginAtZero,max:t.rMax,min:t.rMin,ticks:{backdropColor:o}})}}}:t.type=="bar"||t.type=="line"?l={type:t.type,data:{labels:a,datasets:s},options:{indexAxis:t.indexAxis,spanGaps:t.spanGaps,scales:{y:{min:t.yMin,max:t.yMax,reverse:t.yReverse,ticks:{display:t.yTickDisplay,padding:t.yTickPadding},display:t.yDisplay,stacked:t.stacked,beginAtZero:t.beginAtZero,grid:{color:o},title:{display:t.yTitle,text:t.yTitle}},x:ui(hi({},r),{min:t.xMin,max:t.xMax,reverse:t.xReverse,ticks:{display:t.xTickDisplay,padding:t.xTickPadding},display:t.xDisplay,stacked:t.stacked,grid:{color:o},title:{display:t.xTitle,text:t.xTitle}})}}}:l={type:t.type,data:{labels:a,datasets:s},options:{spanGaps:t.spanGaps}},{chartOptions:l,width:t.width}}async imageRenderer(t,e){let i=l=>new Promise(c=>setTimeout(c,l)),s=document.createElement("canvas"),r=s.getContext("2d"),a=await this.datasetPrep(await(0,js.parseYaml)(t.replace("```chart","").replace("```","").replace(/\t/g," ")),document.body);new oe(r,a.chartOptions),document.body.append(s),await i(250);let o=s.toDataURL(e.format,e.quality);return document.body.removeChild(s),o.substring(o.indexOf(",")+1)}renderRaw(t,e){var s;let i=e.createEl("canvas");if(t.chartOptions)try{let r=new oe(i.getContext("2d"),t.chartOptions);return i.parentElement.style.width=(s=t.width)!=null?s:"100%",i.parentElement.style.margin="auto",r}catch(r){return Ze(r,e),null}else try{return new oe(i.getContext("2d"),t)}catch(r){return Ze(r,e),null}}async renderFromYaml(t,e,i){this.plugin.app.workspace.onLayoutReady(()=>i.addChild(new Ch(t,e,this,i.sourcePath)))}},Ch=class extends js.MarkdownRenderChild{constructor(t,e,i,s){super(e);this.el=e,this.data=t,this.renderer=i,this.ownPath=s,this.changeHandler=this.changeHandler.bind(this),this.reload=this.reload.bind(this)}async onload(){var t,e,i,s;try{let r=await this.renderer.datasetPrep(this.data,this.el),a={};if(this.data.id){let o=[];if(this.renderer.plugin.settings.themeable){let p=1;for(;;){let m=getComputedStyle(this.el).getPropertyValue(`--chart-color-${p}`);if(m)o.push(m),p++;else break}}a.datasets=[];let l;this.data.file&&(l=this.renderer.plugin.app.metadataCache.getFirstLinkpathDest(this.data.file,this.renderer.plugin.app.workspace.getActiveFile().path));let c=(t=this.renderer.plugin.app.metadataCache.getFileCache(l!=null?l:this.renderer.plugin.app.vault.getAbstractFileByPath(this.ownPath)).sections.find(p=>p.id===this.data.id))==null?void 0:t.position;if(!c)throw"Invalid id and/or file";let u=(await this.renderer.plugin.app.vault.cachedRead(this.data.file?l:this.renderer.plugin.app.vault.getAbstractFileByPath(this.ownPath))).substring(c.start.offset,c.end.offset),d;try{d=Pa(u,(e=this.data.layout)!=null?e:"columns",this.data.select)}catch(p){throw"There is no table at that id and/or file"}a.labels=d.labels;for(let p=0;d.dataFields.length>p;p++)a.datasets.push({label:(i=d.dataFields[p].dataTitle)!=null?i:"",data:d.dataFields[p].data,backgroundColor:this.data.labelColors?o.length?Ke(o,this.data.transparency):Ke(this.renderer.plugin.settings.colors,this.data.transparency):o.length?Ke(o,this.data.transparency)[p]:Ke(this.renderer.plugin.settings.colors,this.data.transparency)[p],borderColor:this.data.labelColors?o.length?o:this.renderer.plugin.settings.colors:o.length?o[p]:this.renderer.plugin.settings.colors[p],borderWidth:1,fill:this.data.fill?this.data.stacked?p==0?"origin":"-1":!0:!1,tension:(s=this.data.tension)!=null?s:0});r.chartOptions.data.labels=a.labels,r.chartOptions.data.datasets=a.datasets}this.chart=this.renderer.renderRaw(r,this.containerEl)}catch(r){Ze(r,this.el)}this.data.id&&this.renderer.plugin.app.metadataCache.on("changed",this.changeHandler),this.renderer.plugin.app.workspace.on("css-change",this.reload)}changeHandler(t){(this.data.file?t.basename===this.data.file:t.path===this.ownPath)&&this.reload()}reload(){this.onunload(),this.onload()}onunload(){this.renderer.plugin.app.metadataCache.off("changed",this.changeHandler),this.renderer.plugin.app.workspace.off("css-change",this.reload),this.el.empty(),this.chart&&this.chart.destroy(),this.chart=null}};var Hs={colors:["rgba(255, 99, 132, 1)","rgba(54, 162, 235, 1)","rgba(255, 206, 86, 1)","rgba(75, 192, 192, 1)","rgba(153, 102, 255, 1)","rgba(255, 159, 64, 1)"],contextMenu:!0,imageSettings:{format:"image/png",quality:.92},themeable:!1};var $e=De(require("obsidian"));var Oa=function(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")},Ea=function(){function n(t,e){for(var i=0;i1&&arguments[1]!==void 0?arguments[1]:1,e=t>0?n.toFixed(t).replace(/0+$/,"").replace(/\.$/,""):n.toString();return e||"0"}var vv=function(){function n(t,e,i,s){Oa(this,n);var r=this;function a(l){if(l.startsWith("hsl")){var c=l.match(/([\-\d\.e]+)/g).map(Number),u=Vs(c,4),d=u[0],p=u[1],m=u[2],b=u[3];b===void 0&&(b=1),d/=360,p/=100,m/=100,r.hsla=[d,p,m,b]}else if(l.startsWith("rgb")){var S=l.match(/([\-\d\.e]+)/g).map(Number),M=Vs(S,4),E=M[0],L=M[1],$=M[2],R=M[3];R===void 0&&(R=1),r.rgba=[E,L,$,R]}else l.startsWith("#")?r.rgba=n.hexToRgb(l):r.rgba=n.nameToRgb(l)||n.hexToRgb(l)}if(t!==void 0)if(Array.isArray(t))this.rgba=t;else if(i===void 0){var o=t&&""+t;o&&a(o.toLowerCase())}else this.rgba=[t,e,i,s===void 0?1:s]}return Ea(n,[{key:"printRGB",value:function(e){var i=e?this.rgba:this.rgba.slice(0,3),s=i.map(function(r,a){return Th(r,a===3?3:0)});return e?"rgba("+s+")":"rgb("+s+")"}},{key:"printHSL",value:function(e){var i=[360,100,100,1],s=["","%","%",""],r=e?this.hsla:this.hsla.slice(0,3),a=r.map(function(o,l){return Th(o*i[l],l===3?3:1)+s[l]});return e?"hsla("+a+")":"hsl("+a+")"}},{key:"printHex",value:function(e){var i=this.hex;return e?i:i.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=n.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=n.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,i=e.map(function(s,r){return r<3?s.toString(16):Math.round(s*255).toString(16)});return"#"+i.map(function(s){return s.padStart(2,"0")}).join("")},set:function(e){this.rgba=n.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var i=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!i.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var s=i.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(r){return parseInt(r,16)});return s[3]=s[3]/255,s}},{key:"nameToRgb",value:function(e){var i=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),s=bv[i];return s===void 0?s:n.hexToRgb(s.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var i=Vs(e,4),s=i[0],r=i[1],a=i[2],o=i[3];s/=255,r/=255,a/=255;var l=Math.max(s,r,a),c=Math.min(s,r,a),u=void 0,d=void 0,p=(l+c)/2;if(l===c)u=d=0;else{var m=l-c;switch(d=p>.5?m/(2-l-c):m/(l+c),l){case s:u=(r-a)/m+(r1&&(L-=1),L<1/6?M+(E-M)*6*L:L<1/2?E:L<2/3?M+(E-M)*(2/3-L)*6:M},p=a<.5?a*(1+r):a+r-a*r,m=2*a-p;l=d(m,p,s+1/3),c=d(m,p,s),u=d(m,p,s-1/3)}var b=[l*255,c*255,u*255].map(Math.round);return b[3]=o,b}}]),n}(),_v=function(){function n(){Oa(this,n),this._events=[]}return Ea(n,[{key:"add",value:function(e,i,s){e.addEventListener(i,s,!1),this._events.push({target:e,type:i,handler:s})}},{key:"remove",value:function(e,i,s){this._events=this._events.filter(function(r){var a=!0;return e&&e!==r.target&&(a=!1),i&&i!==r.type&&(a=!1),s&&s!==r.handler&&(a=!1),a&&n._doRemove(r.target,r.type,r.handler),!a})}},{key:"destroy",value:function(){this._events.forEach(function(e){return n._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,i,s){e.removeEventListener(i,s,!1)}}]),n}();function yv(n){var t=document.createElement("div");return t.innerHTML=n,t.firstElementChild}function Da(n,t,e){var i=!1;function s(l,c,u){return Math.max(c,Math.min(l,u))}function r(l,c,u){if(u&&(i=!0),!!i){l.preventDefault();var d=t.getBoundingClientRect(),p=d.width,m=d.height,b=c.clientX,S=c.clientY,M=s(b-d.left,0,p),E=s(S-d.top,0,m);e(M/p,E/m)}}function a(l,c){var u=l.buttons===void 0?l.which:l.buttons;u===1?r(l,l,c):i=!1}function o(l,c){l.touches.length===1?r(l,l.touches[0],c):i=!1}n.add(t,"mousedown",function(l){a(l,!0)}),n.add(t,"touchstart",function(l){o(l,!0)}),n.add(window,"mousemove",a),n.add(t,"touchmove",o),n.add(window,"mouseup",function(l){i=!1}),n.add(t,"touchend",function(l){i=!1}),n.add(t,"touchcancel",function(l){i=!1})}var xv=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em, - linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,wv=360,Ph="keydown",Ws="mousedown",Aa="focusin";function Ie(n,t){return(t||document).querySelector(n)}function Oh(n){n.preventDefault(),n.stopPropagation()}function Ra(n,t,e,i,s){n.add(t,Ph,function(r){e.indexOf(r.key)>=0&&(s&&Oh(r),i(r))})}var La=function(){function n(t){Oa(this,n),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new _v,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(t)}return Ea(n,[{key:"setOptions",value:function(e){var i=this;if(!e)return;var s=this.settings;function r(c,u,d){for(var p in c)d&&d.indexOf(p)>=0||(u[p]=c[p])}if(e instanceof HTMLElement)s.parent=e;else{s.parent&&e.parent&&s.parent!==e.parent&&(this._events.remove(s.parent),this._popupInited=!1),r(e,s),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var a=e.color||e.colour;a&&this._setColor(a)}var o=s.parent;if(o&&s.popup&&!this._popupInited){var l=function(u){return i.openHandler(u)};this._events.add(o,"click",l),Ra(this._events,o,[" ","Spacebar","Enter"],l),this._popupInited=!0}else e.parent&&!s.popup&&this.show()}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var i=e&&e.type===Ph?this._domEdit:this.domElement;setTimeout(function(){return i.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var i=e&&e.type,s=!1;if(!e)s=!0;else if(i===Ws||i===Aa){var r=(this.__containedEvent||0)+100;e.timeStamp>r&&(s=!0)}else Oh(e),s=!0;s&&this.hide()&&(this.settings.parent.style.pointerEvents="",i!==Ws&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,i){this.closeHandler(),this.setOptions(e),i&&this.openHandler()}},{key:"setColor",value:function(e,i){this._setColor(e,{silent:i})}},{key:"_setColor",value:function(e,i){if(typeof e=="string"&&(e=e.trim()),!!e){i=i||{};var s=void 0;try{s=new vv(e)}catch(a){if(i.failSilently)return;throw a}if(!this.settings.alpha){var r=s.hsla;r[3]=1,s.hsla=r}this.colour=this.color=s,this._setHSLA(null,null,null,null,i)}}},{key:"setColour",value:function(e,i){this.setColor(e,i)}},{key:"show",value:function(){var e=this.settings.parent;if(!e)return!1;if(this.domElement){var i=this._toggleDOM(!0);return this._setPosition(),i}var s=this.settings.template||'
',r=yv(s);return this.domElement=r,this._domH=Ie(".picker_hue",r),this._domSL=Ie(".picker_sl",r),this._domA=Ie(".picker_alpha",r),this._domEdit=Ie(".picker_editor input",r),this._domSample=Ie(".picker_sample",r),this._domOkay=Ie(".picker_done button",r),this._domCancel=Ie(".picker_cancel button",r),r.classList.add("layout_"+this.settings.layout),this.settings.alpha||r.classList.add("no_alpha"),this.settings.editor||r.classList.add("no_editor"),this.settings.cancelButton||r.classList.add("no_cancel"),this._ifPopup(function(){return r.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var e=this,i=this,s=this.domElement,r=this._events;function a(c,u,d){r.add(c,u,d)}a(s,"click",function(c){return c.preventDefault()}),Da(r,this._domH,function(c,u){return i._setHSLA(c)}),Da(r,this._domSL,function(c,u){return i._setHSLA(null,c,1-u)}),this.settings.alpha&&Da(r,this._domA,function(c,u){return i._setHSLA(null,null,null,1-u)});var o=this._domEdit;a(o,"input",function(c){i._setColor(this.value,{fromEditor:!0,failSilently:!0})}),a(o,"focus",function(c){var u=this;u.selectionStart===u.selectionEnd&&u.select()}),this._ifPopup(function(){var c=function(p){return e.closeHandler(p)};a(window,Ws,c),a(window,Aa,c),Ra(r,s,["Esc","Escape"],c);var u=function(p){e.__containedEvent=p.timeStamp};a(s,Ws,u),a(s,Aa,u),a(e._domCancel,"click",c)});var l=function(u){e._ifPopup(function(){return e.closeHandler(u)}),e.onDone&&e.onDone(e.colour)};a(this._domOkay,"click",l),Ra(r,s,["Enter"],l)}},{key:"_setPosition",value:function(){var e=this.settings.parent,i=this.domElement;e!==i.parentNode&&e.appendChild(i),this._ifPopup(function(s){getComputedStyle(e).position==="static"&&(e.style.position="relative");var r=s===!0?"popup_right":"popup_"+s;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(a){a===r?i.classList.add(a):i.classList.remove(a)}),i.classList.add(r)})}},{key:"_setHSLA",value:function(e,i,s,r,a){a=a||{};var o=this.colour,l=o.hsla;[e,i,s,r].forEach(function(c,u){(c||c===0)&&(l[u]=c)}),o.hsla=l,this._updateUI(a),this.onChange&&!a.silent&&this.onChange(o)}},{key:"_updateUI",value:function(e){if(!this.domElement)return;e=e||{};var i=this.colour,s=i.hsla,r="hsl("+s[0]*wv+", 100%, 50%)",a=i.hslString,o=i.hslaString,l=this._domH,c=this._domSL,u=this._domA,d=Ie(".picker_selector",l),p=Ie(".picker_selector",c),m=Ie(".picker_selector",u);function b(B,H,G){H.style.left=G*100+"%"}function S(B,H,G){H.style.top=G*100+"%"}b(l,d,s[0]),this._domSL.style.backgroundColor=this._domH.style.color=r,b(c,p,s[1]),S(c,p,1-s[2]),c.style.color=a,S(u,m,1-s[3]);var M=a,E=M.replace("hsl","hsla").replace(")",", 0)"),L="linear-gradient("+[M,E]+")";if(this._domA.style.background=L+", "+xv,!e.fromEditor){var $=this.settings.editorFormat,R=this.settings.alpha,F=void 0;switch($){case"rgb":F=i.printRGB(R);break;case"hsl":F=i.printHSL(R);break;default:F=i.printHex(R)}this._domEdit.value=F}this._domSample.style.color=o}},{key:"_ifPopup",value:function(e,i){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):i&&i()}},{key:"_toggleDOM",value:function(e){var i=this.domElement;if(!i)return!1;var s=e?"":"none",r=i.style.display!==s;return r&&(i.style.display=s),r}}]),n}();Ys=document.createElement("style"),Ys.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(Ys),La.StyleElement=Ys;var Ys;var Fa=class extends $e.PluginSettingTab{constructor(t,e){super(t,e);this.plugin=e}isColor(t){var e=new Option().style;return e.color=t,e.color==t}display(){let{containerEl:t,plugin:e}=this;t.empty(),t.createEl("h2",{text:"Settings - Obsidian Charts"}),t.createEl("h3",{text:"General"}),new $e.Setting(t).setName("Show Button in Context Menu").setDesc("If enabled, you will se a Button in your Editor Context Menu to open the Chart Creator.").addToggle(r=>{r.setValue(this.plugin.settings.contextMenu).onChange(async a=>{e.settings.contextMenu=a,await e.saveSettings()})}),new $e.Setting(t).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development:").addButton(r=>{r.buttonEl.outerHTML='
'}),t.createEl("h3",{text:"Colors",attr:{style:"margin-bottom: 0"}});let i=t.createEl("p",{cls:"setting-item-description"});i.append("Set the Colors for your Charts. This will set the border Color and the inner Color will be the same, but with less opacity. This ensures better compatibility with Dark and Light Mode. ","You can use any ",i.createEl("a",{href:"https://www.w3schools.com/cssref/css_colors.asp",text:"valid CSS Color."})),new $e.Setting(t).setName("Enable Theme Colors").setDesc("If your Obsidian Theme (or snippet) provides Colors you can use them instead.").addToggle(r=>{r.setValue(e.settings.themeable).onChange(async a=>{e.settings.themeable=a,await e.saveSettings(),this.display()})}),e.settings.themeable||(e.settings.colors.forEach((r,a)=>{let o=document.createDocumentFragment();o.createSpan({text:"\u25CF",attr:{style:`color: ${r}`}}),o.appendText(` Color #${a+1}`),new $e.Setting(t).setName(o).setDesc("This will be the border Color used in the Charts you create.").addButton(l=>{l.setButtonText("Change Color"),new La({parent:l.buttonEl,onDone:async c=>{this.plugin.settings.colors[a]=c.hex,await this.plugin.saveSettings(),this.display()},popup:"left",color:r,alpha:!1})}).addExtraButton(l=>{l.setIcon("trash").setTooltip("Remove").onClick(async()=>{this.plugin.settings.colors.remove(r),await this.plugin.saveSettings(),this.display()}),this.plugin.settings.colors.length===1&&l.setDisabled(!0)}).addExtraButton(l=>{l.setIcon("reset").setTooltip("Reset to default").onClick(async()=>{var c;this.plugin.settings.colors[a]=(c=Hs.colors[a])!=null?c:"#ffffff",await this.plugin.saveSettings(),this.display()})})}),new $e.Setting(t).addButton(r=>{r.setButtonText("Add Color").onClick(async()=>{this.plugin.settings.colors.push("#ffffff"),await this.plugin.saveSettings(),this.display()})})),t.createEl("h3",{text:"Chart to Image Converter"});let s=t.createEl("details");s.createEl("summary",{text:"How to use"}),s.createEl("img",{attr:{src:"https://media.discordapp.net/attachments/855181471643861002/897811615037136966/charttoimage.gif"}}),new $e.Setting(t).setName("Image Format").setDesc("The Format to be used, when generating a Image from a Chart.").addDropdown(r=>{r.addOptions({"image/jpeg":"jpeg","image/png":"png","image/webp":"webp"}),r.setValue(e.settings.imageSettings.format),r.onChange(async a=>{e.settings.imageSettings.format=a,await e.saveSettings()})}),new $e.Setting(t).setName("Image Quality").setDesc("If using a lossy format, set the Image Quality.").addSlider(r=>{r.setDynamicTooltip().setLimits(.01,1,.01).setValue(e.settings.imageSettings.quality).onChange(async a=>{e.settings.imageSettings.quality=a,await e.saveSettings()})})}};var Gh=De(require("obsidian"));function ei(){}function Ia(n){return n()}function Eh(){return Object.create(null)}function gn(n){n.forEach(Ia)}function Dh(n){return typeof n=="function"}function Ah(n,t){return n!=n?t==t:n!==t||n&&typeof n=="object"||typeof n=="function"}function Rh(n){return Object.keys(n).length===0}var __=new Set;var Lh=!1;function kv(){Lh=!0}function Sv(){Lh=!1}function Y(n,t){n.appendChild(t)}function Fh(n,t,e){let i=Mv(n);if(!i.getElementById(t)){let s=tt("style");s.id=t,s.textContent=e,Cv(i,s)}}function Mv(n){if(!n)return document;let t=n.getRootNode?n.getRootNode():n.ownerDocument;return t&&t.host?t:n.ownerDocument}function Cv(n,t){Y(n.head||n,t)}function Hi(n,t,e){n.insertBefore(t,e||null)}function ni(n){n.parentNode.removeChild(n)}function Ih(n,t){for(let e=0;en.removeEventListener(t,e,i)}function it(n,t,e){e==null?n.removeAttribute(t):n.getAttribute(t)!==e&&n.setAttribute(t,e)}function $a(n){return n===""?null:+n}function Pv(n){return Array.from(n.childNodes)}function Pe(n,t){n.value=t??""}function he(n,t,e,i){e===null?n.style.removeProperty(t):n.style.setProperty(t,e,i?"important":"")}function za(n,t){for(let e=0;e{let s=n.$$.callbacks[t];if(s){let r=Ov(t,e,{cancelable:i});return s.slice().forEach(a=>{a.call(n,r)}),!r.defaultPrevented}return!0}}var Yi=[];var Gs=[],qs=[],zh=[],Dv=Promise.resolve(),ja=!1;function Av(){ja||(ja=!0,Dv.then(Bh))}function Gi(n){qs.push(n)}var Na=new Set,Us=0;function Bh(){let n=Vi;do{for(;Us{let l=r.map(Ia).filter(Dh);a?a.push(...l):gn(l),n.$$.on_mount=[]}),o.forEach(Gi)}function jh(n,t){let e=n.$$;e.fragment!==null&&(gn(e.on_destroy),e.fragment&&e.fragment.d(t),e.on_destroy=e.fragment=null,e.ctx=[])}function $v(n,t){n.$$.dirty[0]===-1&&(Yi.push(n),Av(),n.$$.dirty.fill(0)),n.$$.dirty[t/31|0]|=1<{let b=m.length?m[0]:p;return c.ctx&&s(c.ctx[d],c.ctx[d]=b)&&(!c.skip_bound&&c.bound[d]&&c.bound[d](b),u&&$v(n,d)),p}):[],c.update(),u=!0,gn(c.before_update),c.fragment=i?i(c.ctx):!1,t.target){if(t.hydrate){kv();let d=Pv(t.target);c.fragment&&c.fragment.l(d),d.forEach(ni)}else c.fragment&&c.fragment.c();t.intro&&Fv(n.$$.fragment),Iv(n,t.target,t.anchor,t.customElement),Sv(),Bh()}Wi(l)}var zv;typeof HTMLElement=="function"&&(zv=class extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:n}=this.$$;this.$$.on_disconnect=n.map(Ia).filter(Dh);for(let t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(n,t,e){this[n]=e}disconnectedCallback(){gn(this.$$.on_disconnect)}$destroy(){jh(this,1),this.$destroy=ei}$on(n,t){let e=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return e.push(t),()=>{let i=e.indexOf(t);i!==-1&&e.splice(i,1)}}$set(n){this.$$set&&!Rh(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}});var Ha=class{$destroy(){jh(this,1),this.$destroy=ei}$on(t,e){let i=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return i.push(e),()=>{let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}$set(t){this.$$set&&!Rh(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}};var Xs=De(require("obsidian"));function Bv(n){Fh(n,"svelte-1tlkntj",".addMoreButtonContainer.svelte-1tlkntj{display:flex;justify-content:flex-end;margin-top:0.4rem}.subDesc.svelte-1tlkntj{font-size:smaller;opacity:0.5;margin:0}.desc.svelte-1tlkntj{padding-right:1em}.mainDesc.svelte-1tlkntj{margin:0}table.svelte-1tlkntj{margin:auto}.controlElement.svelte-1tlkntj{text-align:center}.chart-modal.svelte-1tlkntj{overflow-y:auto}.modalColumn.svelte-1tlkntj{display:flex;gap:2em}.chartPreview.svelte-1tlkntj{width:30vw;display:flex;justify-content:center;align-items:center}")}function Hh(n,t,e){let i=n.slice();return i[27]=t[e],i[28]=t,i[29]=e,i}function Vh(n){let t,e,i,s,r,a,o,l,c,u,d;function p(){n[20].call(r,n[28],n[29])}function m(){n[21].call(c,n[28],n[29])}return{c(){t=tt("tr"),e=tt("td"),e.innerHTML=`

Y Axis

-

Set Data Fields (Comma seperated)

`,i=Yt(),s=tt("td"),r=tt("input"),a=Yt(),o=tt("br"),l=Yt(),c=tt("input"),it(e,"class","desc svelte-1tlkntj"),it(r,"type","text"),it(r,"placeholder","Name"),it(c,"type","text"),it(c,"placeholder","1, -2, 11, 5"),he(c,"margin-top","3px"),it(s,"class","controlElement svelte-1tlkntj")},m(b,S){Hi(b,t,S),Y(t,e),Y(t,i),Y(t,s),Y(s,r),Pe(r,n[27].dataTitle),Y(s,a),Y(s,o),Y(s,l),Y(s,c),Pe(c,n[27].data),u||(d=[ce(r,"input",p),ce(c,"input",m)],u=!0)},p(b,S){n=b,S&128&&r.value!==n[27].dataTitle&&Pe(r,n[27].dataTitle),S&128&&c.value!==n[27].data&&Pe(c,n[27].data)},d(b){b&&ni(t),u=!1,gn(d)}}}function jv(n){let t,e,i,s,r,a,o,l,c,u,d,p,m,b,S,M,E,L,$,R,F,B,H,G,Z,nt,ot,rt,wt,st,Q,ht,ue,ie,fe,Ft,Vt,Bt,jt,Gt,w,v,y,D,T,P,U,V,X,J,vt,Rt,Ct,$t,zt,se,ve,de,mn,Ee,ze,ii,si,Cn,Be,bn,Tn,ri,Je=n[7],te=[];for(let yt=0;ytChart Type

-

Choose a Chart Type

`,c=tt("td"),u=tt("select"),d=tt("option"),d.textContent="Bar",p=tt("option"),p.textContent="Line",m=tt("option"),m.textContent="Pie",b=tt("option"),b.textContent="Doughnut",S=tt("option"),S.textContent="Radar",M=tt("option"),M.textContent="Polar Area",E=Yt(),L=tt("tr"),$=tt("td"),$.innerHTML=`

Smoothness

-

Changes the smoothness of the Chart

`,R=tt("td"),F=tt("input"),B=Yt(),H=tt("tr"),G=tt("td"),G.innerHTML=`

Width

-

Changes the horizontal width

`,Z=tt("td"),nt=tt("input"),ot=Yt(),rt=tt("tr"),wt=tt("td"),wt.innerHTML=`

Fill

-

Fill the underside of the Chart

`,st=tt("td"),Q=tt("input"),ht=Yt(),ue=tt("tr"),ie=tt("td"),ie.innerHTML=`

Distinct Colors

-

Use distinct Colors for each Label

`,fe=tt("td"),Ft=tt("input"),Vt=Yt(),Bt=tt("tr"),jt=tt("td"),jt.innerHTML=`

Start at Zero

-

Don't cut the graph at the bottom

`,Gt=tt("td"),w=tt("input"),v=Yt(),y=tt("hr"),D=Yt(),T=tt("table"),P=tt("tr"),U=tt("td"),U.innerHTML=`

X Axis

-

Set Labels (Comma seperated)

`,V=Yt(),X=tt("td"),J=tt("input"),vt=tt("br"),Rt=Yt(),Ct=tt("hr"),$t=Yt(),zt=tt("table");for(let yt=0;ytn[13].call(u)),it(c,"class","controlElement svelte-1tlkntj"),it($,"class","desc svelte-1tlkntj"),it(F,"type","range"),it(F,"min","0"),it(F,"max","100"),it(F,"class","slider"),it(R,"class","controlElement svelte-1tlkntj"),it(G,"class","desc svelte-1tlkntj"),it(nt,"type","range"),it(nt,"min","20"),it(nt,"max","100"),it(nt,"class","slider"),it(Z,"class","controlElement svelte-1tlkntj"),it(wt,"class","desc svelte-1tlkntj"),it(Q,"type","checkbox"),it(Q,"class","task-list-item-checkbox"),he(Q,"width","16px"),he(Q,"height","16px"),it(st,"class","controlElement svelte-1tlkntj"),it(ie,"class","desc svelte-1tlkntj"),it(Ft,"type","checkbox"),it(Ft,"class","task-list-item-checkbox"),he(Ft,"width","16px"),he(Ft,"height","16px"),it(fe,"class","controlElement svelte-1tlkntj"),it(jt,"class","desc svelte-1tlkntj"),it(w,"type","checkbox"),it(w,"class","task-list-item-checkbox"),he(w,"width","16px"),he(w,"height","16px"),it(Gt,"class","controlElement svelte-1tlkntj"),he(a,"width","100%"),it(a,"class","svelte-1tlkntj"),it(U,"class","desc svelte-1tlkntj"),it(J,"type","text"),it(J,"placeholder","Monday, Tuesday, ..."),it(X,"class","controlElement svelte-1tlkntj"),he(T,"width","100%"),it(T,"class","svelte-1tlkntj"),it(ve,"class","addMoreButtonContainer svelte-1tlkntj"),he(zt,"width","100%"),it(zt,"class","svelte-1tlkntj"),it(ze,"id","preview"),it(Ee,"class","chartPreview svelte-1tlkntj"),it(s,"class","modalColumn svelte-1tlkntj"),it(t,"class","chart-modal svelte-1tlkntj"),it(bn,"class","mod-cta"),he(Be,"display","flex"),he(Be,"justify-content","center"),he(Be,"align-items","center")},m(yt,ee){Hi(yt,t,ee),Y(t,e),Y(t,i),Y(t,s),Y(s,r),Y(r,a),Y(a,o),Y(o,l),Y(o,c),Y(c,u),Y(u,d),Y(u,p),Y(u,m),Y(u,b),Y(u,S),Y(u,M),za(u,n[0]),Y(a,E),Y(a,L),Y(L,$),Y(L,R),Y(R,F),Pe(F,n[1]),Y(a,B),Y(a,H),Y(H,G),Y(H,Z),Y(Z,nt),Pe(nt,n[2]),Y(a,ot),Y(a,rt),Y(rt,wt),Y(rt,st),Y(st,Q),Q.checked=n[3],Y(a,ht),Y(a,ue),Y(ue,ie),Y(ue,fe),Y(fe,Ft),Ft.checked=n[4],Y(a,Vt),Y(a,Bt),Y(Bt,jt),Y(Bt,Gt),Y(Gt,w),w.checked=n[5],Y(r,v),Y(r,y),Y(r,D),Y(r,T),Y(T,P),Y(P,U),Y(P,V),Y(P,X),Y(X,J),Pe(J,n[6]),Y(X,vt),Y(r,Rt),Y(r,Ct),Y(r,$t),Y(r,zt);for(let qt=0;qt{var ht;o&&o.destroy(),(ht=M.lastElementChild)===null||ht===void 0||ht.remove(),o=s.renderRaw(await s.datasetPrep((0,Xs.parseYaml)(st),Q),Q)},500,!0);function L(){let st=i.getDoc(),Q=st.getCursor();o.destroy(),st.replaceRange("```chart\n"+S+"\n```",Q),r("close")}function $(){a=$h(this),e(0,a)}function R(){l=$a(this.value),e(1,l)}function F(){c=$a(this.value),e(2,c)}function B(){u=this.checked,e(3,u)}function H(){d=this.checked,e(4,d)}function G(){p=this.checked,e(5,p)}function Z(){m=this.value,e(6,m)}function nt(st,Q){st[Q].dataTitle=this.value,e(7,b)}function ot(st,Q){st[Q].data=this.value,e(7,b)}let rt=()=>e(7,b=[...b,{data:"",dataTitle:""}]);function wt(st){Gs[st?"unshift":"push"](()=>{M=st,e(8,M)})}return n.$$set=st=>{"editor"in st&&e(10,i=st.editor),"renderer"in st&&e(11,s=st.renderer)},n.$$.update=()=>{if(n.$$.dirty&255){t:e(12,S=`type: ${a} -labels: [${m}] +\`\`\``;n.replaceSelection(s)}function Da(n,t,e){let i;try{i=Oh.Extractor.extractObject(n,t,!1)}catch(a){throw new Ph.Notice("Table malformed"),a}let s=Object.keys(Object.values(i)[0]),r=Object.keys(i).map(a=>({dataTitle:a,data:Object.values(i[a])}));return e&&(r=r.filter(a=>e.contains(a.dataTitle))),{labels:s,dataFields:r}}le.register(...xh);var Ns=class{constructor(t){this.plugin=t}async datasetPrep(t,e,i=!1){var c,u,d,m;let s=[];if(!t.id){let p=[];if(this.plugin.settings.themeable||i){let b=1;for(;;){let k=getComputedStyle(e).getPropertyValue(`--chart-color-${b}`);if(k)p.push(k),b++;else break}}for(let b=0;t.series.length>b;b++)s.push({label:(c=t.series[b].title)!=null?c:"",data:t.series[b].data,backgroundColor:t.labelColors?p.length?Ke(p,t.transparency):Ke(this.plugin.settings.colors,t.transparency):p.length?Ke(p,t.transparency)[b]:Ke(this.plugin.settings.colors,t.transparency)[b],borderColor:t.labelColors?p.length?p:this.plugin.settings.colors:p.length?p[b]:this.plugin.settings.colors[b],borderWidth:1,fill:t.fill?t.stacked?b==0?"origin":"-1":!0:!1,tension:(u=t.tension)!=null?u:0})}let r=t.time?{type:"time",time:{unit:t.time}}:null,a=t.labels,o=getComputedStyle(e).getPropertyValue("--background-modifier-border"),l;return le.defaults.color=getComputedStyle(e).getPropertyValue("--text-muted"),le.defaults.font.family=getComputedStyle(e).getPropertyValue("--mermaid-font"),le.defaults.plugins=hi(ci({},le.defaults.plugins),{legend:hi(ci({},le.defaults.plugins.legend),{display:(d=t.legend)!=null?d:!0,position:(m=t.legendPosition)!=null?m:"top"})}),le.defaults.layout.padding=t.padding,t.type=="radar"||t.type=="polarArea"?l={type:t.type,data:{labels:a,datasets:s},options:{scales:{r:hi(ci({},r),{grid:{color:o},beginAtZero:t.beginAtZero,max:t.rMax,min:t.rMin,ticks:{backdropColor:o}})}}}:t.type=="bar"||t.type=="line"?l={type:t.type,data:{labels:a,datasets:s},options:{indexAxis:t.indexAxis,spanGaps:t.spanGaps,scales:{y:{min:t.yMin,max:t.yMax,reverse:t.yReverse,ticks:{display:t.yTickDisplay,padding:t.yTickPadding},display:t.yDisplay,stacked:t.stacked,beginAtZero:t.beginAtZero,grid:{color:o},title:{display:t.yTitle,text:t.yTitle}},x:hi(ci({},r),{min:t.xMin,max:t.xMax,reverse:t.xReverse,ticks:{display:t.xTickDisplay,padding:t.xTickPadding},display:t.xDisplay,stacked:t.stacked,grid:{color:o},title:{display:t.xTitle,text:t.xTitle}})}}}:l={type:t.type,data:{labels:a,datasets:s},options:{spanGaps:t.spanGaps}},{chartOptions:l,width:t.width}}async imageRenderer(t,e){let i=l=>new Promise(c=>setTimeout(c,l)),s=document.createElement("canvas"),r=s.getContext("2d"),a=await this.datasetPrep(await(0,js.parseYaml)(t.replace("```chart","").replace("```","").replace(/\t/g," ")),document.body);new le(r,a.chartOptions),document.body.append(s),await i(250);let o=s.toDataURL(e.format,e.quality);return document.body.removeChild(s),o.substring(o.indexOf(",")+1)}renderRaw(t,e){var s;let i=e.createEl("canvas");if(t.chartOptions)try{let r=new le(i.getContext("2d"),t.chartOptions);return i.parentElement.style.width=(s=t.width)!=null?s:"100%",i.parentElement.style.margin="auto",r}catch(r){return Ze(r,e),null}else try{return new le(i.getContext("2d"),t)}catch(r){return Ze(r,e),null}}async renderFromYaml(t,e,i){this.plugin.app.workspace.onLayoutReady(()=>i.addChild(new Eh(t,e,this,i.sourcePath)))}},Eh=class extends js.MarkdownRenderChild{constructor(t,e,i,s){super(e);this.el=e,this.data=t,this.renderer=i,this.ownPath=s,this.changeHandler=this.changeHandler.bind(this),this.reload=this.reload.bind(this)}async onload(){var t,e,i,s;try{let r=await this.renderer.datasetPrep(this.data,this.el),a={};if(this.data.id){let o=[];if(this.renderer.plugin.settings.themeable){let m=1;for(;;){let p=getComputedStyle(this.el).getPropertyValue(`--chart-color-${m}`);if(p)o.push(p),m++;else break}}a.datasets=[];let l;this.data.file&&(l=this.renderer.plugin.app.metadataCache.getFirstLinkpathDest(this.data.file,this.renderer.plugin.app.workspace.getActiveFile().path));let c=(t=this.renderer.plugin.app.metadataCache.getFileCache(l!=null?l:this.renderer.plugin.app.vault.getAbstractFileByPath(this.ownPath)).sections.find(m=>m.id===this.data.id))==null?void 0:t.position;if(!c)throw"Invalid id and/or file";let u=(await this.renderer.plugin.app.vault.cachedRead(this.data.file?l:this.renderer.plugin.app.vault.getAbstractFileByPath(this.ownPath))).substring(c.start.offset,c.end.offset),d;try{d=Da(u,(e=this.data.layout)!=null?e:"columns",this.data.select)}catch(m){throw"There is no table at that id and/or file"}a.labels=d.labels;for(let m=0;d.dataFields.length>m;m++)a.datasets.push({label:(i=d.dataFields[m].dataTitle)!=null?i:"",data:d.dataFields[m].data,backgroundColor:this.data.labelColors?o.length?Ke(o,this.data.transparency):Ke(this.renderer.plugin.settings.colors,this.data.transparency):o.length?Ke(o,this.data.transparency)[m]:Ke(this.renderer.plugin.settings.colors,this.data.transparency)[m],borderColor:this.data.labelColors?o.length?o:this.renderer.plugin.settings.colors:o.length?o[m]:this.renderer.plugin.settings.colors[m],borderWidth:1,fill:this.data.fill?this.data.stacked?m==0?"origin":"-1":!0:!1,tension:(s=this.data.tension)!=null?s:0});r.chartOptions.data.labels=a.labels,r.chartOptions.data.datasets=a.datasets}this.chart=this.renderer.renderRaw(r,this.containerEl)}catch(r){Ze(r,this.el)}this.data.id&&this.renderer.plugin.app.metadataCache.on("changed",this.changeHandler),this.renderer.plugin.app.workspace.on("css-change",this.reload)}changeHandler(t){(this.data.file?t.basename===this.data.file:t.path===this.ownPath)&&this.reload()}reload(){this.onunload(),this.onload()}onunload(){this.renderer.plugin.app.metadataCache.off("changed",this.changeHandler),this.renderer.plugin.app.workspace.off("css-change",this.reload),this.el.empty(),this.chart&&this.chart.destroy(),this.chart=null}};var Hs={colors:["rgba(255, 99, 132, 1)","rgba(54, 162, 235, 1)","rgba(255, 206, 86, 1)","rgba(75, 192, 192, 1)","rgba(153, 102, 255, 1)","rgba(255, 159, 64, 1)"],contextMenu:!0,imageSettings:{format:"image/png",quality:.92},themeable:!1};var ze=De(require("obsidian"));var Aa=function(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")},La=function(){function n(t,e){for(var i=0;i1&&arguments[1]!==void 0?arguments[1]:1,e=t>0?n.toFixed(t).replace(/0+$/,"").replace(/\.$/,""):n.toString();return e||"0"}var yv=function(){function n(t,e,i,s){Aa(this,n);var r=this;function a(l){if(l.startsWith("hsl")){var c=l.match(/([\-\d\.e]+)/g).map(Number),u=Vs(c,4),d=u[0],m=u[1],p=u[2],b=u[3];b===void 0&&(b=1),d/=360,m/=100,p/=100,r.hsla=[d,m,p,b]}else if(l.startsWith("rgb")){var k=l.match(/([\-\d\.e]+)/g).map(Number),M=Vs(k,4),T=M[0],R=M[1],$=M[2],L=M[3];L===void 0&&(L=1),r.rgba=[T,R,$,L]}else l.startsWith("#")?r.rgba=n.hexToRgb(l):r.rgba=n.nameToRgb(l)||n.hexToRgb(l)}if(t!==void 0)if(Array.isArray(t))this.rgba=t;else if(i===void 0){var o=t&&""+t;o&&a(o.toLowerCase())}else this.rgba=[t,e,i,s===void 0?1:s]}return La(n,[{key:"printRGB",value:function(e){var i=e?this.rgba:this.rgba.slice(0,3),s=i.map(function(r,a){return Dh(r,a===3?3:0)});return e?"rgba("+s+")":"rgb("+s+")"}},{key:"printHSL",value:function(e){var i=[360,100,100,1],s=["","%","%",""],r=e?this.hsla:this.hsla.slice(0,3),a=r.map(function(o,l){return Dh(o*i[l],l===3?3:1)+s[l]});return e?"hsla("+a+")":"hsl("+a+")"}},{key:"printHex",value:function(e){var i=this.hex;return e?i:i.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=n.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=n.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,i=e.map(function(s,r){return r<3?s.toString(16):Math.round(s*255).toString(16)});return"#"+i.map(function(s){return s.padStart(2,"0")}).join("")},set:function(e){this.rgba=n.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var i=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!i.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var s=i.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(r){return parseInt(r,16)});return s[3]=s[3]/255,s}},{key:"nameToRgb",value:function(e){var i=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),s=_v[i];return s===void 0?s:n.hexToRgb(s.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var i=Vs(e,4),s=i[0],r=i[1],a=i[2],o=i[3];s/=255,r/=255,a/=255;var l=Math.max(s,r,a),c=Math.min(s,r,a),u=void 0,d=void 0,m=(l+c)/2;if(l===c)u=d=0;else{var p=l-c;switch(d=m>.5?p/(2-l-c):p/(l+c),l){case s:u=(r-a)/p+(r1&&(R-=1),R<1/6?M+(T-M)*6*R:R<1/2?T:R<2/3?M+(T-M)*(2/3-R)*6:M},m=a<.5?a*(1+r):a+r-a*r,p=2*a-m;l=d(p,m,s+1/3),c=d(p,m,s),u=d(p,m,s-1/3)}var b=[l*255,c*255,u*255].map(Math.round);return b[3]=o,b}}]),n}(),xv=function(){function n(){Aa(this,n),this._events=[]}return La(n,[{key:"add",value:function(e,i,s){e.addEventListener(i,s,!1),this._events.push({target:e,type:i,handler:s})}},{key:"remove",value:function(e,i,s){this._events=this._events.filter(function(r){var a=!0;return e&&e!==r.target&&(a=!1),i&&i!==r.type&&(a=!1),s&&s!==r.handler&&(a=!1),a&&n._doRemove(r.target,r.type,r.handler),!a})}},{key:"destroy",value:function(){this._events.forEach(function(e){return n._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,i,s){e.removeEventListener(i,s,!1)}}]),n}();function wv(n){var t=document.createElement("div");return t.innerHTML=n,t.firstElementChild}function Ra(n,t,e){var i=!1;function s(l,c,u){return Math.max(c,Math.min(l,u))}function r(l,c,u){if(u&&(i=!0),!!i){l.preventDefault();var d=t.getBoundingClientRect(),m=d.width,p=d.height,b=c.clientX,k=c.clientY,M=s(b-d.left,0,m),T=s(k-d.top,0,p);e(M/m,T/p)}}function a(l,c){var u=l.buttons===void 0?l.which:l.buttons;u===1?r(l,l,c):i=!1}function o(l,c){l.touches.length===1?r(l,l.touches[0],c):i=!1}n.add(t,"mousedown",function(l){a(l,!0)}),n.add(t,"touchstart",function(l){o(l,!0)}),n.add(window,"mousemove",a),n.add(t,"touchmove",o),n.add(window,"mouseup",function(l){i=!1}),n.add(t,"touchend",function(l){i=!1}),n.add(t,"touchcancel",function(l){i=!1})}var kv=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em, + linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,Sv=360,Ah="keydown",Ws="mousedown",Fa="focusin";function $e(n,t){return(t||document).querySelector(n)}function Lh(n){n.preventDefault(),n.stopPropagation()}function Ia(n,t,e,i,s){n.add(t,Ah,function(r){e.indexOf(r.key)>=0&&(s&&Lh(r),i(r))})}var $a=function(){function n(t){Aa(this,n),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new xv,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(t)}return La(n,[{key:"setOptions",value:function(e){var i=this;if(!e)return;var s=this.settings;function r(c,u,d){for(var m in c)d&&d.indexOf(m)>=0||(u[m]=c[m])}if(e instanceof HTMLElement)s.parent=e;else{s.parent&&e.parent&&s.parent!==e.parent&&(this._events.remove(s.parent),this._popupInited=!1),r(e,s),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var a=e.color||e.colour;a&&this._setColor(a)}var o=s.parent;if(o&&s.popup&&!this._popupInited){var l=function(u){return i.openHandler(u)};this._events.add(o,"click",l),Ia(this._events,o,[" ","Spacebar","Enter"],l),this._popupInited=!0}else e.parent&&!s.popup&&this.show()}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var i=e&&e.type===Ah?this._domEdit:this.domElement;setTimeout(function(){return i.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var i=e&&e.type,s=!1;if(!e)s=!0;else if(i===Ws||i===Fa){var r=(this.__containedEvent||0)+100;e.timeStamp>r&&(s=!0)}else Lh(e),s=!0;s&&this.hide()&&(this.settings.parent.style.pointerEvents="",i!==Ws&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,i){this.closeHandler(),this.setOptions(e),i&&this.openHandler()}},{key:"setColor",value:function(e,i){this._setColor(e,{silent:i})}},{key:"_setColor",value:function(e,i){if(typeof e=="string"&&(e=e.trim()),!!e){i=i||{};var s=void 0;try{s=new yv(e)}catch(a){if(i.failSilently)return;throw a}if(!this.settings.alpha){var r=s.hsla;r[3]=1,s.hsla=r}this.colour=this.color=s,this._setHSLA(null,null,null,null,i)}}},{key:"setColour",value:function(e,i){this.setColor(e,i)}},{key:"show",value:function(){var e=this.settings.parent;if(!e)return!1;if(this.domElement){var i=this._toggleDOM(!0);return this._setPosition(),i}var s=this.settings.template||'
',r=wv(s);return this.domElement=r,this._domH=$e(".picker_hue",r),this._domSL=$e(".picker_sl",r),this._domA=$e(".picker_alpha",r),this._domEdit=$e(".picker_editor input",r),this._domSample=$e(".picker_sample",r),this._domOkay=$e(".picker_done button",r),this._domCancel=$e(".picker_cancel button",r),r.classList.add("layout_"+this.settings.layout),this.settings.alpha||r.classList.add("no_alpha"),this.settings.editor||r.classList.add("no_editor"),this.settings.cancelButton||r.classList.add("no_cancel"),this._ifPopup(function(){return r.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var e=this,i=this,s=this.domElement,r=this._events;function a(c,u,d){r.add(c,u,d)}a(s,"click",function(c){return c.preventDefault()}),Ra(r,this._domH,function(c,u){return i._setHSLA(c)}),Ra(r,this._domSL,function(c,u){return i._setHSLA(null,c,1-u)}),this.settings.alpha&&Ra(r,this._domA,function(c,u){return i._setHSLA(null,null,null,1-u)});var o=this._domEdit;a(o,"input",function(c){i._setColor(this.value,{fromEditor:!0,failSilently:!0})}),a(o,"focus",function(c){var u=this;u.selectionStart===u.selectionEnd&&u.select()}),this._ifPopup(function(){var c=function(m){return e.closeHandler(m)};a(window,Ws,c),a(window,Fa,c),Ia(r,s,["Esc","Escape"],c);var u=function(m){e.__containedEvent=m.timeStamp};a(s,Ws,u),a(s,Fa,u),a(e._domCancel,"click",c)});var l=function(u){e._ifPopup(function(){return e.closeHandler(u)}),e.onDone&&e.onDone(e.colour)};a(this._domOkay,"click",l),Ia(r,s,["Enter"],l)}},{key:"_setPosition",value:function(){var e=this.settings.parent,i=this.domElement;e!==i.parentNode&&e.appendChild(i),this._ifPopup(function(s){getComputedStyle(e).position==="static"&&(e.style.position="relative");var r=s===!0?"popup_right":"popup_"+s;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(a){a===r?i.classList.add(a):i.classList.remove(a)}),i.classList.add(r)})}},{key:"_setHSLA",value:function(e,i,s,r,a){a=a||{};var o=this.colour,l=o.hsla;[e,i,s,r].forEach(function(c,u){(c||c===0)&&(l[u]=c)}),o.hsla=l,this._updateUI(a),this.onChange&&!a.silent&&this.onChange(o)}},{key:"_updateUI",value:function(e){if(!this.domElement)return;e=e||{};var i=this.colour,s=i.hsla,r="hsl("+s[0]*Sv+", 100%, 50%)",a=i.hslString,o=i.hslaString,l=this._domH,c=this._domSL,u=this._domA,d=$e(".picker_selector",l),m=$e(".picker_selector",c),p=$e(".picker_selector",u);function b(z,H,G){H.style.left=G*100+"%"}function k(z,H,G){H.style.top=G*100+"%"}b(l,d,s[0]),this._domSL.style.backgroundColor=this._domH.style.color=r,b(c,m,s[1]),k(c,m,1-s[2]),c.style.color=a,k(u,p,1-s[3]);var M=a,T=M.replace("hsl","hsla").replace(")",", 0)"),R="linear-gradient("+[M,T]+")";if(this._domA.style.background=R+", "+kv,!e.fromEditor){var $=this.settings.editorFormat,L=this.settings.alpha,F=void 0;switch($){case"rgb":F=i.printRGB(L);break;case"hsl":F=i.printHSL(L);break;default:F=i.printHex(L)}this._domEdit.value=F}this._domSample.style.color=o}},{key:"_ifPopup",value:function(e,i){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):i&&i()}},{key:"_toggleDOM",value:function(e){var i=this.domElement;if(!i)return!1;var s=e?"":"none",r=i.style.display!==s;return r&&(i.style.display=s),r}}]),n}();Ys=document.createElement("style"),Ys.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(Ys),$a.StyleElement=Ys;var Ys;var za=class extends ze.PluginSettingTab{constructor(t,e){super(t,e);this.plugin=e}isColor(t){var e=new Option().style;return e.color=t,e.color==t}display(){let{containerEl:t,plugin:e}=this;t.empty(),t.createEl("h2",{text:"Settings - Obsidian Charts"}),t.createEl("h3",{text:"General"}),new ze.Setting(t).setName("Show Button in Context Menu").setDesc("If enabled, you will se a Button in your Editor Context Menu to open the Chart Creator.").addToggle(r=>{r.setValue(this.plugin.settings.contextMenu).onChange(async a=>{e.settings.contextMenu=a,await e.saveSettings()})}),new ze.Setting(t).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development:").addButton(r=>{r.buttonEl.outerHTML=''}),t.createEl("h3",{text:"Colors",attr:{style:"margin-bottom: 0"}});let i=t.createEl("p",{cls:"setting-item-description"});i.append("Set the Colors for your Charts. This will set the border Color and the inner Color will be the same, but with less opacity. This ensures better compatibility with Dark and Light Mode. ","You can use any ",i.createEl("a",{href:"https://www.w3schools.com/cssref/css_colors.asp",text:"valid CSS Color."})),new ze.Setting(t).setName("Enable Theme Colors").setDesc("If your Obsidian Theme (or snippet) provides Colors you can use them instead.").addToggle(r=>{r.setValue(e.settings.themeable).onChange(async a=>{e.settings.themeable=a,await e.saveSettings(),this.display()})}),e.settings.themeable||(e.settings.colors.forEach((r,a)=>{let o=document.createDocumentFragment();o.createSpan({text:"\u25CF",attr:{style:`color: ${r}`}}),o.appendText(` Color #${a+1}`),new ze.Setting(t).setName(o).setDesc("This will be the border Color used in the Charts you create.").addButton(l=>{l.setButtonText("Change Color"),new $a({parent:l.buttonEl,onDone:async c=>{this.plugin.settings.colors[a]=c.hex,await this.plugin.saveSettings(),this.display()},popup:"left",color:r,alpha:!1})}).addExtraButton(l=>{l.setIcon("trash").setTooltip("Remove").onClick(async()=>{this.plugin.settings.colors.remove(r),await this.plugin.saveSettings(),this.display()}),this.plugin.settings.colors.length===1&&l.setDisabled(!0)}).addExtraButton(l=>{l.setIcon("reset").setTooltip("Reset to default").onClick(async()=>{var c;this.plugin.settings.colors[a]=(c=Hs.colors[a])!=null?c:"#ffffff",await this.plugin.saveSettings(),this.display()})})}),new ze.Setting(t).addButton(r=>{r.setButtonText("Add Color").onClick(async()=>{this.plugin.settings.colors.push("#ffffff"),await this.plugin.saveSettings(),this.display()})})),t.createEl("h3",{text:"Chart to Image Converter"});let s=t.createEl("details");s.createEl("summary",{text:"How to use"}),s.createEl("img",{attr:{src:"https://media.discordapp.net/attachments/855181471643861002/897811615037136966/charttoimage.gif"}}),new ze.Setting(t).setName("Image Format").setDesc("The Format to be used, when generating a Image from a Chart.").addDropdown(r=>{r.addOptions({"image/jpeg":"jpeg","image/png":"png","image/webp":"webp"}),r.setValue(e.settings.imageSettings.format),r.onChange(async a=>{e.settings.imageSettings.format=a,await e.saveSettings()})}),new ze.Setting(t).setName("Image Quality").setDesc("If using a lossy format, set the Image Quality.").addSlider(r=>{r.setDynamicTooltip().setLimits(.01,1,.01).setValue(e.settings.imageSettings.quality).onChange(async a=>{e.settings.imageSettings.quality=a,await e.saveSettings()})})}};var Kh=De(require("obsidian"));function ti(){}function Ba(n){return n()}function Rh(){return Object.create(null)}function gn(n){n.forEach(Ba)}function Fh(n){return typeof n=="function"}function Ih(n,t){return n!=n?t==t:n!==t||n&&typeof n=="object"||typeof n=="function"}function $h(n){return Object.keys(n).length===0}var x_=new Set;var zh=!1;function Mv(){zh=!0}function Cv(){zh=!1}function Y(n,t){n.appendChild(t)}function Bh(n,t,e){let i=Tv(n);if(!i.getElementById(t)){let s=tt("style");s.id=t,s.textContent=e,Pv(i,s)}}function Tv(n){if(!n)return document;let t=n.getRootNode?n.getRootNode():n.ownerDocument;return t&&t.host?t:n.ownerDocument}function Pv(n,t){Y(n.head||n,t)}function Ni(n,t,e){n.insertBefore(t,e||null)}function ei(n){n.parentNode.removeChild(n)}function jh(n,t){for(let e=0;en.removeEventListener(t,e,i)}function it(n,t,e){e==null?n.removeAttribute(t):n.getAttribute(t)!==e&&n.setAttribute(t,e)}function ja(n){return n===""?null:+n}function Ev(n){return Array.from(n.childNodes)}function Pe(n,t){n.value=t??""}function ue(n,t,e,i){e===null?n.style.removeProperty(t):n.style.setProperty(t,e,i?"important":"")}function Na(n,t){for(let e=0;e{let s=n.$$.callbacks[t];if(s){let r=Dv(t,e,{cancelable:i});return s.slice().forEach(a=>{a.call(n,r)}),!r.defaultPrevented}return!0}}var Wi=[];var Gs=[],qs=[],Hh=[],Lv=Promise.resolve(),Va=!1;function Rv(){Va||(Va=!0,Lv.then(Vh))}function Yi(n){qs.push(n)}var Wa=new Set,Us=0;function Vh(){let n=Hi;do{for(;Us{let l=r.map(Ba).filter(Fh);a?a.push(...l):gn(l),n.$$.on_mount=[]}),o.forEach(Yi)}function Wh(n,t){let e=n.$$;e.fragment!==null&&(gn(e.on_destroy),e.fragment&&e.fragment.d(t),e.on_destroy=e.fragment=null,e.ctx=[])}function Bv(n,t){n.$$.dirty[0]===-1&&(Wi.push(n),Rv(),n.$$.dirty.fill(0)),n.$$.dirty[t/31|0]|=1<{let b=p.length?p[0]:m;return c.ctx&&s(c.ctx[d],c.ctx[d]=b)&&(!c.skip_bound&&c.bound[d]&&c.bound[d](b),u&&Bv(n,d)),m}):[],c.update(),u=!0,gn(c.before_update),c.fragment=i?i(c.ctx):!1,t.target){if(t.hydrate){Mv();let d=Ev(t.target);c.fragment&&c.fragment.l(d),d.forEach(ei)}else c.fragment&&c.fragment.c();t.intro&&$v(n.$$.fragment),zv(n,t.target,t.anchor,t.customElement),Cv(),Vh()}Vi(l)}var jv;typeof HTMLElement=="function"&&(jv=class extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:n}=this.$$;this.$$.on_disconnect=n.map(Ba).filter(Fh);for(let t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(n,t,e){this[n]=e}disconnectedCallback(){gn(this.$$.on_disconnect)}$destroy(){Wh(this,1),this.$destroy=ti}$on(n,t){let e=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return e.push(t),()=>{let i=e.indexOf(t);i!==-1&&e.splice(i,1)}}$set(n){this.$$set&&!$h(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}});var Ya=class{$destroy(){Wh(this,1),this.$destroy=ti}$on(t,e){let i=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return i.push(e),()=>{let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}$set(t){this.$$set&&!$h(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}};var Xs=De(require("obsidian"));function Nv(n){Bh(n,"svelte-1tlkntj",".addMoreButtonContainer.svelte-1tlkntj{display:flex;justify-content:flex-end;margin-top:0.4rem}.subDesc.svelte-1tlkntj{font-size:smaller;opacity:0.5;margin:0}.desc.svelte-1tlkntj{padding-right:1em}.mainDesc.svelte-1tlkntj{margin:0}table.svelte-1tlkntj{margin:auto}.controlElement.svelte-1tlkntj{text-align:center}.chart-modal.svelte-1tlkntj{overflow-y:auto}.modalColumn.svelte-1tlkntj{display:flex;gap:2em}.chartPreview.svelte-1tlkntj{width:30vw;display:flex;justify-content:center;align-items:center}")}function Gh(n,t,e){let i=n.slice();return i[27]=t[e],i[28]=t,i[29]=e,i}function qh(n){let t,e,i,s,r,a,o,l,c,u,d;function m(){n[20].call(r,n[28],n[29])}function p(){n[21].call(c,n[28],n[29])}return{c(){t=tt("tr"),e=tt("td"),e.innerHTML=`

Y Axis

+

Set Data Fields (Comma seperated)

`,i=Gt(),s=tt("td"),r=tt("input"),a=Gt(),o=tt("br"),l=Gt(),c=tt("input"),it(e,"class","desc svelte-1tlkntj"),it(r,"type","text"),it(r,"placeholder","Name"),it(c,"type","text"),it(c,"placeholder","1, -2, 11, 5"),ue(c,"margin-top","3px"),it(s,"class","controlElement svelte-1tlkntj")},m(b,k){Ni(b,t,k),Y(t,e),Y(t,i),Y(t,s),Y(s,r),Pe(r,n[27].dataTitle),Y(s,a),Y(s,o),Y(s,l),Y(s,c),Pe(c,n[27].data),u||(d=[he(r,"input",m),he(c,"input",p)],u=!0)},p(b,k){n=b,k&128&&r.value!==n[27].dataTitle&&Pe(r,n[27].dataTitle),k&128&&c.value!==n[27].data&&Pe(c,n[27].data)},d(b){b&&ei(t),u=!1,gn(d)}}}function Hv(n){let t,e,i,s,r,a,o,l,c,u,d,m,p,b,k,M,T,R,$,L,F,z,H,G,q,et,ot,st,wt,rt,U,_t,Ct,se,we,It,Wt,jt,Nt,qt,w,v,y,D,P,O,K,V,Z,Q,vt,Rt,Tt,zt,Bt,re,be,fe,mn,Ee,Be,ni,ii,Tn,je,bn,Pn,si,Je=n[7],ee=[];for(let yt=0;ytChart Type

+

Choose a Chart Type

`,c=tt("td"),u=tt("select"),d=tt("option"),d.textContent="Bar",m=tt("option"),m.textContent="Line",p=tt("option"),p.textContent="Pie",b=tt("option"),b.textContent="Doughnut",k=tt("option"),k.textContent="Radar",M=tt("option"),M.textContent="Polar Area",T=Gt(),R=tt("tr"),$=tt("td"),$.innerHTML=`

Smoothness

+

Changes the smoothness of the Chart

`,L=tt("td"),F=tt("input"),z=Gt(),H=tt("tr"),G=tt("td"),G.innerHTML=`

Width

+

Changes the horizontal width

`,q=tt("td"),et=tt("input"),ot=Gt(),st=tt("tr"),wt=tt("td"),wt.innerHTML=`

Fill

+

Fill the underside of the Chart

`,rt=tt("td"),U=tt("input"),_t=Gt(),Ct=tt("tr"),se=tt("td"),se.innerHTML=`

Distinct Colors

+

Use distinct Colors for each Label

`,we=tt("td"),It=tt("input"),Wt=Gt(),jt=tt("tr"),Nt=tt("td"),Nt.innerHTML=`

Start at Zero

+

Don't cut the graph at the bottom

`,qt=tt("td"),w=tt("input"),v=Gt(),y=tt("hr"),D=Gt(),P=tt("table"),O=tt("tr"),K=tt("td"),K.innerHTML=`

X Axis

+

Set Labels (Comma seperated)

`,V=Gt(),Z=tt("td"),Q=tt("input"),vt=tt("br"),Rt=Gt(),Tt=tt("hr"),zt=Gt(),Bt=tt("table");for(let yt=0;ytn[13].call(u)),it(c,"class","controlElement svelte-1tlkntj"),it($,"class","desc svelte-1tlkntj"),it(F,"type","range"),it(F,"min","0"),it(F,"max","100"),it(F,"class","slider"),it(L,"class","controlElement svelte-1tlkntj"),it(G,"class","desc svelte-1tlkntj"),it(et,"type","range"),it(et,"min","20"),it(et,"max","100"),it(et,"class","slider"),it(q,"class","controlElement svelte-1tlkntj"),it(wt,"class","desc svelte-1tlkntj"),it(U,"type","checkbox"),it(U,"class","task-list-item-checkbox"),ue(U,"width","16px"),ue(U,"height","16px"),it(rt,"class","controlElement svelte-1tlkntj"),it(se,"class","desc svelte-1tlkntj"),it(It,"type","checkbox"),it(It,"class","task-list-item-checkbox"),ue(It,"width","16px"),ue(It,"height","16px"),it(we,"class","controlElement svelte-1tlkntj"),it(Nt,"class","desc svelte-1tlkntj"),it(w,"type","checkbox"),it(w,"class","task-list-item-checkbox"),ue(w,"width","16px"),ue(w,"height","16px"),it(qt,"class","controlElement svelte-1tlkntj"),ue(a,"width","100%"),it(a,"class","svelte-1tlkntj"),it(K,"class","desc svelte-1tlkntj"),it(Q,"type","text"),it(Q,"placeholder","Monday, Tuesday, ..."),it(Z,"class","controlElement svelte-1tlkntj"),ue(P,"width","100%"),it(P,"class","svelte-1tlkntj"),it(be,"class","addMoreButtonContainer svelte-1tlkntj"),ue(Bt,"width","100%"),it(Bt,"class","svelte-1tlkntj"),it(Be,"id","preview"),it(Ee,"class","chartPreview svelte-1tlkntj"),it(s,"class","modalColumn svelte-1tlkntj"),it(t,"class","chart-modal svelte-1tlkntj"),it(bn,"class","mod-cta"),ue(je,"display","flex"),ue(je,"justify-content","center"),ue(je,"align-items","center")},m(yt,ne){Ni(yt,t,ne),Y(t,e),Y(t,i),Y(t,s),Y(s,r),Y(r,a),Y(a,o),Y(o,l),Y(o,c),Y(c,u),Y(u,d),Y(u,m),Y(u,p),Y(u,b),Y(u,k),Y(u,M),Na(u,n[0]),Y(a,T),Y(a,R),Y(R,$),Y(R,L),Y(L,F),Pe(F,n[1]),Y(a,z),Y(a,H),Y(H,G),Y(H,q),Y(q,et),Pe(et,n[2]),Y(a,ot),Y(a,st),Y(st,wt),Y(st,rt),Y(rt,U),U.checked=n[3],Y(a,_t),Y(a,Ct),Y(Ct,se),Y(Ct,we),Y(we,It),It.checked=n[4],Y(a,Wt),Y(a,jt),Y(jt,Nt),Y(jt,qt),Y(qt,w),w.checked=n[5],Y(r,v),Y(r,y),Y(r,D),Y(r,P),Y(P,O),Y(O,K),Y(O,V),Y(O,Z),Y(Z,Q),Pe(Q,n[6]),Y(Z,vt),Y(r,Rt),Y(r,Tt),Y(r,zt),Y(r,Bt);for(let Ut=0;Ut{var _t;o&&o.destroy(),(_t=M.lastElementChild)===null||_t===void 0||_t.remove(),o=s.renderRaw(await s.datasetPrep((0,Xs.parseYaml)(rt),U),U)},500,!0);function R(){let rt=i.getDoc(),U=rt.getCursor();o.destroy(),rt.replaceRange("```chart\n"+k+"\n```",U),r("close")}function $(){a=Nh(this),e(0,a)}function L(){l=ja(this.value),e(1,l)}function F(){c=ja(this.value),e(2,c)}function z(){u=this.checked,e(3,u)}function H(){d=this.checked,e(4,d)}function G(){m=this.checked,e(5,m)}function q(){p=this.value,e(6,p)}function et(rt,U){rt[U].dataTitle=this.value,e(7,b)}function ot(rt,U){rt[U].data=this.value,e(7,b)}let st=()=>e(7,b=[...b,{data:"",dataTitle:""}]);function wt(rt){Gs[rt?"unshift":"push"](()=>{M=rt,e(8,M)})}return n.$$set=rt=>{"editor"in rt&&e(10,i=rt.editor),"renderer"in rt&&e(11,s=rt.renderer)},n.$$.update=()=>{if(n.$$.dirty&255){t:e(12,k=`type: ${a} +labels: [${p}] series: -${b.map(st=>` - title: ${st.dataTitle} - data: [${st.data}]`).join(` +${b.map(rt=>` - title: ${rt.dataTitle} + data: [${rt.data}]`).join(` `)} tension: ${l/100} width: ${c}% labelColors: ${d} fill: ${u} -beginAtZero: ${p}`)}if(n.$$.dirty&4352){t:if(M)try{E(S,M)}catch(st){Ze(st,M)}}},[a,l,c,u,d,p,m,b,M,L,i,s,S,$,R,F,B,H,G,Z,nt,ot,rt,wt]}var Wh=class extends Ha{constructor(t){super();Nh(this,t,Nv,jv,Ah,{editor:10,renderer:11},Bv)}},Yh=Wh;var Ks=class extends Gh.Modal{constructor(t,e,i,s){super(t);this.settings=i,this.view=e,this.renderer=s}onOpen(){let{contentEl:t,view:e,settings:i,renderer:s}=this;t.empty(),new Yh({target:t,props:{editor:e.editor,renderer:s}}).$on("close",()=>this.close())}onClose(){let{contentEl:t}=this;t.empty()}};var qh=De(require("obsidian")),Uh={chart:''},Xh=()=>{Object.keys(Uh).forEach(n=>{(0,qh.addIcon)(n,Uh[n])})};var Va=class extends Oe.Plugin{constructor(){super(...arguments);this.postprocessor=async(t,e,i)=>{let s;try{s=await(0,Oe.parseYaml)(t.replace(/ /g," "))}catch(r){Ze(r,e);return}if(!s.id&&(!s||!s.type||!s.labels||!s.series)){Ze("Missing type, labels or series",e);return}await this.renderer.renderFromYaml(s,e,i)}}async loadSettings(){this.settings=Object.assign({},Hs,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}async onload(){console.log("loading plugin: Obsidian Charts"),await this.loadSettings(),Xh(),this.renderer=new Ns(this),window.renderChart=this.renderer.renderRaw,this.addSettingTab(new Fa(this.app,this)),this.addCommand({id:"creation-helper",name:"Insert new Chart",checkCallback:t=>{let e=this.app.workspace.activeLeaf;return e.view instanceof Oe.MarkdownView?(t||new Ks(this.app,e.view,this.settings,this.renderer).open(),!0):!1}}),this.addCommand({id:"chart-from-table-column",name:"Create Chart from Table (Column oriented Layout)",editorCheckCallback:(t,e,i)=>{let s=e.getSelection();return i instanceof Oe.MarkdownView&&s.split(` -`).length>=3&&s.split("|").length>=2?(t||Ta(e,"columns"),!0):!1}}),this.addCommand({id:"chart-from-table-row",name:"Create Chart from Table (Row oriented Layout)",editorCheckCallback:(t,e,i)=>i instanceof Oe.MarkdownView&&e.getSelection().split(` -`).length>=3&&e.getSelection().split("|").length>=2?(t||Ta(e,"rows"),!0):!1}),this.addCommand({id:"chart-to-svg",name:"Create Image from Chart",editorCheckCallback:(t,e,i)=>i instanceof Oe.MarkdownView&&e.getSelection().startsWith("```chart")&&e.getSelection().endsWith("```")?(t||(new Oe.Notice("Rendering Chart..."),yh(e,this.app,this.renderer,i.file,this.settings)),!0):!1}),this.registerMarkdownCodeBlockProcessor("chart",this.postprocessor),this.registerMarkdownCodeBlockProcessor("advanced-chart",async(t,e)=>this.renderer.renderRaw(await JSON.parse(t),e)),this.registerEvent(this.app.workspace.on("editor-menu",(t,e,i)=>{i&&this.settings.contextMenu&&t.addItem(s=>{s.setTitle("Insert Chart").setIcon("chart").onClick(r=>{new Ks(this.app,i,this.settings,this.renderer).open()})})}))}onunload(){console.log("unloading plugin: Obsidian Charts")}}; +beginAtZero: ${m}`)}if(n.$$.dirty&4352){t:if(M)try{T(k,M)}catch(rt){Ze(rt,M)}}},[a,l,c,u,d,m,p,b,M,R,i,s,k,$,L,F,z,H,G,q,et,ot,st,wt]}var Uh=class extends Ya{constructor(t){super();Yh(this,t,Vv,Hv,Ih,{editor:10,renderer:11},Nv)}},Xh=Uh;var Ks=class extends Kh.Modal{constructor(t,e,i,s){super(t);this.settings=i,this.view=e,this.renderer=s}onOpen(){let{contentEl:t,view:e,settings:i,renderer:s}=this;t.empty(),new Xh({target:t,props:{editor:e.editor,renderer:s}}).$on("close",()=>this.close())}onClose(){let{contentEl:t}=this;t.empty()}};var Zh=De(require("obsidian")),Jh={chart:''},Qh=()=>{Object.keys(Jh).forEach(n=>{(0,Zh.addIcon)(n,Jh[n])})};var Ga=class extends Oe.Plugin{constructor(){super(...arguments);this.postprocessor=async(t,e,i)=>{let s;try{s=await(0,Oe.parseYaml)(t.replace(/ /g," "))}catch(r){Ze(r,e);return}if(!s.id&&(!s||!s.type||!s.labels||!s.series)){Ze("Missing type, labels or series",e);return}await this.renderer.renderFromYaml(s,e,i)}}async loadSettings(){this.settings=Object.assign({},Hs,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}async onload(){console.log("loading plugin: Obsidian Charts"),await this.loadSettings(),Qh(),this.renderer=new Ns(this),window.renderChart=this.renderer.renderRaw,this.addSettingTab(new za(this.app,this)),this.addCommand({id:"creation-helper",name:"Insert new Chart",checkCallback:t=>{let e=this.app.workspace.activeLeaf;return e.view instanceof Oe.MarkdownView?(t||new Ks(this.app,e.view,this.settings,this.renderer).open(),!0):!1}}),this.addCommand({id:"chart-from-table-column",name:"Create Chart from Table (Column oriented Layout)",editorCheckCallback:(t,e,i)=>{let s=e.getSelection();return i instanceof Oe.MarkdownView&&s.split(` +`).length>=3&&s.split("|").length>=2?(t||Ea(e,"columns"),!0):!1}}),this.addCommand({id:"chart-from-table-row",name:"Create Chart from Table (Row oriented Layout)",editorCheckCallback:(t,e,i)=>i instanceof Oe.MarkdownView&&e.getSelection().split(` +`).length>=3&&e.getSelection().split("|").length>=2?(t||Ea(e,"rows"),!0):!1}),this.addCommand({id:"chart-to-svg",name:"Create Image from Chart",editorCheckCallback:(t,e,i)=>i instanceof Oe.MarkdownView&&e.getSelection().startsWith("```chart")&&e.getSelection().endsWith("```")?(t||(new Oe.Notice("Rendering Chart..."),Sh(e,this.app,this.renderer,i.file,this.settings)),!0):!1}),this.registerMarkdownCodeBlockProcessor("chart",this.postprocessor),this.registerMarkdownCodeBlockProcessor("advanced-chart",async(t,e)=>this.renderer.renderRaw(await JSON.parse(t),e)),this.registerEvent(this.app.workspace.on("editor-menu",(t,e,i)=>{i&&this.settings.contextMenu&&t.addItem(s=>{s.setTitle("Insert Chart").setIcon("chart").onClick(r=>{new Ks(this.app,i,this.settings,this.renderer).open()})})}))}onunload(){console.log("unloading plugin: Obsidian Charts")}}; /* * @license * @@ -95,7 +95,7 @@ beginAtZero: ${p}`)}if(n.$$.dirty&4352){t:if(M)try{E(S,M)}catch(st){Ze(st,M)}}}, * Released under the MIT License */ /*! - * Chart.js v3.8.0 + * Chart.js v3.9.1 * https://www.chartjs.org * (c) 2022 Chart.js Contributors * Released under the MIT License diff --git a/notes/.obsidian/plugins/obsidian-charts/manifest.json b/notes/.obsidian/plugins/obsidian-charts/manifest.json index 1493e3c..9e596f5 100644 --- a/notes/.obsidian/plugins/obsidian-charts/manifest.json +++ b/notes/.obsidian/plugins/obsidian-charts/manifest.json @@ -1,10 +1,10 @@ { "id": "obsidian-charts", "name": "Obsidian Charts", - "version": "3.6.2", + "version": "3.6.3", "minAppVersion": "0.12.7", "description": "This Plugin lets you create Charts within Obsidian", "author": "phibr0", "authorUrl": "https://github.com/phibr0", "isDesktopOnly": false -} \ No newline at end of file +} diff --git a/notes/.obsidian/plugins/obsidian-charts/styles.css b/notes/.obsidian/plugins/obsidian-charts/styles.css index c7a63fb..ae9c32b 100644 --- a/notes/.obsidian/plugins/obsidian-charts/styles.css +++ b/notes/.obsidian/plugins/obsidian-charts/styles.css @@ -23,3 +23,8 @@ div.chart-error pre > code { /* Hardcoded with for printed Charts, see #41 */ width: 500px !important; } + +a[href="https://ko-fi.com/phibr0"] > img +{ + height: 3em; +} diff --git a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/data.json index fec7e52..3374bfa 100644 --- a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +++ b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -42,6 +42,7 @@ "keepInSync": false, "autoexportSVG": false, "autoexportPNG": false, + "autoExportLightAndDark": false, "autoexportExcalidraw": false, "embedType": "excalidraw", "embedWikiLink": true, @@ -70,8 +71,9 @@ "mdCSS": "", "scriptEngineSettings": {}, "defaultTrayMode": false, - "previousRelease": "1.7.8", + "previousRelease": "1.7.19", "showReleaseNotes": true, + "showNewVersionNotification": true, "mathjaxSourceURL": "https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js", "loadCount": 1, "patchCommentBlock": false, diff --git a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/main.js b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/main.js index 326888d..513eef9 100644 --- a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +++ b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/main.js @@ -1,5 +1,5 @@ "use strict";var obsidian=require("obsidian");var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); -const EXCALIDRAW_PACKAGES = "PQKhAIAEBsEsGMCmA7Azo8AlRBDeAXcANwEYB2AOgAYKAmAKHAgCdcCKAHZgewBMBXArG7IKAW1iiAVqkYg54AMLcOAT2awA5gAtCACngBKcADE8iAEbduAawA04AJLJ4FcDmS9wsfKncAzf1g4HHxEVAo5BQAVbVg/VG5+ZiRweD4MePA4JDREL35PRGZwfG0MAFlHaOyEFHRwfyTPb2RS8oUAGUdFAFEAOQBlXsbgzLayjB5uQl5YVgJuZlVwbn92rMTk1PxWREimYHo9f0KhET1DAG8Acn4G1F2EfBuAbhOz/GFkAzsAD2uACJuBYpIgCICALzQ/CqDiINbgRB/DhLXwAMnRgMKvEQQWQ+UBAEIYXCEesxHx+NBEAB+P56ZGo5i+QwALkBpxcXxEUNJ8MRuPxiExQsk+xwYl4tLFBL0AG1AUy0ahAQBdf7sgyQ+AAH116Gg/n+Bgo2Dw+EhVwAvoZDLa9GV4nYuecfkYrq6eW0GThrrB/HpkNToNDITh9cDQeD8MT+eT3IZWPhkm1g9BoK8cJCAJqYnDynNq/UFwGQSA+YqhJbq17J1Ocz7fPmQ2EC9Y4Wk4Nnp6DWr3fcCqPR+z1LPREHAlCyQwG6fAcVBs4DAVgWmQUJaaYC8bjwVDAYo8ZgAWlx6VxzAoujE0FpkknGg8lsBAGocHZEJCSK9EAAeKdNH4MQUF8CgaWQTQyl/V9X0MCxX1ndFANQeU1VnV8UAvRAAFVMB6bgxFRAlkHwEdmCAkDSNQxA1UMOtEBTZhkEBCpJADWB8iwNhCCPJZwAAYjfegcFfQFXmIeIfHAN8EMBRp+MmRoQ3AEDUFQHBNAwfj7gwJTkBEE8JGQDiuNxIgkWQIh5hEKjCCaEpTgzJFmGPPwPC8HBeDmb0cGgcBymgDgnPAAB3KcTMgiJAX7JsRGIEc7AsT9ridCIuBUVBw1eNKKHSUjkUtCwcriCJWH8LKAC0SviCh+A4XhQmKSFEBLHBYu5QcLBwS4bQHeKAGlEuSxBUtKzgeEXbLcvysI/iKmqyrxKrFrqhqmuYFq2o6t00h6j8RuuR9shdK1rTseBIV7OxGqukNXgDIMQxJCxDAcvR/MkYhuFgLwqBJSELAocrMT0W6gfKww7CIH6/oBoGbEQVRQcuwFZIoRHVCh17cDyvzoD0ZLoEMTEiX8HBrxwVAAHlQuQAAFSbilhD6SfRE55WgdCLE5ujXmOmxwwo4DQIiCCoO0E9aAewMSDDegbDevK4mgXhWGQFrf2gBpHpIP9FbHZgJynALIQAQVcnBh0Vm7ISoV5eH1h3YMMbR5V4dDAJF6j3dfWg1VefxleCNWUEhbRrUenB8woIUcGpfBGcyt7x0+tpBYpuOE6Txc7EVmHfvAKgw38XnQdLrnIRsXn6PrZirgAEgbttyTZUK7BbtkP0xtl4Dscq2UauwMsXNljQAfW4OnijZTo8uSdX8GtHbvWIfakuuOvkEb5uyTWNuO7JLuKBbvOkbZZKB4p8rh8mpcKZH1A7En6fmGPl+CWYZf+raCoR03xiDYQRgghGGFuiJo7ol7ADSBFMm7gP8GGUKK9BzhX/lcY6M4rhQkBByO2gI7C4KIZCWgMUGJMRYg3N819EAcGgOYPQwB5SQjZGqYAmgXRxR+KOLe4AeY4DVLaFB8V+jDQARQqMIDYzywQe4TE0DoSQIURTTGtI0Fo3fBjJG7Igb4G4IMJ4kE9AAGYABs9of5KGGp+Ow0AXRHRNpdWROAZZ6GxEUYUvAWx6l1ICKw3AaQeG8YYbMvZ+Ym14JCIkP5Hq9jDH6SJRJ7aIG1hgVAoUfDwG0AYa48AqYYEBI8DQkFcF5IaICYMYgLDFFwYk+2Fg1w2FeGUgpwCYy4PSZk7JcDd7tlyfksKvcBnaG7HU5ej1eBJkAcxcAkSPyIMDJMuw2Y0ZhjvICCgb5RG8DsFQdkdiLbMCthQeIhyrYnEMLSRks4CHKNBl+GhdCGGwA/ICBu6JgCAkMGJT5UNFAnCSjYtGnDOoXB4dMto7U7Q9mepCfwoM/7+DZicSEk4AWIFfHoMmWjVD6l4KKHFJccW0jRmyNxb4g6Y0MMDWh9CkB6BeYQ95vyflfNfCJO0SVOD3GyUiqGP5In21DKs6E6zNlsmgGJDkrizmqBOagWV/8U5GwFnbV4NgALgRQBLdVLsriXQLDYAOx1tCQklaIvuitnaQn+X3EadhtD2OtCknWgZTW+iho2UFLEwF73WNoZVI5w54wzP/POaqiTagpgSealxqW7gJK8Qwl1XCTmgPwRADqzWvgtXnF2N1EK2sBZmx1SKtaurcW00B0IjBlB4KFPhNz3x2F6K5ccw5jEkEIfKKthBqbRgIGqFsFgSW9rCj4bQ4BMZ+Gwa+ftUicWoH/hQKQP0fgEJkt8mKuDXq1whbM4RbQAAi1jRpXFiSGRRUyKHuHCSUUMaELpqv+R+OxwLgU/3QbwoGeTQ2Zo/PAF2tpyGpmyIe8Afx9r+kDCeOW0IRIUHHo8UI9wHHTnDIh1gqAE6vBnBYS4WZEPIZTFle2FNx5YYToDXDJ9yg/E/a9K4xdFFEfwCh1AoM8OxzxPHaA+BlmsfY9+ATFHwhUdeudBj1xmMYaQ2xkjoNyPEfuCQkTlG+OA3tPaXW8TBMkevaB8j6n8AlXre4TDYm+OvHAz8ND7hIRSApvABeoFXFxKvXWqe4BW3Hj0B22gJA7QgZme1Sx1MxEYJNg8rVkFoIPx5YTei3Z3qvCTZFkol1ECwYAHy5a7Yggs8AA6PQLnDaE8L0RUD/L0AFu7Cvc2WfKWicLPw6nLRgBpuAbDuG/lw8AHB0HZgLFQAOvDStF3ibSXsXdwMmHQZgyEIl5QjdceN/60JGPHWi6iAb9FHqIHhtcYb6FEBZjHuOY6l0qCnQpuLaC8A/z+DS8dSJtAQAGFfIF2DdhNDhndhqQWvBPtZsNcVwMa2AaaExFQbLNWOGjUMBD6E2hoew70I6zQlyRzyiK+HRrRqWpPsVmS+rkIOEFg9oTy6kz2veHB7DIuAMUeVbR46hHpPHWg6p1XWnnWcDdfatab9Qv929nAzVg6dnouJBZM4XEfwTxAxl/gOXyJgttHWy1WkiBj6/UVyc3g4H6boPegtgbzB6IKOo9Bp6GYww/vxt1eAis5sW9p49JXbGWTRFgCBP84ZDCu+xhQZXqu/iAwoEyeYoRvg+5AnYcLABHDevPGm4chOb+01p6CWIAIroIAF5RJ/Mbv0riiT8EMBejMAMBuJ7tPwKJ12zZ6EwPRF1iB0uNsz68K3FhMQAHE9C565ch73vust+l696rAEXG/RNeAX0GRfol2EGHG14AAJJvd6kRk5yssK4xvXqB3HGIDPeh6+99hZCMQoNI1iEjyiaP3o4+IGy69EspNogb7s5dR/v60ATuTSj0XqboLYsiHoABjueAgsYSv2j+XAwgGgsInQiARAKSu+iC8Aegj+UeRyr+E+/uJ+M4ZE9EYB3oEBfqjQtI0BGYwBcKbI5+0IdebMc2V+x+9oHepgl+9E5+rBkcgYVuYgiOESO+HeXeGsPeVuyAg+w+dgogY++Ab+iu9EiSJAIuN6hu+I+MqgVw5+10v2ma2+0Sy89Ax0oUkIpiVAJAVAxiDq2Y1hthpizSFAJgRymgdkVhNhVAZArhBiGgBAFQGQ3hthAAHK4UnEEDSJtE4SQAACy742COE+EACctiKRJAthdgYgmRJA0srggw9w8IeQoRJAxiu+yAeRAArHYNwHkS4aAT/FQe2OAIMKoFUgEpiO0Z0dABQA5HZpEj0VYH0Q5K8JYbwG4muOwCkogHZF8q8CMpCJMYCNMfgJwGiH5Asa4O4ZpF4SsWsf0R4fMfRIUU8EESEQcTxCHucfgOPJSLiNsRQFEWMJtFcRaBNGsK8QsckcsVMdcRlNZJeAsfQn8asdcbNIVAsbkWCYcQ5OFMwLwKJv4E8UUagCUegLCdcdhuifUIgAsVUViR8SBJSAsfUUSewPQgXqoF8taMdDmLOM0TItQcMV0eiKyX0ZWAQUsHYKoNmPOjGJ8Xoi3JTDTHTDnMzKoHYDhJCAKewFTKgFoMgPqJ+pLuekIZegHp5g2gSA2tEGSD5uOICHKesQqUqaUIBIxHtMgAZIQNUuAL2KsCUDiHiOKF4vRKblFrKQOmRH6E+j+A9l7HZGLNqvdnqi9kLJRKLDjmDrbtACSJMl3r9mtg7N6VImDB6eOJoK0LMoYHySGgTDspjvcvKJoOhLwKWXRMvLwogOdDgNmOeqgMEYUGELwGPFwl+hCqYZ+MgInhmhmiYEsEgDhOtGEO2d6tYh6OdCgH2YgBmtgE8kgAYk1OOW6JOTdNcNOb2f2YgIMIxMuWOaqYCn3ImcvHYJVGdPzEKTMGSPKuaAQMoERCIKBItjaFeRlMKbeegPgAeV+EeYxqAb2nGK2NQZAhQc2ADM4vIrCn6Nqd5m2kbMOGEdUUFrlPVI1GEFeDOTuXuT+fJogI6KVMsoCoUvufhbSe+TwJ+fCP0UObhKOX+R2aOGhQxVhduXOYgIOSkPRRhQRWlMRZyHRSObxRRd1NeS3KiuJWSKmQNFJfCFdIgA2t1A7HlCIEUoIHoptANK8DhGDNDHJaNCpfEPTMkIgPefgI+cRC+Ukrvp0FaM5q5KBDChmNOfyT6QZaKbTAzEzCyFKeTFaD3Ekv3HiGyEFePEhikv4KFdduFVsNxdFedC8pCMAAADrACvjsJ2COb2UuakTOV9h2AABqriki7SvqrR8IzADkuRLgIo6I9A4FvI5VCYlV1VHgSAFABkoUdmBe2YrVSwNVSAu+lon64ioGvVnVU8lwy8Ehx0HA2YR6TUdgZsfV0aU19EI1HZY1My81k1oUlwJ4K14ygY7isohIzViIGSngU8kYzRkF1BFQ4QGkWkigIyNpKSdmAAQndBmHYInqEiGP3NmKNeqXGQDJ9YYLsHocdNmGQa8J9VitdmXt9WLnkvgFkollcHBd+W/kkGREcrstjNZtaLvmbHCkxdcFbp9bSDjRPnjXoGbLssslqN9R+LTSBPTQTXsvaLvgPuTROWqf9ZCOzQiPwL6RvCTcdIMPzWubkoEswLjWLZflPrvtEDLd6L1FvKYa8PQJEoVerd8L1DNakl3p9dmFdbuKFCHoxIrfxooObZIJbXlPLbba8Kda6QSF4vda0flIkDSKDJEhbVPHjLVdAGbCZLkd6LsfHo1SxN7QmEHVbawLOY8OHb7jHiINHXVb7QEvsHxEbICLEFkA0lPOgCULuOEMgDcIQNhhwMyIQMnRmqnRHRncgFnW4BUPzmkqZe0KEEOEkNkPUZ5P1gEqoNEWnKsKrMUHwvWmXREAFPgAuEuCuGsRuFuMAHAMgDYKuDxCeKiNAGPcENrF8oQndfGIKJiDnTSJHghW4kXX4CXaFGXbMtwJXdXeALXfXdaUgGHS3VHUciBB3V3R/T3WUH3aoAPdAEPe4CPQfePTmQEpeDPaXcUPPfOKPCvTxGvRRBvZINvWsXvaPePaqEFuYSbI4MXnYAAFI/V2IADqkI32GkkItRbGaqatINvCZB2WrY7UqZINJN+tqp0m2WEYuo+R1RAEtIV9edt9gl3FWdmATUFpiM7kI9ipXwGBrQdpjEoUiAKARc7gLQEjDgDk8Akg2Z/gADUwTUfgcQOg09YDbQEjjQi43gfgtpIDddaIhI7IzDVWnYndZQ/RUD44JAvQxiwAfobI1RktJs/AoSil4Aj16kmkiAr1HgBIdiAAGpCAkxsSyNLPk/XSQJuMgGpM9YxROTblblQ3ZrDQRmw6JBpAfnoVQ4jczbSNkxsY8Ck5U3GVqBQ6vjQ72PaGjRjYxnBd06iL009WkwM0lMTdwUMxoa8GTcI1cDQy4o4PqHoEM9dtM9wLM6k1pAMzzXzTnkxRvFcAw2bR8NU1cD1GQfaBLa8NLSDfbXoHQ/RAw7BsvMdInpCI+ptI+otcJgYYDb9vYSYV2vPl2ivl2r0NmPbJElcOZYoLlfgEevEPNejeUG/I5nYOi5i15TPJ0HYI4KgIMIRGZSgJeMUGbEIJBGyPqpi6FRoUSzxBi45aRGbXi8oMgEEJoCy7sB4Bo98GyFQHWepEqWyDhGvlkvkNSDPFcOFR+dwOFflXYIUMhhYDSOPI4GICBHME1IzMgT4KoGyLC2gGxnq4gOPDhGXZ9VA87hY2a0sBa2yLQNqzazgHa+PP0ANX5O6ygZa/YTq7a/q44LwDSCG567URG36/q50FPHG7CGyPET67q/q8wIUHQxOmm5a/+dcJ0ni+gi0uACQEMg0LQNWxgMYnW+APEY29URfGnlnHxl3ItsYnSY4vvr9i4lDVcN+tNToRmHob9vAGeYm/6zGvgKuRraOKWxjZjvqgMlWxW7WxWw2wthUXzk0h2/OzOJoL2xlv29RkO7wj1BYpILoVcJO9O76/66gIqwIDSPbfQbAQu4bQdBdIMa2ARqVdWiBT7dBTXjWlcimtxvQlKajJUtUswC0QmPANDn+PADKK+PAIPOyNTq8Mu90v0g0FW1towz+Pu80gMrW1+LQNUfUmnhW621+LYWQMYmQPESQGEbQHu/RwMs20x70IkeR4e2yF+NURE86jqJhFmFaL9GyItbBBdDAc7hfLfOa6gegSkl3HYEoW/r3J+M/gQbHhPiJ9p2iGHmyH880tltKCOCHmZ0UOHvQH3OFswMzQoZqRfvXvmGGJnsvrSOvuyCvtdkPiPvAGeHaFqBTKHg54Tknm5/wPqJvrs/Ps3q3hF+rj1lm5G/a3kqHR+0AV+xs05kp3ASGOdDO/q6FEchwPl8Ad+2CnZsexlyDZdue8VJe/uhTDgHXQfYRc6EGaLDe1UeO/ezqMvOV0+/q1pBZZi4W2gRgdAPV7ZsO/uiez9laRV/a6gNoEkKrDmJxKrJrfutEBN9m/a43eEInDgJIPOzspt+PLNJIBmr0H8OCGLRKyDQl7qEl7qHoCl8tWly8/d/NbpC92996Et0bVl0m/a9NyYPMI8LV7AYG7iJD9tW0AIXYPQNN+APd11UdzekvOt4QPd2Y5xdY0o2EAT6BoVad9l+PC8ZvcK2Lgq+UG+8UNEEcuY8y6q+POq5q9dOFTd1WG6KgNgFFYL0hvwBYC+xoAh+L1q/d/APLZD+Cjete3TzD+PNN9y4vGjytzeiz/d9N7EGuLwI4Eevr1vLBEi5r/66K0gKr8eej2kNNdD/61V916ry7+1O7/q9hjL/AHLzrhs3b/qzq9L7L7ANUt7zaMvK4a9SHOrFaLkRwHJy6EsEi1kk78lB6CevMltVcEDN13QsOPxSJMLMGS80YOdOkC2bHwtvbPnyCrLUX7BMBsLh3NwLKrH7ws3xs1e7aPqGhOdCIAfbH49ESH/H6JDdoGZoaYhXoAkcYkFoPyTa4JZc+aRKipEaZZvyRJaNpa4OFcMIoJgL0NEAa/0NEL0JgP0GbJ0IMOPEetTAG9TJfzhMMOPNTJgOPDmNTDhHHh0NHAnQToOPE+q9Bx4JgRwOfyPTLFXCyvZ8r0BpBeF/yf7UGu5nDD6g1s8SWfvP1vrDhaApiMgMzXogRldKNoATI/ChjRZMYP2DDDfA1jkYp4n8NzLCk2wM5NcEMPEKDF+zcDjQGsOeA5UXhkDOB8MHFPcibQIxtEriCmC3BjgilD2OcVAKIRKCCwEMignjNnDvin4jYk6L6DjGK6hpkoAaUmOTE8rikfKLMUwezArLaB0IOAjbPKHsGYgkcVcWkNXHsEXxnBVZE1JGW9hgQ7sksaWDpmRyGBeAwcVWMn3gDu5ZYf4ANFcEFiKoA0ug42CUHPz2wxA8Q14GIBdjVwxAnsSvtGVyH+wVKWSJPmHBsCaFUwO8BBAfE7hyCyQZ8S1pmgHgcJH4g8Z+CwJnjIB4+rgIPrgDCACs5om1AWtc0cGAxOMtDJLFaHgR+oJUH4B7n5Gcz0Ihhb1LSLwE+o+AlwyUB7pi0Kp+QM0WnPYTy3wAHD00iAWtosLrS4BeAygevtdiThAkehgNAVthhAhvwxchGJ4b9Gai1D5hyRZ+JCXmgzYMuFMN4SLE2giR1+eUNcGEGQFzEXyeSBAXCM4oWglgqgA2g1y7wzg8kFACwI7TjLM0aMElFxMLhRGDDaWCyQvlvFZanD8qfQ2iswARK8BxeWI7hOj3+HtgmCH4dWJeBmwwj4g5w36AiK8IVBXCVJTEQPwhRcjW49RZ+PNVUBQMvILLOTOxgs5dpRM2GTtr73HjsR52kGRkSSW4DsiIstIuYdyKqKHx4QWndIERCnA64JhI6abBYEZG6QkezuU0WqV4S2Y6o6AD0TYDEQwj3RIgEYV6OuY+jLgfo9JqGMKhBjXCukI9JYH4CaBzhGacMfQEYzBj0AvQQIDGHDGMZIx1KUHnmIIDxjXAukQ1pVRjwYFN8HkGkAWPQFFjoxVYqsJo0QB1jPANIScjzQrHoBOgVsPGrmP8D5ji2BvUDL6N0gDiIGYtYcTGHLHRjHqlIAsS70nHoAlx3ABcbpGwACAkAm0NAR6GbHbilWe4nsdmKpFejVxUY48YGBVp9jdy+FS8eOJmRriHxTUf+DCIwLMBFSIgWcOQGoB0AYo9EegA6GAmgAIAMAOoHkG4gWhiA/4mgAwCYDgACGu4RAjwF3HehxAkgFdLICYAKBlAagDQDoH0BGBTA5gfxPYCcAuA3AHkbwL4ACDREXkYQCIFECQn30P6SQbimkAyDuNaguQdAAUCKAlAlIVQGoDkDxIKQcQOZSYF0B6ADBhgowGkNJPKDITrAsweYDGAxGrB1gaUDidsD0h7ADgIAI4Pc1b6gBGAwRS8CZALwlBjEAEqgFwAwB6AMWjwQiOAE+r8AQ4xgXUMk2qD0BjJ9AO4A8FuJvBTJGtCoA4SBBAULq6wZUCyA4xYgXSniYCrIgeLKtaQIyRkCiBVDBU+yGk/4haC+TshY6SHQUB7TqpnUKAkoaUGdQVBKhsp8UghOCUKkagRkWoCoJCAqD6hDQxoTKRUDNA8QX+HUygf1PMp2gHQ/FT9BFLameg+sYgE3BdhNgzg5wi9DBjvXXARB16u4fcIeAQpnhwQGQK8DeDvAPgpwLybftQn9LNIAIRQ6iDFh1SAY4ICEJCChDQgYQsIGQPCARCfIH9yIUZH2EVj3QSI2IJkIIFxHMouRjwgkahGJAkjWQNGMkV8HJAUjCSVJTkfyBUzSZOlceDQfSIZGMimQvA5kSyNZB4DlNQIKM5SM5HzruQWgXkHyN8D8gBQUkwUakGFAigWNoo2eSxNEHXiMZNA+GSXK8AFkjgxI9tDgExHxIS1LEIstUo4H4TcxUhyLLMH+CBhBCswLsAvEHHpmEx5QAiCxH1jgDoJHoZsIOIAT0CfVjQM/LWvbBNlmz8Yzkq2XaC1oxJAwEgE+JdyVS8JLZes9CDZUUClwBEO+F2TZlgDrlEy1eeMjWmhxhhXALcAzMxAXz4dHQ1BRjBWxKmNtCkHREYrghtkUdyk/iQJCxDZATIE5yABfJHIBhGAtargPAEgAlmoBPq1gIuagGk5yDuAKbPRswHtroAoxqAcSXoGuwoV1cgIDCjgBPDAUwKZ08eZPIdhaDO2Ic8DD9HDk1MPOmYyMElLdKlT1gFgfUCZBXllybKpcl2WwPA46hDAycuOWSEI71s2QWtYqBW2bYuz7c+cjAK214TxB+gOAURCfgramI75+6T+d/MSz6gSAH+aoYnI0J55w5NiY0Ku1yh1zaEvgJubnTFYkJ7c+oYxBgt1DxEX5CCxenLzFqIAv5IEeAfgqeAWAiFJC8IPNSQCaxcoYge4PgEdaIAJSvlNrLlBHiSlqF00caBJXa7jQNIJkL4AXlwiYA7KT2XKKwEpAYFegREWEAEQsZk5xckxX9ieSlyQhHAFg7yioElKJZaQjgeUBYDVD5UsCtDAGHSBkz7BO40oaJKFT0C0BVZ90soIYH1ANVuAwFHmCNkxDGlPFy2YsL4jjpOCSAaoHxf0D8UhLaQdimyv4F2bLzc+NiSZCjGmE3Q95HnOkEbNeigxMB6HGhDIsQBmwCF0fIhYlmPjflClFCkpclA0RGB2Q+wRhY8BYVsLYQXYJrJ8UqqwhqF6EHJbSCwXQhrFZIKJVW1JRYdCYLUKqUUsoVhBqFtsCUJMqoWSgaF5gdznbgg55LuAGBCpYQqp6vQyUX4AZfCCfR9KtoOCsMHVSSSxySURCN8CeS7DW18AWy4pdMvXw7Jc+7IKLoxEeVTKCKbyiLuBioaCzV5qyrAb4iArx0IEZch0vdAWoVYCwR6fwAEtLDlguS1YRDqNghQlSYp7gLsAyMuYz4Bogs53qDQmEmBJkQ7OCgvwIzWhxm2SRMqSshBjKIhyGZ3CfA0DzTqUkdDGqlR+BMARwhAS5IYGAB2hMQPMEJZGBihbxAQKVFiK+FJXvhwMn1HAmqUn5iMB8kySVeJDVU75WuC/CaLQgdHLlncnPcwK8F1WOT5qrAQ1TYGNV0KUyQ7D3FXkDAzgQaFK2+vRHOgmluMwoZpcOCBjqtT4gIR+AQiuDfl9erq3zO6ttCEJop59dYOLxpAEBMQ8awUr7V2AaVUoh+ZNewFTW5syxyUNCGM1CAY0DYEZKoVmvWI5qNKiUR9BJgkJDsHcoaQtWWwNiRIqhRggmH6qoo3l4QXBE2uSrn5eZKVwE6lUWuyQtqq41oDXiOubU24bAooHxUUgsbbyp0NxWAtcE9IlAvwNgVdSyvRJwAyIUqliFDEQRMq2Mu6uhD4DcTSqT6RhZxZLC7Smog4QQ2DK8D1hk5UO4cTEIgErIAxS49gpNJLBPCpDX1/uKHJVn9zaBhZJ4E8A6mg2OrGQP68rD4JtwkBIcoCpnNcF3B049AmgaDbBpg0w5tA+ob9WWV/XIbJV16zCJWRpSLkCK8kPurqRkiEJ3AhABYqFBVgEU31YGqrOHHtD7txuY7A+lcC1Wr4zVrAC1W+KNVc8vwU7LeEGk7CZwcWMHahSWE6qLKOQXyWkASv/gabwMHAMOUuwyRls5BmkG+eAHfn7ptNjQnta/Mrb/zeE2mwEAOOpLbF12DbBzfhkBBokMS+JYCRWxICpEAFN6Rzd5rxKdB4gsYU4gMioCNst267Czer0hCKrbOp8aJFDBcT+aq2V7JLUqpPi3k+RxQOwGluWS2baAtbbLclus37BRMQkorYFhK3+agthmHLSlqaFJJ0tc88mAnCa3MQ0Y0+XaNoEBUYDNSfoH0fdCaJcJl1o2zrrHCU1WwVNuoaNIsrSUZgSqi6kpFium3q88ORmjGqOArbhQetLEXYp4VAjiQK2OEbsJKvpibFoA52gZJ0AsBHbAQjPGpLZs3xtlJViii4o8Vs0VAntX24oniXu0NBFAWHQHbiTyDhbHgMUQCj6RbD0BnEF83bd0goAWjyQZm6Nkdts5zA91825bb4mGFQkt0FACER8JB0YAqGn2iFLZwe6xj5os2vHaoAW2Agid80NlBsh+HAlbNR6LDgthoRCT08QMXHU8mZ0E6gYVRECOKrBGM7RdC28lPDBJRcUWR4vNxEjLEiGAiEyuqcKyLxCuaGgvQcHfukG2tabNFbAaNTpvQm6jMdLYoFFoaCdA2yM4cjIqOVG8A25iGfUa02fFtBrdiWJtRjSnIQK0wZXSxJBnQTJykda7Auc3NwDFz058HGpJnKAqZz1tmgUpAMndrJSjtt6XWvPPnYar+tq8XMfNiWkYYW46ueTZNVxDUK2YgISQBwDFoth25nc4oD3IIrIpAQirZ3FYD+DDpIwRyOYB4vtwGyZ8ieAzY10hAl6/QJKbvYjC8Qcg00GaAhJdE9XTcvKPqpMVHwlnjgnMalNNYsCvD+qmhr0W2BogLDGLy8FMEZGKR0UdLfVdezeZ7RSnUEUOWIJkrGrSAUBpuPij/SB2Q73KNFrgabqdFcDflXgnqs6j6usT6oRAQrZIDD2irE8re+6fYObLSgvNQ1GzSJOfsDgFk+uT8KfMBkgPlToDH4TMXYCuAoBIRiB1wNQY+Ew8O+Mo6bmmJD40j90hubToxFYOx8cD1Cc6K5I4A2qbAFjfXuRiX2IBhDzUMJLiBpBhB3ARiwRAJr6wmAlVR2RDBIakPMBdm4hw4ZIa56IxNo4+pVLNlvE24iQW21MAvn50aG9DWh8vK9DzmtcgYLBvQwRgjJowswAdKfWYbuVz78gJKNNfiQ5DkxUkuCCmBIZmHu6r2Vcq5Erm4NuG/S7W9luBgHxqHHmIKtxE/sJDgr1g20gITKD3ABC2Qa2PbCdWyNeJNtkKsJB13V5VShAsilAaBDcUUwrAvAVQNOomY+98RfADo+BgqCqLxhfbH9OUGdz5AMuCNSgclCuCHtXq4IefSUc4E3R89PBtbNDD0OLHC412fw22QUTocsO5GT3nXWKC/kTkwil5NADmNjHDco+3aAPlvFDGz27mYXSsb0NXKL4Xq3jGcL0O2wFEIx+YwEf+PXGPjsx0Y/PuaSQhw9fxigBIdpBAwJDvcJLIhiOOVVfyMnc435CuMLGdk+oi4zwb7izQeAGYfIByDn297h0eW+EAPq8jCAKTLcKbOwOVgAndjjJiQ0XsHCb4HjjGLjDsevzgd+86IXoIMa71gnCQWPZKGlvAz9BBjjGTk2Il3yXRw98JvQ1DEiS6JpKlc8+aAUT2IcwwEcwMDJjf0ioMMEh1TRIZJBGAIjehptFO24JWmLhAMGpYphhPWmal7eVJNhsKTS8JA0iaELwAH3hBGILYRMuss2XzKqegICQwsS3jWggYN+jfVYOHCRm9Dmm6mDKcpOZojAHx+M5YN0W+U3Eh7Vg18kxBpnhoGZ/4D1BeNda+MrBoLM8aZPXGwOUcqs18axP5BnToJ5k1EiJAtmE4bZyZOBkcBcn0BHubRdAeTMXCvk+oOM1TATN5mWYo8145ObtBd5IkmYjM+XjcQB8fTwFfFFiCwxBmAY/p3UG4OVMXCmz4gyI2XPTzn7kT1XVE/hTOM+A8Teh5pNOd0ymnfu9p9MSfkzhLmfz1KjDJLtOxowq5zp4CzciROdnrj3Zw4/eZOOPncTmJ0U+7tAvRz2YS20hTXzCwymRzJ1HU54v1BpHbO3Q5gEeiKN2RDAMCQwO5lyWfGE4rBptHBZL4IWmoT5r4H5B4N/nqz3xh09CCdMYX6LNZ10zctuOrwNApe9DJ4ZGSk6VYocUQA5Cz7dIW+i7SmjBU4yIQp8QM0DK6LxW7R6YMpo7Elr0D6o5L6sTY39HOgn4PckICSyMYqHIA7QTmMy2HGKiD9LE0fFeRkYpgqBvQrch1UX0vIbq98ySNDnepghPTFQVCTDk1jVB+z7Y70K7NdNuyhlINj0wwF+BnO37xz0V+rC6YuHpaYy1tBNa2QsWKYirhoGMPkBag0D51GFoq4ez3IlXqr7W51CbVRhvhw9RgdPGEnehfhQrKV2LJBoxRwRQaBYWiPlfTE1ojssV4q1VbqQOxyrE1xq7MQIAtW9k6ua0H3hLCzXcdMPY82MvGtVk+8nGOa2tbqRZ488hl4beB3XONRIIxQJIP3NUC4VnAn8TfNEAqCdA8Bg62+vNNSKBZtLMySY1ZcoMIm1jhZjY2sfKFRCUAGmzROPBROsWwg7Fl8xcKESWIqGXJv/BHgkOnzQw58/VBHhhvyWhdQl3ixmnxsWmgVzZn6w2kpX/XaAQWE2ZbDlSnJWbOScw0vx4auAghdocNWfj0CpEV+pxHUP4tjNjdnjUwtGKLddHMXjjzANE+egxPQAeDXVy631gGjY2u8ipys5NdGi2wlT5N2s3yajlv7tQNSi6DAn1vOmJD58lZQTd7PCXzzyEY23oYBhOcOz/5mTXWdhR7mcd3tptAOcsSdBtbzuj2fNCJ2kR08LGRG/BcVuIWVbrBnxZ4ovMbZbb1piTJYgqBmGQ1KO8tpntQBEB09z29BsuGAChRK7FAUKHZPXq0AqADd4AEXfT22bAQkdbQLnIxVl2Vwldq2jXc3A4MAtqRMIsACCbaBR7oQbQF9fEjCdJV3diu1Xf7vr0h7qRYAH8GOkxRwMmAa62NtWViMVpC4cu73eru13B7qRc+2vY3uTYc7pSg+2nx7uL3T724eu43ebvN7f9SwRAEqRNLDoSU894+0vbPsX317+AW8OEalPDnDxouTUuvN8SFy49y63eb4l/sjLIwBF3I3wn1AyYkH/QLK3Ofv3/xMQuD32Vcg0SvRWVvuS4BfDEgcA+94GamNraGw3ElRp2YK/ABzKvRRzOZu/XotqWrm7Yscs4/LgYduJoNJ9L8P0EDB2oYyG5N2v4GVG+mdQySrvepBMAKOFi0oD5YnETO/BRoXcGMi1HZPxRBg11gK49EVK+zsljJkm+rBW3NnY4HgLSDwHuAH1Xr71ZgB9a+v82B19Nv60v1Y6kCqbEee6046euuPGIb14oJ4++s3X7HNjlAHTfgq+Z5p1hZm4GEjRAdFHsiYXY48esuOXrET9x9E8xANVwqG9gwQ44evOPnrbj9659e+uJOGbegUxIDesyanPcLDnxWCs/0dOaQjTvx6YiZuRqeZpjmDHBgwyO1kQIjwEBPOdkYq09iD+VDtq6QF3ykmTGYK3RPB/AwHmc9IFA1PAZRoiwR9OU0FIgnhyYSADPeUlOf4Bzn5gE8KgBSBXOCkNzu50gBPDJBYAzzmSK84udZY2qsYTOb8/ufAXvnbd+IIqUggnhNAB9DgB3aO0L5Z7XZKVuBhwiqKjLJmiiIxFU2PP4Aoo5o7qETqEZ0gjldEiIDmCQQWF+L0iIpgwwkusMxECl5oCpdNHSIwE3hMcrWq4h9S8IO5RJtIgo8dcoWPrPTFztRxvSSqUGiVIweFUyVPjpJ4LdoBhFuau+cO8RmIUZBcMUwzfDgVP2yvbO6rwVwJlPi7ojHbQXPLnakAjobA1rv1QlmiY2ugWAiNkFa/DBb3AwNuK1/UwczJQZwNr9VDOFddhJRX/8VxK9HejKycATi9WaJDgghuFZGtmfHQ0mI02AYVruxwDBteGBsmKbolh6/AxfAexoNHMOqs66Ew/2rwEtzvlqOgZBgkDobneyrer5k301I3ISs2x9sou+FQV/jdjnVH7oEZHVzkh1qRy9T/b1bdTkUNnZk5aczPSIEUA5AbAYL+d4u/FmSzl3yAci9L3faLuN3W7u1gu4QA2A13plDd82XQDkW6YZ7p64gEvfIAT3rAa97pGCIYEn364jZek267rvk9yAc9/RTff0UH3xzud7+5ve9ACoiHMlIkgiF7W7WkyHQ+XqaGJI3EUyvRD6kUSRgG9Te+JJGEqvAd97Iwh0TgGb1BZswRId3fu1vTCcyPGhKOOO8zCPQjTZ9f/YiFrTyumnXHLtMlEgKr990U7SxJ5JgWZoc8P2B1HnGuC54ZwC+RwJdDCTWQqpPXYcBkmWS3TWQ4GP4AZuPI3RYFonx1AbE8kKfS+BBlT/9NZCuJJPNuCz13iICaKYhkn4vK8Bk+0M2ruM9j344C1hEgsVDHxHoG89N5zykSIgIm92gHDJLjaADNlCjhVS+MxQKomEEDQ0Yt4SaLjEl4kLZhioWG53bsgBiEwQmmkDjLYSIHIpLo3AihOlojxJf2NYwD8Ry/twnxNI0jBkTzLFeyxOX9X1djYeNGwBRFvAX8qbfty0uuuMX5iEtStyQJDr4gOYj9B6+/k0nYNDbJCpePaBVAasJqIbl3t9hLEOEFr3oFC9+gPbsFNz8k6X5hFPP7qyxKoAn04iMMfkTCnF9OyT9uTkIPb2UbjIj6BbRseaRxzO8ZcLAMCBkxmBmxsPwwtsYqM9i9KuAkvo7/pfBDTzHREEEoYb/d97flZMN4yqHxqTPmJlcOj3YMLWX437ZIhkScrET/XXjgEfRPwOGlkeiIJprvCbb4yA600+x39PwMAbeKgLIQ80fJntaA++4ETvP3wQqaC1p+maUZXzLLbCewSFgrv2VfKajQNyXFi1Pt1H29G42VMs/DXDI0iF+mo/T1wWXyi01iXQns/G01NoC596sLGQvokKu3eimoc8lPyDTbl1+E2DfEJp7JElOwE+VfevtX4b6ewa/TfwaRUpb8gjW/McfPr72EVSJBZjqpoW77F6ahHn+nx3gLSq6F/GIq57XlP4Le++8eb0YB7txkHninDLl3YV0ZYkKq53swl30Nyqvo+pD+dqWG3NUTq9sZNA+oUxG39M3fow3pP+y6rDF+phAYSUYm4r4kI2Wr05HFLD2Yt9M9lfWKUr6mGnND/mIuAjb2TZjNK5ufFjVfxrCX/MQybIfnn8HqhUuVLEdDbW8D4QwJ+RvYQU2/DAX8zgMPuoZ/+fLzkpeIUwe0wpYgbi4WTyKUD7pF8LrPPrUwyAFpyoSvQBgQCu6miNDQBP5KoCPAcxGo75evcOIymIChDWKIAUAU5SZoXuDryhi13J/BLg/2Ga7gA2TNrbJy+2pnpNAzmJC5gutAfcB40uCHyS0MWvl1it2q3lpAQeYLlwGBIr7myC9UbAeRzpylILpAfukHqIE3uzAWyArUwgTxzlIqIMLw8AX4mC5KBEHjIGYALxnIY/KGxMoHRs9ECIGZ6mgDMDqBmFHkgSyp7pnJQMjwGYHFAFgd+6DA2gYxC6BdgcwAGBZAdECEqFBgAGZoSKLE44ei2mprtiOAaRC/qkKtmB/+5br4H2IDtvDBTC/aIlhxB6duiA5gTqpyguIFMBpykQ7REgFiAKAZoCoAuoPALh2+AYxDDCRAagwP+/SpiCwYdXpM5/AIjqNAiq3KNtyM+YIuBgF4mngko7IZ6DO5maglHQGSAndjeisBXgX5gfgaitp4G26vpnpcBoEEnq8IQgeMG9UxFD0EpQRWvbBSB4gaoE56cgeMErUawRdDTBUMLMGKBa6JhQSBuCPD7jKbgdGyvAWgfcoAo4wY8HTcFyHY5HBvgfn5WGWwcYGmBFwfYFfuVgbwgU+dwTshOBTwcaD0A4wRCFvBSKB8FTBvQZyhJI3/lAp9YZsFd4LYdDPtD1eWLvgCvefeDjahe1lpj5RyWpk6o6g7XnYDlEI+qDQzg0QFI5QwhIY8z4iIAfkBgB1GFsK2c9CASCFsKlobRHYBFA/AaAHrLCD8hFwNcCKAYcjXxaYm1i56ZAgYMcoCmhfk1CCu14Ct4EEZ6K0ZshvAByHHKccg14qh0ysX6zQlQe4GCs3AKYoxmk6qyF7goARrBi4liANDpGmphhh6sdoeyGOWJ8sFalBlpBZSEB4oN+KvAVWGrKpW4PmezVIOOoRChB+ADMpZB8AbkFhA+QfQiFBSUP4oCYcXrACyK8AcBKuh1cvugzgiQUYDJBkwqkHpBAmO6HXGHIX3AL4SuHED+AZBN/5SsliJVD1uVwM6GEO6IK4CyGLgYljgY2LL1CJWX4AvhVYLyOFbeuLyP4pBOboTqFgBRlokHahHobqGOW1QeGCYgvQBPrsB/OP2CLS6GJi4EBpEGaGtyIYeOE62gMEKGxw0YfAFxhkeAmGIBSYQUFPwXihqBLaIQTmHThHoIuFVhGsDEL8adYQGCNhmAl+H2hmIGOHbcAEdNRW4fJJiAdhfJMiisBozKuG9UMETgS9UyKEIGIRVuCtQoRDNH6CgwcgYhGPBilngDZIrYcBIQhxERjRkRqLu27qGlYfaEDeglvRGehtDBdCtQv3HQpBUDcLeIcI2LH8qWIFgJoDGyBpn+BjhfNlcA4Q+GJOEjYxIj6HfguGKJGDWOqAhCjWrXJOGX6rgMxHLh8SCjC2h34dMLLwUEZAiSREwcSJW4yEeiAmRqwWXhYRxkfhiHBZeM6odkhYvugmRyUCrRERmfCRGJYbzEDCUR2SCfjvQM4PUh/ghVKGFDWuGC7CXQYUYoYXQekQxGKIukVpEchiESlhVYYUXepTCMUTJGYCQMMlErhhgBiFJBuUfFGehmIBlHgRDYaOx9YnQEqqPGaQK+Tr8esifAdyU8G3r5IlwNzAtRret3IdRpxIqB0MlgCIaxg74OhCAgejBYDDRskM0iKgwRAXjUIY0ZSDzRSMhlz8efWBUAuhiyN+r6yvCLiC+y5eEAS+yEQaq5moCshdCpC7DgYLwaeDrmYEORgJfQ5k8AJji7R20dzAxkHQZYj6MEWMD5bBmqOrKAYJCP+z1YrWIVifYAcF+DAgMqghojYLUSOSVU7epcCYQIeAPKtOI4k8GvKahJoDoxKUK8C8yjIHYD/YwXqvBVIwkYPI5eJAMhBzON6JYQkAtRK7Jkx0IA4qUxkKjTGZsIQgaY5e8RMzG8INMfYSJEC2LQBcxLiI9BcCLMd+DesxUPQAixOXtHDGIQzjzHfgXaHLHp4AWrQDIQriKLEKx2RMVDSxjMdHA0c5iGLHpEBsenjGI1RGERCxGsYdgKxYRIsy6xDKtHDxEVAKkSGxCsSQJOxLsenjscYRC075E6sfbGOG+6JYQYBxUDOCDOANvETVE1hP7EcxC3grG1EOsbeLogxAuEQ+x8RGLGZsKcVQCnepiIkT2xI4OiDlE8RAFhkAZAEq5UxoGJYT2ERcSXFlxERDODKu1RMYhUApiGYhhEMcQzGaYCsRLFWxjMcxysc3sYLHcxQccJj9xbHBxyCx4xJCARE7lioZXeVAWZrn2OerTG2aw9svG/BDQKkRkAjbC7E56ERBWypECWqBjSwSLjegouelqvAD488fnbUBRHK2z+aT8vujn2tmuUSNs+RG/Ebs67DFq8Iw9qvGNsYRI2zbxf8o2zNsDHDnpbxtmg2ybsb8eAnVEtmt/FPxKLPnpsgkfiYjmxgTmQF0MtEWeEPwdLBYwDiBIP5YGmfbgrH2wEZNdj9WN2E/j6arALwAEJ4QPQJRcQOkUB0JHgAwmmoD8BYz5A9CUQmdxSKJEjGgX4DTFwJ3BMz4ocNceQBlxJAprj+BqqPCgAAfpoDBhmblciRIJMTbBCJWoCjgtYmuMzhgwt+PhgBorWN1S9qDQNgTogiidl7lYqiQYkXIxieyC6J3hiTFGJ9AJokaxLPvuiG+naCeB3MNOJEgocegIPLWctIDFp6wf4JMh/gf4F9j0xXAiKpHmMcozH94mONcAkxJIYyD+43VL36WE+PhhigQjjjSCsJhCb3GaYEbrkmHhkEKy6+ASUOiDwCIYUmiXQ3iXcyn6THJEknkxQcDH94kIPImnYu0eBiIAQkaOBMOJREy48J6ILBi+EA8RPFwJvCJrgKaXcIXETJ48ZxzxEtIGPGDxzbM2F9Y/QHVGMYC8dHoYAtMcvEvxj8TegFE67OVqdcV0PhhDx8iafoyYnYNslL812LsoZaX8TnqhI+GKrEWJdyZNiPJtsS8m2aACdlrIA+GGbEWx3yVDD3JtLiCl6A3sb7FqxtyVDD0AUKRhYsM+RBkGlaOejOAwpjcc3GtxpiO3GIpuyIxFjKRAhbFmxkceYhJQvPkd6C2YKRgmWIMKWryGYYycK4z4pzKOByRj6Elado2WDELpWdrm0Fl4wuGFg7J6ArgmeA+CWwlFB1GBGQWAL6kwmQ6uIIUnhANSe7qcJD1iqkcY8Akw7ZByhBPityM4I0mVmSWIoZjcliJvhXeMyZNhyxbIN4l7ME+sABUMsALqB7IrqeBgDQ3QccGJk2TGIw5u7hl6TlAp0L6mvAvqdW6H4/gEJH/oWnsHa3sI3HoBhp8IbqAtuRMYODhaXlmxB6A/QLAAOo+wASKeARIoiHjSliOUCJQPgRuSg09MB6BbYriNcgyYhMOiDpxbMKOFKRZQLUF6wmgFjENBIjjPyRBkxNdBFpdgGOGN6Qqe6boAXeIgiRhRaSj5woGVpiAUBiUDTgT+bPjbiwYf4J2lCOUzmYZGWUQVbIxpe2PFijpm1o9BdBAKEWnXmC6R+ADm2gAMmAoOyNdA18yhjPhTp+6V3hfgaLhmS/gkINiHtBroWeg3BoXoZTQ+s6V+BhIs1CbC/YQcO36uINIdCCrsX4AyEXI04aNA1kX6WLiiJioWGCrsNPqurGhuIOqGre8XrV4k+7frSBBwhriaEBhn8M4BNApiqBllc3BP4Ae2dVNcijMy8DenWIvQRW4be4GFoC9Qj0Lnj5hN6IJm74B0JCCcQT6OFESw0wbOBRmX0PbS0g9tPrZsgSmSMJR2/GBT7qypSWRhocIqr7JnK+0bG5kCEGTqAngLiO9CRIAqKBp6ZYXJTj9K8oP4BngAcEDhwQGXIJnjK/cnUCJQesNKAkAZ4BZZFwYloOCYA6RjYaYwygLiBu0WSFOARZ+JF9CdgVetFndyGQMSmJRhcUqG0u5RNCjper6iilBoWWRlxyx/uGIywZ4YDiqbJM+IMA4E6PCiGWIUgEJE1ZaITPiFUJuH1j4YyUFxlwKY0LVCiYFoDwoCKPWWUEq4NrPQp8KZIItju6uUJmHZhL5JIp8KfofvgzQmLLzJ4hbAWw45kfoNfqzmt0bw7IozujI5pQBjiOj4YSKGPAxkG1ONDxASYjxaMweqdVbzeQcEoKsA8AQEaPZ+erdkvZbZNEhEoW8LWb+cWHPVmrQxlJNCaQrdAYgqA8IJEiA5XDKVDWgCNJ2ozA3apmhXAjkvAHXZXxmGrjQT2XdkLWMNK2DjQ02dgHwBXhoJao5oEOjkJwfLs9nk5+elQ7uINgF1RBKLHh2B7+ydoJa/Z1psVq5QV2e9nU5BUEMQ182nHogcAOcKDkQ8LXCbDZgiOgTlYBMYSTkGuwuaLmaArdHcqCGSua3R05hQAzksCL+q0TFcodB5IWAdrM6a5cP9Ibl2sTeFDDc5qAOrneg4OccYC5LzJVSKkjwPryJUNuagwRaTlFVlMGN6BX59Y1MJiFl6U2bLnE536N/qMQlkqZAJ2TUHCYR5+AFHlgyMeVTzRMQaPTCwAR0VEo9mvsikZ1ZQoS7yB54GDYC3puyTfEDBmMPVAjBqYLBgAwueLACbpjQU6o4osWfboFImMJbTFyvCGVqpE4guFmau6cpjCOS6kGC5iBAkjrlAuRRlsCAuecqfFWGGhNzKGyAyRi7cYbGMEAjyMaszlyIWIGPL16kKHcpjyTXn1iYA3QSWxl5+yTJB2iMzM+Zb8C+rwjQAQkb/KZ6g+VhiqgJcoqG0A4glV5ZIDfmIBu+PokonpyIws4CN60+Zck5ObGMshhgkEJiC/5APotwuIs+S+Jlc4GIMAn5oNCCBlyXeoRBX53oHSzN6+oESCIwmIMXliIVyNmB8ZUMO5mcQNqADS/UIIJQzRMYSHsnpy81EgFV5SBRO5P5SMEPmv5k/Ll4EAzANAADQSMCv63ewhbiiv+k3mxjiFripIUCFQhUjAtBYhdoh0hysFOCYgesCMZTgd6ot5qFzACO5N5X+QGi8IiipBBHEhEBkzJZuILl5GF9oBv7pyl+UczX5JELfn7o3AGBqAgNgB4riCLrH5B0gLog45sYnWhjk8ZemkvnXesCNXrEKiyjHAGQNeosrdRbUb1G9yQNixBYeijiOhEgRID7jNRLcCYqAghHmuC/2SSLnl9YOEFd6T89RIfI/gKyLyDvgJ0TgA5k+RnZC4YuzDODNFoELCKUi1LgepzARACfTxGDyuGZChhCEl4DFjJJNpYqCbr97gYieCXnepEnosiGBkINEC6u0ave7rCvmsGHRuqVskqMa3YpDEZMD1k1LRZxxVjwPpG5FQIJYVBvAF6ccAEgHEBF8LaBBZ8UIVRWpt6XsiouoWWXocAgKq4gmA6QREHgY+bBFigEpxVpAkeIqX1ioADWVcDZMApgmkvGZ6toAxhlaMgBcKvlOCVSy+AJjh2AOYDODwlBkZYg4lpMRObL6umBiWdKMRZZE4E+JSuYLYaEK8BzF5bviXEUH6TPzScbxa4i+pISD5ESEYaTZRDsIEEGKCaehAKVdoKaeNzgY2TF6keggwfcDDBk2HoAwllwHYCElyUPiU6gapcXyL0JEaiWQxlJaoBYlBCDiXQo8pVPnv26ICqUvFbQPtyglJ1Hh7egxpfLD72FeRwD4FviO3k656/q5G0lWdn1iVQaBWCW7uPpTeg4QurjaXgADcEGUnU6RR6UimuTpCW+lfYZYg4AUgGaKXJKQZ3ElZUTGGAkAwAJ/iLaMCHEkbY4GJVDYJj0NkxiIh8rbInU3TpvliMQEZGD1l2TnY4j6J8q1yeq06GGiRIXZUjBLoaSbzapWR5joXeh44IKgOwYVurIuZ8Gj2ZSA+BrnyExBBVWWFY/2BqA8w8AGuUVxkCuri1ZfWCmILSRsCTkUwQQN+IWUiviEiLYJ5QjznlIcB9F9YxdhFitcB5WXjKywVu7oxCNuPqFRFPLmehzImHBHb+hBUKRDhWUcMQSigPDIHEUIVwHEU64fcGsAVQjEBfBmZJNNmCG43YIbB6AzSAv6uAc7KgWh+q7FBx4VO/pBBbhAuIBauA/LrGEZAgFmtiAWB5Y+mWIoUCXk+8Iql2D24USjFqQIbXrBW/lQyhfCYgSoT+WDKzFWWZUVgrsVKmhkgKqDxZfhlRkDl7yqpT2irAORbOYdkDdrisIgFnm2cl+Q6KqVAQhpXOFiWIXHmI7LKUUz4fwLCXBWDtNdTtwM4MRaGBrQMhi1UECBQDROjgFnQ9FaWEOytcDVAs5TFqlMBX4A+bLZXgQe4K3TXg5UJ0a0quSMXhC+lpsTaxipECFWW0qeBwH2VuWh0Vsup/v7kz4coKOD86sRRkDUKRVfEWAMeiD1EIxqRXwigwu+SAXDotVSMLN6GZrh64AKQB3a6YLcJGBhAd2p1VkgG8oIXNVXVb4isF6SEsCVGLGPHLdVhUER796viEEbNVkJKRBCmPgDDyRlqgPMXVpYhK4CJ0lyt2EUWTlKkSCOvFYMpYcrgKRb6VLRa/RtlkIInhIOd1QDDEW8Hr9yRId1YQiOl3wMuQsgu+bMjyIBFJMgygVoEoSDwZ1nble4/GK4meAINR9UiA4HobhQeDKhEIXVB1TS7ogSNa/CXVnRYWacQoUPqCJ01KNNxNWMYAKG2wjzC4A7czAIK4g17VBTVGuNNUsAMOiFbdxVS5NQzWBA35Bnx0BVNREKMBqAEa681jNaGo81k+YLWMQUag3ACm5ZXoAS1G5LswS1yxLbCrFegIcqQxRNRCCQp4SZlHsw2KUkwHFIgGrWxg71ataG110G8pXFbQTcVOURMF7mPFNxlyhDZt1buiRlBeJtVAxLVb4ha5jOSeB6p4kE5jLZC2TEIaeelMlBrGr5SX6LwK2dNzOeliBRARYwUTl7946cY359sv0a2lpW4ZGIRLYRWK1gRCeqamQRC9xWEDEBZ2BOmoonAmG6Box0L9gF1qVi+o8aSibhongdmKagVkZZOGjm+0lWxi1U0MMGjCCoEJHWMQixMGiF1KAMUCuINgL+pfq8qLbmfVwuZDlxolHi4gu1+MY6hBegcBOqMZWZGqiaAmterKaAeqC3WVk6qMGid17VKdg2e5vn3WkQA9SZhm+4EDbVj1j0BPXlYU9cDkqAYubPUQ5+QAvWNIt6MvUlo0MB6QTqcft56JO2YJVA7IfnqvgQNrES4idBT5X2xmwD+aqbhgYkOFSUKRuTSDnaopBmS7Mn1A/nEU3rMVq1y3kBmSRligOEVwqZZDobygR6GWT+eWskyJKWYUobSMYvQFjE36ICrqD0AJgAQ2r4H4IhG8N5bkFQCNIYFpiRlQjUWlvpkIPEQ3SpniGRDWrgmIKKIqnqhDxEaoF2CqN8oOo2SsoBm7Qw15NYmU6R6ID3k1owlfCDlwlIcjVqVoEASE34e5j2brhHDVTCSuoBLLwBId2tRapexQdLAnqp7OAC/YSDXYkcJaDePBvghMLPpAhj7hyAYNdrAsTONS6AGhtF9yMUHpxdgPg1npNiKfpYxOsgGiRlGTYiGABf5PsBvBJ+MnITCdIFRxmaMWl+CepZFS/EickIOFr1NwnF+DlAgFnmmEiptccFl4X4CmREgieOxEFFSQFkhKEqdliB6IggNoD5KwFJmI+K7GvoyeNG2LszDhG1tKBuCdIF1zeQMYdDpF1xQNEGUGDgaZRIGo1VmE64tZIpX0yOzQ/VGwCSskYbNdylc3wBuzaPW3NxwSjlmkGBCJy2gx8E82gQLzZ/AHNkpiWmbVJwaXXu6IsWGANpgWAkkMq/eEzZp2yxCEjnYR5Qv6YCpbhQi741de16uIxyh36nKcGc3XLEuGRq74ZUldRkWhriC77sRYRGGDm+J1RY3og5vuJUhEMPuRyPQuCoS3vQ2LUl5W4SiXZiCwWMdBmPQxyjYD6gnLVXDwagrSS1qh5LcUA0Z3AOGj9K+oLS3Qg26gy11UCsJwAOiArqy01WSXr9hYxMZilhW4TvqNw/pKQsBnPREKMfVCtmkK4it+arZ35hg46oggAFoYk9wYA7UHfUstuIMvCRIEQjGaFuEueXQtY76ZMTFhv2IyUYVfgrwBYxbwWXglYyjbxpd4gsDSA5E2UMwVcFcIC/m4IkLdCAhZnNovWt2XpVe6ZybpbgiCw8AFID1NJzpPnDBTBIyST54kILCsAtbTQGT5Mgefh+I6aIhzH1bbUYEFyeIJ/Z6syQGC44ADYcUCjtkHq21e+CgQUjK8R7nm2BgtAII6oeIgLD5dYt6OnLxwfwIu3O4vAXqz7tS7pnKj5+QOPnbB6ADM2ntN7pXk3t4gU3r3t6AFcG7O9OqA7UGlbYtgD4SiYO0FIXAbwEeEeBZnLzBPAcB2AdGnoC7pyfAbgACBUHR4QvtcHfl7g1AHSoCftvADW2/tMkJM1ZIpuSkhgu2HXRgL6gBSM3TNH7vh0kdYzWyCCwiABh3zt4AJvjCsFbI4CMdAyFQzCsgsP4C0dHAebrsdZOFx384rdu40Zgn7doD8dTSOnILNeHVR3iZYna3bpAagGC7OYkHZnqsFYQJ+1SAsnenImBC4ACEpAUTcB7lINgTp3KBRzdE0sFunbh13amcm4Ed5agbp3Xt5ncoEyBjnRoG7BLnZhR3t6gp0Ansx0KGCa4DaWk2KAUSNAALqQfB43N6/wGahwFTOBlJiy+nbgjTYkGg+gBwwVhwAK1ieKuEcAaWICxZdx0I3iJ4MrZq6Ott1e16It/AKDCAs/ACWF/AoMI3j0w+GBwCagyQeV3ogfRCOndIOBI11Vd9eOlyPQigJu0CdaXRwB7+1oFVh9EQQqDCmojGoGKOoYgA7bHBBtljHtdJlnqlsgjqCPWPFfYONJC+9af3hkAK5hhWmobdtIGqBgQYGq6dVwfEjH1x3Q+2KO+9m4HMBV3Y9DM4u3SZXIo5+JD4pIa3jfX6grgFYzRhlScig/pIhPqBiA8oMwDGKdoMW1P1+oAkLy+1do7RTwZytrhko8PdY0BClyOb7Y1ilG4rMtOrcFWI9oUG3CE949TbgfdNKKsL5AP3bqBxy3AD0XhoOyOfhiAtIMD3sg10MISgwQXaF4iEORADCKA+oNUQAwj+O36YgpiEL3Z+hgBCwuU3BKVy/U5+BC2Bgz9bfjXAoYN+2vAjeJDF/uaBDgCvurwOHia9YHjwGvAaXTd3oA4kKAQPd2Hi/7ndTnad1XooYN53ass4CIA3aygdr2vukXZDGu9EHuB6YUBCCb1uB4kEF3uYNgBlJsgvxXoBWogLO5jM92gOH34YIhEPX7Ff3MPBiQ/AVLL2AfcIZTm+DtYoCLEFPd90LZGXY3hhIP6aNB6moMKGDJ9fwKn1KgPATkQLdUMH0QO1yeH0SsAlPbwA31NqE73EwrwEF38A49TAXwQLLKGBNI4eGIDG9i2AlbjggLJmAZdgLKgD4YPXRwCwQTJWqjvQjeH8Dq96vcLT4YleIYCJ4q/WlF/gHACeAZdhgKGCL9rMMPDQawGlViJ4e9Emjh4V/QCB/Ut/Slin9QGjbgE2kJhm7QgNXa11hgfwNF53eTUAN3dYxUJf34Yvfc/34YAINaBV9DGR6aIDq2lbhzq6IBUBCRHCHp62IdWpbg34d+FAg34igJiCYDOGnYCKADfXYitWy8Id3LEtIBH2TIxPbZXH19LcVXUlbA2VXWKrUV3JVVa2sbUtgYrb4hxlLrb/pjALYDn3Xyx0BrD5ssQsrVCReTY9D9AmOBrDRl7WDBW5gsALvi3QMpfKGR9waLBW16PiiINqtiRbwN9RtVWSbcAfenS3u1qxDSbD6yOBmbIoGsIGW5hQhNkpXQi6RFxXAzJRwjIAjfWRU9YjUKKDrwjqDTjmlj3Wllgw2YOb5x2LFsnnNBaNXvqkQRJgUk+KBFrYPyC6IKWaOoFSMBAIcBCOb6RG1oLdDSgjA+yBEuWbdc71txco9AcAQkY1CyFBRbmz4kepikNF1+ACtXZcB/e0Ufg8lDsjy1YSJh2RDj7fLXyUd1fIHcdmeme22dbIK/Q74Iw8CLvtwYCPm3t7pWB1pMngLggLDC+BtXkDWfYYF0dpFCVbfAxpW/mR9UgOAMltSMHMMD5SMHe37DHCIcP+NSLOPWjQT2nnYrOt8Qu3YFThX5bIdJRibAmAi2IcV/DmlcgBfVsYEEMPymeo4UQjQHSCNgjT5BCNw14kJR6wj5SPCPOF6FE1C4ISI/O7gjzhcJR4jMI9aAgjdFdwQggHgren3R7MASP3uRI96BojxUqW3oea4eiDd5gjn3m4goMAyOb8EI1CMLEJgKDDuFPil4XAUvNuFX+07MCCDNljIyiPOFQowDAmAo6AqM4F3wGiNhgIo+iAggoMEiziZDWVqD20hONQVklcWW0AKZSmQiaqZhUOpl1EUntzQ3Q2YErU7IJgBrWNQWtXoAgjjGtTBCRJgMRQXFi3a0HZIltXlQBjG3agyDwUKC2idgJgIEXZgSLGSgGj9+TkglhSLCU7ejCY1Poz8c3imNSAtIMfmJQWZqgXFjdoJEiuj6xZ9TDtrAMAVN6Ho16OgZSTGIDplkMdWMOQiAHWOG1fiDWNf26JU3rzdhwz9ghjK3bcWZokY9+KDwUavsBjyOY3YVYDEtJGV4ARbrSKn1tVFpwTjKnFfXKEfob3CeBOyWT4qowxnF2WBj7rbCMlY3uGF748yB5lF+kWcV3WKmkIi0VY1yMaCII9XWWPJBFWBEI6s9Yb6R1RgiZyjvjtEV+MEoy3cuPzIKUKR4MCX/r0mWIV/aODAZlhhwWZgWGkw6VeHGgXH1UgvZNWmaYIjiqOh60aC1IhmFTcFAwvWQQAzKUbQHBW4b+vABHmV46aiWowaLf73ePdeb4UZkWa6HoDgsHr7kcxXTn1PjRA2fJEAk3aiifgVyILAfjfcEijJB6A1jG/jEEcuOWoDqBFwicuzFJP4YMk0yGwo8kyOPKTecKpPpcUHDGaa4WMRN2u2y3WGNHstiDc1LgJ7JGWFU1WX1AiuLFV8PGaAweu3x6menGWp6Ag5nKFFuAOwXlys/vHB6Ig5HQGoh4GL3LeiGKoFPEeZ3b5bNgLpWg5HMQfLAASy8Zf5U9ORPrY6BKBQzUgBV8TsqSgq8OgFUhOeTjU6FOdTl9aItOTlU5hOBTsNk1TnQGnb1ToTvk61OUTvU6IY48MdIFu+eVcDjOXLpIaDKcgnaNJVL4LghHVLGBq2DePRu0bJB43uNOR2k05BaRl+AENomtMFB7rEVBFZPojTv5TBnYKSoeAOn+bKbtC54lDRhio5wgPcD4V8/nJFkYC/qq1AWGQL+U42mcKEDCxJ1FQixykYA3BEg3iADMko8sB6D5tXcZ1y4Y0GvKGAgwAH9PoWKkZOo3Tz2XdNUsJFSew8ZjKemXMp9cOjr7wGaF3ymFwrB+ASGDDgKIX+UGBEXygZgLGRQVOlsnVnsD8Pj09un5XSFi2EPQEqbltM7FXF8SPk1DThA/sea0TiLf0JyWgaNmBXTobpeM24BqDTM7RfHtJxSzU+MLjZg/KTdMszNFVjMB5Q2kNjyziKuD2X6WtGIw4T5ekJNi9uE2BrlE1tiL3ogmfpbNwFQPn1gR9iE4GDFdJmvi1d+lsxEGFdkWdLn4Cx3sYgi21mBanpGV7PKB0MRWHY7gYQTQVVl6BYJgBlk/MJwIkp+2YnPdKSTLhTVVuVXcZUztItuMUzfWOLSMYMONLw6G4dS+QYE8oNLwagVczXOsR0vHBoxzRbtLyr9dc8Yp0umLMS6YsgMOBhEA2Ca1xVagVSMK/lvCUSBCZoGHWLaDGGJxMPeiyASjhUaxM4CgD0ABuLde+QDhDlMVMPPqJ8qsGzqWgccRwa9TS8xB7Dca8z16d0qADvNyW+87vhfglAk9jvQ6wF9BGA36giqAwDmc5nzTs8yJgUTw2SvPnzG81vNXz+QLvN3Cb7YtjuRx8zxDLzifqvNTe687wCXz18yHD7zNVhly1kliOviDJdLjfNvto8xlxjeSjVsYwIKBa7Wg0R6BXNhB0IHWI5+n3kvwEpQWC3hHoKeC3hUMf7OBjRA5CxGRduqoZq7peRPvvMELE2t6i65CYBEI68eCwVDzQkKjEIBt8eWAv7zBGMFbjAuZHwWqLM/KgnhEDqO1nNDm89rlXuUExMYmWtfBuTSl6RtmBV6s82zDkYf87Asje8C5SCILj1Fi53CUiyMKJcLiDmALUVCyZj0AzC8SJsL1DL4upFe5TPg4Q3C2IS8LeGXPNYocrgHO5+piDH6nEZBSsXzF3i6qbQLFoPYtnzCCxfPFAGwoosQLH4GRB1MHcHoBHoUMAEsz8KCb570QQS9hZ9YoUPhin5KztwDplK5hWw5gRujejPxFbIVTCsP8fvEDIdDIMtPxfhBWzZMYy70suEXS9MugYh8cEXdaqCUHNDOxNC2HhF1QxgBLxvCN0urxQKfugDLq8dvG8Ioy6vH2a+6FMurxR8TMg5gSicJwrLcsbH5llfMkZaVQS+TrS8IHADjPSybWWKmfhkIO8uhuPMSMVvK4GI5j8ZpIQDCVQW1SUDgNMQjCtsBr3B+INwDWeBiorkK1iiqAdVFbjzU1wNivaqkuWqg+VPxS4iVQPUOfbihy3ClhRuUmXFgZ1EYftFYaKaIjT0QVXt2K0TWePRDzUznjSo5IWNPK64r43jyu7UnmfSiiQgNnYB6MegN0tZUfpDEL9gcaUJoErphGQG4A9pVhPcWXxsoLXAM4CDYp4TDk9mZQjM2kAbZiOCnNOCRWJxgGO9WNnM5VnQR3qNwips7qRIhEzPhmwg0wtiZiEQtuM5QhMDThDzdOtIvrEJwovCMWOc6vA4AyloxjbTZ8i4ifTIA4n73+j0DpVyWoya9Aj6wGT55izIcOmuGAI+uRzcEOa6rA8JxQcVB2mRPqWsj+Is+zDFrWqWWszCNCBQhkBqgNgleQ2UA3DOrbAYau0Itui4CcQrckQvCTZIdeVnl+86DD+dt2NKnogWSuzD+U7WgJinliPBAtsZliDmAarna8WXog0SPEGVYh2FK7oOPTqAqLJg8adOdrIPjOBrJE8Xuz2Ub7VpwggZdBgSbC2wipz0Ac7AyIzpfwABSkh8SPEu/Wgc9nFBYX69RheQ3GMMlYQA61aA8h4QLo1LrQFSMIqcDLuS5RjYuPKEQYM4F+udUhUL3NXsiGNuOsGCqoNMUwuI2EC54O5FaDdQ6AL+THwXXjN74ULoDeVm06ACSNjk10PQiPATGzxQrk10NtwOibZCjl4JzLCzx4gI4gQBLgqGwJHRry+SRuIAZGxxQ0YMm3JtTWHI7l6Kb5G0Xz5I1G60aab9G3BucbLG0K79EjG/kgGbGRBxsmbDFMfDsb+APpsMU2nCMi0JZSg5v5An4KWK+Ax8CJsxgqABjZ9YjgK8tABeqbpzkG0Gypzt+uja7pD0WrIAR1c7PYVAMi/yv5tMOam/JuuhOC1FzOb7uoPOcAgm0ok9KEuthtPauXnOyUhc7HFHFbv5tluSpkEL3PgYe2vVEGoa0LxRKbmaHMiJrd/rEtW4/tvIvJbhM5dB6+GitdCIIYSFBx6bFm7xQfhmGtwBJkVoIFvGcdBvAFv4GRASC9w4EGwkdwmkCtvt+w8FbBu6K2xFteQinJ+zKc/QiVwKEcW18KYC/gNrhwoZOGPBwoWG/ND74RFYVDWg7KwRScr/XtYl/kgMHdtBw5W2htfgOeNRiXQGm1Rv4UINZRtviYQAxtnltm7xQmc1m3DsrkxoLxuObTKhluubom+5u51bm95uEYPWzJqbWas6tvmbzGwxSfbZWX93GbZO7xQ/b0aAVsSiVMDZtjbTUL3OWI8AP8sVpJHMRsMUzW68ADQNHmYr7Ao2zTtLUt6ojss70O/D2o7+QJVtMu04QkL7AMuxELDJSinJ4mwgsKvVVwD2yZjqt2G2EiYCmgGRmoobIFjHFbRAMLI84x0OfhDeoA8mtQr0ICIT6Et+I1tNQfO750u7Eu6Lv3+ZIWBpveoqLQRGbsO5LuA7RABKg674k4/he7XG2ECStcflbj+BoYHmk6bAs79iZCqKFXBsBu4FcCPqq24mjHQ+4reH91E+LWn4oAaHS1qWZ8oQO4ELu8VvWTunK5whb12GFtQZmkNttKikW0HD7bOyNFuFcBZMARnbIImLhJYLLNIMg+I1EPVuWbWJHrZ+5+VWwaw6xN3slUf+rIiOWVwFX34Gje6pNBD7UFX077kCT2B5ehQVdBH7HGCeAexZALqC5x8CT2Ctg2rR3teQQ9Ziqf6yAFNib7uAwGg9gM6URonmFq7xrFtoYPqt2IKQsW3QJAu03iGRN+PbJHb6A8cAnlKYTKlyxWaHnS47DtnS3a4keLjtAsCKmt0jjfKGhubQ9e8ZyN7bCWt3rbwrK3vtCO253v37buodsFcynNAcMH9gO+ss8mAsz0Tgt+LZbhoxMI22P4xW65wd+4cOvV/bhUDOlIoz3R5kZbcuxYxoHYQoWsemiCPS2FQDqBHvXQ+wNHsGbeOErvSHqu9Vti4b20vz4DwKtXtpt7ePiIp7se00jC71OzHt9Nv4CTvM73u1+AT9A4sUFKJU64Qn74FMLRv5AaJn2DgYvANGvipEeJ5tibNGGEe+AbAaluBowUQpFp1kUapGZ1F+hqBfgPqyVzIZmGv3uwEWe21giL4BBg6jQWiwDZGLaBg7IDmZAfAD/+FaeHa+HvXvhQQmOBBjEQmOStgJ/76HE9r6rbyoRh1HaJjEL3Jee6qmCWBOxYdg7rO40sz4iAMEcxBXWd5a+zPSRior7oFCHg7c1IOAs/SoEAZuq5qx3vN/DB/AZt6UXWR8bH6jLQjnUU+wMZSmU6LHsegQUSlLXqKBBVLV+B7IGEu7Q/gNMf/sq+F+BTzZE8POFQR05k4I6siBVgJ7xu+uunZ1yOvivQtIN4tycvi6D5/H80KPOnQ+iZ1vELZWEi20g/c4lB6OtCz1ZJMWk/Yg9HeS34ePifeCS3onjOBtgktceeq6mKQMDJtvE6qfMfUY5EyfMrzWUAgXfzd4/+hZLBADkt+QgC7wCbzuRCAtuLqCxAu8ni8zAunzgpySdIL286AvuL2G2WhQl7KdMcVpAi+q5yOkxTlOOFB/PmwZg2AEgBnNygi0H6noEIafQAxp1/YYEygr8ARDSx60RAwOEEMBmwJgJAIWnyVUfQ2npp3fAlOLp26cendOhsfenRp+CC2nrCnfAOnhgSS1br3kJHjsU85LSjmAv5OW6e4o3mI3gYigKCsLF0jdEuktp2PsCPwbWEruPiPh/Kd9e+wOVBZQ2gJBrVjobr8fLDAJxvnAnz4xgfLDuYBchkoiCFCeXIsJ5Qvbjn4IieWg2J/MhBYHO8WOJK5h+q4YYvRw0eTp8eUmIaAT67+TuEhEMoI6noi1iovjVR9YjGgxYWWes7FZ04t0bYA1ufgEAVdNzLnZzfUdNQ652IDKCt1Lqeb5JTfuRVEi4Dtw2bvYwZtuK0rp/r7Arp4MDunnpzcdhnq880D4Av+pNqFHSlVZTgXzZKRBtFt40tTP7r53Bdb8BPRmCIXUF+iBoGYF1hcQXLZKqVoXsiIBdBnoF6GeEXOF1PVAXIFyGfwX1F5Beqlf3v0oUnaNbnVJntLLRppnmaEefQ7ozBdB1RWfZcX8X0WPOfnnpF9QT4XVF9ixILkF86byO+Xqk2RlvAP8tGWn3U9ipb0F6IsYOYFC2WgUss4hikWsVcfykWriODOywHtgaER+tKfQvNxyS9PNGhhZ9b5/rvjqn7xEJAhyUkcuBq6ECm5JyDDv6L59k40oFWPwKsYxSJoBsiMPuHnlQ6eBswLYgbctAx24cHontFoV1lA2gxhz/2dgPYfIY8wtEN4LNYfDORNp6bIgsd+5QvoUiGI6enpd0L/Pkq5Np5eGZevw9V/NK0AqREjSx+s8ZMejObiPFOTyzgystdogID2g+k4ACaRDoYYJ6onH3A8TMLllyJk7joZQFOj9l4ALOh9liAYlgroa6G4gOAbKA1TWgO6LH4eWBHLNLPp0QTbhxzobWrJM7c4gQCrhNnBEJzs915aB2ojh69fnyHxnBufXt148CfX/KTrufXw26fvTxlRzGeg0Fhg36xrZIe7rwQMZ7bBMqGM4Quh6fWNdalJjGp3RZdfeEmjknqiFo65edAi8lPBQMA0Ebwo/tv4EV95ZMcRY2YJ3TymFMA0FqoUXBjNsBPV28cHNiZKTcxcCvVijITbQHIsR4rEwLOuhGLaBjyLZN47DocuXkpfH79AN6xZmFHqDfSwvCGtHspmNEogecfM3bssZfkQgeAxMxSWleWwGUg4WzEeO36LekIEmK/APhyllLIB/kwKLMM4D8oVuDt9lBqnu0IGJSNfly0GzEdkL+WCO8crtEtQ0Qe0oqCN0KFfLE6lxHdbwIPu7oCJEbeWauAdApRV3w83bbe4gsjklcnq6lypSx3ZIhwZ9zxtz+vLNOCuILt+K/rPPDzZoQq1Z+creaFNAldzycnIREJUmt0Wfr7h0IiIoeHeglt/QC9ABFH3AZ3LW8Hj53TtyHe58uUygDD8fMG7cF3lV5YgEwhTf4Em3+oGQDl3PfgWGQgBeISfD32nrJNz349y7fdWc94bd9Y3CESpuNNV4g5oOBU7qY9Olt9bdkOAmA8SZmo9xCgXrJVK2epydU60tlsQMPjP+BFbOCA56xvpMTqmhytIJSkCObnADp4gClnFhml1HeJQptVDCfdFCCD78pAyJdpYpU+i7d73xYYfeuij0JoDgPshQCr+636NvftZWPAQ8O279xg8HQv4IZan+bq7tBGwUjSRx94ceT3BhIV95FfLqPiPkNVIhU5/oTzKExYqOzwR5bY04cOlIiCPos3/eB6aOr0gY65+SA+q3hKP0rSMGZkgidgS98eRh3U9wENIhVHSvKmKF2ldp8eWj1rhEA5j2LgkPEbeQ9aT25SHpny/hSGASoMCohHf1AGHYXQO5/kXNCeNuNVcCPWKsebCPhQ+E8RBGGG8FGAbitdABRAlG+BIhX92VOf6e5p1tKPtKio8IIZmho+XJFMG8HotxKFhwRCVKB8ERCElNCDhQtIB2rEUKu3fDGPiSjijsggYu5EnBtmjg/ZaRT4xD+7xLaohlPrTx8F2PHT0iFC+pD7g26gFD5MgxPvT2RDxPuoGxvluV6TYg+P4D2YvazM+PtSZo2A+J6kTJsFL12INnmxtk4w8GTh2wkXQbs34IXeiAcA8QuFYr9o1pyQOc2WBwBXI4eHYgoDvB589z+FjLvhBdRsOOMOo8oBwAA4djcCr9dMFR5y3PH0JCZHDXWJOqYgtz5gL0AigG1v3eIqvjG99kGc5KieHANldhgRALQQ2oJRn8/VbefTZ559oYH8BC+aXU4N82qt9i9QwE/cBnEwmFcb0PP6sk88X9XgyWigv4LyWGwvuL3YjtCOk8CrEv5+ItxEA5L79jHPZqNVViAO4UbChgkxOOPcrXL2GE8v4eGRB2ImaI11uwYL+J7VdimIi3ADwt2EDIv0HL2GYCwA6ohp8dr9oj0CgYDX1ivch6igkvfwGS/H+SijX02eAICTmjEXkRjTSifufjFaWGXEq+WIBePjF7PJaibChgFD5a0nUzHrIjEwWi7RxBYpqH0Tmyyb/7v0AAaBm+oxu4cQBmorEWl0cI4eGnsUDrEYCzKHsaNle14pMAV0Jop2H8AKcdbzrtxoKOQ3nZYfwFchBdjXWl2jMKmRniyvu+GCxAvw8H9T624njOmLUlez/0cAoMGl39dZFUi93PTZmGCLUGL01BYv+r/RC4vi1KJ4BvmAsS+hgi1N6+s3i1PzBW3LiKu9C+Lb8+SyL+MQS+2IM6QS8cvAzZeGJo7b6+B/UBg3GJ2g0ffjEFdEhsa9W4ieLwJwol+Ce/ivP/ee+3VV7wRW3VPdVfh35yr8rV/EB768Dfvrb3r0dvgHw28H9AHI12ZoNfWB8/GNsJB+mvw6x7YFdFr3VTDdeV+9secBXaohev7H06+4vyeJW/wfRL3U9IfMrz6/VbyeDZ5X4kCMN3+RLDdiIjs/6LKEYfIIVcw7IvUgK3O96T5vkgnUB5iBQZ42TU+a3wKpShIw6qJY1d7TT8VPGZ96Op/yPO58+OuIxMMnJBwgD/k8HGI/fduYwqQoDirhTSLOo2P7L8nLbqFt+fnbxOGdU+Qg4ULkiJQ26iJ+Y4qZART2AZn5lDGPahHv7ZQaFTvuxm7bMglP1keJUkB3JGdfL6oZadF8YzahCHcJfYdyl/lQyD93BEnSV4w/ScFHr/WC4dUVaj8a3BISpWogsCV8EV/YLo/6fNiTvcnARj8VMv3KWaWitPMdx/eTBSLaj1wokxLp+HKRn35Rh36d/A+Z3Rieb7Vfal4umxBW39N+QFAaKf4fLlj13Ass70Bx04oj1wv7lPSMC63waErVU9CTp6nwtktVGfK0WhRKPXcKtBKFXed3bd96BEo/393fyY3wJF9Xpsr2V//VLoMY8z3VX9N+NfGXxIR1RNOO18emhKn4kTZsr6UN4PZ6et8lo8Pw19oVx3x+L8PS6jue33Ij/feafkKoggaIAgvY2i9epu16Qci6ZD+zKhx5ktj3aFVqAo/KDdbdWy+P6pNTfjD5AVLIHy448XILMbt+qfriBQ98oSwTL/b7tz749EnoBBUbLqFWIQXI63w7PuNam7HFoNAMWplpvxrbBm/es1us4ORg+/GdrdXfHt4NkBDcFTPiu5WGx4JL9C+QBNX7N6vAmAoK9cAt4mgH3CZi9S+jhD3If4CL+A3VgIsatyzh5Pn5gWib8zgYysLoo1XQ4D1x5wFuiTmAX0myDb2RIjLYtNyCdmCvTnYH6qazqPL65AWiyln/Dk+EAiFmzmgDMozgef+5H2gZEMkTh/kuDHNDa7f2XhkQ2gN1ZkQgf5GVSAZ10784a/QpiyWfjaOP/JEISwqaQgLf8a7XyuGGBbswLeAP9ucLeICK1KqRoNMD/vi8Y2OgkfX6T9/u/yWnouBz3uGrhxUChpCVQX84aTep56Sci3Du0o61rlIbiDLehGS5utHviA3CgzMxpjyP86AzbxAJjVx58INDa6wGabm3ISanmJ/7TefIDKCGlAYEPyDUwREh26UGj+dPW75eZOJNpYXAYZebxj+LyRF8InypfUOLEA1WDNID1p4+IXxv+P0DT+ccAU7Sm7z+Gmx1eLeAr+WO5XoDfyf+ZtYsA3fyx3B25H+DGasPVG4z4GwBSbM8KVQPQC1EdnqA0Dax0GPL7jZQEBHoXoCdAC/i9AI9DYNCSgqAtQEaArQGuEWebA7VL4ZaUG4REMbwfXNzZkFSwFY7IG5ubLUpTrf672ArMyjrJwFY7K8o2A/MRq3XaDQASQFUBPX4DIVthZbCvSXrcQQatX7pmDdqIpFMIHsDcqo8DKIEd6R2ZuWAJ5khEdAK5V76ZWTYIvHAMgDIC5Z+5G5AUlHLZPnXUD2zCPAatJIElhNIEFnQVwj+ZIwL4fzTuaLsgCoZBKLyC1KDTR6D0ISfRfyCupnhROJYoXwHVlQKybTU0B7TJniveHswEFAYGS4dQyy3Tk6n7MZKFeaoi6gaWCgkBfBHId25f+CQF6AAmg18dYEuIL+StgdrJB7RHjizNDbwHfLwYYWYELAqgA0cZYEZEShj0APYFkBMQBnXUpJNrVMCrhSBCmzD2aCVG2ZCTa2aWzJNDoTG1pPAjyyX/KOAAwI5DVFA6L83VSAEce4FBUawzxzDcyPQb4HteSMDlALyDjNPxC9GcZpEgXuRQLOo46rWI6QgboG3/LYGS4UfzDA/LbzQB6YWMPggEcGDJteIL5MOCS73+WgojrffJTHDUJreUxT1+Ya77dEfZzHUYH/PIKLM3F6a6YDVoJrMeQlUeGbBILAG0hA4HDA+na0g0r4ZfeVIngWGZUINf5vIIGbWXHxQAAyUbTmdvhMOEUFh+A4GobbggHAo5C0gZUHzHHXZ0gyCBs9e6A2yQcyOra0Ecg14CrAprK7QKhiOrayrM3P8CfUOlaQaIzLBg32TImJYA2AZwBJwTQAv5Qqie5F3psqKcCYiMJDBgu9R2wTha9QFZYBYE66a2P34BBQ+YUIBfA/Ra6Qhgy+h/RMMLpWSfgrlGRwblOiDQg10Eh2XM4zHf0DG+V4CYiUOIIAxBZomYYau7UjbkbPsHQbUjCvAKQCT/UvxNlJZ4ecE86IAu85hAWkCJ4KQB3yGtoiQHUB6UIDKK9D0CIIFFhTbGwCXQCuTpOBxTVEbLB8oFZY2EILD+ARCA/gAaCkg4QL9g2TaDg+6Bjgw/6oAGtpqzdcH2gQw57g+0DPg7cYOYCjzmKaED9ARFr9AHXYPQJKw3g/oCQgVMH3QGwDqECupnglVze/QcB+sXqB45fQiVncHam1Sw464bCHoAZrZasWchHCWLZD7MrgU7AaC0gOVBsg2prhgNkA3g2SjFbee6gYAaDgYI3KYrTAT9Ab1xyoRj7ScMbx3KaiEMiO0ykgsCELYTAQUQqiGYQlcgMQsQ6uhYP43g5KBQQlxDLpfp6Hed378+TtAquRSHScDCHP/OcE64UCHUQpKA4QtkCgQyHa/kIyH4QncgmQ0Y4Pgjih/UKyGgQoiGZoVg5kQsSGUQ7sFnnWPY3g7sD0QiPbtQBzTgYXIgZlCRBOnBMDHZHTQRrQcDQAdS6BWNiGy2CgBOQmdJu/f9Z0pLIgTnRw7YAIST5AHcSCAZqAuICMj9AHOo2Q5ragGGQ6kVV0Ir3N/7/pEzL7AOdgOHYraiHeaB4GYrYnsCISQ7ZrYtQOFCuEPQ6/YBx5VQ64D7KMCHyLMyENHMhglAU1CQZViLUdB2BTbD3bbqaDa1pBACtdfNaioGiw34PRJ31OvZN7ZZBugKjr1Gb0CfgNJjMAHKF7iPaG4AJxwnQwrTnQ5Gw64bdTXQxIaD7edjD7W2B3Qo6GXQzaCKIDwSR4I6FabPSjbqC0Bg/dQZj7dfakHOxAAwkQB7Q8GEBDe6HvQs6FvQk8RXQn6Hg7V6FOOcyEuQlygU7bQBXIX7BTdU6BMDTaH67DsGDHGVKZgNw5moa0DdfHXavbTCZoDYgoWKQl7I4Y3Ztket6WgJRJVlV5QeQl/7xeXZjzrDaxAwaiElBGyFomE3zFQ8jZpWDKG26WhJomXWjB6IxScwvSFxREXSjqQRCWIMQAxQvDAtLCExAwRKFZrNq4mINKGnECWFZQ3XS7iPKFOXWXSjqVrCUVHLanQfmGSQ+3ZEAs9DWwqra9Qgdw1Q8ZR1QrDQFYAFA5NN0BQwQ1pgQww6aAemGhpWrDyw2bw8wsjx8w8OGPiJ7AlRdqE7kU6wjQ1nZloXmxM7TKH0sPSFwoWWHGgD2A2YD478OciYsGRMHIAfOq5eJDCcSJADT/TKyRg5gDRgnRRxgp6gJg78TfAM1i5EZYCZHbMBfgP0xyDVkFi0GHjmgLVK0PBlRLQv0C4CciahQKMExgngCNw9SDNwn8TeUdOjLABWrpg5bppJWEG6uIjCVwwyirwhLAn4FZaZvc7x9YbgAanRMgkcTAAzpIo52XdSHxERy6/HbXjcGEuHOvcuFxUKuFZoX8GYsdurRiNM6cMUXDZITNBgrJvpVweUAhKBQjAIlbCCwbSjHQS0AzgnsH0bTaDrEGs5SrWyzx5QYAfnbbgzAOwBF4dYivw07CWgHBGR8dKbVIXfDfUVQDEnXSFK2Gs53yUzj6SFTgB8KPgx8Q3D59EsRY7GT7LcK8CE1dBFfnNrBXgb8hoI7rgYIy0CZgPHJN5CuH6ScYFVlcnAHdNcGlXbeHASKsoBDP0C7MJe7leamA9QCGjDnRhTZcQeFVraODFnHLY8JGYT1KfuF2sHRHSpBw55JCpLcJaVLtJE1ae+RM5d1GFwg/J+AcJbYpmtVVDGpdHAsvb8CRJA9jygI1C2I7RLyJJV5nkHHB3pPmDm+FhHziX+FaEF+HbwqlZoQolYcI984CIr85PoXhEpIz84zAb3RKqOJHiI6f69ldRHmHLREDw24RVrfFD6Il2E8JaKq8EIr4uqeVwZdIRBCIAmIdZPmBVlduB0jKsoF4DeDzpR0Cy1L8xWgHqFasJWF4sLVjWbDOHFAbKEIwt+C5EMzb4ACZFSwrCF1kC2F4sMt6PUfERdNQGj0AKUh+kbdROQkHzbqBOEcUViIOhf+HO8POAxw1naHInCFXQaqq9CSxBwuItxypTWG8IE+F6UNRSRlFwBheZ3SawqS565Qbwb4O2EUIx8R5RG5GZBCPD7IgTYuw4ZE4sUdRjI9OGSwqZGmwmZGvoBFHGwrTaoVDDAjIrJCdSTpoFpa6A7I1IpywwyECIcDCHcKRoNkMLYAYVEQqcXEBFIbgCWsE8i0IJcD3pc7ZkQmcByoAnbMAuIxQbO65ubBkS8ke8EdQ31yeAggAeAxiG8/CPDWbV67uvDo6iomBF+QhGq4VFQ7Kox7aTBCPYcw6VH2AjkrIQ+KCJ4M6786TWENkAuZ8McPICwi6bExS/7foFpaXIsIBSmFsFc7L0ioQ+iByoWYG2I+pT2wr8CHcEgCv+Y4JrGCYTSgabDB2APIOos+FekOKGpkANGOzTLYmwRBApkV0KcQ6bYGQz1Hr1LGJ0o3YAMo6cJ7mYQp6UNNHMolcyHcBJS5w1IrLwV1EIHd1G2or1GTEH1HlpYtHgYZgCSA3hD9AAijVEEgAYBTNhd/RlI72fdDUwFtFtouwAdo35Yz4IVIRiHtEEUNmJrBDaaSA/I6UEKYpzPFi5hoEGj4YNjKCzSk6axQp4sXQ/4F8B5g/oHuYSbfcoFw2Tw34N/RuCfYyBVNGgKgfWRWhMdGwpOwDesYJj5pftKA0Vv4cLSxD0wAsF9zSQHOGTWEzgJ0RJA82HUQrNF1TGCIu3CsghKCAEVkFbBOcStFOuJKDoqdXjgYdjQINCMI/osupbGDiouiADEpo0W7AY9EA5ojrIgIhsG7RKcJDYAjCuAAWF6yODHU3XaD4AH5YduM9jNLAjDkrIWxhEPlK0gNeIyTQvg9QVqz0QZjFbxNDjsYoBIJIz6ZyCI5BoAZwpZgUTFisZwryRIdjcY+rQtLRVbDcITT1kVlTSYwH5TsHzYz4R6hPIsQh0MVUpfgNRGLo3lHLbf9C7QrPrww5FFase6HUbEiFPQsrj0CP1Q5bCnZG7RqEjUHs4R7M3YqHLzGPbMtDrmHqFdQgdi7vB2HZgaEASFPlqYgX7BhYwwB7gquALWZSEDHYcFWOYFT4tGTDmTaVLIoPgRGwzOHvQksLJJElbjQqVFoozOHmQwVro4CtxBwGGHTI/fCVYpGFXI7kqR9IyYxmPlZBePqBKrPQjWgemDrwEe5kBXShSNIWa0MSbDr2ctwXFJgZ8AFZ5E+BYrgYVQCnwwAImTSWFmKfgQdgmh6GUSJBoEGBSATacKQIMmCwghk687cjY87JrY7kLlBXAxhitory7EwmpLdJbTh8yHGI4AwoLFBH8D0APrF3pHGLh5EmydBWbHPHQsEB4abZXyeEDL7YK7UEMDREgXPAEUYsjogCYR5om7L+nYdaCOXSqsANdGCOI1aLgXQrt+b8AJxXR4cIM2DBHDhCdZGYT+ARO6nwa6CvKLlCv3Ik40IRc5xXd4Fr+ZIF+5InxuuILEk2dxKMxEUBIoSQRYxIkFp3KDgI4zMyAQnUCNecsoXQfGJJKV2zVfak6QwSFQaQfc6xnN1HyROm49QPHFImar5LYmnH7+X7wM4i1GDgHHFCeexCxOLdZS1WBE9eZQRY8UXGU49gF4geDTzrLtD+deFAI4SdbzAttHGIC2LIoXmFjpKYAFhYmEYYYcE3YmXEZcbAAbYyMp7kXTE3XMqGaAE3FpHZp5DbG/AKaStF8gk6hxAbyAoAYMz4/DeSTcLLBCgYoAngIzSrHW5yJ48n6i+V+7waXbr4/RtJQ9GDGg7RAA8JSVjnQBqCXXOQb+dcRInrCeJNpIFGzgpWyQ7avFSsYeAbPUE5BwTvHSpREy04YFJQHMjI2Q0tZnVLlDDgygFapb8DN45ZJk4z1GvkAfGEJGbA94lZ7wfWnCgnfRL94/JAT4xfHAo1nYjvfxLr4jrL0QF7H2obqzvYuSwKqL9HDGUK4zpAz5khHxBDrSnFVyeCCn7R7FKuLeyhowAI3BdfBGAGE7dgQc5dzONE0PMtCtrctyGUS6DrY5e44xbS7brcmC6FAnYYYAnYnYhA41JE8DnYgTBJYrpKZoaXG/sQyj3YmVI/gC/GBDa/EhwbM5fYm3AAE+kqxonfDZMCMpobRBB7DFbEQvH/oZnGJZrQs+QiQZ0yMfViLa3JNb0ZX6jEEnxrHqJJ7qKCgbH3E4K2wGyiEAoCJ2YLLE/zU1Bt4xBabnJbp3wYQ6qoLGLLDWxCUhZs7SUQE5YqFF43PQT7rrXg5wvWglAEuE5DnUMDYnImBBYa3aUha87FAW85rnHgCPnNO4awP5EJgMQDPnbc6f6eNqZIwRHtjT+wGbXvD+Ego6BEigB0XYM5enQi6+nO06w4/86b5HQkEXK06JEqM6ZQXZjaAI8z6gJXrEwSLFJPPHG2IeiDgHJEElATaCqEzyGnYbHgktWyzNINYpFkHGKCwaolcw07C5Ev0z6gZgCZufUBUMXxb6gAXakOUKGIgavZ7nBJRzdJZCtEytFQwdHCQgAXbEaCQlieHZCucewDEwLHAlTFImyILGKxEyi6MXK040XIK66XaInxEg4mQXXZg+ExEBpEqi5nElsiRYjC4GnI+g4XEi4jE9YA7Eii4MXTC63E1GrvE4C5xE9IlPE5i6coS4lvEh4nk5X6CHEmW7lomRrQoNxCvEgJpgk0iByXSEmiEmEnimeWHKCBWptErOE2wDQmZQBWpYxWc72ANInBrM1C2wT/ZwkoHGtEa4mMXZEkKXbWqf4tEnqEUxKd4JQk8nXDBSbSfYYknQShgCB7dw0I5KA3lxx9dVZ8k7fZ4kqaCZgffxh4zc6bQEkkjCY+r9CfBaGE7+6tEdAZoDDwRdnYnD6DKwkDneE6Cwewnieaf5vXJc6uE1c74UB86bnGvYgk0oCRE2dHREzhGpImYChE1gAGbZoapvYHExEj4mnEn04RnP06ZQEpxbEj0nek8M4mnJInZE37idEq6DdEzNxswHQDluEolWocok/gKomVo4WT1E/QqTnDrKieQygWECPCAYyMklTHok1PPokDE3UBDEykkBEzfK4XAwAbPPuD8YJZCWEbEmzeOwBwvBYm6gKY4HNOxArEqVaGkq5B+E3xDuk6kmekv4l7Er4lH0AzY6XKImpExEmEXX86/ca0k0ksckZgCcnogRcmPE5ckMUPSjtwG2ALk4cn0XYMnQAFcm/E/ckAkjcm8UPSj0AbcnAk+Elrk8EnCnBiinWOXFpNXckOkrJHfnDsYrkqEnKXEhBRxWEmBkocnxEuS5zkl3xG4pAGw4j6FznT1FtFRknPkwckJgIIk/kLhFOkn84MUWHq6YLnH+k9EAQU0Cl6Q6Cly4g2LB4DClTQDmECw7qjDjEs5FkeontwOUnYbewCRICwn/k+CkzkoCmoU3UAgU7kmYU7CmVovCnQk2CkwXeDDbE1BFIU98lhE1insUoikJSLinUQninfkgimyEwLCn+aIC/4wCacLX/HfYz6ickqup2wBOrzA3OLjAhxrWtG9B1UCJZAterQEEwFBloNUzzHdXrzlP8HFQPwQeFOCmseE0krndokPnBfjRomlBCSAjCokn8BDrI3b8FOSyQgcbFQLEmzzdA+4M4kKnzdUtDQoMgkxUmjACwl773+YykENGsIbWCgmqwfsIGo5EGzzGjA9Q/ea0gegCDAEvJh4/eZcofKlvtcQTLDHRAjnboglU3QlpaV4C+/MszffC0KRlXoAFwuVLSktO5fgXoDwnFgldoJRI4abSmJJXSlNpXZiuwuNZbvFjDUQ/ir+dEUBrLAKksE55LzAxhimIFCj5ULdZARbim/7dDGi+UIzMHAgoyYH8bp48eA69WGD30MwAwHFZqPYkP69AT8CFxdgm4CDBDJtHmolcTECb4H5RRGYx5fpN6kwHVxBIobLQmAJJ4fgN+5coEmwV4lfEwbKdgH49vGPiegCJ4HZA/TNxCZDDJ51QU6lMgeawpsLyBv4GJ7A0lZ42IQh5kAgWGV46vEw0psmPiRGlT46VKQgIObVEaojxEeIhIHDLSQgHCAEUfQgZARfRSQOJoXQFyzgBX3j8whB70PVwiCAjXEk2MbipbGYmg0QGkcGSEAD4YI4+rPmkR3A6kD7YsKLnMKnRYCGmGQoOACwzAR0gUmmD4qdgssKGlLgZPb9iGxEw0s2RprGmnOWXNbTreRLvXAWFU0j8qQgTfAK05p4n3GDFhIVW5C+GWlaEL9ru00b5/U5g5/sW2GTYzWlyWStEw/XWnpKWkAG01fFG0+OkwbM2lV4i2mSYStY20jOmEJCxKO0pfHO0iExu0zjIe02M4x01bQ+0yxD40zh5OooX4FYSnxYIV+4cgRPG4gFiC80hyxPFYMJQtBalswbfFW0u2leHa7Bd7IoGaE3ZSIINmlQEpmiIRS6BDfES73pMRp4GfO4i0hH7kZVm4xCW2mqwLqHl0vrCF0qumbqXBZ3lLuHjvS6D03YTwc01HiRmbmlYNVumw2cAJTseiAl41+6cjYrxe4mnDoPYfwPyWV5sBIda2cF672AuB6zA6eInYm8q/XeVEB4MWlBU7wGXxagml1QWmZ3JnGK+bMCEk5G5+CU+k64OcC/QZukr6Pml7jDumMxeFAItGdZE+SHCQcGfFxREmw8JS57OwplyYkjHCUhLVFY7PLFxGY4FdDZwFMMmVF/XZhnuAjhA+Yjhn5iEd5+RIBn2A9hnA3MRq9wTqSK47fZ8QyJD03K9JagSJBDfFT5rPMRrK06Eny3Qn5v0xekYPd+kxfQWHi0mIRwTXzaSAzw7hAMtYL/W3ZCE1cLm2NOGEJBtZZgVHRbwIdEheNSl64rSk4UvryG7fiFL4xshm0Z3AsiHYTBUISSiGa6AFaSK5QjXTjXYazadCVfKLcOsnXcCC6o8ccZ8orHZjwa0BkoLtKNyWAi+MkfxGtSWFq7SFheUy8AWMUJkT4S57pYx4AEk+rzBALUp2tYICWSfZTDjOhmjiSMpUMTqliEJzEuwiPHEtanJoAjAGucE9QVMzMBkExWkOWCtyRIPqm+rKWKxxRGqP08ITLEQuJ3A1EnX7ZSFDrB3FXAvSnItUpJCzT4EL+UrIezbgkjrStGYgRwDKWbqyEAgLSdVUzRHMssZyDCwEk2dQwQ0helMOZnG4+DNBC+ULGaYYtow3XTAxfNFrTgvfyqaLgHvM5r4e6GMws3AiomAvfwe6GL6lDGpIaEFvD3U2R7EJUakP0oZwU0o/H3QbgjJyJ2EdtZkQ66V/IleSnx9WT+nHooEGUhRj4lhJ/HywbQDouSQSIPSkLfMjXw9Ka5BCzcGlBUkd7XIMAwYzOKLaMxCIJg4RpdoTMwugamluAmMAIvATrpyYAi+M0pBsBGuHM4oKIM4657uPNLAH0niEIEzARUsyVwDYudqIvA+nfMpXYr0iExFnN1y8siUzbGcKlCsnhkEAUVnidTPR6Iabj4sXBDGsurTzda6BrGIRlubK1lLLTtios2PZi4DKnaEaEq3Yj0Bf0l4zgbftbhALFG9rIoBhslQSvAMmG3XIpL5xFDjrmMhkZY1NxpZIWbW2W5kZvYOZ+XUnwZGTZlH09eASpKhl3wWM66Mi6LkAz4HjvS8qgspnhPoDlkofaRlUCIenJwOKKi0htlM8Zzx+s0QGBPGfB7gDVZEgToH+AqJm1MgYJN05PEXwM2Zr5YHwKs1IG43G/CCE9rbJKU/RcYb5k9KEzSVM6bAds3JmraJYYeNARGEgURkbszMDvlIllnyT8q0TYLGatfRK0s7dmkVdFpwmG6pTsu8DHs2hjHwKJkf0oNGfs5AqWIIgB0Y9ARdUnqGbnGdwBAmthvxf+T+ae+LRaD+KAJf+JvxQ37bLN+InJCcT3QRrQmFXLzxyUGClLK3IVLTlDDbAZANsM2Caw7Dl+rSpavAP0EEYKym5UlXY5bcda2CEc7EtCqnBrCO5McsMSIRJCZPstemTIX6D6KVEnNsCITf/TUIyUh7E/k8xD87AKJ3I1DmBAtkAD4L6l3zSEDj/QP7z/Jzjm3DUxv/J/EvQeY6GAUKD/sr4ICYcqDiCQK5fkkTn5ETzzqDSfj6mfp6cEws56wttGGxFG4uUSII9QOf7bjV7w8c3dAzGCPC5U/FkV6X44SUh2D6zajAVkSOboQJ7CXyAYImsKBgl2GN5d6M+p3aWRwxcxARm9WRwjDAMDWMZdzw6TORzEapAL6GLlu6AhCo/Y4bPCDxSZyeOBD6XBDaZFWQcAIcoRRIzIxvarm+yFLnHDXBG4IGLn50Arkes9OS+4Euxdc3IgQlawJ4MVrluIdrmyOegB5coegdc9trlIXEBRM1/Ixc21lOIybmpc/saAue4yc/RfBuIU6RwALxBNc6YblIR0q1IO8wJDJWzhQJsgJwDKY0gUKjYoRhR8YC7m1kDbm75NNC/QJbnHDAa5sgLGyc/LBGbcqyB+QZ7lmLExy/AMtCegmXw5kJFBBwbhzQGCHGvjSsiEIYqYtgI3ahPAvGvnGUCAVdTJlWVFKKgOHmfgOiAcgVGmvnAlBqZSaaOmN8AsZbMCY8vmlNSEnk48+WRjmHRwQ4hRB1UVWphdYTpYZTEAxcoTrxc2Z6x/QPQDBXyaqGT9JDmC8nGgdrRTcgpBvc/nk04UOyfpEYYHc5PQSyZsBtsDgLCca0lBwFdxHuAOhlMY9rPeGvhzIBTb7Y45Hu6NE4Mkp8ksk0bgwA2qHvTQZTnNTcAY1VP5u0f+yP2AezbgFeyX2UBy9VaIZ03RkLkEB3l92J+zAAF3kgOMByTYQpDpTTKaXKINA6E1EQ9FAsxZhE+iM3Ipz1OWcB/gbfT4AbLApUP4DGIeABN2UPmp8ghDAg/JRgLWzhwbMBZmlbKab5CITxAdiqR87oqVJX4CNkEGrxAH5oR8ropNQaPnFhE4ZlUdCzDUiH43cr4Bd3Qqmc487ld3JvDQ1dea8CLnyiKYlqKkURRqTBBkt8+ESVJIYBXMgsC0zEDYRzXHDu6P4D/s1fCNU6zk1AlxC/YaIARtWRzhc8/KjyC4zuFIbmxc0Oh58+iCJcmwJSyXpolBY4ZpcxZQZc+R5ZckR65ctxD5c4kRpHUXkyQYrnjtfgDlclFp1pX8An9Grk6oEayGAermblWiB/85/l7cgpAtcwQLDchCi3836kAC+vS/5MFzp0frnpyTegntNrkYC4kTjcrEGICpr7ICmSAzc2Jlzc/q7uFRbmUC7AW+TNbkyMr9IDGbwYPcrbl/cjlDYCpKa8gRpoGWLgUy8/yby2B8ys7K4CncioBD8y7lZFCIS98u7kk0L8D6rHZCRYC4QBZKVh3877lPcnbmORV7kzVIorvch4xLpSEC54QYw04GLk8CvQUes1prLEa0AA8w4a74eXypCZ+a+6eDTm+CHk6OPlCptcOCfzfRqwgLBolwWkA9pcTwcgCqbVOcJzNTbqbT2YIX6DUPrbqMpxu8zQVyTTECdAZSyKwSSoU84IWI8jbSf6UPr9XQwVBTKuTiqGMmYgRPCtfYqR482RDoDCoWJQDRDE4L0x10F/LqZboYw8bELMQJdST1LECf0F/Kb4HkHegDoWRQWq7wYCrCAgMKbcACKb3AYCgvjGnleC+czDgJFDRdKuBdOSEbM893lwoNnlbmdYW38zakrCwUyDGY0DEk8aSn8rrkrc/EZqGRzwmCvAbYC8XmXCqXn6C6gXAgeXmCChRARCCQwxwcpTDFNxBRmQhCdWHqDvClUydcwuxiC8QCyC4cLkeMEW3cru7r1QEUXCaoJXbTywfgeQVQivvnptYXmBYPYUweb2ygRQlQoixQVd3CO6Q2C4RZAwv48WEIxUkhMD7ANXnO4Z0wiALXlOTe0D0wISLqKR8m8U+0ABXHgTG8lRmmc/x6G8KTkNAf+RRwNqZac1QD/snCkm4pdIm0Mn4lIDByZPLW5acrRamIezmXQRTnjgkQSvAWf5+1U4R7YMh42JPfkIPPMnynSUWBcjrJRFVgxr/YzkypJtII1IWzHVS3m8uM6o28z+CY1Nlzz8yQyFQQVwZkG6Cmi0fA8nJFo9szMANA2pa9AMr7es2JbYAsakQA+Nnhsu1CpkTrYQmBfBARLE7JtbEnIAlWmwEUCJkPURkWAwDETMsGCkwN/SRi5Fl2gJCakwLgQcUxcDo0s7hnU0rCXUkrhYOHLxjMzFiPUwwAyYVqbswOygr8czmIsppqYKMMDfWOyiJETASYALBxQtAcTpZYuKSJWgD7dWFrOSfvASJUuIzi2QpHofDCYABPDaYRZC/dD/FPkhzlBi3jh7BFpZ2AAaASc916QIChq5eKu6tUpoCb4/zQIJG9AerYqICig5InLfdBQnZwZYcupblLSpa3i9diBaMiChi1MjhimdJi3FCbr1SMWrMpOo8tHJnlQku5k4K3GGAftk7IRqkJYgGCdAP/pXlaHAyxKMUSzGfFbM/XzhwdFzThVdgLMxIhISm4VutIVE7kVcIvjPbFHY45HGgPjkMw4loNMxNTG8gRnuAxCJus9wEF1RJkxgVMgxCRKx4S2iZJobAhi/GH6nY71huY4Rm/UIOA/XX+mA0J9R8SsVGGEe7Zks9xnDfFNn90mH7T4+ZDysxSWVirKCDbL2kGSlAnGS3EChs8xjhs4yVGAtlm90ktY00nQnW0whI6Smml1En3H2SyJBOSkODR040WaEznF+SzKC+Sw/Gx7AKUhSvwJUS45EKTfXmEzRb5fgIVpNCOfkWSvtZWSp+BvZSyWQbZMXTYEGGr4oxlpSm8r7zY+DF8t9pRqKDjfMuFktoXxZzMpmxgMyglMOKFmdbfpmYgY3CGAbLCDRNkXfk3OKnQIKjkS4rQxirKB00hmlM0pmzyhSG4SHW8SESnDTwfaiyqFOXFdS5alPoQ7Fu7Y7E1rVTYxSmTToE78lpNXqV7Id15PfYIA+KcdnsjfaVxMzVo2+K9mkwToFUPbiX5iXiXCsggCVA06w/0ziVKM9DIemN7AtSs8D5M1wmQQIpkgQNqV1UK9bLJS0WkS7qXXYXqUKYr3GDSxmlPLIyjpMnxm4s7GEf05lkDYzHBkoanCOHEsJno7RnCsVGUR3azbwSwMUjlKJnEMk6VTfAJnVbE8j9Mulmcsu6UWsoqDyo8mUFM36Xg1N/CQgFqVcs1m6m1KfTwnCqVXbBcXLAgSr1aLMz4cmthQJSjjIcmZBsMeAC7o04TlLGWXTStLJW4BDDUQnLzknaiGP6dPH7SEcSngHPF40E8D542UWF4jIAdSkTlpNMXAZvEOIS9EOZ9YAvB0Y7J4paUzRz7HPTYLD8XswbDnfizlDh2WYHVJD2KmIawH/0/vDn7Z2KX7LqWMFZ8XgAQjnEcupakc+iAUc5YrnAwoLFJBtJrM1BJKuFChImQOVjJC/ZX7RIhXsWzQ3LNoCycsNCiyg5KNAwnh6AUMWj+ROVPhRtLOxf2VF8/W5BynOVhy50GcFIjiBaLhiVy38UNASWVtAIjmqlUuWVse8WgYR8V+kN9YRyrjixaPuUWkHUCyyxeDyy0/QyGFoEpAsgLZMAsEFYhqLAoNUwzQtICIQfTTei+RYYTarw04EjhTsPlb+BCGLSqBfgBNV5ox4SCAf0M9Q2ANkCIyHWlzMLSBiQSjTkZJ+XB6dQVHCNmjbwuhFPy75rgYHMAbyw/AyMG+i+YM8wZoAPTZID0Ai0emj1IszAKrVNLxQCoCHozRQ9Qb7DdWGy6007qHUHdtZUGSpIfrLql42E7YwHU0SbwA6yIkfzyVQNI70QMBXxiTekz4foCYKvzZ6AHBWGw9HH0ACog8LDMwuUtwnmkjwkL8QHGVk2RBho3ekwK07CUVQhUCJQvhMKoWS7RRnz/MegnVAzVwJ7Scl2kzT7MU36D20PFi6RXvaeiEGiMUi+jswTARVEKbCJMBtC4UBUBpQHHlVEKqSkNDAx4lP37T/fFnMqJpAzQAi5yXfRUTMWd6wGKi5WqPYUC4rDh9aBT58eehzZUvcIP4vy7waa0mvQetQDMGpEegXPDrwGvgdfQ/5sPVeBmwH5bB/dyb+KoL4VsY37rsT+J3xWLQXJTFqNaUcxXAg2KIta64NRCUVp3VraAYrU7sk8OyvkkIkoU88lAwP2791PT6qcx0UicPWynwYsIBrPk7/zOBb8It8nOkuw44bG1rbsb64YEupXogHZT2g68XcAVIoFyxtgQcg8X+aV8XNrJUXBzBVS6citKXyUDkYAEpVEcMpUHJKDk1sWti4iSKWU2bFILsuPKsS+zGraOJX5ssoFiHXWjcASOVQtH4Er8bwxOYVEQCYdNE8ATEQpucrwqgkzCGHHACHYCWwVidaU9WV5U3SggDx4ogGMYdLw/KpqHZ7bnZxfMCGDQ6DLzUsvFYS1nGPU0GD0weBVucRQDplMP5RGamHVeBFULeYPQNNYnbec+YFcxcxVa3OSqyXCElAkpVG5fEH75fSkL0mNMV3wYZWmgE1yGS9LS6K+8nnkkimeo3+bsnKZXCU2ZWukoLCPKrlEnWNGo0q1v7q4A/baqlFX5i5kKegvMKk+c5UQ0opXSc4nYQ03KmYdKth2qyOmzzUob6q5mhsqsBIcq9km5RS+hcq5qUsipO6yqmOC81AjBJeYBLhqg8WRqojiVKj4HBinJQHMj/61yfmYCXY9HJKcjHKq1aVQcL/4DC3/5pqmdYsiiLhbK/zQJ/ddhAJSjhXKjAABYWLTiymth9ymlJqQr7ytxPMEz4XPCSA4HwuIBfzFdaDEP/barWUh1TyLR4AsOU+iUiwUD3KH1Qo878jjmEXQwcJqQGQAkBNSTu6bEUiBfIEGozqq2CzgedX4kdQb+JaylnywyXMOGkBfpDZqItOqj7AeYUEOc/lM6TTQzjObSWsGQyHq29VM6UkEnUddU0kFKDG0CtBezMVWmaZy5qhWCrhrd4wZq3SGbnQgEOKUoE2XTECCxLPwV3KcHAqYDVw0pqC/dXASizPNl1rVL7qzOtbUA0iCeteKrjwtPCfMsxrfMtgHwYV+nMQCIEAs/m6NHEbp3s7JkYPMjWlwsqUiArewFwiZACma0m8AIGCEjI1g+AeHgIcEU6QXSGiH4TjVlMR8g+mPjXFAATXEXBuAAIuBUXIG0Agcm1VG/GDkPxU34VKrth0S5aUpbdTnzTd5XkszpbhgICxiHfFXbVIqEQqzNHyLYVr04EhYw+fOL4oJtLUq+vESEHeVDsDvQ1I/wJpKzn7LwZ7bzQJlXdieiZXoTL7UCqtjUwCTnScA0VcTFN6jqlnIHkqTVsuOTFh3SBaGSgTCzncMUCYWLXlMIEnuaiTyVmJ1CYdVtihanyKYdZtiDAKTaeBM65mM9rbdrfSWraP8wZS6yXQqVhkKS2rUgMsJBNK/EltakyUtaoDmaEzrWx3TrVmSsQG7QHCBnXXhDuzdEElA85n4tCVoezcDCFUCrXnfEt7h2XloLshfwja/3TFtXgGpgBtUpQj36pOd1TOGdPB/qzVznKpTVvyIEahtegC1hOjoNsHkzvfBu7cAVMg2UYrWTsn9D3ahVpPaujhK85BJKi1pzUqR3GmICrprFGWxxRU7GwYfbpnYJ7RCSztWHjLCoJq4jU/YhjX6gdbUMagzXDDZr4UVGjWyvDDUQsoSW0a14CmzSDXJxGDX/AsIgk6/lqg0P7rLK5NA0AjNB8IJKFE+cVqB3X9W06jrC04dDWx3Akz6Em/F8FKnW4AoZxE2Y7WRZRer+tLsAPGO1A6IcXUOMyNZthCMgaCNvaicPUzOtHuH7YS8qbNeY5lKZu5rjJABJQWkCvTXCoOiukCyKxeBqhaSrMwWZViIFbZm6lkAW6yXBkofXXmNOkBjKY3WgQI1zc3MugiU1gBljLUC4iLlAsWTwCF8mfj1sizAWgTABqSCoKBhLGVrokoVwa1IGa8xdzQU+kWLubXlBYQgHxEeJKopLjn6aiWb1uSAq1s/54yzCdo9iPPXY/ASKy6qJZUhRXVdEq/Z6mVxCjQLuGq5Hk6a6jIFnGZyo66kdCuAa3We6v34rbf3XinclHASNPUZ6xLJyWbPVBRXPX1S5G4yzCwAT6meYiArBaYKjnwlvdQiwKZvyQ3RMgyaCFnJYJgE/M4FRXwxtUMLFVwU+XKmYsi5XmaRpqPzBzygHAjkX66u6BhD7XLU/faPyW/UbK9erPajHWDQmMxjIVEHM6z2a/6o7BgClxlZoZiaQaJNCPQTADZIDhDUfG/DbqEmyYgdPWmDC26wGyOmx3ewCUw5nHKQ3ib/7IFmEa7XYI64DJatDgG6gbdQAsgNDFtSmExmHr5M8VL4kGm1qUwqFlXbYakloOlk8nOwCvTM3aG62kBLdcv7VnKbwYEQvmf7bJkF8uSxeIupQ0oYQ0hwU0DWLKAGBgCVo2XNNnc6kgGb6q8XvaylqP6jnUf3TDWU+Z5m1kGQ2t4Y5mKyxQ2qwXJBkAznXUap5ms6vDULeRgFHleHXI3EjWUhIg0Ma9soLKxw02tOQ2ldWwTF4MZjY6znUQsy6DQYqFm1bSgL52XRBOy4pUqa9digJeLTqax/5coo9HnsnR7vKzFWcrfhw+akzBYaY5RgwUrrAq1FLYi+lFSkfI0ZozET+o5NqwIONCI3QOGYTXgDv4z1XrsI7TbKjxXskzUwegKyn+crh4x4jxkgayVXqpQZXn1egmaagcHybQY22Q9MR8PN/5APdfnlkN2gmDDkb2DcrnM/bIZvCtTQgQD6lSOWRxH8nE7LFTY3sCwlmhWJ9RhhDFCLYJmzTbUuAICx9RNYMGIBClhzw8kIXrGz/ajyXJyRCpqaRODxz1OW43pC34APGuHlYZBcE4EPuCf7IUy/APZ4SYLZYyQXybSmGM63CooXEeOiHrGwrlPC2XnE7eIYK2U4zSC8EVxRFE0SClGzom6EUNifEUYmvpngfBRCIiwk4EmvE1+BPAZdwAGDkmtEUsZZY3EijND3gMk2QigkXptbEU8WVgxZAkuQsmhQUYmvk0Um2kBoQDTR4DLPB1GwUUXDEqLWLJUVrLCLUW83ECMWdcz+c6NW3yJo0ZA1wiCcvd61rAjKahShiCRU0AbK74KH+fzSxq401uaEJXhigOjvjVUptqwKk+S9rQ/MMLUqmytiBaOhhOmhZVlqho2bsWtVVq5ti2m5KDqyz1Eloo5Utq3aBum75GoElFVfKpaVDGsY1uwpmbWUnJTJKdRW4gBSgNoI9BXDGjDSfKTD8OXoDzlR9GFpFPCuAThqFlePykNFdm0YFAB6UWZ5NIiul5KlyL8iqamZ6qOmTgiwE5qn/4A1ZP4tmhdnTU4Jzcgjs3ZA8XAtLG5hfgFqWvgWjgVZMM3U8GZD+dWQjxETzy0gFqUaiAGCoAaUCrmtkCrm9mXVRGfBGYtLb4/FnEOxaZm8IGJKAqsvGQqc+xIIFparJL1g4MvJjjeBJiQgEwBpJTXAD4ecqiscTG93JjCQUf2z4AV1Y34PEDa4QelVIwfEbWbMAJME6JwpLIgIpX81auRhjFQbBy0uSC1+xeRJiZaOBmZVLKlhMZRhEVWJGmtoBy2cL6aw2c1kqkxol/diqPJfIjasVPLZgeHhhobMCPJD8AJMUhi6otoBdYotyogqrApARJwpAS56BAViJNODjgZy6TggC+UxITBvzUwXO5vMzACc9XeQj+CVodi1cWJQamCOEsQiMY+iDjOEdBEWzzxziuc0LmzQBmGMlDdQT8YyYWQjswXoBHiiFZqTQeRQtOc2yFYewZ68+x5E37hnvTsCTgNM1tEPp5HRIEZOK9FzYwdJWp6grDgYYS1qkPKUmMrLY8QrNXEwmxkGoJWQwTTFqF6rOnGMkfwNbdSX5qg03OSxK2n6A1Al6pLzEZH9VG7IXW4QsrgXxLqD+bDtXZHZ3BGuVrY4kcDZDw7bBcJIeG10/Ait0N/BPwILE9QnhLbFCnV+CTxG4lQWBhJdbpwoHwSuIOoKrQhUGMxOdTPVfzpzqBHDr7ajDqJaf7n4UKCBwHwRz4/3DM9SVA0cGLSmINa11Pcc0RMDUSfqjADQAcCqCWfAjWI6xmStYWRXYqoSRILBKJQSS0hCyVjLFJa0QzSZBZqpnAVYZFbFhdtTAEGoFwPIxU2AQth2wd3H646axjWcq2A2kUKhsFw1VKj62YgL632gWmIcVbUB6WjZH4owGh+kTATzUK5A8rGRyIraVayrVFbQoXajLdYsIqc7QCnZBIgcVErw4ESlao2gs0DpWEmXQK+JJBGm2/AbJjm+Bm0Y29Lg/W2AhA24qC82iq0hETTGWIDm0R6SJAvqX813mtVD5xHS3eOA/VyxQUENFCG09ucA3XsGOAA2wVzWxFIEL/O60zfAtqPWjawQzcR5uPYRHbVeTmlw5UjfgFwg3BHMDZIV7yYAGBD6gamDJ+My2qlAfAY/NQj/Kodib4DpbrvPlYJCSqDKWI76GHQLCL4DvT8wH1Y9zOOGawK3AD4QGoxaVvCsRamCXPNbGvefzpPm9ECKAXdAe2xKAbWQgGa4RMirtP0zZKYoJhynU1am2ziam2PZXartAp5O/UUtG8VoPFqBL5KxLv/fRIvsb3WvecZxuXRtChQHZC52j8C7ShS1+PIyGJQFqVE0a8omQbbj5AOhhRgzuanCK9mEYfEDxANnjkMmITJybHzQcxrQrLSOITnSjgicP4qYdBtgj2itwprFDjhxBIhRxPZCxybwy8AS8ETmk8Acy2wjhJFcz2xPW2E0a4bS4ZhLKpDq0prEUBGAd/E3MAjAapDYS6IkPA/2862qpLVnbhOQR00MWidiGNhfgBuD/wvKKbI36h+kBE3bhSwChuF7Wn27qzn2xtIcceFIrQ8+RCcXJILbA1KpCL8B11NDhXjX7C8KvzJ3MbqyIIMJIN1ZYhH1TQDZYFjLxS04hXY/wAdNCEyfS9WZL8euxsY/Igxaec0w4dDhSOq1jZxaR2rJeR1WsVIhiO9DiqxGLTGICJhsYzR0NsYaUKOvR3KO6wggARwD0q/3kuxbmgngGIS6wKrCfhE+DwO/ACIOhsQoOxkBoO9G0YOtB5Ws51BH2ujqMcbx3fa8kU5gxy7LwQy0fgCe0y6TW16tEdAc2tG1Po9x2H5GfCn27kxXYqQAm+K7HZ2wjDVW23T1rEDacAeq2jJLpJL6jh65JAzjNWqh11JHGyeI0/SWZVpJZgAxwvqTpLyJQ3DgYPS2kxIi3zm+W27a9SHLi+iBKMAjD5iyS3kqh2LUJDSRapHIZ0E9DDUwBf6d2oWQZ2/vDZ2vbLfpECaXQaZ0bwFkmNoD+27S5Z0HjZRKWzKDW328xVl2jtEV2y16CWau3DhOu0XhQ03YwFu1hoWJIf/FZ1O1Y6bTWOCiXQfu12AQe2E0OwCJO3y3j2io2r0ozbT2tnhz2uuEL2xeBL2qe2r2qB1ZQctZH29eBhOrZ6+gjpag21FANK7MCTgcJDVa7M0U0FkJnW7J1DxYtlSpIpIhOuwAT2oRAWW8DDXcZDENRS22PY73RXsFMrtYjQZOcDC0mWyuXmW69hoKvC1oFVriW2zAnSwK20REGtwhYBl3KYvQg/hFl36jdl1xoMgJ14tUgt4GWXrbDagRgajBPmstapGNtYAuyF28AYF2y9TMAQume2z4shKduOx0c0BB31iU7A15LvlwO010OO812kcY8X0qubxx2wNDM2iFkiS/9gb2/OxPfQir1GyzW3kEmxCLMkCDrRn6Q416mfispZkQH8UACqOWNMGOWRuuOUR2/LUyc/6rAi3uWyBH9F0dV+IAS1N0HJf8XdygAW2EWQIpunWiYdKeWbsZtjSy+eWgQReVjMNw3NrTADZQPmjSM+E6IRFO1sMJ83UYOyj2wfu1sBFJ02oGcADiTMEthSQEmas9gD4b3SiKAjAfw0vxSAXm5wQ2HURkCSHhS674aKCISJQq3A8OsPHTCfOpUwuCFxVBABqoSCHQQtgKxYhfA2AM2R7o8bRwSl/EecVHVXAOyg/gHt3FQPmjo67Vmj7NRX0CBjXAG8NAUAyZ3m+fClUAec359eSXuA83zvK6I5v/dAZGE/IVaK5Kb5Cys1r7OaEGFKy2Mxc3wliuzDn4c3w8Qjg6RI9aUu7NAloepfGP4QyFgemmlR7DLGo9J5XCE4A5da4mD+NDWD+dZsWnCR6n9wffCju0oCuIS0ClZK8C9qkoCWEK8CAY10LdUS0BW4K2jtmzUK2KGLQL4cDIlAIvACewKWLgHKBoYv6BhgAvD9EErj8VJJAAwNT33cc6m/QesUwHTio9gTT0ouR6D4hLvCAvKj0zpKF7HQcPCMaXCh69by2swOsBUeyExobdF46yXvoQzbYGl4gXVXgOaWJEf908i1uIWxYD0YExhgdXbC1PO4NAW3YDJYelNWjQQSa/YcgBAwk2BpdDhXfYMO3DddHHSwKhg9QR1AEva0Ckei61kcDHX6k8uoqE3fCAsLvYWMe2iKsCnaJ4K5DVe3J2QQOr3lANy2dAKQDhoez2MQGd7fkD6CGkslCCwArpvBYmDQwP/boDfQY9e/jAFdfr12ITIXjA7dScNPJqJCJz0pCPLqdSfM3oOuxDGgYA70QZvp0YFPqV4IXAwU+uUue6fGhxDHWbQK8AxmQw5W4N3CCwSlTo4QxJW/XxBmwGCQEAbiRUXDnQgMJVJcQN7bISGCUcIPhBi0B0j/KjMXO4cAA4QRwDsyBIDwgcxhgyCITSqaVRmwbyAwMP8ChaaCQQ+wWAUAXH3ZYL72MXAKBaAfFjKSAyT6MUoD/KwEi/CGBhu6CxitAOYBo0fiD8QWjQ7cKejCSf5VvqzZD2gU2b0ADsV6AOyg1SwWDryxrEpCWUkzQgpXZIHj3hGm/WIIJpD+e3ilnezpKK4c702I2VImwb6gYK7YGCs3+SS+9JpWs7dr1G2X2k0FBGnwOAS8I5o29inz2QSzvTwks2CCKs0n3nERUIUDCVHoWD1NUT/SDnHxV6K0dTJYn/pVEAgqOKzho/ilczy+raWK+zAluWSK1q+koAgjNhVa+xiWnEXX3ujDL5C4FBG3emmE34C3DUqaUJya/6i6rW6ouIPmjoWVaV80ebFlebDVfAWgH8aUO2RlO22JIuFaooKO2nCSO2H/egCzuvcWTYWd1OzYdEHjM8I0u623TzOv09O4xop20u4fOk/BYaIdj9AP238aPlZnoIO1bGvzWcaO/kR2n8It+v8G83Z11pylpxBYBt1hIFO32wXhCdAKUxIumG6PVJNBzAPQAD4SMq+2wcJMAuO2kwamB+28IRhya/2BHIPLoYemA4zK9nEUNjBImCSk3TFtmKe3KLSMCfQyc6jDnurJVDa1eDmMCM0IFWaH34niECLDHwoeuFrzA+uztO2Kp/s34DceRNpv/D0Cl+zawBGvoHQasxq2zLjjk6p9kIauBFIa11I5eNjALJFjhLJQWKyFetLkYk2VNpK/6zIS56b65nEbui/3FBDQ42IhXx90hhKDQ+lkJWrKCG4ZZmAq9AOAerS08q4FSuA+mWKXDiX5ifhlnlV66GG9FXVkiwHvK50zvKuwHuAjQP3S/EI4E5SUMy95X8oJxRXAxQP7M95V3KQwPPS9QNFStQNioqBbge01zI/be7plNJKpGvnWFBGpIYBvwiEBx4Ff+L+nKBz66OA+mWwNRkkYBzzwS2fgGwSrFXXAPmh047bVpBt1x3ehdl30gcWgwOygoUPpJDaBbCqW14B8Y9Ii54Lb1uOsGGrOvcXgYSoMRYLDS9OtlYZ+s+To0dO1qyxtJneHMFK2rLYr2g106upKEN+fV1Au+e2da/oNr2mmm1lbUAsYVzlaLUuKkeFW0hEdXahtKxnGMutY8JHOpUJdq32007AEuyCDkMvYMQOv72GunWigOqF3M3YZ20JfJ1HBkpGmIspHTrTWBZBcpJOI0Z2awaLCWIpxHBkE1ZBY2bZqQEHBXB0p1qQbYpPYNT6eI2SY2eMJLWHfxHoQe2CaAGEOkcRYgIhl9TwoLpJEALaw34ScBzi/FAsB1wRbZJdB4RSHF/mHQKhuAZ3swPmh7+wGgH+tS1hWWYHLC2hkWByDjyoowNeA22BU7TQPusweA6gLkPsh0wNZogaFXQCIm006WCQBv8FhII0DsymIS/YSyoEYWJDg4t+0OlY2qz1KcCxgL6CY4U1AhqcGqm7UGrKhlkA9kNsiEkpUOw1TwDKCj0zdgSQ7HACaHOi4oCui/EKYgLHorGHGp41Qnotki+qoIo0MmW83yE1D0NxoQZ0yvMTEvUQTU57SSj01SmqauONEs1LJBs1JmrH1GV681Htw2eOMMi1dmqD1IdicDUaaHKdVqG6mpF5+4MOvu/nA9YaBGXPSwjfYTaDfYIvDXYb6jXYTEQcIYPr3QKHU76hd0mwLfppYVQBM4RsUv1O2YAwOVDhA37iWEfACvgCAm9EugPQgUSZdhsLGO63ZgII18Br1Y5Q9hw3VYcxCDzhhU16GHQozpPQDh4V1EFS8WbXDILpkIzES0vFLAL+TESEtDEZ99OlqYgWCBF4TsN6AfsP0QILpqtS8Ovgb6ijh0GAII9gke2DcPQQh0Glfa4aYiPPp7h7Vom6mioHhor2kcJBD6gEa22WR2aahlUMHwOlh3yQ62mwMJBm+fUCwRlkC6NBCMoubghTde6BiARBBjgOgL5AUUSm7LgynDEQBKMB6xrdEmhVpBzyCAJFbwQ1V67yodiYADpY5h12b9PdN7Xw+aRBzFVyeauxB5+r0FmoFkMEAJf1EA3vr0R8UPwCSf0RpLeouIK3CZgOzBpdUYgIHY3omVcoU4EPog/zAv71DQuLlxLvCz9Je2uhevBd4fLoP4q3AtdCsmXnT/T8AWkD8AAZhsgfgBQBjMBZ4ZOTLvWwjO4szS1sebXOelSO4AxbAngbjjUC/+Q+R3vp+RwIOMMCojwAQMB9EMlm99R1U3A5tjhR7VLjJGjgFum4EAJZKOYExYHNIGKM/++KN0dUBJ5RuKM5u8AAAJbN5vMSA3b7Y6Bk0eL063XGLZIFIRYRTECxABmj2gUMB9EZwOiR9iMOGriMK25uJBYfiN/UMvAdRkSNLwbINnyCSO34J7CAsGUPcrPJi0UIiO8AUUSW7JyMGNSiNaQVxCJ4Jt6bvO57Whsiyp/TECiVYbro9OyCXhGxrLVSpLDwFcwRYqBAEUAl4VdMnCrqPUON4LGJ0scb17UvJi1dW6qeoAxpCjSQD0Ad57K1HUP61cGqofYboGNOGpiM4JjGQFPrDdCQw6FLUCN4S/BjvU6MEuLKp2h9EAtvR0M49QlwuhpyPeh8iOsuxvAEx/cg+hqGCmobL0TTIKp3qZajQxtD2SAHDTPR/jBGJZMh/7N6OeAWkBmwNkBj2LCQ/ADmM7IIxIV4J/BF1PcxmwbLB+7CaH0CRmi1RimOooISKNdM2DHqeWPK1H7AUxnT6gwVDTQgJyMBhmMQtkfUBOR0MNa2pwawVA2ORhimqi1fABM4TcAph/ABmx+MMZAX9RRFe2PJhpmpOxhCrfkZFCAsAroDCJqAbRjvR9esigqh9HBRFVQ4exxiBQwHWN8GgpRGnXJxLoKpYSxq5CGx7yD+x3gjasEWN0sYb6wVLHiq822Owk2b2MQOGpZxlLK5xpmqRx7y2pxnrpFqtfqMlDfoZ4HfpOR31qnYQwDjOJyNzTLGMjjYhUg/RyO2IPEDzsNaPrCtAgNhLvhp8AeNpDaIAqAYDDWkqT6T5TEAzxugLKLccBpde2D3PArrcvF2D5dAV7pxvpUgVDnlDxy0BORmkDDxpyM7xnBHrCieNpdJyPC5TrH7gwdlPYfCNmoaPEtav8ExCJiMyRvQjvQNLryRm55XjOATJR14Cu+sxCYgT6jplRrqxRhL2lE1xCu+3kW+DZT1FwXfC9AYSNxXV0KhirvAgjLSPsk5OTN9aX0NAVtiAsEwBkijHL4Jo67wk3oCFUmrD14NkBMexeC3VZeCjRrqNLwHqM/YvqOdOniMDR+iBDRwSP0JwqCvXMSMKR/b1sBQYB+2jWC1kCtYvx1xCDAP0CSJyhjo0EHxEAEry04d6BMRhSPJeYSMMJ2xBjR1iJZR9uLswP+NfO79m/USha2SpRm8k1Mj7BzQAdW46nZKDkFqWvUzsVcrBXbFICwQMlDcWgekFYdkCuJ6jW5UtjVu+9kYSKrjUKjcTXR8YoBh6mYBCavQgia7jVBJ+XhqSaWoCstYy5xKFrqizorW+3P2jgWMxwujfCPQREhcWtcz8NQFaZoehWwNZOWyEM7wb+Cy11ByxCsRu/22Gn+PeucBP1Rv4DCzDziCAXZj+dbROXIS/wDewQDIoJpOW5K1jHKbBNgaEwA/LQonogLpN2IHpOgwPpMOmk6L/x7AGcjX8mYgXJWJQXvqvdVtFM2fUCSJ3ZjSJoKgWAWm0kCEGjNBuoNBYbhPzQXhNb2a9ig0Tq4AweRPeufjHyJwTElGGITyJyECdXDLjMYj8DRAK4ZRTSxB0qiLCCsEcYGq7ZO/cXZPPJA5PCYtFjXsE5ORlRzVqkNYBAp4kQgpvQDSJq7XgpoWyHJwvjHJnjLFpPrDfJ9iEecdoMdlIlbo0HKAJGhjyTMoMBdBjp3uXOlKdoZS3oYfv3KxVrhrAV4BrAIFgpdZfVqoKW7hWIHCAxaRqblD2CgGX2CgI29TmashEzjS7iQquBPTBhcnhJ+9jTUPlYGwYDJIoR5Z8RnqBHCrPCyeOOGIIWuPjlblNTlMMJ8pk40yaf7Dr1QVNXGzeXw9X2PJU7jAFG8OCKp0dSR9Bw2qp7iMmIdhOvATzWap7+DjgDhK+LJrVY7VcJO+WIZjRrHgswmSU0eq4E6JkOPcswGgcTf0WCXVxHq4ipNNgvrBf2ItwElQe4p4GcCa+39hh2vL3ymGcD6YmYRBW6kKNvaIbiW7zLk3Yl2muPPD+bEVpTajKyaeIWSb1I8YJmlbXnshfzflIL7ppoe7Zp7XynM//VpG/tVRa8RWv6ARUuE1yl6Q9ynO+gcnRa2ZDyqvxV6JCxViMIkCB+lxqzPIyzC+g1UkcOP19p/NM9QJwVfgYtMQmYS19wMO2yQowCVp89MbBQy1Hpj0wzouD3l8xdM++uwNQFVdPrppdCbpodg+rL313CJ1Ot/bLU2gfjSY660LZ2XTlu1fTStekiKnYI3nYikkMkEb9IgOlr1gO1X2KpGq2jJGIQNuitNdhUh3m2OS39i6EB8+6mDJxDq5X21JzTXTEATm7LCfS++20gD517IF1yxKc+S4YV5bi4e2U4JRM35q7sKzEHZTLFe2AIW7WpznFLKvdJmxwmb8CSsKFqJ1S5AzgC801PK81VsWtioBhJi1dai0rsq5LNOMjOUpKgAWJRi0YWhEozgdjipEJmmAe9Lgqck9NgWwyyfA0GCVpj5Fj2vx6RlHCCnKxMi5QdHGDscaCYwDhSCKVm4zQIKlSKD+65QIwGuZ8bK5QU+MB3GoyXZGLj2wfzNPxzMCcKIAPQu1aDJSqNmpS/HK1QAWEsUeiXpiBhQKeoyX3QBhSXEVaD/06LPjQcD25QED35iKbI8J5rVxZ8aBaS8Nm5QafElZ2qD8E7JWDgMHGDYFGaI5CvRa0Pm4EFRm5i8LlgEXRyY4zEJ5/6RHSGXXhAdZmfRVsaYNuCDTlXoOY6APWQTbvE22VsemJvMw3SQqBIin+WgD9GfzZhWhL0U7aW6XQaQEezQFAqIJGBjfXEBoPYVX+3cbJZBQUmZmXR5VaLln+ilM3PZ/gnqo/glZmU0A9a/EmT3UkRBq4rNlbarMvS36i8hmIMPpVrVz0jYOZ0+rOtyNYNzA4cEICIKlcc1wgAB9rWKe6gM1EyCnLu5FVZZwHYxm0Y1e+CNn1axHNgbFKWZS3lXZS4cEfGDyUFSu9YmB+DYvbQwGs3fPWkVTvUxcePny4Rem10uK4sKt47VHfHHTbE+KReUdPWRhsqGAabOZY78Du4z0xl8pHS/YERJmhjc1n5A7RWPG9DT05p6Umx/JmJWACm7aeK/gR7EuETDofaQ3MREVqDyRTDqPad5KArUR3HBEaC6gTzwCYMLPjZR7TL/eSge5vKUtYV5INAf7R256QHlER3MbBKrSdSKBZu5+Sj/acwNeHETx+5jABg6QPNL8dIh2oUPN3Z/pXyUMHQx58NlWyWzTBQHPRj0kS4J+2zSJ4KKjZaaQGCxEPMG2R7Miq8bKl57PNZQXPPCcOR6d8hsr1KnX7GaXJ5+oMzRU6Q3O2EJ/UDILHS/YVIgD5hoC86PvOlerdrx57zBYcZL2CcIFkVsR3R95lwh/m3dkL5gZAW6Q3NlaDL5aLZuJyHOZLOIP4Wx+GcDSA54bFoWM6R5h5AkicbJK3afFPYD26rwIb4Uo+3NeXbTwVbafF6MzriouEYrlpEMz25rjgNPA1bp56+rjZYKCEYD/PUY1eDW3D5EZGaQEYBURoiEpEwQF5i3eYFsH5+6QGZsG5l80vwxYMx9CXZ6B6xnCAtym29aHhe/UWhY+AbK4eC0crBnXQYH52QVui64Vu4g/Vugk0B/ODgOhgQZgVa1QdHEDZCIAbK3hS1QCYOz2+e2cKWr0wZtLN8FnubxZl2FgLZPgRZ7gv2Oxx00On8DSFplxoLbxWkk+QsRAM51eZ2qARO1M0Ty1bQzQErhA25rMRAP4Phs05gbWULMlOwghqQMnAEUWDAXZWqCfBgpLkM8rPsQA13uF8aB3BmkBmIrw42FmhIXB0Quapbwu1QTJ0sJMIvpQAxFTB1aCuF5xEOFweTOFiIC+F3cjbwpFhOOfoWEZb4CLUNhhtZ+KDZMTgsRkYxByNAIQKNCWDR6lRryNeUDGIDRoDcH2C1F69HQVQB5ysbuDnwdzCBozx4aIHvZYMgDCqG2jLJQOgt5JCHgi2vrAreLywkcKt2kQU6DFp+gRGYwygiQC4YegKDh2LWU7awXDAssR6CheQB01odDRkB0zTzBlVx+CORZTbZORJeszQNsO+oqG4NYwjBpqPQdfCSDHtTXAK4vN3aU7ZLNYtCnFxaFLZU5NQjEbsZYNDp+6rymtC7IH68gB/a0IR5WtT7/Y2Jbr4TIVE2Lha/AewAgHDHWAWCOBFrV2nfx4FRva4NZx5Ts5YcNplqFiBa/hLBU+w2M7d7GbYkKvhiBeP/adFwHyG8kN38FErhItcjk9QWTWvAVi27PIk68IE9gx1avweA31YqqUnwb+fwHWqnBPna3Db2q9kmIFSFBkA11XNOtAqsg7DE6auj4sYcT1reBNbJgZYD0JQjCal1QD0JEanv/B7Ad6p4rRTbWyaAE/LvAJhyMfWMkn5UBWjZjIxV+YFYpAybDTYD7Nlle0sIu1eD4AcvWhtPYxp2Ys0DC74DUwF4VoAP1XV2oMshllIsmImkDUsfSRFBWPUtHJJgcF6xB+l7daGmY50LFk/MmIZ1mA0Yu2AwWkDbxdS29KJ60ICHuZdgowExCBs6/mQ2boQZJPR2C8Ul/R3V8uHg1dwV7yTISrlRuGuq1cvVDtFfaKTFxDDFwluEiAL9K6BMRHcUBmHkY6MtpF/SQZFqJyBlkQC5FzsCTl7Lixl7iizljxzzlzdzfTIFgjQExTLlmHirlpADrlrIuGcBcvfTRFOjQGlI9ZZQLDcUJNvXRDFhzLsh9Z8RjW2duOmNN6bcuMkAaFLWMfljMMsZMnWzTQ3WRgQH0WgIyCQXQhg3cD5zp4mSCvljIC1mJcZe3a5hIOQ6zsYl0pNlzOCp/HoquBsdZyWLVhSeRfx7FsoFAV3UCz+G/RfKEpSPGtjAngNYjTASLRzeHsyV1RxAQmaINgLIEHiGj9yF8q/Gi4JJjelvO266nPa5qhKiaC52rC5v/H0E4/hrEO8sR61gQ0+RQn3bPURrFu8tiKyXNkXIlqGskNr2YKqhTS/PrmyIgzjF5KDk4D9XS+SkJ/zKSv3a8MCBidRSW7IOAKVleZKVx9Pu+185qfdSuF8PHJaV2L6wGh2REGAkRsI3qD6VrHiGVy8t8i0DDuVyMpxAKl2XQRxT1FwIS7FUN02a/wTBkeUD+wTRrVF/2CYqokChQCMp6wl+y4W8gL/sh9KbirFBtSNOXdO3fBayNy24UClhYIUfhkeLIweILeRYqROhp4s6gTVTfKJ0c6MBCZqvlSVquyIdqsYx90U9FFl6wAZKgAAPXlAsgRPAlUDOpJ4ALwKVH4ADdkUAVABPAc1YbsR6FMQK1aoAR6DCIy1fmrVABMA61d2rJgG2rK1doAJgBMAK1dY4S1YurZACPQ11ZMAO1ZIAZ1fOr/ABfsigB2rL9lurL1d8IV1ZerHHGertAEWrP1dOrvQGerzcRsIO1aPQZADOrc1ZMAnVx+rJgCPQigGerCNZMA8NbOrR6DVA41bNgk1emrs1d2ri1Z2rq1YOrq1eOrh1eJre1dJrNwOhr81curhNdY4n1bsIUNYerT1bmrr1ferq1dZr31ferf1dZrgNferHp1BrDdj8yc1chr1NdhrDdh2rCNaRrMNaPQqNclr6NZSoJ4GoAJ4FSIG1c+oZAAurEtYurpiH+rdhHurnNadiaoBAADcGAAWPFNkaZEFIs11p5CwooGBEfOglsjOgFLEvIIpgcssyCeNjUy6mbxq+ssyG9sPtZ4s/ZlaALUy8YPBVaFPkHaFHMgflvQqeoJ5dboQwrp9Q6qwaIeAvUB6k3QTDW8iGzEMUQckY0+eCHtTrIQL1Ay7Qkpnog8oEVAiCglklhW/ITUjLrtziSyldY1AmPPY2fNTf5sPMbr6oAJiK0lvAXFCakDkDbrioHQYvQDyk/RUIQ6DG9qg9fVAaoDTrIb2xd/OinChig7m2dfLchda7QBYFAR10B35ClOLrWBSCqbQp5po8g8IyuV3ruJAzAWJiakUZgnrWLoFo1wEzr6EDfWSTBzrd6LzrkQOSKAcbXrS9dlCpdbFo3AGwAX4mS59Ujsr4QG3hg2byktCW7rk+Rh4TUiHyxQE2UQUBGQ6oEnrvKGxd19bct99aIay9fm669dlC4wozAU8BMAIYCqyewEhQqAFUALgHcAn9amF7kE/r9MBg43ElSGASD8Ah7D9r09Fg8BSVmQ8QBh46eQIAplBjBzwB7ozDdpYlIDCAVDatgwBBRkYgEDYwol4oRPqTxbQFCYHADB9lkmVYYPokbyjF0UGPBg4qAGcAm9A9xXkDACB9EB9wDa4g1OW/EXEBfYuii8A6AElANIHUgdEjmIVWV0UGyD3Ul6nkgXyHgbvldHASDYXrH4HsI/DSfrVVXQbb9eAw5POZMTUjZNUsgaoWiLFMHfPOscDYvra5Hcb+mU8bdgG8bSNH8beA0CbsXNPGUslHkLAny559eDeCDcvrVwA8bd9cSgmbH4aqTaLrrwEx5dDaaks9Cak0/KybWfxYgeTeYAzDQzrCTZKbH4AwC5TdfraTc3r9aEGA81Bbp1VxVDMTfybbjavrHTYbQ99dqIPjYqqSRT8bvTcqbeXUQQTCEVrrCEvRM1bogmVCIA1IkKb4cxCUsMQVsVVRJo4wo52oEANlX9mIk7gDgAmgHJkZzkh2WjfcARyAJEYXGqofCHyQWjYecf4z2gp/XKAxPsIAi7VP6uLEnQQLeorijb2cSwBPAygX3ordG4k+zmhbEHlhb3oHOcwQEwofgEhbBzh4ARznhbULeCZdPtQkt7AebnzfFAlkBh4iuFgIcYOaAXgHHoJ4Hfq5jFhAikmgA4LaUk8jmsAvAEsdASH4gbLb4AdLdoUFrAUgZznJgEgD0brzgabgrducDTbMy6HSYUErYecuwEYgWSDlbCdYwArzkfA50nsgoYmzxVzd0AATVhcksGAserbhAksA9Ywxe+ABso9YBeEIC/kBhcxrbpbGgDNbhkC/EXwF/QAUEtb0raIAWzjdbGgALw9ra0AkgC9b+Aqyw+LYflchkwoDzn5bobYBbFjE5b+zlUgU4EMM3tRaA7cMTbEgC8AKbazxShFWAX4i+bGo3igEgS+bToGdwhCT8A81Egr41WnoQzaOYWWBIAI9GUC3tXgCfgBDbuGmF4pEA/oIyHhA1FaB9j8pUAsbf4gghj5beAAFbi6kRgnmBTEksDzbbQBHbjEAHU47ZPARbYZyT1EflPAERgZ4CpgDmyOQKwHpRq7cagGCNtjy7dsAWWC0bFgQPbq7a0bq6C+g27aywPpmKAcAB9Mp7ayw9LeHbGaNXbGSF4AK1xGEZmVZqwkkKg+0hJccLc/bzbdx4Qklzb/w0HALpEEK4oHnbcQGLbS7cKACAAyAiuF+gsAGA7CHdxA1FdycqHd8Ae9CzxcxGIAZmRgbfrEYgCAHw76wjp9nrd+E7hWq4MHfw77djmIMeFdbGBEP03tTc2xAGZgHrZPAKwGdbfrfNLyAC9b3HY9YvHc47YUHGqEbaHbD8qq4z5ihcr9wgwt4DQAbID+ARAogwlzYBbDjeTrbiFTrsTdUs13gQw4mjpQBFH4AxoF2b9EDnrGc2mbi9bzrFTY3rbtEU7eDC7gnDeUYtna3oXcBSARJgwATneflbnYgwRAo3NO3AbQHnZQSPgCUkAXZbganf3UGnZcbWnZ/YB0xo0+nb+4RnbLQpneQbFnfKbd9iPsjvOXs59lXsHnYIQGDfSb2zkW4kOyakBXYWEJSEIQJXZr++JBabbTenryIL07DCEM70MES7ZqQXryUCXrAlB95J9id5wAGyYX1jMdw9mAAmf1oUUsjy7m9dtYYeBOKPAHUg6AP9bzTdcb7TazrnTepCj9fmb5gxSKVndlCWig87m+Gq+C9cBA23fKgBCHoA7Xf27Pnbn4eumHrq0nS7vvO67AfKIFuXeuwjVMVAuLiak53ZRIhCChhoDeYAYgEZYlBGq76dcQbUzfAA99fa7LegWbfUXQbj3c+K0/2+oMlhP4vQDP4F/Cv4N/Dv4D/Cf4L/Df4H/C/4P/D/4AAiAEIAjAEEAigEMAk0BVUhlYdzZdAM4Dh748FP45/Ev4jgGv4t/Hv4j/Gf4r/H6A7/AdY2Pd/4//EAEwAlAE4AkgE0AlgEn4EugThDsI0pEyILcSlWkvZIEH2lCI2cTsAj2jKImbCp08vfSI0bDKI12F50ZRG9Y/2jKI9hDB0oRHrsLaFF7NhFpiivciQcRAwCFuiN7sLC/AThCVcDGyN76RGCgoRD3zpebd79MWtJHJG6I2cgCQTIjsw2+A5ITIl/AARs3wBUhmIlSQWIl2ldpEfcX2t2jY02YHD7zUnYAVjD2Itvy3wkSGT7hxEXUBAHuIGQAWISvez7AJGxb3xDjlWfbj7nxGeEiHBM7FfZT7FajfaCxG17xfY+I8JB10yJAWIevZb77AAiLZvXvDl0G77BCMh06AHHghdQWIhulj79fYQBhfbr7hxElECxBt7g/fiiCxCX7pjfhACxHTES/ffqs5ANwCxCCAk/cOIuIEoUmgHHgDvHtYr9wWIrva377NQGEyePogHvaX7NIGVy8AFUAfU3QZd/f8a8KgmKY6daIPvfZIfvc5ImFFRUdgFJU7zpX1qPsV7j6mxdkqg1+HtlkQFQGAuddFIGiA+G6yIHBAm8w0gI4hTYv6Fwb3qDIyzkW9SgAQQHZsDroT+HQHaAAnaVeOlGuA7XIMSMMwnNw/V9oBmwbjeuYoBE67gDmfsDdioATdmLsg1yG72fzr+wgwT509niyISDOMLU2owEhFR95sGPM/VZtT2AVr55/P6K9Swr5wg7sogIGT5xdmyw6MDJmHrhaixM0RiGg54HXDvEgYoNR9TDNYrygdYrYg+kUHFZENVg/FmwGmZz1g664xxgD1IhucHpwKjUFQpXEdIQTWxfMV8jHkvoumGs2YC0Eq9os/LPan1Q5outMmYjlCK0xZz2/FdEdgFwcVoA8A6dG9AjgCAH3oHuEeVD2TFbfcCfXMQA1MDFooanyHPTMNYaTEGA4kiQMVgAqHRQ/zY77bj6+Q7+AajmRAtQ+sGbQ7+AA+GccafBaH6AIpcfkB6HSQD6H2xgCQwEEZG9fCCoezgmHS4CCo8jnaH8w5pA3Q/rQSBgWHfwEMq7YjWHyw9K1xSGflSw+RAzaOVyWw4OHjQR6ZSBjjBv0AtguAAuHGgFZEU8FuHv0DD1oUDhqjw/uHoUEGbHgDeHzw6hGbw+UA6aDEA4ASColw/AWAI+QArw+BHdw/+HEw8+HQI+uwII+hHgI9+H8w9DEg0QBbSBi0bC7klAow9smBIE+p6I56l/LfTYPUvOHJI7hcYrCQMtrFQKoiiQMb7dLoSBgLw5nCCoY3OsAYgDWHR9GDLQ7eJHA9NCYuoSJHlrCCoghk5HDLYFH12Cvbi1FR2m7aQM4o/Xb4cfnYgo5fbiADYgmFDvbPgGlHio+FHnrAVHK7cQAjQ7KACVCSggsAGiQ0R8AITdVAhCDmiTUmpgtYE2uS6Fwc1KCi72Ikmi83eci+foQgzlinAhSiSLRzfhifUU0Q9CJquRh1eAxDg7mxDlJRsoWOgipGMsGEODAlYDZHKIUoMRHlqH+SFqHb8GmHASCQM2XJJMQVDn4SBm65eY5W5SBkxg3AQxHdnaCoIEDYwJzSnAkoGlHgCqCoDvH2H12GaWaY60FRVFXzdiCDcgNEdc10FIUY4npdEmBdAkGSuYv+cAC/Y8IHl5bVK8ioeY50Drct+EzQ4pTxKK+sGaDnkegVRU3le7UvIJBm9UOjj3ahCFOaHvXvYSFRBoy45RCwGHarfzVIgALX2aBRUu4BCF3He7TZWhPXYrM2UvHNzUKFMOn+AfcAfHNSNHAJ440Ix0GsgjYhmOunn2eHu1lQHlDFWZR1DQ0Vafg3YvrUhnl64fcDo9fKwXeXBc2k4I9voC7zPI9nlXwTnmugUDS7QMDWugGSCtAsNQQosfBwn9sCc8guEU44cFsWtPaR7DPZR7zPfR7bPY57n/EgEOPZ57+Pf57RPaF7pPaqybPGVYrnCc4VbWI2p1Ms6AYnSa/iXEnNYq6odgG4iOoFkn9PBfYQk/fYp214AYk+rFKk52OvAH24KSBxMw1bxE93Au4jwC6xN3GWQMmmUnWvFzYyAHzYZQD5CiAC0nxvHKCs3ChtFrHm4KSBdAzk9OphrGNYTEijOanClIUgCMn1k/9YLCmYAzrDtCbrHcnYoU0gSk+0nWvEDY33eDYsU6lImgB8nNYs7kfIW0AmU/p40bFjYaU7YilDCSoj6AQigNAwigNAIigNC0Cblqxua+B1qDaHqnYUQ5TP2F+wpvXPadMFUg6wwp9UzUs6vU8VYLQAI6Wbd3ax7VmQR7UXcdbYg8/U5s6LAimnHnTkbIHSJkHhCzbasBUABPrA7N+Q2nEIyzbbI1WuObSXbbpVaAIBVKAhUC7G3EjUAaQFB9qnQwAY06xKNDZGEVEH4AgPu/IIDAsAO5iTr4XecbSKSAIaQ7/o3wAQjtUTcQadEjozYEIQIM9boLI2WQ/05EAKKgh4QM8BAEM8oI4M5hnyACyHbYmbA6WlRnwNQRnSM7BniM9RnQoytyYmIRGUNQRnxqg/N+M4pnqI22GLzFTNlAieil5HqIKMGrqqfwGrig76KLjZVbKM4yHmo3gCP1SarL1V4zR1uL4qM7pYLNV5nIgGWMOgWyAos8lnwigxnIgAlnoM6lnLH1lnys9boShA1nvd0IQ1M+cKMYQFnhPTxQws/Vn75tJnVTxJnzhWn+DHU6kOBHGFYs9pnFLF+wG0TcQ6Q5VnCs9PLR6ix4bHVtnrs+xnyHShgA0Gdnds7NnzhTwKqpl6hSTHqnI4jqn3XCHSRo/GFdQ+7GfrDRABCAY6H3dRnaIydnGc/ln6M89nBCDY6Oc/dnQo1h5HgFF0JxQ8AQjffV1/NF0Y7Z0AFc4ZgMHFN4SQHrnhCAEAns+NKbc4QMOQ82KTUjmI8vMib/c6+Ag85cAywAlkI86D4cIFbIfc5YSM8+VSfc9IFSoEXn2nTcCpnSyb2nW96mFCA8TUl/5gIF3nbunyAO+UIQB894Ai5Z3nQ9HyAFY68g303PnXkHyAj1DYwR873nQ9DGax86HoJc+fntgQs68XTfnZk9062873HMHCXUWPEDUQC7K7gahnhubT3HkC6eo9Tf0YIhnAX6ACcnwC5GbxJh25qC4KS9TZ/tWC6VSTUi+AIEBk2eC4nwBmwIQQc8IQoc+ZG2w0IQ4UCk76emoX13Er96egDgn1BTcu+EsItsTNo9MedoBeDlitIF5jyvB4XtbEtSFLGGrvMai51DFEXk9goAnQH6A3rGzSDmBzSbEHDAmaFojQVBNGtBeo9dgHcy10E3wWCD1S1KpTHzyWl4drCXA2xji5iBmb2E+GXIREF74M2nwXb4iIg+oFyLFvP2odM95yOOV0a8QE54TChJM3eIbELWV0XUMCNK0Y/Ogui7BsONV0atAuCANeIpjUgGe8fmGLCoUGNAfwGNABeD7gigEiQ+qyNKlBll4+jGQA2TF0auS5QAOYF0ai7VAgBS+2McAFAgJS+uw81C0gFS6x4dS8QANS4uguwAUKlrDFHf43EKujWUKHS5yIjEBwA3S/hHkeT4A0eWo2YICSgYtDQ8ujS8mpi+CoHfRvqti5vQEwhoQCy79Cdyn+6YgB6KXzJSAPRTuUeiCwrJ5REVlJYL6rZBvq50HyUdkAKXGzFAIly/KXP1VhBttwwIVy6zA2nvNsaS58UZ7RmafVV5ct4drpRS/yXM1bAMt/fyX/wH+XIK5zAQK5DwEK/ZAKS/C+24KwRBqGqqSS4uXH7jsgJS9DeDYDuXpEBzADy/4haK+qXCnYEdUam/a8S4yXUMCkAgsH1WGS8oMY8mpnOspiXN0DiXLWUpXUMBsAVK5MWWPGyXK3DWXeIUZXrAHiX7K6b6HK8oEYS7Jq8s+oUmEfoQi4Cp6xnFqX6ABAFdPRIVrY8468S+gANsDEAIq9CX0xiBbVgB10i5aWXDYF1X9RERIZ89kqTmDgAvxRNXp8++mzAydoxq/1X302XgFK+ZXuBGo+Wq7sAYq4PyrY79G8S63oLLziXfozqIgsCuAvQBfYHIDDXFgSlknw6QA3UDfgzjcV7fcY5AhyCng+8YIQI5GTXbaFCgI5AIQx+WIkma/rQea90ABCDvcBa6ngd7hLXmnBUBws4IQIVQ5A1MEGABCEeowYA5A+82bX/AAIQJA9HgrOjfa7a4IQ+DY8aHIAHXGYGwHS7jsAc0TNYh4TtY3S8BAm81+EOGsR9MUGHgIa4ASgIG8ZNgEq7BCEC0hdD9YBCHfirOnloe64bYgIF96NSCx4baKHXf4z3X28R7XtDfi5HHGTXfGD3X2666xukAIQ9dlbXAiNHX765vXka+64UsltSCa6DmHIC6xWkBzXSTebYL2jSYFa6SbrbBPXVC7MQHIE3wNLAIQrHDLXoUDTXSTdXXKa+zX7pSSb265w3Ra8NqTsXQ3MG8jiHIGcAHuoIQ8RH/k1a50Ce6/3XJgBIADG+PXJgFIQ1IQSIHIBMAxiAY3cG5MA8RAY3tG5MA1RAY3N6/2rDG9XXJgDIADG+3XR1b3XH68BAsNfk3wyiY3VAHk3tbEU3WRHk3rG/yIe68ZpHIH6AwEG/X1IXI3XmkHjdoXfXgsQ5AD8+I850HTyVoDNgnbCwb+AHEKBCGGERJlJMbS9c3464GXHICvn3m9K1AEQ5AlURc3SMCXXieA9X3K57gNy9vErT2u8tgGaimMERUV31AIc6+bpXwEXXHtnpmMyFdEkqmfysC5+XTuuzAhbT9IOzJJQp68g88102XlhViySqA5AbIyGq/VU9KDw3dKhW4YG1cHwLsWQCUs65Mg6W8Jk1ylr4nNPCZ4VQh42xi8358E6XAESGXyyD4w02/83E2+Co8IFCAujV8Kl3OGXCeVGXSeXGXmZgc2sWUNXvWny3w+Ta3JW4cS50B5GbBn2bGKga3hW8jAFbTa3nW6G350CMK+25Ygh29VAx27UM9W9uG3pUmqTW88KLW8a3vLge3qPBRcaD1dXEW6hgILv1WaLzUFYIV0ab7f1H12H+b+a9qXL+WOaze1ycOGtSnT1HR3HcDRbDS6+AfGBaX+AAyQruVqXunV/Kni5tyyYOWAjK+868S7rhUMCvmIS95IfcCxoJHRg2GO7xCE8amanO95puTk76HO7mXvS90a8276X8hWm3IW+m303ETynEESGLrguan4FdXV8ytyHq7FXhpUlXFCWlXAkjCZw8AVXu4CwrrY80Arq/wANsH4AHq5pXMxhSQbGGuX0A4xUshht3eK+JDNu45AknWgASYj4wOAGyYeK7My1dnKAKSA93Lu+7xDu5wAGK7t3EiBD3uK/NX0HDYwJS/Gi/u/d31u9D3Pu4pgbu8D3oe9d3Ce/T3u+REgtIF93ae6T3NeOlnbGEqgkS6T3tTMZXsAFdX5u8oKw1flA6RGDzM4qSb/sDPgwVLAoAo31n/M6+gidGWo5KbZTYFAxjtTJ+qGMfwi1ODZng+4yA0/2gAcS+ZnWICUp5ya73bQETopMEZYdRF+ws+6xQiMH1AjLExAYRD/AO+8LiYCnNgxYWq2VW48JNW4yAJiCZsORFl8XaHoKq+B9wt632cSBnh2QVF4o9i6QMlFeI7IEBPAq29wQQVHo70S/LHoYmaH12B1MVY/Ugk8MRISBl1j0o7aq2fHrHmnEQPIInrHxnCCoyQEW4QVD0YTk4NHhJWugmpWugygwc8G+6IP5RW+59VWRQ5HnH3qf1qZ+oFSI4SWoPF0Y23N2eAkx0FyY1pM9UlfM4P98C69oIAtr7ACtrF6slIecBn3A+5oPBfa+gI+8P3PDH6rE+8zukw2ug8lGugQw0Bouwx/AX0Wv5P9G/oKSDSAk07unD/N0P1bYenhUCenxh/mg7a4unKwHk6Vh9B9SnVIbe7Umnu7UPckPs410UMmnu4G3c6THcPgHRaAXAThqsyBWn4NQCPmkChGAR/Wna07kbvNS+gvNQUgdATxofCF7ax09B96RVaAugtSPv3K8Ae08xgd7n2nPBX2nt2WsbR08xgI5G6nukA7ypR4vcc07Pa9UAqP9FH6wTOwwAN0/qPukGaPDQFF0/WGobq87i580/aiodB6PiJDmnbgRyPbgRqPbgRKPmoXunmoSOKWkBenVpAPMNdHgXJjcWP5je9M0kG3M0kAI6/U4I69tD6PBHTpYA05RKQ04o6QR4I6oR5hgAI/BAmxW+gFx+mP+JE+nTjc3QWPHztdGi4CwR+zIIHUwobx4q3bx+RA0kD8PEHTeP6fTeP7vQwAXAQkCbx+pgX4lqP+SlqPL7gwAZ7XiPZ7RKHhAARPUJ6RPUJ7cCMJ7cCcJ/6P8R7cCyJ9xPGJ906kJ+noHPI/o6wop9naSUkC3OpPJHRhPBHRxPbu7CgCe7C7Dx5PoYdq+isAHsANUpYHMaxLeSVkDI4VnSsaMX69HSS0wbiHunBjXunQBRW520+cKWbexGuBRaAip++AhC/uPKdZPoG1hFkBvVB49fUVACJ4HGHU6uCfMGx4nmhEAWvRg6Usn1P0gUNPqJ5qQfMG1PLvV06FW4IQioEt63Ywe6qgQdPZp4ZgunRBPrp5t6GgUNPnp/tP9EDxihxV7nsPKuPY06iPbQF5q8R5SPWR5a3H9A9DxpXVPEXaCw4Z/1qAg1PonbVsPb7VMPS09iPCpXTg3266nR09mGVR56nUp97n6Z++nYZ56gbY17GXYwDPKp5vyTUje3eC7On5wr3HDR/VADZ7RKHe8oX6C7bPLhWLPU+X2n5R7e3+05qPlZ6vcdZ83QwEizP6o02nkI2Q6sPKZG3wCzb8Z9B9SZ4OnhR+TPc55YgC56KkuMUbP3GsnbJC43Pio29AMm3HP8R73PeR4rPN7ls6J54ZT/WFRgKc5ZA1pHaPuXFrns7Z0AsyG7nZwyuPQ884gXgCwgY89bIlkGVSkMn4gJ87Hkg9DvnvACvniF7d0WbZB4bR86PYC+zIGUFnhTbaagkp+WPKZ+QXkdbYwaC9+9wyVKAE+DvP5x5Fg905oXjC9ZPGp6hg7DQqrfT00POh6S54wDSPbunJPaQ0pPi3LfP56NCAytVqUWPDoas4D/mALSXUr4F5jYmNQkUYj0QBg7MQ1KEgnDiib6sWZyIWl5Qd3/ZUr1BEQVYtBpoNtHsdKQoGgcS+tJyvDaqttGkYLtFMvaxjHolzyPQUjKkXCl8IgSl/0QgY9UvyMS8y1+7MAUl7/mEmuYA0VmcvdgEjmAV7WIyghCvKxOWkbxYfI92uivRLHancV66GjbcSvGBFan0vHtddYkdrcAgHwPUFoW1DDlp8mKhg3iwxLCk80XnGvLecS5wAmaD0YCnOSXMmnsA7Sxag9gG6WcKHsAAywUXYV4HYHCCmWZODavOMKRLdtYTwcS80na+DiXbglgAsAHvABuYEY221YiiKwJR5zrzgw1ZYXqpXoA9MG/AAnGywIhlpALC5QMN6HWvhgBPAIhnOgr5rhQQMGJYpwj5YWSAFYQrCSgkSHyvCzHbW10GA2yh/JTx4po8DqFNQQYCSYMlht+boqQR3kBk4TZEguJJkxXzECr0qxY5OlyBe88SBSMPZCchuFGo2B4mXyMN7gWrcgjIsxcMxUGFOgHCtSeXezkVsqWTab+lWlTBwYI3VgLT453ZL3WLMWSN53IC5H07qN6uYbyjmOGN4cWWN70xBmNlIeN8QQBN5xilB3kiRN4f2O8tPRos3LgENpYz1N6JOm17pvA5gZvHFC4ow5Es2Y4iYcHN+G4XN7PYsxcKRYaC/AHCqsrj41+w0sFPMuGMZAUt5PwMt8MorFtWej6R+wkSHAn7Nk3bdREiQsAGyQC63Xs4mXdv9Wkj+jtd+Iz18j+FMeZtGqcjawd5OAxYUQTz192l6wMIPHIIRBXaGDBrU7HBl14GkFoF144JKz+eLEK09ZBTv118Xgt1+0A9160AQ6SuwvJFYiUEOugN4Ouge7tXwp7q7Qs7qtAZvEKlOYG1Y/ohK4bIGiArd5jEwaw7vXd9euvd8rEREAxntYnNdA9/NpM4nplY96VHU3invsMM7vN4inv1G07v9AETEyYlTEGxnnvF7jxAR4HyAPBk3v+hnUxErH3vMgpXLgCv3vnI9nI0bFAg0eQHvp1M/kilGNO9IteIiN8XBjd9uEzd67vAYhz4R2BtRFGNJmf+2dEnjyNmX+c/vd6xbvUSIxVDaK7vrYkM4I967EF27ibRKnJTa/1PROj3ygF6M8t3tP3QzaNvR96M5t23ouzHjvK4496HE/KL7H2D/HRD9a7+Xd43E395wSqGL/RmGNIxhsL/vVGMH4Xd9hhR5B8CQMQYfpN+kYpSgy8MGLahNyIFtxLUhRQyJJxsKNGRbG2KxkyJNhuULfgqKMeACyPaJ7dMNWUj5xR6yK5tv1EJR6uHdgUdNJRHD5Co+qK7vtmL7gq9+P7PBnfRXd+uyO994APBgSuZei+R8qw/mMkTVMhGLrABTdb4/OikxlM+HLqmIoX3wFkxwmo/EopUeYvj4hGNWwJi+slWixD4Pvfj/ACGldCQOBD6lf2BWwsNCqDsTrBhhGPv7jIK3glGOMUcT5PvB5cAVXD7ZvPC01hCgs8ZVCMPHiFMdJNkz4RwlIFRuCK049CKIRcFVYLbhVpUnwSB46AAvvGaCvvC67l3+vA6BqLr1NV0HTKINDEYQaGmHUxA5AmKDHoLsH0HXl8NiIJdYTaCUEtpUqugEZQ8f9aSohJsvwZfmEZJraIwCh3FqIINDtn8a4Wfl4Lggyz8iuJiENi50DWMozDtWy0iuffmBuf1KGUvKz8twEZRmKfvHtY999Cgj9/7WMRERvzADiXK3C8gH9/dE7d6IAjqBDEPd/AfOYn5RngGgfQ99gfHYlHv/AARfJD9nE/KO24WPGfcM9/Y0Rj6sx0UKMfUVClApj/B2kN5kbOBFyIvT9vca96sfmaFXvOstoSDj9q76GGihuBBcfz4VB8Hj4LSGled0ET4kxAT8tngPxULIT6nwYT4lfh99/EronOgR0VifXd71n4uVcrRK15fjL6nC+T6lAUYiHOhj+fcU5cPLOuDhcXd/6fnYz63SeUOvoGG1ffoHFsAL71EfNQfvB0lBfM8G7Ir4Lfv0L7Afn97hfuL+7vCG2Rf2AVRfd3HQAMD6wCShccjAb+nEpD6SZhL5Xv64hJfAb9hhasMpfTBDDfUOwQf2nd4QasL5fTL6TElj42M1j/Zfdj65fhTYWweb8ZfkmXTC7j5CUveAW+mr73CYr+9AkmLUxCT+CfESdCfjLvlfHb6Vf0T75gPtLVfkr4+4Tb/swVb4dfK2D1fKbnhORr/XEJr8AV5r90glr8GfGW+GfdA5mQE78MAjr/u4QL5Bf5jDBf3ZH4AcS/8AV165YJLFfgLoG+viNKtAapdbIWrF1L9CRrxu+C35QE4rSQkuTZivnddoNGK6Nl2V1kJdcHwyU4rWnLkGCBrytqGtuZ0Q/uZmhvMNivh0NVhsBZHAVwN+OocNSOpp6qXyLBcarrd22to1OOvDVNMt6+cTBKAJ4qfERH7CgJ79Zv447swtdP85NPmT8+bOspWovn+1Hu558Ct555wru2nAppvUjIsF7eA5T/ApDLFXPZlhwrK+wgvYFX4EZKogpKsQn/oA+q2NAf8sdEnAmAwmS85XagvBsSn74/kn4MF80Fmqd23MFiUEspZgt4/X6S0//joxypivWAqvPvci7l8Ty6iRq1n/V5gliT1R7hT1DguP5p8ogyLR3ugSidB5s5QE522R4c+ZjGT4PIC/0BjGTJJprgV9xuNayCJaFcE5TRsGzIX0ADQngtC/dPOK8uzBB2pUsrIkFlhmEQo9r1UxiFnQGAotzxdr19OK/C6nqgIdcmmO9ZpAcdaNlZqAq/zQujrm5bq/Iwoa/WIAmF5DfK/7MDmFqX4WFrMEKp7EWuQBaj2UJygLUI4zsQLz9SEE9EkVU6A4dXMCT6sKCu2cX80FriH8/2Vh0cYyaV6y6d0mf/UUGDpUCFbQ1Whz3Vh1iX/cFRIBS/G3/6/mOHyJxBWtrBDhu/HEQy/Z0DQe2X4L+3LRzIisCW9fX4e/bMDdgpGjValZBRgz36yuF0Gy/1cDLIazp88Q34k/dEGHOy3TsQ4l8ug1hzCMeX86mBX69rRX7WQkk3cEiQr6myQrWMZvgykvU2OkKQoUQ6A0jJk3v2UcPwm/g3tK/8lhbA6yAWcGDig9h603yQg2uQriRp/CP7+Fr4EaFUdfUgoddWqdrFa/3X6aFPBRjrgwojrbX9hevX6u/BDmJgVyHJ/qwuHXGwtue7PJ2FbnHYiLvg5/sP7NKKpITAapJgNd38AeYYCZNgX08v9z61A1P91A4355/mQupUkgnYidv4Sw1VxuNFbg92sSxGNHUOJgfHPj4x0DFFb7+x8w+qYlZH869el+0VsiEGi/OCxuLPS6wWNx5jcc4zNEf6fTUf66wuFDj//OFwobIEqrJjq4XJp2OeAiTPfad8xY2LEzvirFWJiCBzwxf4fIF78/gYCOuwlId+oL7qpDlzzYY2xnsqPUF2lXbqlW7Y5AHwUUV7yLAoGA/77dFCS0v99sueg0U0UgrH1EUpG+e/cBX1RSfZ6cd92Tdds+vryc6uChF1TGoHZTj6FctQTNLvvFp42EtthYQ/6lt12EkjgNBmTP4GOgX/qAn/7H6lW2Pg0WOdQA4gn+zi4BLJrnN5hDeJy8KHFme/lBWZDAkncRdxIz1pPRNoa3FWPww5MUtI5Tk4MLVHAETdHx0XXDC1R1Uc/ww5a+R50j+fF7VmqRFRa4tV8kbtTZUS3UzdGLQ2jVyzfWx5OT5JPDY32jWYf1ZhzlDWUCATbGq0fDZrTCoFMVlzTVzZDWUsAV//AhkIaQRzCAEOqR7EagD7qWoTUCBHqXTwcylujg28RXQkg2Z4MrgKpWEAmlww7UdVQLRBUC4AoWZDEWTlGuU8AQVDDMheEGaZAQDSJQk4YCUN3XuQb6VIrlYiR8ZN2UBoIQNTA23dOQD5/lLkBQ4GgHsKSjgfTXAAKzdw8mnxZFI18DQLU/xxAI4WRjJBdn6lNVBFNWgA2tgrKQr0CIMr2QEJKIDTajiDGYQCSxinY1Y+mhoeEAkdRWWxJzUmmlY+EQltPFBpV25GSS97A39EQBxWf81bPyxUXg0hJCRxNi5nPlIBdHEyOFo9PXlCcwg9FFMyGlLqGyhGCT7CRjIr9Vo9CxR2Lg2aGk4xLlMUKstp/mxaSdMhFUd9Dc4dBAXJEpxxiW08KREHDkZOZYglbiMBIs4Q9X5ONYtEsxzOctwkaVduFYosgLsQLMl5h38A9H52vEueXShumjBpHkxFfF78fzR/5BrhS/MS6kiA1rNn0RiA54D8KXiA7qljVgp8BSsfAC/SNnxEMG72WM4JKFYcWAFfsEKodMpDKC7hVktiREc+appJ2QDxc4DiKBPudfMiOEnZV6giRHtQPx5R8wOSKtgOUWyQBEDMQOv1Ijhm2BnAAvA8QOfRGxB1VgOUeT5tPCRAqfMdtVpTey4pe0zQGWx3VGuA6Dlg7nXMU+Aa4Xf/J+A7gKezOxNzmgBFDYIA8V/YLjJcFXqNYO5RSW5AhLNWsF6VfkC/TBR6dVYkQgoGBWlCaVbyGACj0DC1KykuUQ45WPUx3DTlTjggsCspHkCv0mAlaj1JHjzoEhVhhk5JTMltPAKrICVK0WALEzAJkDOUQwB4AJYuYWhA2RBtGuFvE0DACnwznUMAJUEjgVwAmu4LQgsHcWYgaBH8RBBVgWmDfwID6VSLU19jy03LRcsgnA5QPY0IBQSOI40mbAKwWKwYfkRsKeEG4XjBEuE24RTBP7AMUFARXeE2glThSEwknhJxCrFxwAGxflJ6klBuAIMz9mMQcRhEo2D1KFluCEGZUOl3QOWKIWYcqm2VXhBR/ifFJQMPqS+pBE4uQIjwHkDToD4hF/8tWFvUUb5e5CRCLg032U0VK0pofnZxbkVvyTbRKGANKTEQaUhrEGeGYPAnmVyBHPQgIgnAscD9xSI4cuVQMH4Aj5FbNBnlbAC/RRb1Q00ETlnA1F5S/kipXvFAaB72dkBewKJpM8DrlRz0cICmhGlA9pkeqQFJWvN5KAVAwUCPwV5IVUC37ls0A5VQMDIJBIDIIBNxICC4PwGQA5YwymsQDCDw8XM+JWlsILvKE00C8wIgj4CqxVG+UiCqATvFM75POQoAoNZ5SQggktljViyxfzkKfDxsPwQmIOWGagCLAEFjPDZ9hBVMfPo6ANIgRiwtLjf+THBJDixicD5EECrKGKkQkjJQDjU8NmWEakAmoFuPZ9ZfAEKpCIQlhGihdSC1hAF3LYRfAHKxSm158S44VxRrsBkwSqEmY2KmM5RjHlJgfolXOUCsPwDaQILDQXBW0zmJZllTWkm6cgFy02EONT4HQ3JzacIDYBxhAlkS3lH6CwcqAJUTb/oGORLtPdZGYj6IB9YoG3yAYyCOMB8FcZwkvUr6EkscFTGSYsIhk1UwAtN1uizeKP1X4xYmI7MFI0r6UqCksEajPfwK3HmhVX1fwm18M5NGE24IZL0ZMCS9Yn8wvj5JKR4ifFwOZnFXQkxwOjVh/GGsRQ4t6gLeVcIKdRIeWkJJqUzAIPxEGSpuV0I4elS+YaDD/Bxhdd4A4RjMCaFrQDIJEQNr6R2AwcC2QM3iHPQa4VPgRc5ZwIESZp5ICTNqL8B11gile7hkoOYAJ9Y0oJQaNV5g8DlxLtBAINPAnCCiQJOgvo1ToEpA8qkEs2VjSkDyzFkmUkDT0EFZf8CX4kLlcAAdcV/YUUlCIMlFCtx9lVAg/6DWIMSA3OA+QJgg/klpQHgg5UDHgIS9aID+CUMLfYC4gPtqeKcu0BeULHAo4TVKLKsu2FXwa6DQ6XeOLYCNgk2ArMkwaSUpdEDtPBEaFGC/xRz0PQDHwO9NF2U0C1K0GeVg8Q+RekCFXA9+KOIKYOSSazBd8AvIA8QK0h9EJJgnMxXkEmhvSw8oYJknxHGLEpZxoFsrOBY7yxzLFyNNYMS+c450aTECbfgknwkLT3RFKzUkauUG7Q++JoAOwSyfQMZFJUL4HmBOZmc8HmhjoA3CJ8RdYGZBJ2UsQgIwG28B0RTwVAAHjHTif38TYDSCRbAYt38cRtNrvBPTMOCs4hziTNgymgeMNOC04izwAF5hqwTgnZlZ9hDg5u1dzXogMOCJdTw4cXVc4OOgLYRfBxHYHmhZXHv/CX1MaDOFeqoTIUGME+4StkWUEqhB9FpMQO4vyxVLPk8jYGitF3VdWkiyZNBKQibjajVZyGWAA2olgEc3AmA6qjFoeUAILDfAKhhBgGpgUCE09ADAJMxZIG+QG4BMax0BXuCPFDVAG4BMyFuaNVALAENTCKIVIg9dKdwJkHjOJkRmCEuBAagNFCHcBFksUH31dZ9OriCwAEpP0khNcZ5gnW0/L3AgpjhNMtI3IOtZfbl/JkeVYk12BFxFRKAsiknLCk1AUElMEmheTzzOUhRzMj4EUNJ/EjeYPxpDABHAHNJlYJImG4J+/USIIV02gD4xW2JWjAIfdYIEcCUxO9gNYGNAYy1JXVVKCy0s8EhTetI5zRj8UGAqGA6WIlgOXUkwVm8cbH79aWAKEPcAEV1GEK1KFhDTLSldbbpp/iIAENcYwhICftBh4GSgHVwtF2NATAAtEI/AOkQ9eFMIQRB3gCK4CjYcQBpASndWjFMQv8toYBLhY+Af62+Afxl6WGYALrFncDSYSVcBdEcQ5xDkiC0gGZRgmTb0OAwtAGPgXxDkshn/DhB6AAkCO4cOxGsAGwBbMVUPL8QIkOQ3WwBfyA93FwIusX1Ha6BwkN+EBJDokPwoTKFFlFSQuPp0kLiQ34RlBC1YDJDcQGUEZJDBG0nsUpCikPKQu+BckJAgfJCtWD4RZhJ0ACULT4RAaFUnJVgaQAM2KLZS/w0ffFgFeFPfVO9a/1OEMv9cWAr/BjZPAGQ3R4BKNy7qJABPqFUAIK82QBzALr18QF4AIK9FkJmQ4bI29UM2dZDNkNUAbZC5kLPqfUBKoDWQx2gjkN9YWqhUAC4ocXgsMAKQzpDX2GVYO5DwgAeQ36gukPZ4O8tmkMYgF5DtuHaQxcDXJ1OEZZCvhHV+eqtn9CxUcKhz+DNgRQBL+FUBQqhogGpgamAWewHwToBqYE+oB/hx4E3wRFCBoHCoS8pa7VS9dDBIUN6AaFDYUN6AeFDEUORQ1FD0ULAELFDqYBxQ8eAHDHlQMv99rBaCT+gVQCCveVMZNQjwSQB0yEwdPDAUlU3IKOFzpgdAT0BHaAOQy5DdkLZAbEJJl3gfSndrsDsQiGFAQHgkQCQHEMmRJxDYCFcQ9TR6+zPAQiAgJFeAfqR4e0R7entGe1R7FnsMe3Z7LHtOJ257PHs+e0J7QXsSezgERRD9UPdFG7QWQD8gcOAtBn6kdZChpBqBBOD3MFhBcY0l+ElBQ3VjohsMDW8/IF4SJ0Qxs3nTdxC7dC0WU7xUKDdTMlIE8Hcobspcxh1oZGZHS1/MQbFPoVdLaylB+GdQ+RweUHaIFwBfBx5dZOUUOEwDfsdLcFpde1QzDF4QcoMKwloQ4tJGXXFdcl0SaH6kHQs0b0huTKt/dDTlBuxcqwLwN2Df2GmHHmh+pB1g7tDJ+F7Q3dB+0KQhfdAh0MLNCUwu0Br4Z1DCgCtg/0IqLkKUX1DsXSnQtQw9YSdiXKsbdFD1cPV7tTiMMOQQaAXQuQEMHSdZKZ9VgPmRE9DSC0/gbtYay0WwYfYo1DqBVZh+pHu4bqAs7wVVWxhwwE9QxKd/WHkHV1DyLzrg43QvUiirVRotanmzLRpkqxgnJKsTFBXRL9DTqWCZIogLAAVbTsZSIG4AaStmoGIQ8wxe0NqUWdCnXRG0No5PoyPQtYDYbxWWH7wlgmqOVfABzGdQhVDvCWVQ0hBgMBAkAhCwJBAAIkBTAHgvKCQdYAtCFKdV4C7uAZAkFyRAPdoMjyOQK2gMoAwkb4A+YxwkaRc5JCGAPql8AHmgQ4ArtU/QPAIopHSeMi4GpAxALEAY1FSkKkAaQFoIIzC86F0wrKB8aEQAAxs4+xPoRuh8pG1Q1CQipApFAIkJFXKkUUBypCqkKUAZQHKkOqQ1iFqbXehHMI1AfEIOQAMw6S5zMO1wczCKABe4X9BfoEkw8LRSCG2BKzDPJC91evtbMKSw+zCUJF1Q6FB9gGiwiTCcAAw3aPgAOH2AcyhhznMoIaR7QGVKSKgWyQ0wjuAXeA0rVzhFEStAMgBjM1bYGrD+MAtwKgxqEhVAWyxD9RGlAdFWsI7IPAJ+4CBAFo9c+2hGRlJGfC7wdrDICk8MGUV09AAuSn4onicrUSB3gwfTOsptMOkueDRHbwVQDmwEcHegS0Bosz/ADQ4wwgHDOCBv1HwAUJR2YE2gH4BzsIbBWj5RZFnAR48VsLdwTyDCAC+gUaBbsPuwlbDvp2WQRCB8QkgLFCEakzSEJEAO4FY9JGgbkDrAUotgyHHCa5AEMOYAWCA6ICw5Pl5hVAwsRTBEIB+wlbD/sMH4K8BJiH4wK4BS9w3fSFBnV3OgQZxgNzawuzB9Cn3EQbCBoRhMEuFZwBoAOyQ1N2GoKhUuA0oSET0kmEVQOSlNoHtgA2ISQH0KWCALcCY4dmAhcOuQCmJRcOFw78AJcLFwkXCZcNssS5BAoxbiYgRb4XyIEat38DywEThcsGywQLA89zxSJXCAbFoAVXDNcKrYNXCtcPlw3XC2OH1ww3D1cJNw7XCFcOVFC3CVcJtwjXC8sDNwxXCHcINwp3CbcNdw+3DlcI9wo3DncNNwnXC3cN9wq3CtcIDw23DzcJDwz3CjcI7gcHoTsBHkWAdN8mXmOWJZUCmwJJhk8NoARVBgsKXgVUpNoCz0LeQSQFkQDyQ8xH0KCbCz0GCsMsMu0AY9SApjsKGsE8A/CGQAACAk0E2gbYEGVBbw9vC28M7w1vDmAE1wsIgRq3wAJKt6aSuw1XCV4IRwwwA6IF7w/vDB8OqIYfDv1GQAMfCJ8NywPvCB8Jo4GfDtgRHw+fDXwDogRfDssGXw6fDZ8NHwrfDx8NalJfCp8NXwg/DN8O3wk/Dd8LPwofD18LnwhfDr8L3w8/D78MPwq/DJ8JXwu/DmAA3whfDgNEbw0SA/CCTAWywP8P3w1/DL8PHw9XBYMBGrL+BHxgtyfjA80iKQU0Qz0EJ8IIRssEVtAlJMQAtwSMRGNGLwnWVGfHPg4HDswG+wYata8Ilgb7ATRHtgbgBRIhJZT/C18JwAVXC9CliyL0duABdgcfCRqxwAXvDICloIjCwGCKSyJgiyIBYIuCA2CI4IpfCMuBNEaEBYAEG8EAiX8PoIhXwYsgyAZgi7QDh/KAjfeDzSQzskCJtwUgiygC1wxAB04kjEQygK8PtdIf8SCLvUQKMVZC0GIAjW8KsI671pCK/wkfDY3Hfw0/DuCNfwhwjj8NsItfDv8O2iR/D3CIPw1wj4vywqKNxYAFfACoggCJ7wpwjQCM8IvWRf8K3gKAiv4GHORAiNMKbDSokFCEgKYgjLnhNELQjINFgAP8BHtQIQzaA5CKsKApQyICCIoQiokiVcdioRCJvw5wj6CItwExRmAD/AeIN2Knk0HwiRwBGrZPNaAF1AMIjAdXpTNwjwiJkItojTOSv2YxAsKSUIu+QeGHppDq5AdSwpP8BqiBY4RmkrkFiIeIhMUEK8YYiLcDARFYi8LkYIhQjiiPzQSxY9iIdicMAWiPoIhxQnYk6IpfD0QEFBHfDn8Lvw44jBiLCItWJm1V6IqojQCNuIpVwlnlywQHVaYhKBEYiniOuIugiBiLeI1uIoECUI95QDiOaIvoibiLaIsrR4iDOIrXC1YlpiEEijiIBIsIhYSMB1R4iriNvw/4jRHRRIoEiLcAgImIiSAHYIs8h88PBQzfJzUI57XoBsmHpgH/hL+DP4RQBaQCNgYLCjYCyuc6BPLmMQQLQ2sOGw7BBRsNuIcSAccL6RdsJqYFtfGZBN8HOgQqgw9kJwiDBa+ESfdgwb0HHgc6AC8HnYSUjPqGdXSogesK3iMIgIdVTUezAOSFVKEgjIQGywLIpXojqITqFssCmw/uBPtisIy0BXompQRZ4rwHQMF5hQwHxifEIDSNgMG1hkJBagCMFFWgX2L0iMuAgpEqZ+SRKmMOQLcGReLX18QgEMU0i3SMeAUoBSJxM4LDgWeGuwpJgk4AkAXuRW8LNIitQGVHzWdMi8oFYiI2AXmGsUQ70K1A7gPKBxGj9I/TJ2sLI/VfR3KCgMRMwnei3HcUBmlAHWW2A19EYgfBxJSC30HPklgCfgNLoWyPwANsjfKA5INKV+D0X2LtQRSCEPXygM2hmuUcjbyENKSlhwPBoMO1gs0GdI4bCDSLewtoAjdWXIqgxKkCrAO1gkDHygeAwXmzkFJscUCEQMIKgETC/gOpR5QAuwholtSKMIA0jd8lNHd7DR/FWIAhAbPHGiAhBBYC70AhBMREKQAhBskldI7Uj2cIbQaP8bAHqnRMjgKPj/OOcHQijnbrgvQStIPuAXrSkcdi9+MEsIab0UoESsffRwegUINUAigNyQffQ98AwQHsB+4EiXHsAYKI4AEmhPVCsYfRhJ3UW6bYFZCkgVBEh10EHIKSQkLH8gCQxKZAKZJ9YWNDckIwprSD2gFo9CgExpc6w+ECmOHXpkCAIQNYicET6eVzhLy21Iuz0ky0goxrppaEY0ECj6pzJoL8AzSLkMGMjBgHjydoIuGF2YICjkmDjnHSj+vU0wq3JzoEQTfGILcFdI1XUoyMIAS0AW8EMoLSiF9l0ot3AfRF2YDWAasGLOYbCFCFqqd0ovoBMtUQBsvUO9QJIsyPWIFj46KM5QKSj8aAUICLgFCFP8dYg3giz9LBEGVFaEZmgbKMDASii9gEndP0gz0EcotS9pKI9VZH58KK/ARKjpKI2oJ4JXOExtHBoLcD3kSqiP1XOgNWhnSNjnRrprKLNIyfgsCP3QEzBtSOgopqdYKK0owXZeEH89cZs0yK7wLQZtSJNEf3YGUCn0Kyi7QBTFLYwS5GBgVgNe8HqozZViyKSoqixoQG4AWlweMStyCfkDsGhARQh15hLAKbAUEnOgILplyIaw9KizSO1I4asvKNqw1xBYACuue/A3EH8otoAnqMmBBlBOAFIESFQtBkDUH6pJCN1GL6jCvW1IzK4w9lc4N+B/dhmvNbBFqNqo11IboA7vfGJ3MGhozgRFqPvSHmgP5B8UfoovoEBo7g8vqKIAYbCaaFjgMMB68mPMCIAkbkn5CQjY4H2o5ZNWbHMKeaRyaMXQONAi9mWAQJINKNJonBoEcFkKZMj4gF4NP2gMCCUvEKjLgFdIofAgqy1AWCAyoG04amjOGkxjZUpiaMxubrg5aMmQJ4J+MDKgOKiY3iGw8O5vNidrS6iUiLHhG6j8KLuo50i3OWeo9mAMnDeo7wBZCkHZYGifqI/kN2gLaMBozcR68hBo/CjMrh1wCGiyUGRo+ai/oFho1gMEaJ/wZyFNSBRohajSaNiozp8tc2XIrWjzoDsoXWjHLAAo/CjExmNo2QQfFAtojiMl7m+ovEj85U3EB+AKsMuorMj19itIDWBgBjeCf7CSpiDAFqj/gBVo2KjIdwQ9QJJhaLNI0QA3gnL6aEBmAGyUa14qeANsI6jRFH1AYAYIqPxCcRoFCCeCVoRxTyGwt3BbqMGRahFIaP9Q72ii4ECQv2i2yADo/fMZ6K4qWOAw6Iy4DWjQcKeoodJzoDiXWOj86OyTJyp5kITAHmj0ADwo90jswCXQHj0QqM2gM0j/kFHovWioYFFo8Ro8YDLYUaiD6O11Y+iPCV5o36i6KIZI2ujQqNdIv+AhsN2ou+RHPFjotzgn6OeKaqpOgGXIgRpgqxmQO+jQcIawl5gtr2No+Oj3SM2ge6j/sOyTIEALaNbooGij9FOIQ2iGVA1gNmjasNdIivDpJAMol78lYHQMYbD7Qyso2PDmAD5geoZGK0qJbSR+sEdAO0A6CAJgdrC/v0YYgfDmGOqqC5pOVzWIhsgDcxu9crggwBugJVBtBSGwp6i0NgYoiKA3EHlADyQyyG4kNY4wfTXI3QVlGHnVMTCItDp9asAxABNKaf5FEXOgDqRlyLjo9qj0nDX2HqiZqM0wtzAamGBgAGBRAEBo/6iAqPkQTgAIwTWzUuFYkGpo6T5AkkURfejbxEgoeDQjpBcaGfg7KJjI+6i+/kxARBEwEBOQUgZw3jWdIBiPVU5QcCdNlyDAWOBqUA04VmjAkivI/uA6IHQY6MjPKKTon0QsaJ+qQKjgYDDAC8iIAV6EalRiGOm9HJF8KIQRGlAvIECSG+jz0Cc9Mej8KI1gCCl8AFpAe6iLcB5jWajHGKlcC0YHSEScUQBYlncYtMApmM4AQhYYTAmeSKihqPYsUzAvMEY0SlQKkH+VIxjWgFNHUsiRwN1ohRi+Vg6w9+irkKQAREAT6KdhXpjhaDoojLgYGKGwgIYFGN4QRwAjmI4QuAQ0GOywP+B4CKhgFO1PmKJAdYgtIzH5M2j1iBwRY6jxGASYsFjRFDiYk+BOaM5Qb6hPmKiYvpjdKNLozUgSplEAdYgAmM6YoslWwCpVWaj0mlmo8RpzoCghPOjXSOconfBtSMsWPhjimMIADWBUmOwYk6gJmMcsOChpmJKoC2i19mh8ZgBl6LvkIDD9WAygFMiUMlFwTgB/6Prop5hhsMTQlBU1KFzoM4wmgDcQQeE6fR6hbiixAEflZRhu9xQIbSBqxEwkcABBonaAMzBGin5Y3mjKZC6oTZBasMHo8ijQCGxouZifRBhMdZiG0CUYqG9RrjUYtUAwfTXgC4RJJBaAAH0zeEMYvRBlWLVYysBVgE1Y2TDwAHYkLIAMoG6gPVgVgEaKY/sTWLMDTZi5GAMgV1i6dSaAHEBaSCHSO/ZJOxTyFsktfX1ogui3sNcQfpjzDCEiPEiWWKSYLZjdmM8YDNjwGyIY90jLQGuQA2ia2OQo1j1i6L6eQyghqOmTduiCKANsYajWm28iMhi2qKuATcQDbFNIUhos/TiopeA8iIqogJjLQHTI9Hl0ymmwrSwKV0YYv0gEaGHoqAFSQSXYu5EiLEZ8bejIdzuRShg+miWMWABzoHHgVKikGPzouxjREBkoh6jeECHwNYjehCJYU9iXSPrYkpirQCehTOY+nlwuK8i4f0W4ab1WCyHo2KipVic9DcE9AD/gNYxRoH8Ykai+kSsYqJjswGSRMiAVwljxYdi3oJ7AdHlMAGkYsWiWyQ0oo0jq7HVYghCkhmpFUDwWyDPo6Mj8EQNI8eBjaNY9AjjniSxwtujG8Cz9H0RzoBBGDSipsOw1F9j3MEdAFBEm6LmomGj1iAH6QKjc8I7Y7dixPWFndoJKWJmosDiksH3yVxtAkn4waDjYkHphKJjLQDg4oMANqCw5WFiIqINscLAAhkxjObBHLC5WHDgpWOvoRiiVGKdYjRjVYC0Y0YA6ZB9YlVj5DD0QYDt10IIQCcdt8EsY89iE6OQox0BqaO7KX2xVlHRY6TioOOCYqu0XGj04sbAGcGJDG15q2OjI4atlOJXCQGivqPCokTjNOOkYp6jMQF048aQMgmk46dikWM44j9jLcDf2JDjGfB5YzhokhjQ4n5jninOvSMjbKPyovzigmIyooMBIKF0oyJjAKOy430gGYTtjXUBAWIy41cj8CP040aUTWn2otLBtSK/ADJiPCRU4lairLynAAzE/OKawDuAimOfY2ljxOKWMQygqmJqNRmJ3MAGYnjjsmI+pJGi5DnW41GjwqIi4wgBYON0opbjSMKCCIN4e2IxoOtiO9DS4nw0AmI0o67iOEP1oWajXSPwYutirgCq4gJjnuLm4h0g79g2o94BqzmywQJi0WO5Y0QA4aLdSXxBLWKRAKeoIKX92V/YYaNB4tmAZxjVlYHj4eOyY5FBoqK19A2wkeNW4lHjUaNEAUXFw+yvY9zA4eLx4tHiyuInY950JwE4EF5gLyERYuxi3uK0opTjjuOqqNriOOLQ4hHAO4AdAcDjMwGtYnWQzA3romCpBOP545jimuOU4wyhcLnCwTTCUuJUVPDiOEJlIRFiMKJtYLCjkABwo2KRDACLY5FA52P7gADiEaD4Y+iAh8HDI9XArgEUMdPh5QCIAExRx4AJiI1A2QEKoAmJVABMUSqAHUDlYBQhGmkB4kho3oJbJc9jBOKCrWxAyUCzIq2gJDHjjZZBXeLKosiADbDZHDSixeI4Q8PARePwoy0Adnkh3U0jGNCuYuuiauO+44atEEXaCJUAAaK7AL6i9HHXQB2j7wGFYyYAfgAAY7LAgXjUmevIgvGeKI3jpuFd4qJjWmIr4kqgJmItwOCgsKE3MWZjkJAgBK8B0Q2WQIhsXAFk5AvQuDHnYL7j1iB2eHyiA+D2UFcjssBwRfFiGJ2NQ5icMUNckVgAzqJnHR9isyJMsJcABmLD46lB5+OR7Jnsl+M0oHXAE+KjUMmgFaMa6RBMNKIZoOFjt93/YweRB6PkHfeYCEIC4dJjmeOn+IvB6yN5CWsi1aE/4rIkOlCbIoLpeyP7I2EAOyI0AHfRvxCdrIASdsgHIgAcn4DsoKcjus1vIccixQkDXdygra1nI1AB5yIYMRcjUGNHosKicyDpADei8cPoMHcijyIugfxCgIEPInXAsDxPI3cizyI2MC8iROC/Y7g4LGM0wihiS3hKAL6BWeMtALK5DACEEB2Q+GOalARi48Ne8RwA2GOQkDhjXmP7o2ykBBPoY9EBjcDSowRjB31QMdfh8KLgEe7juMGP7AcRqkGgAYjQ7nwsYVUo/mOm4i7CsyKyo6MJUhgHWDzilLgTyRWiOOLNIgvYFCFY4w7ic0Nbw+pRLkBho+0iHZAcY+vx8nwDgcei5BBNIqaiREyqkdwTSePNkMyi0I3Do1MAS6xPQfnjQwD/gBITOV2z4r6BtqPRAKgxyJ24ASPAo1E741ISUci/o9AB5hk4AbITIeNyEhExMhPRDJndb30jZdLclwGG49y8nqPEARWjKlkaogb1/kBUEJQjjUATebTgoGPSaBlRTLDbpTNBWKNYMLfjtOHk6d2inX3kHcHIV+IYtDGkqiDtYeeEAZ21ddViS5FtAGlie0FsQdCB7+NEAXSBZvAIwLYToxC0DOuj86NSEuWjtxhDwPKAiRDWotWdMhMK9KGAe0D5gUGiGVDAPaMRxeA4wvDhSyVOEnuZ18H4wP0hYuMkLRe1/yM0omTiaWI9IgZiUcjOollgohJmQAig1iNqY54oh0hWaGliQ1DOownAsKKDkfYSdhPwoAhCC1HeAZ4SIH3xCI4TXSJrSbUiW8PzomtIeoDqE+aQpqNKo8CBQhIWoqCdeGLtAOH4XmAdCTUhrkHWIRyxuWIZEvpE3KP3QPMj4qLuEkwSWyTxEre8i3wKsOxVCmI3FB0B/hI1FbUjLoBqwXkSKEH2E+QdBq1NALnRCtAU/Dc1fFmnIHmgtKKghBKw+sHI4zTCG+NnAIxi3wHAAWCBCoQ1gdndiZj94g0iv4BHkD/QyLjf2M3gWoE9o9ixCcFB424RTSPe2JkIcOMrAR9jp+Pg4kdUXMOoILligXhU4jxMoqLbojNjSqKZCLexjaJNEmrAzA2RE9qAnhMHoxF8RhAp44asMRLbvGA4CELsEk0Tr4CTo0AgW+K4tSPA2WJ+qVvj5XCP0EqhIeM6om9Ae+NtYh0hS2PjYnZjrOKjMLTBon2x5O4T1hLsQVAANQFxwXMTaWGRRAsSRRM/cfMS66OpY77iNYGDI6qo8aIHw1es2YBXw9CBtHnnYZXjseSjUeUAc0logKGA1jDL4xTiZUz0ffjAw5DMDWiAa+N4QV/8agi7CKnitjFmJccTDhIPEpriouHxiLisC/FvEv6BzKLuE0Gk4f2HEx8SBeKcwfGJNlXhE4cTC3xTEWsxr+k28FQxExJJEmaiUxPvgKVYVhPTE7YT/RDfaCdjK9HHEgMQCxMy4vgpxonVYn6oEcBLYhkCUaRmAMKBaBKUkM0SDuI9Im+jU9zzojLgZrznEu+RpqG/EodIexPAwcPtjRMlUNfsJmJYye1j10CMY6FddFF4kCyUFgDW8NwAqG1wABoAsNF0gQpR3LyMYhwBuJOMATupbhC59DuAPMjGEu4T2eNNYubBNMKUMO9EG7Eh4PATJCFnAF7h4fWgvRopmiEgKYAARqxSoVABXwF1AWyTXwBNrDhBhq2sk+UATwC3wqgA/gGWwFWtx5ARUJyTgABzSE0RrJKoALxQQlACknNJQwBCk7gAfJLIANUAIpO04DPApwHDfaYtUYFCw1ogOEUwI7/QspKxiE0hprh9IHKSnemg9WRAepExAUqTNwKNACgA8pOhAE0gypKqw/xIDY31AGgcNaHBIQnhSoC+QVUoeyLQE6ciaKG+fSK5ToF5jXIga+nPwQaTJACzQSUiIhGcXPahpqEDgPrAo0jPYrvAPwCCk3AYn4HMfVO1KGDS6VfA3fAcrIJRVKyIk4NiDSFvoFcJLEEDEcz0C9hB8WcSwRHEyGVMnen4wJPYEJ2HAAIYs/Qu8SbDeEEbwfAlhaBMvG10Nw1NY6UBAxD0cKCTtnkmw86SssE/zZZd2jm6JHhg2uPqIqgB9QGXePC4PnB4YbgB1PHr9PfB7bVcQBPjIVHXwQygsoEMvMiAa+kSIrvAEERPARkBLHWqqd555pFc4bgASZKywffpEI3wIlApXpP3QLKA1jDA0TsB/pMi4a6S1jDo9SxAW8A0Ue21WPQT4lbMYJzTY/igJfFOY6zUVPWhAFQReEGHAAh1AwAJeS8TPpP1Sb6Sa+jMDSyt4GLaACYQEpGVKZWTbaB+k/ujbEASo1FAuGKwcJKA6KO8MLIorwECQJlxAhJN6IaTsQkfItoALcDIyCcAfPQdkhhc/aOCwxVp2p1FYYIAl1C+gLlirZLUxf2TmWFxKO31LOhZwtwQEpHG4hWh7HWVKSONLnjVma6SWZKU/ZagQmB5QFnCQuM+jVAA6nlQA+20XmDNgViFgZJNgfBFpLl3KIkAWMmKk20k4PXDI39lJsO1MO+4+QFUrVDIafGpwn3Qs5F6IZuTpLhVIduStaErkrpwNsNaIWshGfB8UMa4pEDaIAAcprjHecISKsIRwJtFv5DDcfAipsJT/d30yLn1sBhwMDl0HKhxDWXwwfEJbQTEgXBAl4DmwuMAW5M8SZHodcCk4T/UUznFWI/Nd8E2gTITmJB34v0j9QGb6T2RRoBpoc291L2v3Llja2E88Rain5MZ8WkAv5H6ANkBMIGdQLrD4pCQIhaS8ciCoYasj5AlzSghC8M2w/aTfykpUFcIR2BDI1FI951uEAOTnZKzya2TcFOZYJaTZwD9kpngqxIIUkOSmeBLkf2FNyJtk0QwPwA9ktUd+MDIU0Qwj2I4QpVwAbEMkmBSTYFLhL8ArwHKYD3iknzTYk9cUQHmsGBhLJJNEQEBwqCgYXdttAD6mddtx4AqMcKgCEGFQGRS+AEUUln1EGGKAFRTEpP7RBpJvWEbwLqVLMkd7NLoDYlOgfMprsHPwOGsyACHsGjhPLg9iEo5TUBAU+gRi4mMzF2Iy4kPiUfwS63GFZYACuXrrPxBHaD3XAJTH0W83FvdMeQXgd9UwiACU4QRVACI3AhABxPbreRwMpgIQDZMAlItUDix4uWzqN08VQwuMeJTtWACUtcAKIH96OKwe6lGuMdALYHkaIdBw0HKU8a5ZUGqUn8jx5JjAdyRY9A8AapTLCFqUieTnF2qU/XomlM+9BfhqlOloTpTmlOak74BqlLJoYZTPvVk5T+BUVFGUkQBqlMQTSZTCACxuapSi8CWU8ABDNyp+apS1aHWUya43N1nAPpTCACuY6pSKGHWU7ABNAFMk6pT1B0OU9y0LsIIQCy8blOJmapStr3WUjkhqlI6kdZTVKO64apS4BHWU2VBcCOKAapSU7XWUxcs3ikUoapTvqHWUtRx6iHwAFPDWbGqUqCEoVIUcXOJ6lIIQE9j1lOXmMIhUVIfYjFTSIDbRbFSkRhuUjPDsVO3wdZTyilIgLFT4VIIQPmgyVJu4MIgsRyHvXgBsVP1oWlS8VNMQbFSLyFZU2FTM8KpU6UhkqBSoCwA1WHAAFKhEIHAAG4A3gEyoBhhUqHwwIVSRVMhAYwBxVOFUjKgOEBvBYAA9AHCoRAAUqD0ACgAQAFpAFKhXFAFU8Kh8AH1U4wARVOlUcVTXgEyoQFhgAHZgWkAu4EcXPjBdQCggXUA+yBmAXUABIHZI+iBMqAZIJhB0QD/AbQcD4MyoXPBF/n6SUyTL8Ds4cRE1ShDUi5SUQBlWCNTxyyKvYAA/wAAAUhJk+UBbJJSoQYB4pNpAQwBk1OywTKgG4GSoFNSFQAzUrNTXwBzUvNTMqH0YItTk1IZUdNTUAEzU7NTc1PzUjhBY9lSoCgAHJPlAPQA7VPlAMasUqDisEABfuEVAA+CCELtU7tSiQBSoQLBe1JSoftSHJJSoCgBDAF1UydTDAH7U02sBV2sklKhQoGNrU2sCQGSoXtSKAHTUuKx7JJSoLtSx1JPAPVSgcG7UtkB51JSoIHABVCHUwEAR1MCSMdSolBSoJmxp1NnUmdSF1N1UldSmbFnU7tSGVDtU+dTO1P7U0dTr1I7Uk9TZ1IbgO0BMqFqvPdSZ1JGrBuAdVPLUy4BD1JtAXUA2EBckr8BzlLDU2q941LfhBYYN1Lsk02sGxFSoA8AuDH5Uq4Ar1OR9VKgIABPUpGwvABzxcAAKAFfAftThVJAANKhLkGlUWkBTazoUVKgrgBo0lKg6NPlABjTlrknQbVS4IDY0oTTTa3TEU2taQHAAdEBwAFNrVM0mEBskv4Ataz+AWgB/AHT5YxBx5HT5J2J0+WqIeVJ0+WsIdPkyAGM0v4AyAH8kzKh5KCYQYWjKDGtASDS1QDSoWyS2EBdAL8BUqC1UmdTLkEyoUhRUqAbgFKgqNI/U60Aja2o0+dTgtKNrRdSV1OtATKh2vVSoLdSTa3W4Uat3JM8k7ySlq1SIPyT4pJNrHNJqkFGrUKTlsHCk7LTrENGrE9Sx0BY0xTJ99FzUTSh+1MS0xGA8tJikpas4pISkglZrJKvU2GSQERVrZzTeABAAQwBEtPqvNZs92iurJpN1qyaTY6sUlxG0/wAxtMCAFatbCB+rGwgrNMw0/4APNOlqEatBVG8AvdSbgGR9ZgBOayVcHbTVa1XU7HEr5U1rK6tta200uasRxHrsZatztMuEM7Svq14AE7Svq0CAAhAB7lnAGdSXqzIALWtWa3M097tJ+XGFGasZ1KaTRzIAdP8Adat0+Um0q7SUl3e7JSlZwGxrSqAAdPgAE7ThtIB03gBjq3T5R4gpCVe067SqAE1UrHT3u3gAzHTIMHgAAHSLABIAZHSNazB08nT1NMR0rTSAdN00iHSDNMM04zSTNKoAAHTzNIh0mfU3tJfsB7T67FMQdYAZ1ONU9PlQpJnUs7TIMBZ067TptOR9FKhttJ20sIhOdJuBfbT+ADbRZVw3tI44bHS5dIbsdXTSdM5rG4F1dOMQdXT4iHV06oh1dNB0r6tfCHV02XTtdIV0l+wcADl0mnTOa2qIW7SwazU3RNcDlJuAQABMAmqUsEADlLe0lHTPtJAFQIAEVAIQd9EDlLfAeACxIHeUiGJFQFfAD1Zw9MrXTHSgcAIQXtFvdK+0v3SZxRn1CFTI9LfAURRY9JSHSPSbJLmrX3SHtPvtJ7TXwDD0pMRXwAHuV8Bs9KUpHPTx4CO0kAUwiEz5dNSC9MCAJnT/dMCAapTsAAOU/PSG9L904vTA9JAHCGIwtIb0pvSfdNxAUxArtJAFYvS6ICuAPbM050j0n3TlXCL0mfUEVGb0kAUEdKL0gPTqlNk5EPTXwBr09UACEATBWcAr1LfAasYxIF8QHNAMUC+QAhAik0BAE/TXwFk5c/StkCv0zXRpSCH0ntT3dLVAK9T/TAzAXUA/CVYAA0B2uJPMBHASUDCvd/S2QHlAT/Sr1KPQXUBQBF1ALqRz+F1AQYBdQGiAXUBCqFDFRa5jxXAMt8BHqCf018A69I10N8BAQFAM5cdRrje0kcQ1dNx0jRoCEDAVW6oMUGEKTFA79KA07XTJiDtUt8B5QGwAQfTPVwmsC9t10F8QLdBNdFfAQZpXwAYMr5AQABPoMHFj9LYM18B5QF7RLgzPqQnrXgy3EH4MwgzXwDAVNUpsDJkM7AA5Lyv00AzHqHkMzNAwQEUM3a5AQBUM6/TqGGw00NTY1LQIQhB09ChgLlCcNNjU/QzAQDsMz8BLQEcMgbACDKYMjCAvDNcUN8B15TUM5kDXDMXoaNSw1PlAR/TiDNP0q/SxIFfANmkxIAA09gzrH1k5JlA4GyUM0wyOdFf0+hUYjLfAQaJ4jNpADCB5QCSMjFAEwRSM4wzGY3SMgQzqVN0Mt8AEwWyM2IzM0AiMmIzBokIQGdTutKvUkgBBgFQM2gB+gBgM4xBMABgM8dSQES44OiBWjOiATfBR1MhAGdTd5D1kGatx4DogJqRWjPewO1SSAEeAZYFPABKBREhfuCiUIYzaixXU29SXFAA0qYzbf1h0uYzX9KTELRceDJMM/gzbDNsw9wyrDIGwMgyWDMX0vvSA9LfAGPSczlj0pkJLQCYQceQC8ExrWHTiwHlAAEzZ9OtAGYy/jNt/dLTMa1+MgEzbf2hMyatMa0hM2392CJmrWHT0tPAANzTQgCBYRGdWbCakAFTEOEIQUFScaiakZxcmpAX4JqRoVNCAOFTN23JM5FT4iFlQckzJtEIQTFT6TKZMtlSWTMBAYlScTItHbrgmpDHsK0d4dEIQK5impA8MpqRcKFFM6+5CEA5IJqQ0FMXnclT8AEpU6kzCEDlM+lT6EEZU9ky5TPxUrkzZ1xu4KkyrYCakL5S8N2kUk4o7LxtdRdUbkP1ELJsLVBSk7sY8ZLbrHwB7XRmAJmcB8M+odCAZgHlAfoBXTIHwuYzgqQHwzABPTJpmf0zN8H9MgfB/TMKof0zKoHisOogB8PN4n0yEQzdMjGtYzPt42MzqYH9M0KB/TL+Af0ys1NjM3oB/TL+M2MzogH9MxwB/TM6Af0ypAH9MioA/ZBv/BN4eBJJoPjAzePQgOsyCcDrMhMy6zJTMs1AB8KTMusy0zPbM1RiGzIHwj0yezO9Musy/TJ7MkwA+zPlAHMyezLzMusyCzJ7MosyezJLMnsyyzJ7M+mBxzKDMnsyQzJ7MsMyezIjM/zw6zIzMnsyszLrMisyHPEjHHgSpVBSoIhAZ1KakG4AiEFvMlozi5AqQBYzIPBfIloyvqyVcIhB3zLCIBYz3zNSIT8z67A6uJdcxUStMzigFHG1YS0AQLOXmG6AXwHSkhMBMpKwpbKSELNykn0h8pKkQQqSJZGs+TvkSpMioOqSjQFwsoOBqpOHI/CyXQEtAd9s4ZLa4uZT10BhyeIAOpJZefBFSYA5EhcNVlQdQS0AxAFwuc5R5TT/LL9QfsEtAXQB7Q3WIOKQojkd2fjAMMLJwXC5320+IJAB1IGhgUYRW+E3lNppcLl0AGlADG34s5SzksLo0d7g7tC+fIN0MFmnMXC4MMJidCxgRVHWIR9EDBOxAQndaSDn9TchrQFVKGwBRzlwuIgB1iCdvK2A8TN5IeyzXBCcs1ABnFylWdyzIcU8s+qdHtkcsjyy7yHuMtfBfLMcs+VBKq0KUVFAHLM8s38omVNZsWaSZ8F6AMPiFpOTkQhShrFhAmsh8DH+wtDlUDBys/uB/FHVA0011yIKs5gB0wnKs8DED9mysuhjyrJkiSqyNQHKs/2BNZKRAB6SeROdqVKzpsLX2AME0iPcwSxQROHCsWCBAiKvGDIj9omDExVojYDWoy8sGOJ5kTqykiI9I77BWRNWUfqzMiNeAAXC/wBMtHdYYQAQ0ZhjteMMoYRjszjmsrgNrsM1IFazwrFPAE8BSYB/LMPi48L2s+iADrMsQLIdExMMIxayc0LOs9WR1rNLhWcobrN2smSjXHjWBZFxwME6AI6yXrKrwt6ylIMyIyAprsDr3AOBPrJGsz0jmGL9WCayUoFBgDPIHCOCpFqyj2LqyI6z+5P92d6zUrDZgTfBOrMJobLA/mDfRYmyOsOCsDWBvsA5BbR4amkGs18B/8LANQMBGSM/AFeCiMWRcXcofQVXgCoAQbI4E+10lrIJsfGyhrEgKRVAVwjhskJA48KKw26y/rIBw+KAj0D5sttMFrLBswFjUrBrwhmz6iK+srwjmGNbAOPCMFnocCmzYqMWk+11hqz6siGzwrHegEy1YuPyI+UAhrL5gIazqCKAImKjjSNBpaqov4EsQT6hDbMQ9IlYzbPpsrTJxwBMtcbwbbOg0GJ9x5C/6BBFMeMa5V2y/SKlMRWzgcMrwsBFfbIGsj6zXwE1s5mzj/m/UX6yoJjzkEORjoFP7VmkD1CCEPfsj8gpsuzBS4SGo/GJfKzSojiNUrKqoupjuDlMIPDlZsC9s+ayD6SCENNj4cKDAa80nC17we8BoNDAU18BsiPjWMz0ENFgADUAdxIgBLQYCSPYk0uyfdBjI1sB8BwnIIySx9lPAZetxlH9so8pYICZs+DQ58NXE1sBqjEgIjQg86LZAEwBUrMKoPhjUjBbsrgNYOLSI1ayHbIsI2JAENAEQWrDjomnsyvwd+Lnsg6jMFgDKI6zzpKTs1ayhqIXBOazVwGojLbwP7KU+CchzPQ28GEAcVAHw88TgSnAc/dBP0Cgc50stcG7AW7CyAgGgL2zmaDnsqECq7OIoJ6jh2CugJX992PZAZ2yCHIHo92y+sETwOOyHBOpsrtATCJTsxvCLCK7wE0QbrJV4+iBuAC3WbvDJsEtCeHDgJKGo0BVaHJNgBOyNYEVQQyh1rObjZAApbPxoO5F6g0QcoykMDnUvKxSK+M+walB6u3pQV+gj82+aUW0FHNAwZByXeD4oTl1wACoYHGz90F5svpFfKxQcoykv2LK43/wzHKMpHBo65LTTKd5zPVBssBE77NTsjayPqTIgeAjbrL2QUmyfwDdsgtxXHPms/IjzrOg0Hxy+kUzsjUAAnJfUYJyY6lCc46z17LVshj06wFv6DKwpbJhAJ8Ny7NFwej1NoDoYMiBsEAAAAaIQM2AmpAAAQbKcpqQAACHqnMIQAABh+pzAQAAAEeacgABR5pyAAAOiEGI8QhAAAEPenKakAAAjoZzCEAAAY7GcwEAAABOpnIAAU6mcgABxohBFACakAABzohB4ACakAAAFohAtAUIQAAAHohB0FwAACaIQXoAmpAAASfOcpqQAACmbnMIQAABph5zAQAAAC6IQLJsAAEuPnKakAAArn5zCEAAAa4BcwEAAABmiEEcAJqQAAFmIXKakAAA52FzCEAAAecRcwEAAABuiEC+cQhAAAFvMXKakAAA7vFzCEAAAe6JcwEAAAEWiEHCUQhAAAEeiEGGbAAAlohBrR0IQAABl5lympAAAFY5cwhAAAFWeXMBAAAA1gVyAAA2BXIAAJ6IQDxRCEAAAZ6lcpqQAABf5XMIQAABX5VzAQAAAN/VcgAAP9VyAAE2iEBwgJqQAAC3DXKakAABts1zCEAAAHatcwEAAAE/PzKakAAAvp1zCEAAAb7dcwEAAAB+vXIAAXaIQXFdCEAAAX6IQaucAAH+w3KakAAAxspysmwAAM96crJsAAD2iEFiAJqQAAD+iEDKAJqQAAH2iEGHyQhBAAABAZpzAACBAZpzAABBAZpzAAEBAKZzAAGBAKZzAAFBAKZzAADBAFZympEAACEB23MIQQAAoQG7cwEBAABhAftzAAHBATZympEAASEAx3MIQQABoQCncwEBAAFhAOdzAADhAPZympEAABEBV3MIQQAB4QGOcpqRAAERAXdzCEEAAJEAXnMAAFEAXnMAANEAXnMAADEAXnMAALEAXnMAAZEAQXMAAVEAQXMAAdEAQXMAATEAQXMAAbEAQXMAAHEAiEAHwJqRAADxAYDympEAAAkAIPMIQQAAiQBg8wEBAAFxAIhA6F0BAQAB8QBQ8pqRAAEJATDzCEEAAYkBcPMBAQAASQCIQTfAmpEAAMkBSPKakQABSQCIQDuxCEEAAckA6PKakQAAKQFRcwAAqQFRcwAAaQFRcwAA6QFRcwAAGQFRcwABKQDJcwABqQDJcwABaQDJcwAB6QDJcwABGQDJcwAAWQCIQKhgmpEAAVkAiECkAJqRAADZAIhABoCakQAB2QCIQMddAQEAADkATPKakQABOQCIQIr9CEEAAbkBbPKakQABeQCc8whBAAH5ANzzAQEAAQUAvPMAALkAiEHi5QEBAAB5AQLympEAAPkAwvMIQQAABQCi8wEBAACFAOLzAAGFAKlympEAAUUBUvMIQQABxQEy8wEBAAClAXLzAABFAelympEAAMUASvMIQQAAJQAq8wEBAAGlAGrzAABlAAVzAADlAAVzAAAVAAVzAAFlAdVzAAHlAdVzAAEVAdVzAABVAIhBMACakQAA1QFG8pqRAAA1AKbzCEEAAVUAiEHxMwEBAAHVAJbympEAATUB1vMIQQAAtQCIQRtdCEEAAHUB9vKakQAA9QBO8whBAAANAC7zAQEAAbUAC3KakQABdQAe8whBAAH1AF7zAQEAAQ0APvMAAI0A03KakQAATQH+8whBAADNAYHzAQEAAY0Bs3KakQABTQGh8whBAAHNAeHzAQEAAC0A7XMAAK0A7XMAAG0A7XMAAO0A7XMAAB0A7XMAAJ0A7XMAAS0AvXMAAa0AvXMAAW0AvXMAAe0AvXMAAR0AvXMAAZ0AvXMAAF0AiEDoYJqRAAFdAIhBQoCakQAA3QEDcpqRAAHdAKNzCEEAAD0BRfMIQQABPQCIQSqAmpEAAb0BFfKakQABfQDV8whBAAC9AIhB5okIQQAAfQD18pqRAAD9AY3zCEEAAJkAIXLU8whBAAGZATFztPMIQQAAlQGZcrJtAAGVAKVysm0AASUA7zOGbQAB/QAe8qNQpwG/SIpzAQCxADkBkICIgN2hCED/AIhBWuhMwJqRtBwj8qCBo/NvMm4AI/NdUhPzCEFvMiPyPVJHzPVCPLAr4juTrzNfAR4BYrCXkIvyhqNBY9+TIymgAIvyiw1LDc2BdsP2o4RjpOJqwtfZyrNgga8iV4M3EzlAqHOHRJJyIHLXIDrCayGP+PEjKjiSc9xzghPbs4wj+Pwls1hyEbIDgLhzsnN1GAGBdBN+4GJyySTRshHC5cNP8LGz9ynr80uT7XU2gcRyW/IwWNvy+5Nts18BryIuaSHdAjkP84SRj/Kb8zdsv5PXmVvyAmMJkzvzr/PQgabjzxL78vTRK/LcKCvjF7LXIaqFH/MYgRw4w8HX6JgEIAsAU/ayu/Iy4HPC9HFP7FRVLECsYJmSb0HHAD+TP/PyszlR/4XxCGe4bLL0cHALHHMcbA9RaSFQCuaQi/OCsa0jwrFucS6zWumsUd+S9Ci9Hfuik0EQC/xo5+BD8kyww/OxHN2gI/KakePz+Ao0HQQKU/KIQbQdCECxjfgBskVwQNPzJArz84QLbzOAwKuoqcJpuM6SRHLARDji1uLIyedg4wXJsJdAGwiqkn0hVSn4wPQL9NGdwE4AfhP7o6lBZUF7jO/ZvLI9WO/YF+BbQGkTKLKwRGkSx7DsAaHT1iBNIDHT1iA8MilgaROJmF3T1iBlM48AsqFAyAygSXV6pYs4epMzQR6hdgKiCpMRdbOkUunRWABPAGQAkMAy2FRSNQCT099F9BMggdJovwHWRZASpSGbRS5469M7w1TSKACy04AAyBxwIJMRMQCTERdAmgv2AadAKAEcASAR6YEwAd/hqYHFUOaivNAAHZUpOLXHgUpg3wHjXXNdigrmuGq5B9NlIbkSlKShgT6k4UBDWd50vwE2AwEARqzfAXtF8DGrGdRyb5KFCZkCZ1PeQFxsNHIIoYABSgt+4H+BqUF1Uw4yZ1MuAHyQHIGY0lDT8jJnU0DTMqDeQUphdVI50KhAoYCP0qCBbQQoAPEytOCKTdYgOSDf0u/ZlTNsCqf8EwVpABMFovBdYDAdKBy04YQphaCNgJSl48iTgc44GHC8Cg2xlx3RC+QdXFVxRdpRJSDnI7ciqBIuMhzAldgvUHXV15QKTWkB6FXlQAVg0aEGbM3hEDFBpS0B6FXpCi45shyWALTgWQDpChkK+pIsYXmQSZiFyFnD5LLhQMOQlKTbnUgxEzGjMVAwkhODUacYakTPQZeBVSnfbO/ZY5NtoX9QK1BNM0WhcLl1C6y97HWHgIRE6qGvoLqgdQooAKaSuqGReFxcciHwRe5RtQvKwaKjbaBhYvGSWLO3uNAwv7H2Ay0BRFBCYawBXOEcsxIL19GgEhRRYBOfgS0AYQrhC+IAgQo/AQpy79niAeHgFZySgTaAwQB2uMaSiAE2gR5w9AHRC6dAcQrZXTaA/QqGk3khCwvqUMaSquDNQO0K/gFaYyCzpi0GAUsLgYA8gQiBlqFTC3g0f60zQVtBJQr6RFQFvpjBUwXyoYBskLsL+MFYgHkyoYE54IcLBTPyE3zQKBn3EU8TJTKDMKGBHAFnC7sKDTJPoToBlwulCrvRURBPoKQBNoCXCv6oG0CXCkl1CDnMYzaAaLVbQKGAj0DPCsOQbJF+Y68KcwrWIz6h7wsUANYj+gHvCpcKoYAowAULYgsQEm0QPwEwATaAKMFpACjAN5KioD8B3CEhAICKQIqFC4hSkrN2gHbsG5NvEAmAkhiJAAaBB2LZgSNBxgF2QxEAcIDxI0GgsIqPoxEBKoAbE0DBYlmrGfAxmQPCoBjSVFIgBS1IVFVVghtBiIpUVY6AehxZwz6IjaCH8jWhzPUn4ZABGRLLkN8hHoEGaSFRBmi4Yhw5ZrlbAe+S3LQquUiKDKBB8L+AbLI9IPrBCqDzIlyYZ8CYi40TcoCoi+CwkSBPYvAIDYLOpUXhwqFanTSKHuBGQSQAjIqyKFhT9IoaCIyLm9n0iwPijIq1xeKBcIsmwkyLqIt0ijuB9IqhhVAAjIsfQEyK5gGYAIyK67X0i6IhMKHyACyLgop6yPURsh30YHyKT2L8i/SK2MERgXIc7iBPY1tT7IpxqOKKOU2BKB/yYyMb8/+yLbPHAGaB5aAIwLvy/wH0KMuzPSIuw1aB+vWkcnKIcn0wc3KLLQHyi06zzbI3sggxnaDaqUqLr/PKiq8YREy/YmqK+njqijUBpHPAxMgJE8Caip/yCovai4qKuovogMqKKouMk27DBovg49MJRoqrIUBVJopai5ay2orDCfbD9IrHkIyLGNAmitayeooqihBRSGluwyMpc8Emi/yLvpiOipJgBoCb4wLN15jv2BptpSiSc86S0Iu3YjWAiQHwYue1t2LI8fBi103nSdCK02L+i0mBNrMk+ZCKoYBNEbQwlnhLAfUBIpOCpGE4w+NpjeAD2QEfQLKBxuj2i/k8CBKosXC4iQHIi8IS/2H1AE4ScFKGsPkAfEHG8YEBbYypiyMAqKipi2QpYuL8QQzsdZXpiuBxVADCANAhKYt2LTmKwgEtjJmL9QFr8PuB2hNfkkcY3xLtff5RJooAcrqjtcHlAXPAfgGb2JwsTFCcitoAG4EH87B8w5AhWA2x4AB+AfjAKEkRjPpIbsJd4bNI9AB1i3FMZ8HwAG7CFpO2BLdYiQEKoQdiv2OGw7oljGkjQNcikQBRw6AAbYovsmOofYq5IsfZlouJirwTasPKiTcQnpORQHFixGA9i0aBX5P9i56Tz7h9isJyUnIiiC6z07MdinayETKCw7vjD7IpdeOKjbNzfG2L8HKWk1KB0OP7gbdiFGKbsyxALgE4k1AxmpTFYo9BGRI/VRe544qBANVgu1BUUlfzHgBpoYmy3SIPI08iKEjJCgeL1jA0FVzhK2LoErQUmBOvI/vzdoFQAJOLknLSI1WyRbJNEH4At6O+efpRTovqIiwiYpJ1sl9k2QEcAZCKmGOUEzALatlbiz+zrxLti6IZ9lH9wLlj3aKtybhz9lChklHpDZO/smfBCgHAYoKS7MH7EyXD+MEirZizG8C5iZ0CWbOygma8p3ieYuogPE3wI2xAvGn3QClMsUF4i/AjUMgjIb6LgOMs5UMBCZKLDSGzwKNasytRD9FEi3C5chXmw185/FGATbkTmQIaCYswrsIbycZQybivAdIoaEpW5YJzt2PxBSFQdYtKJUaU5qDJwMOQDbEQQel5kDN1Ael4zYG5KdCLIVCRYfGIY2XqGaEBUDIES0cMVSFJgQhyOgR1AFUg46RSZayBmEplkvjwQAo1oWuKb0A5LB1BuEqtyOeSEkR0S0iL64r6RamAm4svLAb0EcG4U6xzQMD0SiQBt2PDIoCSfgD1ecaRlIUHZAfCwXl+olHo3yHQSwbCeFJKAYITcEs0oSADzPQrYS3glglZLdUDGUQGQInoGIodIPQBMIHVAoUjOIsNoY0TzpIGY3qhzb0oUEvCxDVySnWVCFiSYfC4bWCq08cAZKPxELmLih1tjYc4LACqSnmKJYCMSseiBkE+oRthQFIrYceBG2EwARtgTAEbYTfBG2AHwRthCqEbYUvdeEDxiYejbNF6ARthOgAvApJhGNQGQAvBG2CXBBJKTYts0RwAc9AwSo/zGNBKS9Sg8EqV2eJFygHqC/AjEAsgCmLhrAOGyeXBOeNE4gZB6YDtzTNAAItpALmCAIvwMGpY4+BhoIgLp3hUEZeBuADiUZBs3cCcJTISuONcQEQhc3zZTf9ixvWV4IBThdhGoz9A19lijUhp34u047XjoYQgS8RoS5BhiqeoP/I7IIJj19ieCGYTpGPnYmxBNlVLI2NocVD+4aRhaQB+gEuQDc3Q4CxK5OGJgPSjjuH7+YjRqsOxSnBzl009I0JA4fyhvGoNEUqQY4ihM0GJS+ETAZN2gXgAz4pXs0CoS7kFY4sFS4UJZLmCluIycsajbLHZsk0iB8LHsvQlv1DHs+z43YoZQfGKCCk3EdYkQ5FTTGfAOADPinaTT5JQUwVYkmHWxJ6iMuEzSXysacJL4XrheRC7E5xyZ8H8AfOLvbIb9NIipAH4wE0QgqHuk9uysoG5SO/Z1ZEn4YmBLxLrAJHCLHP4wbJhZHLw5K5Bhq3pgP1LvDRQSO9QeGBfsVGyFORTS1fBDKJzARkjU9TAFU6Ko3EUjUyNOUo1AdscW6LsjJiTK8FcQEvoOwzyYatLwZVFAX3xUujawT/p07K8SvezJkB0NJEB3hOW6Y71REj6RdGjupBHGY71LxOtAHbsPZFbuJqBcKEYXN2iX2H/Xd7lPwCX0FcgG4CHSJFsAkBXIfRh1jCfAXcjgUCXVeKRVRDZAHbszyCnS8SLlIqiC89K4gsCqXZLNKFdpVzhiItkinoddvCP0OIKoYCfSq2sQkqWAQFZXOFwi59KjYEvS2a4oYH/Sr9LKtI0oH9LcIrCvN9LfwrQMeWhxQoOi+6KT2PXC2kB1wocjSgQXosn5bvE6GBgyi2CWPg0IleTcoCK4tmA1ZzuitjBwqFisRALvM1EUE8AF7NmzTnjoMo8oKOpNksf8sjKcAHCoVxB1wopw3WzaID9IsMBuABxUL+BvZG5En5jbQVisNfEcMo8oG/QCMqLDNjKOMqP9Lli4HLVAGBA2QGDi0NBSuMYyq2tvyGgU9QLKiVtg8KhDooZQ6iyIgAabP7DxoGIypSCu0HKs5rB1wriY3hyUEk8ixvljxVwypHJOouD8+pEoosMy4yLqMv6sc6Anoo8ofDKWMpjIuTLLeOuw/WK3sSfLGGTI4phAUwiSAABCnbAqHDBxMqyy0zsAaDRMMszQVqxnMqYyxiAZMqP8kLLWPRtIaJy3bL/AKgBYHLjwwjE/MpcysciqYAIyn0R9YsQy8jLLeNGgQJzKsognHLLycKJk/TLx4EMyxOyfgFlsn0QSsquQLvyfMv7gEcZjBIbBO+R2bMIxVsBHMu1oiaKPKFjkhDLwi1eiuyLPMqQyq0Ab9AKQpMtXOFT4Uij9qBskQYk1iLT0PbLtWPkiv6gqstvIQLL25KLDS/1+KHA4jTiWeJ8y2jKBmPoyonh5sqtrZjK+5I4MU8SiKHA4rjjzoHeym9LpMpIC8W4fsudAcDjiMoByi7KaKG0yjrLzpNuy37KmQhQRBps/SP/YswN0ssQgXhFXouIc0JJZsvOgfNKPKHpkXMBocuLOTOSQcqllBrL2MvHgf9i1qLSgfHKSctFIWrKuqMpy8Kg4WPOgG6KFsvgyjzKIgAMy9bLGNCei2bL9qMzBLRcGcquypey7MHwRFnLQsrv2B7KqMuWyyfkoWNaEdnKGcs+y8XK57JCy5njlcqkymrLycomAKXK2cpFytrLZLO0S2rDOspCy/NjD6LPqREAnosqiq8Becsay8vADsqWeO9QoknPsaowxsrwCOH90sshAAXD9qNmyusAusq8y46KjYEcsU/wMkTmswXKGm2Ry9eY8ct3wQEdebw3DRywHUA1gIzE0EVJFGWR54vOkmyhC4srs9vycHKGo7sxUrKCY+ESZ4tXgCwAz4qpsk2yU4p1QLezHbIX83ey9CQEIj8N2v11kz6ECbFuecjwCYF4OFV5tOAi4SMcySUugZGTBc1XgIgBM8pEc/j8c8szQfBycUqLy5mgspOW6DDjS8sHABnJwGIaVYatyCOry6CB3oHhi1vCRDHS0BDwcRNggbIjciK7wJPZtxIDgVPkdMywpAb9U+TiylfK7EFucKzKH6Lk4cWheDjLogsA06gbMlqz2oAD/DWA7mChgOmAktG4xDaww9HnimshMQGIbZcjG4qDxMAq64vRAOmAoCp5k9EJYCpvQYGzLHIMcz+zkIq/YoljLEHA8Z6z+bLAPBlR4+LFYhHBwrAZ5TAiNrKTQfZQODNPE8HpoiL5EzAjDqJR6NWLwAALwcVLeFKKw6qoUEsuQcAIFbOkYivjIymiAE2K57LNs/klOwDJUsFD8gCHQDkAblMM3DMBpCpZATAiPYvlSy5AgsstANTLD4pZARPjM7Oqi1zVwemvI/KEOCpRCKyybQGOgYatsAAoiy3AsOXlilkB0IDfgNWcdCuPi0DAj2IK43XLuIEsKogLyGhQK0iKZ+MHMbwqJHhagUhKKItqwoGz/CtNtEkA6qGUKztiR/grykt4ouMXNedhfUpNI79QYYnbswNK1bOxip9BXEsTkyxTzxgDgVABFUs4S79QBxLw4OJiV3k6kMiBGujjSrhjOUEbwdQBgY3bsyvAwfwHEqJBXuLa47gAeGAkdOeN00vFiPZA08IbQfNLlSjnjd5RrQDS6FIrOhMcge10PuinCEPgmAVggfwAciIJQIIQ/wAH6IloOAE/megRt+K8RNboqWlssBtKsYTj6R7tcCFpAZuBcCDVjEuRc0XFY2HVsYteAaDRW5En0TcoSir4KEdBTioMrdkBuEvlARJSOEDxImnUcNTx8JEBrQEIGRAgEsFxKFXYEsCO+U/x/WRnwemB2CqCSlwT9b24StSS0EB+YuajzmhoK3zxTxKUIjv1iHO7AFKyy4oTi7TFhCqvYDFL0QCEKxnxRw37CT1Kh0kMcsBAPKNOsm6o2uIsMEkqmSq4Y7XAIiriYwvDbEuRS1iTNlVPy+YkwYqygb6KzA0ugO8Bn5XNLbdjG8FzksUrMSttgbUA+tmJeaIBETCkS854/uDyYUcNHkscjFaFO72wIbWMAaVBi5eSawU3EfuiT5FDAN/d93T9A0mBQJTaAH5LfuBXiu+s1iPX8uhAgFP3ke+jwEs2VLkqrqKWkiBLm4I6witghSMJ8OpLuYuHKO/ZAyqrxVKw9BNDKy2NC8MqSgWK84xPkQaECksK0B0LEyozJAZBIkqfLPNJ6kuDKkyysyqGsAgow5EY0MelO6LVgoxz97QaAWJKGgCJ6CthFkt4QDOLMIDsAa/z1QK9ebKyILDv2YCwp6kxkLSAYss7KmRVB8yWSv6DWwEPkyZKLtWyAM1BUyod0EcqsoApiXxiYo2URPJg1iL1ZURRoyoabUmANEuLBKsyz2EBSltjXvDWzPrYTMCttb1hMhNMoh6iNvX3kGGLbEC4YvWieSuqqTISHsu1YWzRbkvANEiKZkGeS2eSC2k8E9TLNZNMIZci+4Cuoz+LNzApiPCKnCT3MDQr8YlSC9yKT6EpjIIq6GPAq7SKaIuBS2Ho5K2Z6fYAJDB3k0fwsYXWIVCqyHLEI35Ls6zWIsOQOEEvgFIjgJOt8P2k58hwq20q/kuPUAJKurOvKvkrAKsSk6a9t2OWdWmNG8CYq/EJJUoMAEkAWukHZaEEIyEElJgEOWy/6LvA0ulQgD2BNzDvAORsuBNUykTLro3+s/8d6CS3KnfiM2iUq0SKafCH6EEIV/OYIfo1CsRsoI8qW2NNY/SrfHJxiLSkT2TmK18ApbivGZ25QXmFoNcoe6i7SxxjVUDvAH4ACaOSgRrp4CIgSnsBy3AJosj5QcIIAvgosDVL+Il4kYu8q7kr3SrhLU1BrtURefFphqS3rO9KawBYIQqtmcBt8OzBMRB2Sg/RNKGQRBvtSkogy/QoTw1xqEisJT3Ayw/QCJKtooqqcqpKqrgS3SV1OWRBkYHRAFYAP6MRAOqrn9l6rI6NLcpcqdYACqrmJSUxXkW942GKheIpjD5LaKs/ioaruSqPQJ5jLYt2gMAI96KVSjKzpMhNEZGK10xR8aVKrDEe1OVLoioegQoqTYCygcqytUo6BMqTEMJpoQjELFE+K/xQTFEjQVCARsHew+SrMPlOi4/KrxkugXWTdqrogdMJ3pJkcSJBUIHrffaqrSkQwm3BG8DSySNBLonXIm6qZPX6wP5LHKvoJH4Aquh72GxB+MAJeTcxafDKycaq9KCq6ewgAhgJeMeAbqqbCBVQiSqfLNdMYYuoYzNA69MxAOvTpJBRwxkAYYvozR0RwOMAUmi0EcGGoKUxcapChGqrpLhR6M2yjmBCwoeSqRS00dCLYQpuw9MJv1HAxGTkTYrW6JdBLy0sQceBhCsn4DcJEEv3QTML2giLDPVMlbM4EtoAVCsMAUCrh6J8Ub9LEOD5wmFjlukVE0DAl4CqTKWqbGJhi2n5rsqP8xkpNTFGgShivoDVqxfYEsANqqWVPCuZwmWqu2P4/Kmz8YvKq+KqdaqjJEitcLg1q6uj58oSwDBS+RNmwMIqkQD/AI2qt6THyvTKabNzAXmqbsJ0KCAz4MVAwQEdc8oCSiarHmCv8nWzZ8sri9LRUjGEKosMD5VbY/dA4MCXiiotVlX8UQ6qfcEdAauqZIgHwkbAcn0h4Efy+RLOUZ20+sthq4xzCqAjqoOokhlPSfeTa6qLGIdj2QE/QDrCx9gPizHi92KVlMBBUMoJgP6y5OHCygIYV+DICSqAqSsIcg6jcWPqq8LLfK0Vadl5HoBdSX7hTbPtKpkICYGJSsmAaKu5K5aT2Xn7ykKd8WMugO+q+GJ76XSj5ZL+4SFRxsGtixhja0ojIATLNxFWk/uBD5Nhq0oktODS6Ynxxc2Vqaj9+SrTGc/AyYH1K4sJIqq1+QgYnSu6sE/FYlD/02HoeaoTkwGolwFzwP+rLkChyHqAVBCYIHG1KGFGZQ9MsgXZALGEsPnowlYpyGodNLkNhTVDQRZ4AYsAJDu0wrzwawGolRATknsACYBUEUmAUkATk3ZhAvBz9Ym04qnhkj6AngkkJMOQYaoCGPeqm+kE42pQcoBti1zgBzGXIuxBH0oCGCaqCUI/oYhyfgDvq9V46iFsQQBr5GPeUPDgj/iygWnKbYv7ErlYE8CQK8JZY6o9I1aycGNlk08S/sMGyt+BrsBdk27Du/TDNM+KHQqCEPhdjKqrsl3huCq0Sw2g7EpmQPAr+MHGcTIj5YpGwETgmB1v8iAyjmAmKn7jJbQqKvpFqisE8dLg8ck3wIuKasLrspVKY0tZSyByXeB34i8SZRHSmTCgXkBLkDdL5cAHsgIYETF0NXKs4cvHy1ay+rDs4FkBRIrTizJydbJicsgCayBssj8B8HIiauM9L6vHqjgr46rQMdVinwFFk2EQuSEZQE0Q06j0JOaqt8vMqxvCT8v7yz5gCwBV4odJ2bNe8NcqJxB4YO8AlwFQAd7BFzBfYPkByrJV4vPcq2AUpbKyGgnnbBvJRqtHYyMoBoFiKpWz6HK4I2mNhqzfIWvL41gX8gfDdmtDAPArBUtrgAb1NlTiYnqAc0jQQRVoDbDo9D+RZik9S71xX9gHwedgibLTYjfKK6rKADVLqHTAQJHCIVkNk17j4hNSs6oqfiruqnIjRJRLeUjAn0DVSjUA6OIZInJBe4HeATk5uk204aujAnKTQMkI6qCSy82R+xJSy3lqQ4qfgMO1BmrXWeeLDCLpAbFrDirARVez0nOEqvHIlBPzYw6iSwABgQhyzCuygWvwZ9EFav9BiKExFcmBkmOrIFQS88AjqjFAMMJRTPMj3sFuccsDJqtXgbJgHGrzw83p0nHYifAAokn1AVPkQUr5E8X18AGTUtWIrsMQgA2wOOLNa/ABgACGce5B/Ws/BTCYscLDqzGwI6oHCKUJlyKOYGgRD5MjKBuAmatAwKhhAMrNqvpIoQN0yj0jCqBhijLgzYtc4PWK+kU8ao2LiShza5FLzDAQS+eTUDBNWdfK79yIK8L4SCrtAWmNQwGpkrtAsoFgzWFAEpCPyylqcbCLGOlrE5P0KUAh24sRyTuK+YriqjKqEqsna2a5gkFbkwMBYABJAG+qxCFQgIrB3gBL6KbA9KFFi95RSHXvNK6BCyHwatkBa/DVSsGJLkGFNFkiob3/qporcZJjIU/xayAL2bMBdwrCamuLTcpHA8PKKONrIeYYn4EJIbuKOssvE1KzhmmJmYNR9yK0ABAwJ4p7IBci5BS7QBEw0AEvK8eKjyKEQb9q4IsjWaJK57LNi/NqGZI8sStqJmu9ShhzN8sg0F1qr8o44+dtssBmvGLQgiP54mwiGJLvkQwASsrfDRCAt6Iz48vilINPAVPlcsGb2TXDoAqVsleKGUHmi98BHbJikoOQvCOqi15El5BzainDI3nyazOr88siyorCH6IHoq2SyURw6yqLwcLNs8AInGvwsJuTP9ANClfyo3BIQBIg2OEb03OJ9ug5ebeylUvnwyojG2s1SmiYb8FSEzvK9AEhaq7DKUv9wedgqCP3k2cTPsC7YI9jscOZkytqjmGGw6KYcOqNs9VrwZXBsv2ywwghmTZUZkhNWJ0ilOJqKwvDEpMwEX+LliCbixvAD5ki8ftrC4TIgBlBXwE2VENqoYDS6IF5CYlOgDgAYEAzaLG0s0HpeRrpq6gJgeGqOgVUERtASplGghoAZwFsjZdMVSD8YDKQNYwOdEisRCF7gbrr0QEQa0u0SKzRlIkBCBht8bJQGBlc68Poo6sMCe8BliC86k0R1vH3QeorFWjcU2+FiBA6uaOD2dgk6heKwbMhs2fzGSnn846BRrN2s0MAtivdKx7UOqIIKDOLrGrswG4rt/K3wgRwtqKUg5GS9/MCtNDrJVFRpZ0SdcBjYIBS4+nAUyxBGoEQircxr7gAuSFRYlm4KyFQLHJa2P0AhyomQM2reEHcIWkB3CEsKjTRmcKv0vkiMVDU3Ffz8ym7hWDBgAFKymZw1NzOoh5EVOuMk+OqkisYctWz/UvCZVqdHupZsxCUGCnZlEzBCAVgADNKB0LPCAZjpsF9SX9JGQjek4eDOHJZ65uAkuqSYfNK0NgswoU0TFEzAWYrN7MZsuvKNvQbyyJAtisrwRyM60r2KkcNG0v4AXRpUhOJ8RMg20vKLaCAO0vg0VCAwXjHcXtK8ETKkkcYlkDa6BLBB0rNDZUptPDho5Uo1/Ot65bpberHS8aQMPjQCvbroHNSozRRESuIKorKmRN1ABwr0SudSGoqVYTmkYLqO/K6onDrK5STipkIwq1j61uyCOrTY1/ZuwBfULuzYAH7svtrCQxus9VKJ7PYCwByXkCRopSCc0lf2IIinVXeKqECq+q86sA8cVAUYmWQ9upBkv0j2qouY9YBcIrfDFBEsKt+YoJr/2q6o/ogzgDas0FjSoEqUr50yIFzA00gKIHaEqNQCSt2gQy1l7KJWTTqRwAaIiIIGBlZLIqyU6vrah0yvBjLwfPqqWqVss/L1UqygF9QJaKbwi+QSQFi4mKSx7LhQH4Bb+oCUPV5PiqCw8ViMuHmoSPoH+pSy32KHygp6yvLb7NpjNhy22svIWvKWHP7yjZqxMpV4ruA6wGsSlVKvkp96vrBkiAwC0DBcGqhSlOrpsS+6xY4WauHklHojmEQxP3rLNF5qnXA+6tqwoU1Crj1EW8Ms2ts9bMAqGFlSvrBJEzzopaLzrLbq7ClTqNc4AFjMCJ4YV/YdcDL6vAT/GjkCMizdQDcKwwKtQvjky8sUOsHAMRLjRLM9SHqfL3pQaf5wnPbsmQY6QEGiOiiTsvSqspKjYCdq0qzrDxU4+Kjo3jQ6osNtktvS6dqgXhjKsMrMrKKShtAx6Q4q2qKSyqgS6OqZ8HGS03LMktpAbJK1CLySgayUyqsGnBLiqs0oTHjzBstjYc4+bGzOPbr9sFCYzrLN6oEaHNDTRk6hQnBluvPKi7ryuryzYFQUuoPmfjBG8H+6hlisUASkCvBSYFSE9/B2iuReS+hVytJgL7gTLVueHxAIYq7CfMrts3LwTaz7Opa6f8A2uJa6fBjAaJBi7dYbSskpUCJJgR6GkisTbT+YGZJBzGC6zlI4ir36yGzQwFWax1Az+uXQ0NK1bMbwGwBJrN/3T51XVg+wJorNpJcQC/rPygrIFoqB8JKKlLA+2sUjZWokYpyI5FAKyGeqk7Bz8oII9XoMnJ2GnfzNUoRwjLgoSt2gAcRdaNGGpWyG2uSK4AamGBQRduzLoG+wdLraY1bUJYan4F2lYd4wYFfAJoqWCU2GwezwkiTQdYq7+ps6k1Zz8C0GWCAHsFWK9YrchFxwAfD12oOG18BjrXuKk4AThqc65Wp5QFyEcqyuYEuGkoinCp2ocFZW+vHyqZrCosZI6hiORH46+oj41iUExfyOArfRVPqlUr+iusApwxe/E1YTRG+wC7qGbKoI0tL+8oHw7gBBxN0a7YEX+rZsxJSn4AXqlmlohkywF/qoYBmvb2KtfVWkjxNO6t1GsPL9s0TEtJKLgGQY42zvopdkxUiu4CeYheyyCEhEsERMeO1YAsq70U1G4xzFqGQGmZBaBsCSZByA4sma/DqphpNIjnq4st2q2DBVYr0JDnraAAZIxDDoBvegDIj00uGIo4lrI1kQATKGUDw0d0rX0COjYMiKrMIxUolRRnEyP8BjEBxURVphq3q0S0AuYP+w0Aarxh2q9mzSirwuPpEf2ogShKi7HIDyAgab0DHqo2zOWMhUEdr0nBzATcRM6IVC5BiTViO49uyM+JxUDfKuYLdwR0A+7JPAAeyh7Iwin8sH+vPy68qS+rDqhVRMBrbGjsgurLT6tIjyxthirwYzA3ba8KxmW3la7argqSawPOS7bPLwcZwjYAzyJUbqSrOmLhgyAi/kD0axmtKazrKiovC+PiKyMgLSrTg+mKjG+JqK1Ac2L0ddpXiKhgbXOECwdML10FXVHBEUYjuRWKxEYiPY8DAzqRfG5SA3xt4QamAw+KXQOhhGRNi7BhA/QSPzGgQj8zICXp0z0BNG5bgiwxgnMJKdCnPyEeUXxGKShpoEkr4oIqzMUkYmuuqG6pyfaqzuKwbQJib2JtARFcT1QJnlbZK2JqCwnMaVxNjw3YzhwK4mpEBhJtjwvibEMPEmkSb1GnVAvIEJxGKSmSbFxJEmlvcB8NqLWPD1Gljw6ogHhIGQVCC6Ju4m9SbRJvkm7SbFJpEmgybY8NMQXwRx8pfSn8LzjiRyiUBFPDDIu5ECYE5E8AJ5Iorpdcb9HM3GqtqlUt3G8vBexpqKhfzBPFc4OCcrbibi1QLQApd4J2jcwMGErPBPfx5E2KiMuGgAQJz7wB7QMTKuYAlQVWKyAjrEFCbKXSsc7jKpWplak0jP0pvSutAB+j6sGFijGxSKXvAtqqs+IFrYyH/ONN4pmOtSgihbUtXHUoasQCRse+5FSFZgRrqjJSSYJiLH0FasS2zhaDYG06LG8MWi1rhBpou6/ZqipP6mqmK6njDkXg4XECygFrpSxn4AIqz4DUFibWNCMTKG7RoJ6wsmODBdptSIDRpUIEGm3aaRsHHwtqyn4F2m3YyrWFFQLWpSxkV/Ndqv9L8YWjBc2FZgU/wNKweQVRoPHKnCcxwNCjYuCyZvouC45mTOAB5CeDjqUCwqocbLnniKgfCBEFH6xHKv9gdsiqKM+O8YgQSiKFtSxFrmxpnwZ6976Ovq9lrzH2ujUuooLkZ6H+Ks0DViUwKSEEAS0fwNk2Ysi+ocVBIm6qpUyiBwnhZoMPbsuAhvRShVDsEMnOrgJMyEMPt41xBMcFzJWAM/SHDwVyBGsW6oR6jQYEFgDhV7AGWk5JJbEEVmpppnORWktWNVTFoy115RQBP6OzBpaCD4OWbqqm8WZcj8ryoEfTtWfUvAbXj7AEGAY4IqulP6Acwao1vwBkiUEiIoRBMsYTNgcTLpIpmQVtRaY3Q4QWB00kz6HRAIKgpidEBaDXbC1UoKsH4AcJJFZozBJoq0oDiY0qAdQpTmrIBGqo7AfUZUUH1AXp0MDMqlJ1LhwEZoRWAyAkAyN9qkHI7IM0ayJpmq3hA/gGk6peyKHKxofgrAYupK+ETehEdGuGaHNOMc5jETEpmQdsavUu8AJVqZ6u4BLqj82O4cqLimQhmlA+rQygnEAIUwnk3yeGLCEu7k1ohX9lbwkHq72OWIHqA9OJcTO806KLARBJhIxLTYmESw6IJmrbw/JpCwMOQSpvVyjJrY0rIgbJrOUC9G3ytcOp+4tKAMFnQKr7Kb0DxK5yFAupu4wmawzXpGvTKOOIy68QqZIGjGGorOKvqIpmxAHLtaorKUEjVImBaWYzD44AAuABqKm8qC0v84DVMQ8shSFKBIJvJQNno5BoIoChI3mvPm18a1yGmwwhzMaKxAQ9ZZEEBojJBUpuS4q7DrpNP+MnAYpqVKBBE1JMYzWUl56uoqhub52Pmsz4aTREWG9HAcuqtawVRtgVAUTlBdpSr6RzrOHIyc6AA9ZEpS2caTsE/ATHL0ppss8hbrpM+hF1quWKrYWDBTdgJgLejLy1mKEhbUJrIWrkiuJPB6qskF1EsW2RAd8stAGwBWFocWyKjPwHassgJzZtdKnkrtZp2QT94bgnbiEzA7YzhQRrwqui5iR0ArsROAatLalAMozAkk6icJYwTWJKu2S0J5kDzkpJbuwEVaK7ZuwH5a7xbWpBQRQubEoET6EwoDEualMORZugpjGGbzABtm6QwE8GKWrur6g0MGo/zRFEoy6ubh6PwiquBzytbw9zAuWJi0eoq9WD3mjq5Q2vGTHfjKosoGxnwxIF80Os8timt4QJiGVFCgXhigwH8UUZbwmkZswjFU7Ii4BZa1L3U7bPi7QHmW7PjMUCWWkJRqK296rqiVFX8aMNIXwo0KYABkgD+vBtAXwoVAVLK7pu3fEJRrEjcKxjQblsvLQeBW5ExsExaMCvOk8Uqo2sbE6EAyEzr8rhi75CIzGUAfxsH6m9Bimqvm/J8/HIuwwRBxpGicmorHfmC6tJaG+gxwSfQ6ZocMWz9kFOHkjqaG0BtShRCUYsyEoIRJWFWwKJbGGC3iE0j3EyzQECkw+iEWnpajEl2lQ1pJsFxlAmBcSk9bQJaDjSGsXRooLkrwXwVFWilENlMbth/yk2BGyRxUI2QDbHDwOJaqZMFZewApSDm6DHBYyFCgHT4aKu4ywWqRot1s0BFYOKWeNNio3HKIRtqNYFmZdEBVWnhiw1a9zA+heGTv1Dikl3LdbOiUzBQLYkOouJj5QGtW5YrbVsuwk1by8HaG6Lq62unKksh/YF1slvdlXUAqpSCYltPGyybXEBUEM8Jv1FqLX8Aai1rLAxRyGqfgAfClJo3NNmz1GlCVYrqdJt4OZNbBEF1kgfCDJuK8T0ibJu/UAyaBcVeG0WLbJpx5XkD5QDsmjNaENBsm7Naa1r5gPNbnVsRw4XDW1uFoKwr/bG/UaJS3rPlAaJSxMuiU49riuuiU2PDolO84oWz690uwhDRLpt1sy6b28H8UXWyZInVWt1wfpLIpL8A0tKCwyEwcxs2gbySW9xNEbySdJsQQbyS9JsjQaUMp1u3W2dbPoQ0tZOzUrCo6I2BvJMumk8ACaO5oKDVAEqw5Pl0UKA7gDQpC8MMAaWhVWja4g+Zc5M5I5+bzCuiS5rhj4S5mhN4Eq1FgWmMjJWv6EUqnelgDAgCwuC/6T6aYNoBkVJr6KQLGg6qRsABgFrpUIGZbEJR8Nul63uAjYEem1IoPoFoyrstGkvKioAkLZo/AG4TrZu0Uqqj2Wu2A3kRf93ZAPErk5tWVVObnQvTmvwBM5tWAe8ATOH4oL5LRqrRlK2N3/iDmQvCVSDvUejNAP2dSzUAPSpwc9VqKYhTS9maINqtiqDarPh+GmCdA5vtdRvBlmtWG/gBS/MK6iQsBNrTm3jaM5vOYhMABmMtCU7A0RpWKi/0bVneiFLACiq/6CshHpEKEaotYIAW/XhA8Ssa6UBKPZudACo5daIIA7ggpaB0y30a4SvU2yApNNrIm0oBpzXqy+IBLNv426zbBNts2xEABmPQc6lBcltf2N+B+KBgnLPA6JPQmy+bQoAZI7sB08mf4prpNML6SIPrApprIQIIM4viCmJyMItAqiOLbQR0couYGtr/K70qfRBJKhBLZaKMqorLzyH9ikpZP4rqIAaqaBHrRAxK57L/QS5B0HNDkD+LvSo92Biqu2oM2qVqI1otMUmAPoEvobLB2hOJTZ0hgqWZ422BVKuyGlrorStx4FfzifB0qsGrvsAWlc/A1Yi5YxjR80pjG8cARts0wqbb+vR+Y06L7nnuKrvB5fC3jX7AHKtiQRrqZwGcq8gYCvVBwsFqvKoxwad4hsP8qp1Qp5vSCHQ039UnzbcJHoCd2Sfh+gAH61VbIblOKubpZaOpaEKq2cDCqiLhc3xHGcMifBgGpdd49DUjJEHFqlu+K4iqVzFp2kDNeqrvK28qROLMDAR1Uyjm2vvgw5Hja6NJPUiTamWxeMn52+dCbYsbinIhm+uPhCXatcxtiixL9EvtAXzphq2fatwrdws1y95aJBvigQaby8JLeWgLgLEAazaBGYGdiv/LuRMZgUgaphtJWvjsTxob9a5rx7MuBM4AUfEPq4at9Whm0YCwmxvZ2eXbUwAtkbkSdu0AXcpaWNs00HbsEmrKWpAAKlqXy+KBsmukaKdK4Z30YV+TW5Ca2/kltYGAUjTqTPDKLeTahQi0aGSIEMKFq1+LRUqD6inC9aPGUe3Kqcsr0JebVuOZyVvD+6MWw0R5NiSIbLuTlWrgcVpT0PFf2VIL+eDCaSEF8qBqYxbbnuxsW6ggBmKXmxul123VAGjZuuD00ObaaAuim7djWmPVkHprjJKUEmvCaxs5GnvyPwFPSP0BBEEfGtAKi9s6yiFaUOR2i9BzbHLKY/dBPqD6yy5BFH38aCQAYrJfatNqUJm0eYU1rkBUKxXsyIEcs7djoVv3QMBVgiup28aQSjBcRYatHLNv2ybDp9sZKZuM+Cv4wRxKOeNqaDarHxr/2n7BhqyEKnXauXUYG//q17I445EqoJh+ahzx/mvhswdr9ms3MU2zYUDqoKd5iUq/tT0iZRr38/UAt7JJATsADcyyKINBpooJszAiVEQgKsORFWkJDPQBuCv1AAGL6EN/ZH3betDPodeTtav1AN2rLkBtAGTkjYBzRXg7EBv4OtoAuDuTSdCKCCkjQdeUv1C/UeUB15SrIC7xd9syS8uTcbJE9TUgBmLZHWWjInlEeRebG9pzkXWr6qqYCx4B8CK/UQJyv1GTUuDAr8uaGxDFetura7ha+Ko4K2RATMFxskw777lf2UKasFJPa0bK+bGC3SxaTLQ9irBSM4vKsi7Dm4r6wEgbuIsDAaHqjttBE3Q6nyz8OuMB8GM7kiw7bLB8UeBwgkEsO8grt1n+6hHApw2sOnfiCChRsOALZCgUQdiycyF3GoPE5tqLDPXbE+J27AaLzUpxWuCyCCkdAHMhQMvfS6EF9sF72pwwOCqNkbQasihMtQMjxbErlfBjxSrjYq5a4YNZsPEyjDjtAEkA+gt1AGyRIsQLKpJhbwpJAXoB9QE54TY6HwppQfmjruJJAfnpdQDOW1cktjuuWi3ASQHQlXUB9wquO+Y6PwpJACoBMsXzgi2rH/LJK92qD5miADs4/Bt5C6IauWJotYZjZsKEIDvMMaFsYgZAKgDfgdCaedFhO/dBegFs0dAEc9Dz6Ctgnwpz0ToBbNDfCnPQKgCbG6f4MQituOkBNOA3XJA7vMCaOo/yz1RMGzQaMFihaFqrB9r1quIL9QEeoZ2pZDr3wQIrt1hrawQrd9urm1urGzSjkV7jrMr3s6skpNpBUVRYJxr+UbM43DuvmoRbgFowOZ9Qq2ANinhbW+ADBEWSBFqrgDh5TCKVOvQkH+v46+6qL+nPyv7ABwz2qxENgrHg2gcMw7T7akzAL5ENOgsAtUsvE5gSVXlYvTqyiKHE2x6yeTqH65YrIxp1wUFqh0jFY67AnC0jKdNJjRIla2mMNYHqKsqb8KocwcDbbdvhslqbY1pV46CE2DsJojPIZRpmwUVq+sH0a03KU1inazQaUpBrk3kBOjqKA7AqfFDHavRAVFN/WmshbHNv/Na9gyL9IJRc2LN7k3ha6sJdCsQaQiq+dWs6gwDLwMLBpTrH2AcNPDAF2/GJWmr0yrbaOqMh6tUjZWq4Ydmy28K1wklBFNOuUb5AWprUk9YglDJ7wyMaN0CIQR49eDVo0SrDCEAE05ABQAHAAETTtIrE0xGR+zudY4yRr1AqwgIZ99pmQaIAyIGSgJ+bKoukUzZBU7KnCKC4GrNJgX1KkaMR4kcZQ8s5QfZKumoqwtQrxlDwCgwBS6sJ4MTLDmzICv7g9HBH4PQafioVUCk7H/M8atVBq5sqiqrg9SOttEmS+OzdwbJMroCHSbLA9kFBoLvyeGCX0iIIc9sEQbggDsPP83JbJglUaYxyzYoyShkaDuqwOvjsfwH2w1sAXSzgW9azrToX8xWKtfTXi8g7wYnuExfy2bN3i+9qMwXgI/xo9RFyyx/zA2AzqtXKxtQbsGpiaaIQs2OSDMRLyzUKYMw4C70bPjpjIxkpeEBo3eyC+CO2IpIs9atd/cRxcJvpQAkASmtAC7krmKD/Ou5RTgpOAZkCG4GY3DxNiNAHo8djFIpnwYeqQnmymMi48UCR6utrMEqHKyVRceq3q/HroQEJ64nqTwFJ6xwbdoDpqtNkz0HEQ7YLZ5JVCzchxEKx6zK64+EL0C1I5tv2wDvqEwFwi2QbEBDlAI0k3LXUi3qZ3ItoA0yKiAlxQk5LwqG8ioyKdYt6mFq7x4D2ooXgHOCMi6rQFK3lwcKhiyPCoByLdIt6mEa7OeJYi4atH5tvO81xeao9S/GIV8uiarRdFWnoakfhOUDeKSEBprvx286TI+r+WlAa+xuiyv0hUBuwCm2LFruW7XBqsgSdGrX0hnHQGzlBAyk2u0vjhzo9I3a7qqlQGrBTW8KOuua7TrvCyrtALroXWF1Lbrt8u4bVezo4Kxg6Ioh4isuQX1DxyDpalIJ6W7Qb3AHo61FIhFss6z+0QB1SswTx+MBX4D1UL/BBuuEqwbp1QCG6CSN3wU2yX1CGo8ebAYG4WjuzBsuRuwezCaGHWhlAFCEDOtG78YgxupJtNRqyBD1JZDrxs3aLMrI8EG2LMRRH4SxBjDFImuArYmvGKmbB6SCmux679LstAWHq84GFST07Yq0bqvezxitpAKQB9Ysxi+Fba9weuvS61cqLDSPr3arlujv5EArDASPqXZJgRHliEsproiyY6rJVu/xQ1bs7q1m6brrWuqGAZSh1u4JqV5INuxPijboVupUSXwCdEwfautsJDI/QVAAE4m27F1vsyEbAHbuzY2rDAbrJOr26V5Pxu6CAuGHlix/L8puOgaModboRAIG7V4ARAY0bRbq1qA0L5NsTwJOLvmmgRJZrL5qeuk6ydooi6kWyNYDnik/ab0BzAG2KoVrcK2vxh6NpATCBvmlba5XBnJCD1XoQLwT6wHgAUJtEK2QIPyphi+j0TRC2upS790A/6lfLM0F+ula7uaHhEnAAp7uluvW6j/K9utzIjSvR4gPBttk/6/GJF7suup26buKHSNe7dbrimz26DEpNu+k7WiG34kBrnOX5u5a7LrpKWUsjq4vQiyG52Ikrk0coIUEZKIsND/VQMJppUrI9ugTIREq4YDU7zb3bsswMUQk5QHMA8drQm8xzUrJwgXxzf5sXuQdjszqdaggpMiLLkP+7x8usARlL+Tpgct+ALHNc4D26AtuMq12yyuMjHc+6Rmpd4Y67VCtLul27yBPdutwrDLTQKzNBcGtPu6QKWHpluza7r7qmzHe6kcL9INh7UrM4eq67+MCGceETUQB4eje7H/K3u8B7b7rs2oO6x7XYe5a70tBCKoCZz7usABa0aHpAurBLWwFnO87DQxugGgvLFHsRALljzbytu4bCNxnQe15qyTp24EuTH/IQiiC7Dat6maLJzIpPY+sdmnXQe0ZqktsvLTBAK7ovu7RKJcvT6hBE4mpMUQgq3Irgqy3iPjoQem9AG7tK43cpHQC1wt1qvIsMi6nK+bHkQYq6cIvwY2vwXZKmWxQgB5Fc4VOzMUBeyp61W2uau9J7O41dAU3Z2Dtn6iAz1UrSgSpSZsCZCUaaQ8sFy8Kh3HuQAXFCfpvsjMh6uqP4arWpSctHST8AoGJC2iIBqpr46mviAJxNEem4Rmq5IwOqXZNggGJyJUGUastNpno12E0QzAD0Acoogly2enqB82Bzu1BAfHvR4Tg7eavvOpghHLBZuucKRbHU8E56fdDOeoBTFAHnYbQArnrZfG57xpCloWZ6eoHmejrDFnsuQfprlumCw7Ua0qOwKjZ6SgDNgXR7xmu9cNIizHp0kE0jQpo/kpOrQjsMu/dB06qnywmSYpLts8TJBmOMq4ei2QBhKvOj4RORkzlBegG+eoJ70koWkkF7teJ/2sk6rW3zupUTQmt5sk9K3nvEetm6VdpNgCeMxGQpe19q+GKoMcHpLMonrIF6uxIdSn3QS63rrOKxwXqUAKF7mzsLBFarmIFwekc7mBsbErXDMxudI9MINJsuQS0BhTTXOtV7lbtkmzSa21o44q8izqqhgOhhvrr6RerQC1HhExwATRAlkJs7W+BBCdYhrQvWoEmgQ7B8e8xauqOgjbsAWFI5O7QLMiIcy8f4WtmIoSYJf/RH+e56C9mUrJBSqyTxW8AACVtpOnpaeEtlI6vJvaiIunvrTSDcmoraGLpoEf3AI5o44v0h5Itv/GV77Lr5esfZ6YimG71wTZuLasOQbtDrMYoJZNH3QIN6UiL4W+ETgiBkekt6Ytp+4iohsk2omvHIq3ougMORgiDresbheEHH+WTibEDrsmvjLEHIsRgbpBkMa/lryZsFQc55V8AGpDNoEFKsjaN69pKtS/FaupqOe+KBskFza67C02Me1H0RgqTjuGbKNttyWnNIF+tXgKNIXeE98J9BM0gJoswN3nn/hPxhi5LACxxqPnAy4f6qQVB7w1sBuiRKyuRKEZN4AY5qi7g0UW17ZQydUWWqb0A5kiEwn3uMS0qaaZI+cDmbKIS0G2xBkPtmeemTpDvEBFCasrUIGV/Y33s9os962aHWqVGT9b03ERPj8MGA4pgQgZrYcoih3pK5IxjwZ5pmQISJa0tkrXhAVqDTGI+kw5GfeimM36tP8PrYVNh4+icAX7O6E8B6nFoIC+GiEEveuzaS/oq1QGkxCgqdIun4mFNVDZ2TLkCEWpxaBPRwAP4BHZKk+5vZ9kAzaFoZYmTwU5CRKFNYU5lgeejlQSOSLny3WLj6xlUueDWBG8BNEA1BzoDLRMnLk3pmQIT7OwCXAQMRIPvGkXkh/GmpgYt6Tct8e01LD7o0e/cCQvspevl6vllOuxkSzZLseyxAFLukGxBSIKFfOP/oCEsEOwfbY3vje86SNK1o++RouCIBC3Jb+KEcsHsB0wii4vGB6vQPqnBprZEAUBrjp/jjG0r6iKFDqxsTqvva9evJRTwgSpGK6iChE52SOvqbGfahA2FJ0GDN9QAmiu/yJao/ujo6nK32k+N70LpXkyiaZ9nEiCI0taBEy0qB1QKy0Lsh1vudAZW7irIRcHb6k1o1ejibFlTW+nKyiKH1ejSbY8Oas7/xXJqM8fihwyOtAEb62vS/AE6LjoDD1SEwfnqruptry6q1qIUqirMCamSasmrDkNSYLHLOu+rRgfrjQVtr59v3Qae61yG6skt4iCPw6+orRAHbst3B77NxucsicZvUy1r6VX3Ie50jWvqJYzlBByHbe0L7uMpNm3+Kw5EHIXKsm3r7TC+zOUGQ3Un6YvvJ+1mzYA2Q3Gn6oQKq6EpYf5sfowJ7aHrnspt7GulDe1+6p3qUi+56mtphAYjR2StWVQvD/GkqgE0R/qGckJPKcIAV+r778dprIKGT4RLntTqR6ME8+yFBVGgUiy5AKgBlIme71eBJKwOrYuWJMXzRSYC/2kmLLfppAXzQ/MpXi+VBbAsTwQRaBmOqKuyzR6o/mwzASSu+OlaEj0DdevrBEXtXEIg7mDsgepg7t1gEa8Wq+sHoe3BySSpD+k5aTRFP7fIkn4CoYE0QuYq6YMiAuYu9+037fftHk0kqTYpqeIP6Z8Abgab70nD8gGD7yKqLDf36Tbt/6XxAblKGkaLCkFDGU5uTcPAH24eTJvBOYRnlArukuFY1zlAW2vpIYYshuLk7PDq+O1ZLwHshAfhKD5jNgSMAblLNgfvj4AEos6eS2uPWUpOA/gHt45uSC3GH+77rtOvx5PC4NsAnumOod/oxUH7rpLjsO2DAHDqcOr9Q1rRswYf7ZMrSO/k7pfsrQbTCCzvQ8N1LdoEr+kW6n/o5O4qTpLn8aSplQoA9+siAgAdz+y+7iSoL+8Urm6N6AEv7doACQF8aMjoWwxbQ/fqL+7e4yUWH+lVQCapQMk2KSQGiAMf6YyKkOp6kYQBrKSSLQKuHC7WrKEuyqn2rHROwGuCzMCOye9YB8GPSuh2RrKMfNB9rtqppeYAGNw2Cwtwqv/rZgf37oQEcASsjQwAMQLP6UUx4Bn36QsBJKqAGVoWP9Mk7qQAQB3v7h5IIKbgr8wBQB8kqHMECOE/6JEHMOgJBl5qpFEsB1Aebo+mB/GjoQc2AuAcKUMAHgnvj+gv7BCgj+zKzSYCJAN0z/fsMQ+HxQwEV+kwAk8tvAAv0eXpNa1zrRfpnwbQAMAadanB7YyBD+yFQFAewCiviXXHA2/bB2LKawEwSmlvms9rD+P3dij2EgPnjQZ8hm8Kp2/WwmEu/URiAvpsqumQHK9APmQFbCttBW5IAbeIZSmP72Um0B0iKrkC3UM2qS4GI0MMBYrtWSZrCyACSWTtBjEHnNUnDaYjIAS4QVHXewf8BSsr0WzEVu4WJOyVhJM20eHXBJzTLy+/6j/JhcWfbWwEcOuv6BmMUy6isUEhrxX9k6gehE6RgfgETe7Ba0ZTmB5fLggZRpPf6z5KMpNb8Qrqt0NzAzapXkuF7WrN0HLeS9DBEcOpQ0MkZEg+TSUGPkg78BHiLOtXjrUhmBsBTDWVzwZ+TzpOqQD2QbDpcemZB4YsRgSEGd+LsjNGLv5Mh3WkA/5PZALSB4QYB64EHpsV2Bli0oQIsSrDqmllxBs/whbPeMEHr/HubDC941ftlex6AZaqk+0Kb+6NYtfjBG4svKwyhPIIL2MmqyAbkEqG9FBJEE+ETqhzveXwHExKZB2xrWQYHoxzdBQd+eo2yRQYJBs8Sw6NJeqkGhQddK64ARQZZBuUH/zoHC0MBKXTni6f5ogETede6S3oFDFQrJItessqbTbOywSMaVxPe2m8a9XuO+0BEGFvLoy06vHK+s4Kw2HNus0MACQbWomYan0BxiiKIthqvGRvB5FsSUz3xq5gDgfRIX/AzinZBHqFDB9rayEu1Ycmrv1H4AV0yYwfva+ESF3CZ+muLDHP0mPHdnTqzSGoMxaLJOyerl+rxu1qLcSqTiwhZJsE+EIGzD4t8eoo6fKyGwzoBQ8uOgKQBQwFC8X57F3kLw7FaqyQKCv3Y7jJysgC7HTqjUODrE2qhgKhtnvGpBjt6OsNqOrsHvDp7BpHCLCodI/cC4wf3k27CRxmGY27CgWGYYqNRPJChgCoB9Qb0AGEq93uPQYkGQ/q6YaIHJasoCnc0Twd5q7Jgp3mSMTAATYv8aZ1hJQZA264A16qJezlB+gEVBqUG19nfB5UH4RNH7ADClQZcG8fKBIqlSrsa1SIXwWW74HrIWsprm2tG2suiXKNQI0sb4RL0S5eQu2KZCHvr34tc4EgQNAAvBRH65htq5DJz9Wtc4FGaaRudkqV7MAC1Byu71ftQc/WkUmRmu8AB3muXIqxzPXtQKzQqiWONogIGkrprBkjV5Xu3gMj9NoAsc9CHZiV1y8vzcqwPjGUrmIbSo/By+TsNqqyiirKoek2BN8ETeHqBoCvedVSG9AAsSo8HwAEw67/6D9tJB4U1THPxiFkH6EOOgSqBQwGQm9sHr5tBY+IFn6wMxTFAuWJwgRkSUEjfusopiQYbgAmAZlsZ8Xxs+okjKbCaXxuuQbyGEcGh4/YLbw2chC3BrLoIoGTUiJuOgAaBLIYnB0L62IdIixyGSUAnkDTRFzt8hlIp4RMTwBKHgIdi+1AxUoecbDKHr/KyhtzVYHtDAZ8bhmkqqfJAFiGOgXPA8oeshmsgiobCaEqHbIZqh7KH3z2yYRqHXwc/soqHQFplsJyTGRKleqhgeoehevqHtgRJQAaG2UFshuGIEgWYk+wzKocbPPRA5oefrYuzJjjFqhaSmtuCh2YklONgcvdqgDv0hl8Rq/KhBueTVCskB0qywLsXoWQp4LuICi6HWrLAum7NCAoK4+pQnUyk+kfhoESygOH6yfqxoQ/B8fujScMiTCtHeogaTssfFIxa+/M5OGiHZXrGSmCGuItSgRf4ZSupe/jAbtAQ0WI76EIAu7iHV4Dg6o6HSFo1oQxzVFThWLKBCps1GomHgCp0ho5gUJoL21eBtYBQm/oB10ADunAadcHfihe7Pnu2qr6GDQZ+h3k6XeEJeq9jHvs5QfcAMwYjqseruYbWevmGdIfuAWd6OCrVB8rxw6H846oJTVsZEgwNwypIrVH6CbMFG316+LgkLUWzwsulh9894FKDAbhatarMitIpnZNJge0jjYb3G6P7qqnvOxKAnzsX2vWzN/NkakwDZrilsjStJcqiirp6OMoPqt1q1Vo6irSKWLB0i8rw7coMivyxWrqeYNJ7Q4c6umXQrJhqexRF6npFkpp6KIG7u0bLOnuNhoyKKyN54tybM0D4Kq8jxoCwql8Js3qEQDGHgevjjUwq0vSygS7QQOJ52iuGeoCyHFl4a4azSf7CS0jFql3g+6suQZB7W8AMSqwH0krqwzcaXeCiahqjmIogyQUrr2CSgEeHWVjJOogBS4d8EovJp4aaBfxpEAkBWRKHmfr6h8djPnSfoMwVGzwL/E+g/gCqgZeHeXsMc4AA14fq0QYAsoE81TkBQmBr7Umgn4DDXJeH8ocMckABj4YHCs+HGz2ccR2dogD3h++HP7PnbKNR0qX3QKdKJ2kwoHTLo0OOJbw7cvt3ehN7zypBoR6BoNH/AQLAuGDRm/rgGLrPSq8BSwJTYT1dUEfJ7Iui7EAARrBHnACn+nBHMEcVIO5tnAHsnU1BHNwwRsntiEbsnCdAp9EIRiZRt7noR6pAOxgcwRVop0sfRdmU2EavAR9EF4NssJ+B2EcdocQpOpC4RvGBU6FZsFnCVVB5mgmzfBPk5BDCp30IGtAby/MoRrp7w4BERrJAtcmi2jrDa2K5Yuha8BJQSXARrzXpWpuKNrHVapO6siPScQ+qXWvgR3+7/CNO6y54/OiS64RaGUCPhoLAqCIsIwjad/N4GwxqWCP3sjLhtaKnS3SoxUUJk6fbtotJB2u7pMmrwsnlYbLOiq8YSCPaO8qxL8PEyb/LQl3tI+kVMTIBmjDaYq3BukIGZEen2m7CnC1Y9ORGXwieDDJyUZtDGzJHUIAEQDLg+CotGy5AIVmGY26zwfoC+gJHyXDkumMizEdY9bJraToGYuW6QHrS+ws7iEvAxOb6IEfyfYrq7prZskJQtbpTq6hgOYcNoSmyS3nocmaao6qvGLuEaxtpB30gNXqIofsbP5o2RviatkZ645RG4DAGoRvN7oZAu0yGOZsrm+97O6rq2myzmYbLTF5gWkauQkT1+EdSRlshFkLLqZRHURGARzrLHJsk5VZR1gfmGTurwyOURyJT2RGkmrcalUrHetg0Q3phR3kQcSto6+iTw9qmOFjbbgmY2tn1t6JBR1yA4lIBbMFG+KECm9VqoUcIMWFHiKGuwwTLqqmdotFHLwFRRoPb0UaPYyhGj+2aAOhRyLHpR/PQsoD1BllGeLC8s/RhV3noRzPFNoGC+llGYOCS0ERG5gBLwrCAvwCvielGAwB1lcVH3kbeKKVGxUdqoMhHAVhzSKdKIj00RyqKzEcIWe8A8HKU4t1rJsBxAviLBspi0WTjNbpSR2OBJoCI3DVHjJK1Rn0QdUfxia7AtApJkvVH2uINRi+A+Iro60rKTUbNR+lHLUYBbN00xgG+R8ArNiICazKR3nr6RLG7EQUYzEfhfUZUAANGGxEYhqk7Q0c5+j57uTRjRqdLx6E0RkLqTYEIOmu7b1tTiwBQFiIyGJuT/geQkNV68BJ76wgqt6JA27NHOBII61IRW8Lhuu0BEbtbw6isyOor6lZaWyQdCQIJkAHbRg3Melr04ltH58KSRmVrssFf2GLQiAE8m2uBKCt6anfyfDpUEveifUYzRtFs8MNohxl7eauBskoxWXtZu257KEesErG4g0f3QFfL6Xq+2hSk90dWELG4kxFoQQ9HYPp+AE9HTWKRQc1H90e64JMQJZCgHXhbkoZhB2yw3UabRvOA70ZOewLrz0dCAIup5iVVR0P1F6BQAK9G0ul1y7m7wkZcUPm6hzqXR8DGi6lfRsoAb0d92sxGNPp9iri7PoUNRmor0BvPRjKYmcpvQJt6NkweR+X0keipgc9Gp4CtR50AM0Y8JcydvxAIykJGrMvC6/NGIkZAGmJHvXGWi6RzjsE9gCrKGOL3RrhATkbz++/atcGFNWWHs4azaoTHvUA0bJhD7obNsiTHFdukxqdKqW3qgd5HqWEoR1ijiMYwx1qK4MYDQe1HM0ADOgW7BEC0xiDx0ADdATQYzMfRbYmoRAHeRuvJrMdQYWzGaEbQxmUozMedbBzB6EYfAc3VMRCobdzHD2wPRyF6tMZiir1EXkZxQd5GyXsoR6dBopqix/sp8EaV2qdLU+G3uERHU+HEKETHDQc6yt8hwHp3RqGA65sUu+y6cUu1G0iHtuNyoyhzzUdT4YYTvkfOkrLGvXpyx/4B65oKxnByisebekrHT7riIxLHR1Bzze6GB8Chq/m7mke0+rO9qdwWFdDGZkB7qlm6frv6xzmFSQRSxgpYVBXoRj4QtIGVRr8HKEYrHHbgPqrCx1bG+AAYcHUANsdgADTwnPrCxgkBjhy/ASeBKEdIgbQBKlJ0x6ESKbu3Y76Hwmpd4TeYisrK4yhHCIHtM0fsXsZ9Md5HGIbUcfGJJ4D+4TErJsfpFKphwAf3QVdAHFA/VF7GemS+x8ZqC4roh0jbHnqk+rQKDDtI27ArjxT7G+FGXeurugmwuWOFNEQSwr1bi8jHNwC/EDPAwsYkCSpSsoDD1F7GvxBwCZeEKoCpxk4waWFvwMLGMlIuMR80REZZxvyArUeQ3ShGWccB+CeMecZc/KiGBcedwd5G1HB5xxMxw4GZxxMxtseEGvuGRCtLBqhMk4pQR7lA7cGjKHnGQwF4RhEB1cYzABeDocY/RuSHoRKnqCyYi7oCaku7lyIiml0a6lHNRxvQdcYzAZVHeoeDRzIiyitWVYu7xtuse2shtcbDofBEREd1jMnAwsd1jK1GZeEoRopTfsAHwH3GaOlHENdHfdtCazdHR8rw4roR/sYjRv5Rg8ejjKrHx8qtqzB6SK2weoai1SPjqx9AaeoiiTi6csaWRsAaTYFGslXikbJSIpIYfPWW6NajD0jxAw5am7ptigt7zUawwY3KV4Zm+rd6zMEY0eb7YfuwxuU6j2D4i1vHcmMxIHgBKEY0gJgtqR2BxpKGDcYmANvC1EDcO/RGr0GvNHpb+eNCajWLhlXjx4FGp0thy8aH/esmBtjAiXvHxxiB7cZhxuPrDeFXk9/7qCFf2fmk5DgPx1PrzUe24NmKE0Yuhx56P5LhseshZeMfx8SRrUbH2W1HRcCLRqhaS0YXm8tGz2KuQA7CCsq1AfQ7/kdhu1hbWBvACJtHNRpU6pDHOmps2f8MREeVwIBZYAGq9e6Gk0dSsaRhokoIxnfGfGGFOEyBE8D1xjLHHcfk2vJBrnr6RZ27TMZ3x5OtrUbbYoAmqfgtSjKTQCcEE92Vv0b9IHhzPoUGWTXC+iqChs2raqiUBuzbMvtXKviLdttIsp5gUcKwCy5AGBvQCg2xPGrENGC6+GKIJ3hFHJHbWDrLO8ctS7vHOpr46k27tApi0IxHLyt2lO7HTRtty52LswDAmpmg9rpfEJoLxaCTyr+bZsrSYwnGomTaR6AmwkfYx5O65Yq8Ruu0UCaSi6fGYvs/R9cijcfwJrxHHUZdRuU68Mf7o41HXIY0J+rxEYCtR3qG/8b0xnwnINDtRrxGnUY44+GKYifdR1Bb4idNRxImgiaI3eNHgiYPhz+zwiaGsDKQU0aTxp1lkjHTRqX1EYHKJkbGwiZDR/Amw0bZekWwSie64Nom/Hpm2yhHPMEXoF/H9ccqikRod8F0J3FbhkcMJgbaLZPMVWcB6FJKQQOTKFKWJ5ngZsIs+9PQVieDkzYnWyy+dD16C6MU+9YnVPocy3YmoUHNR6qaycBERvRBZUHDgehG9EEYxomH7ie4AR4n8EYHwZ4n8kKuxuQ7earlu4/J2QBKO89rCrghWCgadocmxh4n6EEkAPKSlRCGJkmdqqF/xjgruCsgKEqZsmEUOgRKC2rM9PJg5wvNlTUhQNo5OjQbcqoDyzsAb8aSYA3NhTS5Or9QDFsuQF9LCAfZAPK6adE7AC5665vjx6fLZOorlIni3Cf7gc1HCgFLAtwqU2EPuwnH4O1/EAyBKEcFJ5AB3kdXukUmTIBEAZVHhAElJ7Amviah4jomaiY/6uC6GCavAeDtyCalEKPHDcaVJiWBN+toJiR7oUCaJ9GlsCdPx6GGvXseB++7QaWqJvUmVSbDexImdWHay7UnTbWVaIQaJOq5J5AAugjS6awBJSa9J5VGoGBFJhihmCbhxnXAgoSGwvkhIqK5JhigzScnB2HGL8ceBm/Hfxtai0MnK2ojJu9jCccD457x6EcD4/BHnltaioyHUrIJB+hDKEb1lMWhhaBERqA9eAC7asLGjjH6JwcgJgjFB81G/gB/S9IBKEebJyKdMRGkCtsmlgGVR1EBKEa9JuFAREa9JvKTGIbRQZ38gsJnufuBQ8v7JjKYTSCgx/omxycnJtri/IqnwGcmOAGVRykBKEdAgB1snia3JiwTwgDeJ+hHCoDpYAhGtyfmgOlhlUYoRiWGA9p27RYLUEZBvRAJKEeAxoedWwDCxvJAQIEuMfJBAVnoRiwJVqjgASflnIeUR70LwvjfJ1UzoMb3xturohnYWmBFId24cjvCtPrtAKtKPGvvi6IZa2PsWviKYHPnYTZ0fgCcWodjAMYCRqBhd1LcKu5Ho4OURwinmX2vR4imbYsKDMinnyCgxmMnOYf3QO5HWGEvx/QHstqDuwnHyrt1HWhHGIZIptSTLSY4p81H9yOORrl7GIbW4vFB/Yt1h81Gj+wXgb9JeUfz0USnnSZJB10mv7K62j3G1UazCX4RITDCxulhUAAYpkImOsKESc8qZCdEiwOKsDuu9bi6S2t/RsA9KNtPAQiHGkp4YZw6CFsEulaEieCnSqzDnvBER8IAo1y+J4QnbDvRAbphqjowOFy6W7ynAK3GtycXS+EAPDN8poyn/Kc4gTEH38aihkcBDgpSoY4Lwqfcpr8QtSbGJ4yTQmqyHU3ZcnMbEzgm5BPzepkIDSfZep9HHaCrgERH1kKgC8oo90cERu75GIcwAdG7U0aZJiqnPAAHEMpkIGHqpjqmmdigC/NgeqdYSR4AhEaaplqn6ibQRQnGeW02gU+G90fybcL5qqfybK1Hmydmp80J+idHuyArw0cxu35i6PRWp5wAUiaUp0e6ECs2ptm7bGsmphmpACsTR+G0bYpyxs6nmAC8ofanzSaMpbohrqY+ewnGo6gPiyhGoIEBWERGoIHfSERHgcoOpsP6Z1ga25wBCcZv0fBHOgHoRzEFXqjAxg3Br71hAYKkwsckAZXgQBS6x/XGjbNugkGG9IcT44GLX9ibR0la8cllixsSW0c2gIRbRIFc4J0ZIgYv24rJX6gc4ERw+GMCcq7lIECJsvOiWsrMx4Rw9m0nBzVH0idX6tdNIbo3K+zAYbpi0JtGwRBbR7MAabqHtBn7ibNXJuPbkAH9jYMnCeBYWy8rWBpr2jhaPEyVptYiHcdQMHhgIzrkE/8BZTsC665BcKatyfCm6EqsgQ9tOpC8xnbD5Gm/SERHnLMxENCKtMZ2wzds8TNuqO2nnaatgcLQ6tN7Gp2nZUC9p4ocULIuuuPbG5Fb2r4mLlFdJ77JXSb4BlqNUAY6MJ2nXaZRJp2nnF02u92ntl14BkkqYmsd1S6UJ7qdpuRQJZCypy+7ofH4h9d6Q/tBgeQ7K9oy+udNQxM7+xxskAH1AFEnGfDhkrAGeDop27b7wrCLDYoGMSan0fVGmmkPkRcrYllEOw+QLwe543GLlavxix6B/nsbBQGzc6b7Id1DGIeRquraZ6YSYaAB9Kd5ezt7SGLzwhmG4LPdmmfRQnJMe0XBJsAXp0HCAbvGO81H4gAX4BTl3aaTCgMTdcsQB/f7CnJUVJ2nKLJagK2nYFiccVsAraYaStDHBCidpg9HggF/p0dR+if5JNrjpqqGwg+V+6LPppshR1FXps+LTHq3p8x6d6YTwf2LwGd3YyBmQFIVJ+AH8OJJAcBSnaa/kdsQCMpNkLuH9pMfFHrc2UJZALiASXCywGQAcZH2AYNjlgAXoJehy7HRKMQAIgGEAJux4DyxhHLoRAEPoDMAufQmMR8HcGcqZPMnlrLQZy9BhGZ/6dSm6Er5qO+5gqStpvKTeIqdpk0h/afDAK2mhG0hJlCzfqGDp6Kn+5CdpyRMRxDfp1dHRMYmAEkr38ApWhuxbFPPsexS2OGdiAGwb/tvwSBncKB1AK2niZjyYZxmAB1S6p2n4rNuJuhAnac3mFqsFSbEKyBmDTIVJ6OmnjubovE6naZAoxxn06YL+z5T0/wKBvkB/fvNR3gy1qdai0lAGkG/2wnHEYHDY9vR5iXoRgmVnUkoR6zYw8Blx8aG0ibzR3mmvQghQKG6c0cFDMm7ohhzE4atECepukPLabsYzeorK+qZu9IbDoYWkyvL4cL8pDJz9sGnO4gGfREIWUaqnqJPss+yTxI5uopnwe0xIXKHZma7keHgzylzAfJmRqDWZlw55sZ0+gJmbSbKAOEwbYoC6xQByvt94DrG/gAoJximnqd1JvZny8rKp6/cjmZGKlbG49AVJyqBUrMTa8rG49HOZleGG0LGpw0nCceMgHZmrmaxhG5nBUqfgTwGHmcSxyQBPmcqJqgmAmuBZtl6/L2OZx/GUwAsAW4mp4fHx5FmrqUxIDdd0Wel4Ecm9frj4HFmLABcZwnC+tEJZ7xcKifYRaenEsdkFTEQw1zOxtDHLqcBZ2kBHsYARPiK18SnSgyB7rxyAdvGJQjnswwKT2JhAUqBy4BDWV2kh2NhyM7HrAFAaw7GkeltennHtCfGh2KmcyQ4KwNqvxpQWvRxpgwBYveQoZPHOvHJHQBPARywQ2oy4H9IzWoLe75AMUAtaFrjTae1aZaNPAGtRxVnTGKba1fG5qLVZhxJEAvkQKOrtcFfAH9JbnAji75o5WbvOfkLeoftZtUiVWZqKhgZogYAewnh3WYGY71n9WeGwru7JGaAja0yFaZCrBkrbQTtgFBIkcMbK/4AjYB2hpKmtHJB1NrjPimDxpsLz8F6h7JM8jtb29gm6AfgKtw6kcM2gAt6j/hxBVBQr8bvuhYiZspgpmJoq2YAuHvrNYaD1MQq7Ms+hOtI1JMxFa5AlgaHYpUprSNawRjNWYT4iz8AZ+Mqiw1lfXt6EbJNiNEcOt1rHDrswYat6wrDVVbqgXkHsy1rvakw4A9QSACywcJpcuplsWLKx2JasgS7F6anS2hJcoXhJuErQmowmuiEfhIqRl3KKiH0Itl60mlY2wEdCcYfZpAAHqa5pnKneas9st9m89SkRoawCxsIWMqnf2eIoV56AOd7WdJGIKcVpyaHdEbPYpfGA8BXxpuKYFp2h9s772f2CqOSnUSBm+PisCrum8/zlisLG+dhEETCh9Va2bJu+lPHtRB5Z2Eq0mvw69A6W2upQdqLD6umo/llQGUrGuzAV4oVx79Q8Do4cpfyj/lnEk0iFypfpmRbKUvR6ofKVBODx6ltt7n9xwoBnADQWYwheEWxHUYmQcfXRoBSM2rZAVNqv8fHx16LCZKLpyFRpg3CBt6TKapdZjInmcOKByf69jtdRppolHPXmNkBh6a451KxH8aqIZKKvyYah8fHGcdSJhEneatx2+YYmIRhBoqn3rpgphQgyqd3R4gnyGfN4GLhGIfoQLiGAuYS5sPAoWdgZvzrzceDIy3HH8ZIJkpnOaZ+hv+yeaYgWyqKUue8EoQhyorDihDRdmuNKvJzp7LS51shOqYuS5EB+iYq50HDMsvi55rm+qYc4TLnGBsvEytqLcev3LrneERIJlrnCue+RoumebsaSzrKOuf4wdrQX1C2LJ2LdrPq5xsTg9D+YdFmVQ1yZ7qGtufikGBmBucAe/DmscarS434Dgcpuw2K+bDUkkHqzxOcpiGjSob5sGEBH8el4B3gyxrCx94QAWdiamhygJKIa7vEd8eAgfrne5vaJr7mfmctxovcp0qTCJ5BY9iC5uEqIef7nSno50s5kKNLa2bzooR6aBE/GpxLzYAJgDDKq8dtSswr53qx5zlcnLKfIeKRB6MPSqpIv7EqElkGIUs2u3V5e8qd6a7AVerOMTChkW3YiV7hzng72i0TIQDFUghBEEE2AjzjvKf/XHujwONwRPAymVG3hPAzwwZagOkAQIAU7EXmJefSM0p7bwkOEWgNXuDUvBXndQCoQG4zvEThmYAABID0kbig8IHUHTFAuQcKQbeEjec00DzjcESN55NqkqbI094LN0A5AWRT122nSqHnpy24oVCBzRKPy886OdGvUBw4XLuNAViHPSpWk1cQPKL3ulfoPMgHkKroVBCSpvcgh0lhErNKgqAj5x9SLROlUDVS1dHhwr5BU+aroE+hYXjp61PpZwDeASjRJUHEgNPm+eC55nnnMIfZgZPmbgGz5wJIjVPAAbnm1dHnwoqRG+e55x0h5NMVUl+UjVOMAVjSc+cTkuySypp8ugvnH1NeAP3m/BFN59Vsq2JhYqfm7WCpaG3BepM9kPJpiGbo0ZwA0jwAAA1n5mkB1+YDYoTCFSC4gG7h/lXX56nLIecp6dfnaSG4IE3omNMc60EBjAH3Ot8AV+kPURzSWIEn6RzqGBiSp+VgZbHD6PYKdzroYJlAPLqSpgaB/+bdoczbY6DV0dHBmylBADIz1rko0dHB3jEkQcAB9QHAAG/mpAEb59a5gMCvOsSA87NP7BwAhVO558VTwmhmvDdANVLQF6nLBefX7EqG3+eIF8eBUBe558Ccra14MsfnBWGdmYpAyCHWucAAhVNFU8KgZBOgnIGaxVLPg8ABn+aIQJgW2UEf53hA1WGlUI64sWlfJoUH+4YIoJ+BchFak0DAH+by2tya/Hhr4kh58NK/ARroy/qmlRJwlEm5LC4mDUim5wMAmWTNq11r2yWywD1qKEEVej0j/BmghKd5Yvkkh1kHaMqUSAME4HoJStkajsKTQWRyOgiGJyYULTJYW/wWDGaqJZ4mv6dNQSdH/BZ6iBUm82dW7eaH3Ce4ATZSEOFaW/wW9GawwsIB36bcKo3Vzue3YlWtzGbsUhmlrGfPsLtB+uqsUFHo/uZ49S38lFBmW/wXVoZiFmGKfR3iFi4m2VGtR/+0MeZChq7Ce6YDwSFRQQf56z+DujpMp6wKkEo4KpQnNRrhQAtKMuAYG6GF2nq3o3YAkuO+QCCa0jNTYiHm2VChjctnTBftZyOKuhfq+0gKB5BUckZaL00zxtIGbudbpq4Gx9lGFyYWt5rsJ9p70Av7otRzcFrF2mEnfcChGVoWNhfaF8mq8idwEWQaXLoLZhYhJ+C/ujjiThYgBO7amEKb4kworhf2aG86C0tbapYX3CdsnNGgKWcTE86S9828JXH1NkDuBsKb1WtIoC1RUVB+qbfjraBxFzSgS5ADyimKJYDxFuExeGOTqhrDnehTIheFyRZu5zcBaRbB+HsB/GkmozYXOKvkJr+LxhfaCE0RfQYlgIXx/3u9Ws4XTxqxbUbjzHCiSA+zWuDvABga7EDFHalBYRYGs5Rze8seolj6BbkZs+z5QYDsk2hla6i1oyknNCOcpmPmLG3aqPjq7MGhqtrB3oHryGFwQQD8gXZhhq02Arr74kW8hw5K0BxwIJ6it0DsMzUbTkvlwNVA2KqOSmnBGusvjBvIvEz2F855PoSXAQr09DQuOOmnFkGhapndNqMjWm4I04VmQ6MXDCf8Aew6k1WcpgelG8dAwQDB72KnSwSjIqcRFnGG/KY6F3PAEqYBepKnk8Dn4dKn1SbIJgZ8px0vuosNLRL9mpfcYYuv8qMnfR0xIUaHAycqoZZmymU8hrcmSInmpwcWskCWp6qmbyluqHNJrydIehf7HazyxgPb+ftAq69LYMtqw3ZgF/uYEjDiF/qhgUywiAhSMO8mKAHQMzABBgEcATeDZwHiICgB/xACwAhAbYcVAR9EmpFCUsLdYeUiUk4pIlPyUwNRclK2IXs8WQDyU1TsNQA9uto6JrC0Utn0H0vhEm8W961Q6chcu6Dbrfn6+jtgy2KxTRBH879HcMfvWwmALuYdZkyLQorkfcKgGLP6KqH1GSI2+8Z7naGfIXdnDeF6mTCXaEnCoN/YjVK7oFKKjIvqKhrDepiCJ2iXOrsP2Ya7MotZyqyYGm3puwQ4rciPgDFAsmIMy+YBwqEGywEB4lIyhocHzoFgl845LjVEl38XTRF8e/zNo5u3fWiAuGJQBJzHW3E5QMCXyJZCbHkzIJZaJjjRoJe++i071iJbowjN9CiklpHJ4JZAu4qLiJZZ43qZ49vCADiXrigclxyNESqxuzuALyKGu8eByJfCik9iQ1m8lldGKJfHgPeROeNAlqfq5wFuEHecmdkMl7a7x8oKKKCXSnpJQMSWC/gslluArJb1+jYBUIGYYow59bFQ0kbBnVzHC8KXWKLwXWJkYpdle86TwJfdKRKXSUFkl4iRo+xJy9KWHmGMysiXApd8l3CWXIowMcZ648KMOAqXpSAZywJGWOeS2zKWjNmG8Rzqvkr6ljyh1kIVJjwtRpYhy24Q3eFSl28h1kJa56aXxoHqmjvQAXTegySWGcofAALG+iYsJsIrHgf8KNWD8JfiAMhyfC1sE4WG57J5hmpbT7sWlmihWACkQVaXBC0Cl9VTNxEE8LmjtpYgnH/GOssysAtrMktKgVHLwqB8lnSL7kCIut1qSsp4Kk6W1BvSSUrLrvSSJsygAW04VPRwWMnhliI8HBrgpx1mjUbhli1GVACI3ThUmSIRlvVmOeOSo+6XHxmSJ/1GONGelpaAlJYRl8omfIfWlhaWGcpuJ8RHJSNczLugppXOgPLGyZbsu4rnx8ta0u1TyJaEGx2g/9O64ToiI8ctZZNIONBNrTEHY2NGrK9Toad1AazZetLqCwBSzA2GrNo729qCJ8Jo952ilmBzapeLXDKGUEh3/P2rrJPWQ1WXPZGwY0GBlxekl68i3Ya6y2q6q+iFNEJQXOyK+izCGAbwln0HXquFoQYkd7sl8Xh768lyWgPac4YQFdYlCFjnjMTKAJpJoVobSgM3yN/QtYygFNtJ2YC2m7w1d8DS6EyLPYct4lgkAWIjhrc9Wcvbs8/B7OoNeYWgzBHLwVIS+Vt4srrbCytOlmNktKTu+3rg7pOqqLGJKnsjh6p6zgFqekzwSAiFTROGSZiHBtp7yBkK9XN97QwwOFr7nQAsJEHa+FDn4eyMlkGZ6V/ZZILcMbd94mvnli4QqHExwIuHCpbqkHbAIGx5Qepsr13eqVOd3qmpCrJtFJgbCMqXGxaP8sEBcwM2gAWXw+h5QA0A0QF1AE+X8QhlloKn4pY2GAoop5duQeWW7VJ2wA0A/xhVl8sWt8Aal5rAMkcom2JAGLP0izOXvXFygBGaEEdyW76KZ9G7AR9BprOZy+IBupbthuBW3JtqR92bkFaJY+ETuZZJy3mWV4fOkto7qopwY4ySBFMWUIcrQKst2xyxdmFN2xM6C1GPC9mzO42AsBzKanovI3qXTduevD8AmbH7+n/yYKi1QlaaW+BmwDUAyZaIloimx3yG+vCW/YaxNXyXW/JblvOWT2MJa3OW1KFxQuq6AovThg6KhJaaylqXhvF8lrrKQZcGuvq6HJayilRWootMV9RW+rqYlyC4tFaiimxWWyGMVsa72JeUV8OGoousgRSg4osGJ8RX1pYkRwMAMJdalwOHpGmrlggxzDkElwKKT2O+wPq6jFc8eqVgO8HZEurNyKeZo8JXwqBAARENBmomlq2s7bAyRqJ6A4dZyrCrlzu0ViJXWPURJhfYSssgKW+K71E8XJ9m2OYqVpkasKhwOrdnlUt2ahar+uOTkevJ45H2SSqXcECONR7Vf2kqlsSXbnGCpUXl4pcRgI+SHBeicvLqc3VGVxGW6pcaaIRa8AjpbLPBaRGBqPi4oakYTe/j9YPcVlxW9xq6+8GpwxsTOHZBsYrpbLIq85I7a26TrIpCxuKLbYEPjNWzl41Ogeoqk1sSimiXbFajhm7qVYe84EuWhuulkyFRlcgJ+qKKOroWtfj85eqwqDza540ewNLBgrFNQb7AjCBxwP7Doke0AOEbJ9F2m+wQe6lJuELGf3XLMEo1tK0egYu1FYF+wCVM1sKxWFDQ1Wl+Kyv06dRgdbrBdDTB6J550IExmNF7rcZvSzEyrAHFx2DK1CkkALOTjdCNKjb7GVbZVu0QfTE5Vw3h+5ZgVheWOnvqujx7CcatrBqFC+BMika6j/llVvQwsoqCBjqK++urhLrKbIvHgKGT7IsVV/OWwwlpEVt4TOCaa2BztVYuEOKLc4YsVnq7x4ARw5XH0BNhm5jGDdtY9V+aVauwi9YBlIr6i12k5xJWo7q6BrpPY54Thrp1Vk9iSliL4/2GHciOi/RHS4VMRgPLg4fcivfyaruiewnA3KYZy3xWclf0i9yK69Q9l0q6V5JbF4aXFFbUVjJ7Yqy0C6GWMDF2hu/ZGZYqekOGlFbbllwAO5ZQgCAyeACCw8fqk4ZjGRjQmIqsij2G04c6uhKjJ5d+mngBJVaqm7gB14NPFm2XXMt0HB9KPKGyVjKW/ldyV0NXLeJMiwFXeVYtguDYx1cEPW4Q3DOtl4BW7ZYylunK7yYUiwOARWbjBLtHBVdAwOMFrQGSylErAgnNvQSyjJXtAc76zpdZIk59DJJGw4KRAiGhGIsMoBMC/MMLeiGVG4cjtcvl/YQ8U8u6ktlWMBKwE0gTWHD6wNDrzOdQUw6TfMGNIdygzSDuba0hPGHtIQAh/vQnQEkHsZA1+ecTjAsvLMzD66HSxvGHfob0ISfhPVHg1qpn1yottTOZAx0TnLZzXvBLWsaJ0dMBAETdULMFIEMKP1bF0NSBGfCKsscolbJrMsHDIcP7zeHC4IAHwo0zXwDP3Cwpdt0v3WoiGiVAIGwguOEpSMgBo/GAod9WfVGoUJdAOKtT4JUGymvEh+UWTDKKkFI7rRP6+6jWhQB0AKvcHFsBHFQAJoph0Os9IuxhS9uTpHOawW/yPu32TYzW4gEpXaABzNY4ASzXFHFtHLSG4NawRzlc9OIeFyyynUxxh1VZLgBCFPzXqEe4UwhzXQZWk8MBmKvkiQMgoOYekPVBgrGenFIThyL+kMotzsiTAfAxFWkrwTUXQwbPGpMHXvHM9C7qZFrsRA1M+ReggGcpRAHNkPerCYkK1+RaPYGTB5rW4rGWV5mSzyBnFfTdeoexAZ9XngHEgYGE0EM8aoWwOOH26KhGlSAIQp6TYUnZIr9ajYFmIl3MjYDJSJtJhzivVq6BWSNm1j0qn1bSQXkiJzr0AToHW0SDh0bXNSLGFo2BkKBUdPcb5tesINJpJhpOImPxEpIQEi2CYIrcFvrAcCGQIw8FdJCE22pQEkre15ItNwEjLG7x/NYLohbgNRH6XMoA+ADZAW2J1Ea3oKfGrWBC9TNhE6DSgq1haiBJITydFuFtiIpAmoE0APpc9EF00T8BIhMqu3KABBTQAHKBGwuVWl3HEde2EIi6AQsp1qI4nmtp1rfjv9C9JmFiGdbTeinXCejSgqJIpiI84hnWrwSpSULNXIDb/HwsYShuQQXKsnRkTOrNtAC1yYNKG1fCLXYADCF1qSPL5daqkScBggEngMsmjXT0y/Hi8QEp6ZwAfAFoADqKikCJ2rVAFuGLIzbGdkDH4jnXthDN1uYg0deLIzHWMhaxgYpJqxP0J4iSd4pYY/xXrwFuEYoBPGKFABHnGIE+pO+ca5ZuIb7tiyOhpu3RiyIZ9XyBlgFNFjXqK6dnBqPXGZGWAIvi09FoAXJKPOMT1kQAUwWKkef7FjrZiwFSWwD4LAQTZtDdAbPX2pbpUrPCS9ej1rGA00sz1qohlgDbtdpavVH91rFhngCT1svhBFHl1+MGaUxbEt3WRBNWgbrLngAioS0BTxwE8JEXx8sY0HAhshqP0BLAMsujvKBVyxJYZ/Fod4qgVVOqYQeOOhOB/tXQEjz7ypY0CverbYKN12lrxoGJ1vgspdZh19eZOPXGgLJ1oQTYcsMB5EnkSe+7w6YXsjZJ3qg7+7mqXnhAKcTIQ9YsYNPXDOwK4v5S89ZLw6eThaEsKup4zjE/1wsqK9d2w/ZBwDbLJ8cYddgUrexGVddiZRA2P9bFoXlMptghmWKNVdegAdXXqySSgsWgIDaSYCmBi8LCINMZOo0KgPA2kDZ16FA28aHtsH8sm9b9198Q7EGJSwZ1nyr1y2qBjQ0mISSir9ZYSfzwRwjX85A21dbxoCdZBDZoNtXXJAHFaAGBUhI/yLajZCjB6+ebbYJP1lqJbQWP1rctD8fryXJK09c7qe590tj2HYvCJGrxoEAoNEznYPA21JiJ19Q2cQm24fQ2/9YINhcAxaBMNyg28aD+UQw4JGvEN3A3JAHBl11I1kCEN3A3nDZ/WlujqqglaFMbrsOb11vkC0kCzeXWrcjUNouMeDZcLPg2gqBkwYZjZDeCpAyiYjYLSKRbfDaoNqHtq+A8oM8s2GEJk3zNpdZHGCcdU7jZVrg2CMqsUUQnLFqUNyMsVDf8zZjnbYOh1jdcgtfOl2qBjMEuBVYQi6leoaXWOouaN9oTBcv6N7zKXC0F1vSL0sxF1yI3vu3EAGEpzoGdenXXxjkj1+Y3Y9iq6eLjrBLMofLC2iaAWgnWydf88eyNF6cSogcmZrq2N3UAsriZ1ojH0Dy4h86AFta217kj+tYhAPbWFNYsgipXjtf26Duy9AHO16/c4YocUAlIbtZ6w6+00mh2qu7Xm7SNgc+xGFjrIwDWntaqF0ipgetB692LSoA9l2Z4Ekreg1aAT9cB16hGTLGaN2HXgAIR1q3X3Nmb2S0JSWfYiLK5mcKJ1yMtSdckwlnXcTdQARynKTdsqTnW20TU4hnXGGEt1uk3rdZkwFk3LaDSgxk2qTdI4DOUitB51qk2aTfZ11k3fAC512QoqToZ1gyiEehFNrUWnlmLI1nXaYlpNzk3thD/Aec0EkiX4GfCOTangF6DuTZlNx7Ev1oF17nDBcqX10XXQswSNyKLT9el14Y2TMvl1ty0nlbl1qY33DeyNySLXGMFYXXXhFAN1yY3jdYZ117wcWMyEqas6UNjeylR5FqEYy/XaoHD17BK+4FdNtY3B+MD1y8BDda71ojLvdckoqvX29eqN+eaE9bb1rPXk9fCorM369cxEPZXIrl/1z3W69ez1mQqKlMANnWVgDacjdAxUzezNrGA1ONLN5eFIDYpUyvWmzaxgPaiKTcYW6M2W9exYUvXWaK9NyPW8zez1zaiTtoDNgaAe9bjY3zAQzc0O52Zx9a11pJhccN9Nko3LrqwoVyBF9ZhKV+TwelX11HLjMFKGDyh2ujTx5IiF3u08dOXO9dD1xBBSTb8sZWAtcinxjNorza3POs38zazQA8EOouv1k0qcMa6SB/Wutqf1+zaKACmraAR+gEcAQYB+kv9Nt/goBE6AT/hN8Ff1jM3WauG6ehLNDZ0Nn/X09b0cAA2Xafz15hiWwBrNrwTLkHgtlbk3LUhC6A3w+lgNqdnhulMNjlXalyyNjlW8LZAKDA2xrTHeJ02RDer5zcBCDbLJxjQSDcM7Mg3ZJjItpw2NdeHgLI26DdkmJvXJADWN1WMwLfZ7CC2oLcQpraj/zYDYXoBNAWf4HoBogBgKHvqezdnSxiA+zer1hM3Q9ZEIRPiZLamrT6gcIBMAceBb+B6CqS00ywvDRhawLbpQl836tD9N2S3OjKhQioATLZ6MzAjpDdktwM3mpa4NveazTeVSfg2fwB4t+aA8DdENlggBLbFoNy39LZp7aIAnLZct1312YE1wYbonTckNpWX3LYAthntgLc3wZF5UrZp7HMB+gEUASS2QLfkNiunajevNvRArkCygevIxaEm0uod4zZOjVi24aoQN5w2n0ECtu4h9ZSfgV298REM7WgA09GBjIw2HDfDuFq2qDb7gRK2cDaoNxzICTBjgKcBN21sVOq37DYatvq3VaOOCXaULDcXLMhpCJfyNqw25+DwYAw3ZreMNwa3nDbiomTARrZQNyQBYWmOt4Q3wrfZgSKrPilcN862PDd7R2GTvDdCtxi2xaDZgey2pq0ct4lDnLYGAMjkC8sitz62zYG+t1y32YEPGtK2gLcKtvQlIrcAtjK322bUt+EQIjfPNnnoLDdiN6I34jb8toKgIKWstic2JUGytwYBcrfytkwBILZAttI3ODfBHAtIsbcK6sK2ICcyyxp5yjcsNgjKija3odKBZ9bpnPI2ybYbF6wH+SSxt9M2keQfNtSh6jbWlyzB3YctNpm3WjcIljo3zgQgxjYpejcZtjdcoqMl1q02EopGN/IjjTYmNxG3pjbW4dYgaMkp6BWonLLdN1nZ3KplYynolGEsII438EW2NyTD/PAGwfY30aU0AAcnyKLsAAGxNSNsS7bXl2wG1ySKSSJyMTfJCLc3bHxRE8NkQDUz2VNZsP23JCq9oJPDSIF1MshEy8PLmm9BHtdcy0oLMmd58CbW7m3tVnjXn/OOQLTLxJBeSoGaw7S220qaVjggiX02Qnm6cWxbY3rCC8pKxIAaUHRgwfT47ICgCCJhoHMgLcE7qjg7XomVS/WRDWqMpWY2VjhsNormvmfysoIRZ6ut5APgpratgJRzpeBHt4cADPr2UKS6P1VEyNIdWbGz/GtGcUrM9CB04119tzYjh7dZsDKwVaNXtie2tfXhwpPLemjGgj4aZbUoKkojMnNEgO/rBGMHs0zHrBO6Ns/WN10fV80jg+aCk1IRq8IgJxQaTsN6i07CaLH9ar9j6lbtK6waoDZf8w+22/0ueT+2Iom0WnKAXYDiR2I6RtpzSP0gVsPryGH6T4sSoee3praPHM/GcHOCsYatbZDPtl2AvCKvtugqx7MkwLo2UAB6Npm2n7d8EkS8M3qM8XBX4+BdCskAObZ7hqgxwCcBCzi3WaWAdq2BiyOLwttFOHbZM1mweHcM7OWJp/25U2wLTSH81n4TYSXWIUg307alIGR3DOz4d8R32Hf8AER3lHdI1vpE3Ra7tnGgmHboo86APjZuNvrWdtZfVwbWOCpBNsbXyvDgU8NI9CDE1sQAL93wyfLbAaEUhkwqaPF58Q/BbHfsd+uXHpMBoFs35TMVQQGxcrvgUqBQS3kAdh0gVHbINuSk/Oi9BBoio4i9BF2AYpMrgDKafyUjG/+QkncFiMIhaQFbYNJ2nYlpAJKMM0sFiYsskndViVEGrWDJOzaHEjsdAP8B1qSbiblUv5PHt4O30QEPq7+7N7fXtnYXa3BquemjPHbas9npu7e2tv/WzKJNWB1qTSMoI5ZHBCKTARCAPHYk16wpv1BlG4JyYpPsU5MGFneEwHBEarmLNzwnteK9K/fXIbJHBC0XT7YY8F2AJiJdiRmJc4mZm1wStiNxAL0c3RbZgavq/wFueKOI5YmYwZpxI4j9iINACiP4I3LrAbGiy6p2zEEchrAlqiEmIyJJbCG+QEcAsCVbieuxNRvzQLUX6iNM5a81IFvkDEp36iO+d/2VdHVSEQyjRAFINhOThnbTYkZ3/LAOd/52jnYZUE52XnfCc0y6LneKIiLhQIk+wW52qMzBdx52iXbViV53znaKIj52KXcYWpF3fncOd7a0okj2QTFBx5Hud8F2h0nzQaF3yiOlGnfzYToaI+F266sEI9CBVYlhI7LAMAlFd57rBiNxIjxMqnfppMxBwCZ7QHfzoSLldii1FXZldt4iwiPld5OJ7CH1d8WIcSNWIqAmtXee6wWJYZKNdjjhY8Old813dXYeI013rXYNdlEijXbRIt12nXeVdy12OAuLIrQ380jT0BUnNoeweru3g3dWd3JLU7eBwtF3wnfsBxpKwcO+a+fam8ME1yGgpbLedsy74bqJ4EyyurZDdqu6ryuRitrjIbNk8DnCObDewXvpJptQuw/1bnfTs1526CqPwsojPPE3KRJGlISJV6aihOonw9OIW3Z387537CHhw8TIX1Gl8XfQggxJo3pQq2GOUGa9Dkj8IIMaKCsUjIbBIklMQIYi8Lgbd8ezb+iDG6Rg38KsIdV2G2CjcJF3N3dbdknBaMqRdsH9Ekc5dxbQ8sB0zFYjT3Z38/l3YZI2IlWZmZN+AacneOO9LMIgarcMZjLHI3vegY43sHu4dL0ZaAqu54mTkySFN0zk+4hUdFd3QzaTAW/ohqKA+p63oIwL0PLqmsDjwtUAZ+PdmxhMkmy6Bp+2jHbdt+43cNe6wpe20+u+dmfDWoGhslqAjcLRI9V2lgTC6gTNIQTSwOym4YotBxABCxtoAZj3QGOz2YasgiPk0a/y38NdSSyCxI2g0AgCcAFrU6p2AsCHSET2JiI0IK9hdQGyIrnX3UnOgZbXsPZ5Ikx2LEXMwq0Apqwktwm2oLd0aKat6YDNgTABogEcADFCtPZAtq1hzyBytvK2Crf6S71gALZwgfnsTPf6S+wgwbYytjNhzPc+oVFDFAAGgGJhzPeit+S3BgDZADAJxzZ09qK2YrZ+tsz2NPfkto9BFLZhQr1hzPdMt9ntQdY+t3z3AbZMtzAAzLYs4Gz3n+DNgaIAzYFS99L3Aozc9oy28vZ/4CzhaiA091/hFAGpgCoBugt6AQYBjxc3g4L2IBE6Mmnt6YEi98L2Be2a9yr3qvfP4Or2TxdAU9Igpq1UBEwAzYDs92kiqvZq93r2Gve+wNK3OgBR7TQF2vc3wIy2TAAqAM2B+gG/4foBOgBKXTL3xFCmSpz3ie2yYeb3M2EG9kGsRvdm9kL3svd6AAfAWlwMthnt9Peu98eAb+GyYRUrCJwdYfoABoHZ7OhhQFMy9ob3OgAu9y3gwiDPIC2Jc4iU9u43X1aP8kGgVFjUk4Fg0Lpidlwg03aoMBolK8vtgRvDzAQIdyXC6QHZI07w+ludxeIhQ8ONwo3CcoAzdpsaCMHw9qBSCmofopVKU0tEgPhSRq1NOiKDsoGOtR7VJUDOw8j3T8IzyF/DEAGgImuA19fYu1XCzyAO1qtheteU992253tg4l43TtfeN4gQqUi+NsxBhbCARM7WaNwBNv43rtebtKWAneho4W2JXsEGcc54PIwsU4PNz8GVFFwgjbiB5h6GRddQgWI7ErtvewKH/wAlFmmTssBWSQLRPigEiYA6DdvrRtLLHKaoK5gSTgfigOx5P3toC9VxHVbDxOsB/3Zet6slwnND9yFJIQT4JBe2W2JYtua3iyJ6hceBckoT9nLY8Db2sxq3XreHOUw28aExylP2XYTwN3P3uBnIvAv3uDglAUa39ZW4ORfYctloyimmEmJ6hNTjE/boN5e6TpMTE+vJT+0CiotDtuCT9kAJ8YjzSEAI1RBZARymMDnoiAf352CiVkPWlCG9qeKJR/dNYvv27QlH928YzyhVDaGAv5KiN6bFExMqRJlwk/cM7NpQeoTnRxDEN/bDxbf2zjTDxOdHe8MWTWohN/YsYY/3d/Zy2bV2h8Mt9wcAGQGYu5IjGsNehv4BxVe6ekcbF/aUIL4bUclH7NWz7pJMgJAB7iEthDbaikCUIf93QoCQwdeYzwCUc3YBJ/fNvaAOpWyYGbYxxlB73MYrq7FADq+YAYL1UAmjz8DLOJf2WQEhG4A1txLy60MbP3TIDmUaxIueyAAOhrB4YEpp2W1ADgxUMLFywQGJbEH/d0JhkiGhp7KCNDiiQqNZbhC9tSnUu1PfDPLq97LA0Tcp+HPKR5HBL6CycsWwx7NkDgXC97M3KavqZ9KCI1TBBNfF9MSNNyiPy5QOc6suwnQOb7djkfQPFA6MDmtATA67CK/y7+vMDpQPTA+sDsWxbA8sD3QPjA8cDwwP7A8MD5hi7A70DxwPsiMT6WJA8mBJksQBoWzGFoIOqul7R3krCfDwChf2U0s0a45rrhiYmKgOKA8nYKgOlDDEjDjjS4CgubxKDtvJVEOybyv9wPgPbAAEDryBFFoKD7gPbhEZkv32r6rJm7Vhp3mNABVb0A5gD0RRxfWnm/YBE6EaDrLBSg6KDjltCA9/9noPwah4YbQBMUElgWZ4WQgnt2xVWg5dDCYPbKjE8R1BdpVehvFhR/doytnAJ/fBqJYPakv79yf28cCU48ZRNsvaD8X1ghOhp9yT521SOL3WvIGYE3tHw4CmwA2Ua8UMOaDQ3cG2DyDRs9mCE1HIjg7RhvAPzg4GDq4PDioE9g5aHoEQgCOAIZkIDx/AkrccsdlokKKBDp3opg8toc54+g5VDJGIuA66D06Ac0nPwfcTyehBD1qUXxjLZxPiZMGZ6RO1a5FGtgNtb8AEwMYO+niq6LnNjDdVRO4gxpLm6N95xnGcuHDjuuB0eLyAYiGCpMs0YiBqDmkP2QDzLekOjjF0iZkPmoAJgEhp2Q6q6TkPbs3It4dG5ulp6Yv3JAEQgOboeek6D6GnC/bCqQoPFQ6jFj3UeGBX4d6BwA4QD1YO1Q+ZgYc5pKj6mdAPCegVGtUOjQ/NvQ0PEVaOw0Uh5FJC3BgjE6E+Ks9rNiN2D0U5rDlb1ZmATAMtD1KjW9T6mSJJz1UUUu0OoQ6ngR0PjEFDGkmB/Q67910P4f2eyT4rNiOgD10OTsFODisgzQ9RV89VbhDaUS0P0ICfgOyT/3j1DlkA8NEwi5UOyg68gJGIu9QLGoLB3VEMOBUPbhHjmhKDF/eBDgkPQ8t5k/ArlascEhfxqw68gV+1QaGxkmgQiw66D2sP2TbqGwEO+w+hps6Z8Lsu5/gPoaY1Dz0O0AHNDlMO/Q5tDrIKAIntDk0PYQ+ID0MPwMWdDxRSow/Ccl4O1w6guVoPsA4JwNMOzg5TDk4PDg7PDn/3wakj9luip6ggD1YP6iIaDlAOTAKiDge3n/fFYzRFR1DoDiWANQ/g0WcTEMF2AU/tdCF79lYOVQyn9qIPeg8aEhYPn1CxujsOOW1Aur8P27PmDrJBvw7KAfIPGhI/9yURmA6yQI3HJw9uEX8POsNfD2uogNGz2fcOFOBTD70PLQ4XD3YPAw+lNy2g2lHvDuEONw8RwiMP5FJ3D24IYw/3DuMOjw8TDi8OfQ9TDpMOMw9nD+wQrw5VDMSN1sFgRqCOUI75sBw5GI+ID18AAdlAj4gOEI+gjtWzkI/kUge3DYq9DoMPQoAYjnUOVQxODr0OLQ+Ej6iOAw7/GFcPbKj0jogOLTpYjxcPXQ63xL/X2/aAj8dgHUeHOB0P9w7h/OCO8NDIj18A3MEVm/GJitCsUEPWGw9oN163ts0kurvVRI5ZABoj4A+sj2L2JWgGYyPoAo92lIKOjdapt4st04mTspnZR+x8AfyOMsvq0VKPldYj96809s1wKlsP47L1otfUUCLwjzsPLOR7D4Iaao8dgPcxBw+PNA804I7HDlmyeAxHD/CPaaRnDnyLfr3nD60OaI/MjnSOrI6UIYIiww63DyMPt5ko494OuI8PDhMOdg/TDs8Phzj4jzMOoo9u5//2B7fUj1CPlg//9vAKVI5QjyCOiI6GsVTBNcHwY2IL0CF2j60OhpNH7HABqSGwj5nB9w+ordCPkA9gD7tapI40j1KxITHxYnaPXVpnw9mBM6Yd1/pIJCmOUP6PYq2ejnaPIA79lZFBwY9OjoZxow6uj1Ajeo82Ik6OJYHQjraOCbIyMMiOvI7RqxyPAI/IvXrg+LiUjx/Kp/f2jy2FLo6IAXaPAo17DhEPoadoyymPqY/5ZPAPqY5IQcX1lnpJjmmnhcP4jyiOTI6GjsyPlw9GjsiPmI/DDuyOZo93DziOSY+4jxaOTw+TD/iPzw+Wj+WONo4ja6rwJI7Jj2gOZI8iDr8P3DZh4LqO0Y7Qx71gfI98o9mB/pLwGDC0gQ6ptiAENCEIBHaOdY7tYG3By6Lb9gmPgI6MxtyPVw5JjsMO2YFNj4rQjY68jgjR7ILSjiP3jzUUjqIO7Y4bEZmO5I9OwhqOVQ9uEGGZsrNDjnA2YeE8GJ2PAosJj4cBXY6Fjj2PwMU/DhYOw4/6sXsPIo/3DmKP9w/ij2eqko7n1yFIA46Kj8v2jL10dMQ1rNhyj6slvY4KjquPHTZrj/eTFM3gaDxbmKHGgEwI+AF2jhNWLpcwj+6PMRDbViIBgA/tYAe3SIaHjz/2CLvKzM4A3XB5kbMFEbdYiSI2hMFWy6It8/ejd66BVC2v93JL2g6F12qBG/b4t3ePqtg3jhkP7ldygO23oadXj3uOugiizY02Z2z4AABlGs2yjzv3oVYtNrAOo8vPj6AOCRCiOH+Ojw8PjiIBdqh3j8aA2g+/jwXLUclvj8M3vRNAT2qAvQ/PjmiOVssFy3YO/45paojLtw+3mIBPFw5C3bBOR/aUIbBP9Y9NQc+PyY9WRc+OE49iZXWPz48jjwhOvw4IT8+O6Y+9EkhONY++j8hOdPs/9geO2E+Hjh6ODo4YTjTgHEcmNrHXMRHPjvuOkSF4TwXKJ48ej7BP2jC/9zDC3LQ4t/wA20SX4BIh+daxyYhtusrkT9i2VHaUT/Ihr91ygPVh2/erUrRPeHdMQfbWXcz3ktRPZE72AbGAOopkTjRPrE/Nk/RPcDcww1G2xYG6y7ynoE/Jo9xOX2E8T1kJvE8+vJxO6dBbIeRPtE9MTvcCUE9wAYd5iDdCTmQEWOBsTpM3uuFcT04OOADoD7BPMQRSToaTpE6QUKbpok5MT2JOsbosT2qALJRcUQXLcDejdhhOfAGP9iBPX48eARuPpE+P97BPfLFST6hPQfngAZpPjTc6x9BPIsw91PBPYAAaT8+OCRHHgXQUh3T6wO+iJcowWO8P8KAaBlqJpQ+CE4Ug/IGyN4c5Dookob1gOOLEualAAsWb2I/2m/flN6rgW0bH46rhmTYvjvajlMAswi+PcndrYQRInFRZDvMsDk8ZD3HLAWLfj9NBtuCRmgCPAov1EMwnKGtfEyMpXmMqDzaAxk4y4JI3QYDWTklpqUHAT16K3sDH49oPHE6TDvajbo6wjg6PpHNVshbgJ63hTkeP1qKYDxFOryJN1lJAJ61ET3aPiyMkTrFPkU9xTzqg6gAJT9Yhbo89hge2kU5xTrmAMI8/9+3X9I/5CrZP8E7BjLZPGE/bWLZPIo62TohO79kxj+GOzde1jxOOLcm5T4SPgbU5JkOwVtoiDnJHFZjW24a1xnBFOqwgmQkGyuF5CCv1ZtnotcIBjuF5vWD47a21NRosFjnrUiBVaSEE95D/AFEj3iK+I9ri4PdT5Y1PdQCoIx62Oir0I43Rvk9eAV6ZWXQ1gGPxd8BGmvUhz/NnObMPgo8JwYBPDk/7EpnWb4542LAO0E4Iu4BOD47CSGNO0E6lo+MOsE5jTqVtO2sXDqNOgiJIEbQsAw9eiuNP00+t17NPpo+Z3QtPbQ9gDtNPho4AiL83AkhLTpP3thAmjwLBgACxu4BPCehCTjF23sBTTt/ypaPDT3JPFHdMTmtOGmyZ3PAPW097TuWi3o5n5KWj91CqT3NPIkiCIjAJN4639/eOo8viIEAAxYEqT3JKGmyloxP3t457TybS5aK3Twzt2g8HTpEho3ZIAFdP76juIddOY8rcT6N3jEDPTydPL09EUCdP+E4vekPWhE+CpKWjzde4OX5OORSBYRjQY3isgpmhHUe++4j3UhB7wq/3IIGP99oOsCV7Zo/3F09gD4eR2w+6jzsO5c27D7digo85T5qOwECHD3sV2o/a+EmP/WqQz3oJCM7VQMym2U7hD7sbAkkKj6yO9BMjjrgbYY+Iz56PoYRJjgi7m48rjti5A4/bjq2O69Q9juf3ncFH9hgOv4/ejvKOzY6ozkKOLrbW50DApPfysnlOB0TLj72OUo9bjsTO/DdrjjNhrfxJj/92yM8UKk2OAo/q0C2OI/fWevDltjtvRTNhbYkzYJWMztgbQGN5M2DpiDAJbYnMzv9Pb0QwCJA4kDnszozPM2EzYftF+0SrlBzPbYn7RZzPvWG8zozPfM4wCUzlqQkd7QLPLM/eN5vcws9ticxSIs9YKq/cYs7vRdBJCvEzYeLOY3iQODX3ks9Mz+uUW0HHwxY21jb11waWTfYeY0HDfM9qIW2Ji2dWN9039daaaArPjbcDMS0BHAHqzv2NGs+EKa9HKBmqz9S2HHWTNoBnJk9jyFI2xLnOT0ZQhs+vj70SlTr3GFrPoedil5IjGNu04cvAv7rEuN1rssCWBa1O9kBrIDKRvk+Za8VwxLiK0akV6raweki3BnTL9k62SpmiWFTBHdngNUJjeEDORIKPQ/bz3e+JXvC7cb7tCcAbZxw5vJeeTznB3s/fjmbLi4i+ZeTBUMFxV3TAjjG3t/kOjTeHALxt6tAhz6kJPVN5IRKAXcyKeUkDbhCuQaHPbODGz0DYRhGvNHl20c6Rz0DYB/hSAEp3sc8Rz6GmRYxtBDZJgXeJzlSTgLD11J61eXbDTlST+VduOC9cnRmhz8/DKc4xzifAgl3utenOOc/+lXfCL/a5z9VF0c6qeCfA8sEB1VfDBc4EwYXOTXTVwoeIJc7hzj8AYARSsBbgSneezoROM0tU0GkAFuBij8nOFc+SzmfD2c6RqcO5Dc9JzyIppc8KgI5AvRlZzofCTc4tztOpJc9tz+aBLc9QI/nOJc7lVaXP8c/NsCUAkHU2gZCLrk+zvWDPGu3MTVG7Ec6ZuJGhcMhUwJJYtQGhz3aUY88lz2PO87XjzyXOlc7pT1XPX08d1jXOzuP4TnXOnrT1zrG7zs8bzEG0IyDCIOnPf4+2EE8A991VNujrzU4dgYoIFck1CbHXM8+VzlJAYo5XorXOW8/9lKthv1Wbzu8Ba2BX4Rd227WezpQgA6GKCOU2+U28SXgBk1M7QFLUAc8bzKVZvBkHzqWP2YH2oUGl/c/tdqlIV87sAYj3NiLBzgC618+/AIXwkln+z9jBn/x5z3Oonc/eGxzrAAxdhQjA7bYaCP8BmnCo912xzc4vznQpnTB6ha2x90/8AdoPy5g9zoPg39HMTbLAThO9zlkO/c7Bz5tkt46DzsPETleJSlf2DbCWasPEIC6ZcT/PU/bgzmfl7rOtzg3Oz89Nz5qI784c4OH9Q84c4VfoTc89zmOAeoSALkwCwc7NQc29wC/MTY/2kC5jbRVpYC8IL70WWMBfz0VgvRhYLtrnw89OTyEA4k7OBCPOsoBY4VxAWOGPz/TAovGlz4CxrgAQLnqFmg9i3ALEWMC/z9oPnTD/zlIAyC5y2CgvuY6oLsAufc4YLiDPk/fMTGAvOUF99vcbg8/MTQoFIC+/zgdOS2GtzbXw5gTwL+XBNUEkLhIoAmrZz7AvgLCZdr0cuC7/eBxI9c6+Sww5NcBjZEgv/8/ULl2FNC5oLn3PqC5ALgPOv870L3DQmC8kWsMAdZO8LpOTBC7eTBSkK1l4LgGxXEABsMQvAc9i3aXPGc7ZcAdjr8/l2Dj35C5y2CwuF04PTlcrBLFULgAuw8XCL6Ivfc4iL9kO6C4ML6AuEi73E7diZC5thcwvFC9QLmou3/JsLjHaqhHsL++PHC5NzooupWtRBm3PsC+mLzwvfSDONogu4IF0aaHP/C8wmQIukTHqL0IumXCaL/fOdC7aLwPPBfh6hIwu2M6+V9IESMAzwNZ0C8/rjKLxeC5YIFQvcc4E5f/PrAT392gBRGGOL5QvIcUBi0/3HFFKLveOhi+hY9mBMC53zn3PJc+aL84j5c+aL1IveC75QZvUri9kmWZIw8RtwEwvzY8tj3DYG45+z77A4laJVu7PGw8ixLhjQNHmJsD98Qhuz/GIsCSeztIvLs7rDk7OJDbI10DAzkUpL4pI6S/uthtLbsEajhtLcLgLzoXo7MHDwPMs1c8d1npm3HI4EqqOcM8Iz0GB6o/QzxqPtAJajsur13i1j1SPTo9QulOPnI6JjpmhM48jjzyPCM+8j/DP/3le41jP0S44z0KOJM5mQKTPHHJkzhKPJJmSj84u9M/bjjKP64+yj/dRhM8CjxTPLY5KjoZrY7ra8YGPsdeFLsJyryq2duiOp4DFLyB7Go/9wPlb7i23YuCPwy9haMkv5S+HDjDOOo/NvPlOJw5jjryBpw43t5lPL8s8GeRadWSzLsMO1kCv8gRB5EELLu2ySy9FQIsuZ9LjGyOPIRq0Du71Sy9GicsuzUErLpsv5FrLLqBAGy+LLjsuKy/bLw1bmy97LzsvLsL7LtsvGy+QgU4aHDj5T/gASZOpk3KjPo92jzgPGo5fDxCPvo/ajoXw4Y5/D2ml22dVLtOOIvvXLsoAaY+jj4sP4I73L5YOay8Ojr6ORbJPL4G0d5u3Ll2ONS6DL3SOPI9pjxqPdS5rLuCB+4BdLluP2M+rjk0urY4ijvIAWU9kzmBzy48uu0TP0o7rjrKPak+dL7TP8o9tL4KP3S87jxKBgsN4xulPz6zOAJCvXvFKBAAYwPz+AcuZeC556cZxcK8m1f/oLOfsg0P2DAyeTzOSCkemDPMsABiDQmBzVS9+5O5sdNFNmaslVS+X48KL6Ij4rR7t6tGOUaslBZFhTjC0OS7TL/2wh8/ZTisINg/Er+Pkek+5obovlCbIrzjOfZixLz7P7XSlYIy7IKCUg1Pc9k7tga80HFGBz6rgUc8Sgc/Dmi4hLtfOoS/ppUyuwc7FzgXO9c8hLi0GuYnlz0Eui/YWTyQBTK/mT+63zK6/W6HPnK48rrXDxc4sr2yuZk5cr3tH7K4FzrUBN87srvyuACsSgbfOTK7kruVUjjDZ12zhayfz3argbw4BLyCBLMpeYLrP4beYdzMGWOKoJ9VwLk/oDFC4UbFOTtmAklkgoTEAWOCqrkxprrI5Kx4uZfs7DUU7Y+i2z1f20WV+oDLqrtiZLlfgnrUmznKvdyA0t4c3acZmz5CQUiMik9lroatqD+ynoIH+Fw7P1XFkWVxA8yzheM52Fq+OT0BQ1kH2myEFBC+6JQjPFq/egcZxYXhhLwdi189Bw5hC+/Ivjni0eGCvAMdOWMhkwWF58MCOkQQPRspoTstrNM4/t90OWU/M24xPOLZ89W6u5VRJDyoqzq+orQTPH05ur6FPlrYzwU6Bwa4HTxKTWS4UrSEOEDbGk+xF0imHOEEOw2iRr6vCoxc/1/jB18DcowjONQ7SwZFjI447snUuT4im2M2n+o7bw/iPIknCYrv27Q5urk0P58JFjhCyXQ/Fj94PZCHBrxaOnq7ODymu+pkaswSO+a5EjzRr2+FuD4IOXPRoTp6TiM+9YPGuWrPN9ayPMcsIz0bL3q+RyrMvRssij62TGo5COxqPwHbnLqeOWY4Ht71gBsZQjvOOuo/FDvJgDQ/wtojP0a+VGy6vZRa7tpg2wgAVaWcB5qC8KP2tKemQFzZcNlIyAPJB+sB4AKRBNdHOgUE2AEkJknD2xsPEgUn2ojm5ywCpsE/sXbBOUl31uc+OjmGwTu3PfE7tz9pOQ8lIUYFBvFSNYF8hs6/My//PpE+fIOKog67MQAbC1crDr3bXI6/w14hWNAsURTxaTzamrxro6g7E8QiroYEMmKUh24Br6B2bGaHupAvAA8t2z4ITxQ5bQBhLjDdCQTFB4a4DbL9aTCOz9hw2i8H2z+P2FqudRqf39M9DALj34a/1lGjhXjZ2q2OBiwsugG6uN07o4v3cdeha2FBFp4Hmgc55Ga+mDxBAjpEQYDNpuEet101AMrOwgegQccIi0F+uk/jCSDKy0E5OvGDqGVC/rxnRNpm2EX+vfwEHgKbYshEVNudZEIF6AN/DIkjlDxCBbYkvBKfRYG7/AeBvp4jZXPwV4UEv0JUjGw2lpLjrMRBsATXDK8yCD6CEMLT8wKuAKPbCrgvAyA+e67fOUf3HSPgoGTY7Nsa0nnfqqlcxNdi7UuhvgXfhQJfhIkixgFWKK/U9aUoAM/DViLGBh2Hx+cWIghlETDW3ZwGsFWoAgB2gADehUrG4kdHSBPRCIZuIpG9e2bd2m4hnw+wA/MBhZFChQYCyEOqqTgGgblBu0G5dzUKBEIB4bsJJ+G/ywfBuciFoyrGAciCiSbVOkG5gby/C4G5yIBBuXQDMbzxvUG+8b9Bvw0HhDeFBzeLrAItKF/DTFtgOCG6IbzNgSG6lISNAGTfIbwhvrK7dzm3A6Xa5iZhvBWk4bp/PFYExQGxu+G9/riAje0pgImRvHuQyPVhtdkJUbqWQ1G9TNDRvKPFrIR6Bw8Doblxv9G4xxV3E/G4RwrxvcCAQbujqTG/cb8xvAm7O8Fsl23k2FXhu/wDsb1qVI1vqUEXXym+25Spuj6Ip9cH0lpFgICSiJG/qb3+pGm79Ahxv4m/+AQHiCzaWVh2ODw047VqVWhpDwNhIacJNNuZvC4Fx0RZu9EGWb6cBVm9Gy1+5aaS+1AsMtm5RTS54yaEa6Y6kaCUQgMLgpSFUAP8BuqCkFJxvxfWob6kaM8HlAQYBrVbFrp3XpaFz6mvoyaALwJCMJkAmbv5vJOA5bKUg/MGo2ujqQW9CgMFvs9ghbnfz1iphbrfCfg6d1+4tU7WBb64ACW+PdeO4ptmJb57rSW9hbzCZoNHhbwd2kW7QB1FvAwBhb5YhOO15IGlvQW+ghcFuaG/QgFlvyW7hb+iAEW62cOmMUW5SwUKALQaTQJlv0IB9msluNQBVb82BoW4RwrBExW61b9VupVloyiohydb0ATVu1W51bxVu83rNb7Vuj8NN5GVut+iJbvVvqG4NbzVvnW51b11ubW41AOlue2EMORVuapRNbj1uDW8tb5fAnW89b8aQQMxAzO70AIFAiW53LcFoyywgxAFywewhUQ3Gb3Ah428iSEWxx/fNrpjPZ68tAHcSqLYdCKRhx5Hnw1thqiBwuszJew9D9/Ma7wGZbIIit669YWYiSZNz6sb1b6/XpY0AH66iOEJE7AEeNhtghfdB90x24SvMdk7Xnjdl9rG6ouPeNxX3LtaFsMuv5faedmjdKhLV9y6AKLUbwDRuYTeLFk3C5c4srievz/fWpJVxsc8fzvdu8LmrzzzxMUCPBEj3q85YDPTRl4/SzEIgGE6Z2CXXaoFrJxBOT66j1h9uIgBBzXKAUL22Z8+O59FjrjZwBE/My2BPAaFygZpZthGwTp+hkE5A7kZAMrx/j4rYf45bTuBPtC0QYXpP/49KT1hPBcrlHFOuL8+wTiCBsIF8T25u8O8Q7mLAo0/Pj25uSO4kTvDvz494isOAqO9ubtJOT6+wT4rYiO4ggH1OwnbyTh52kk6gPOAg5kpiTpVwXc0azOlhiG3w7iLQZE98ToRQ2cPGgBggf45qy7324z0cejj1Cq6mTkFOA/Z8rxA3VO7oN2yGwMMNiq5uTSgvjygvIi/U245OzdZCIOu1HDjb/SmAn1meAczuv2/DwdAjbYnWIcNPgO+vAZDvWU7A7jlOPpFTNJeLRO8Y0dF3hHYN15Cg9E8AbvDvczceAbzueO+LwuWIZAQu1+3W2EmWdiw5PRBxL997VYXk7+dHLmbEuK5BlO6xE6uxqk+PrmDv5Tbg7l0B8CI3NcDAzkUPexwTFO9jycujds6I69tnm9mZNrUBNoBIAUp7csDSaF1q1TfdlAxvoxPdlc1Pls4RImmhPaJvwUQBl9ygQauw0E9qrrJiQE9elS6uGJdA7qI4IDu644ruZZHnNsauCqfqB8ujGNDI+eolNGofL1iJ/Ok2gUruEwa27pRlhmO82TBB268FgGJQxi1B6+N5hJFSERqc2O787mQF0Uh7qHzuVHci7uU2aLqsRxmkqCpiwc32d/IiIFLAXWpNibe2WO6vInfyR80B7hojlXB+70HvTsPQgPwhIe747mHv6gDB757qAe9TgJfhghvqAJmg+O8BQQ2KuO8oMNBO2QFSIKNRPu4LG6WAQe5R7uHuWGC9BcHHa8NBG6LOX1rcjqMFCe5fWWJgMG9MIWvC8O5GgYjuwO/SIJ9V0aBCIAmiBe6jT2JgmKjeGrdmvhu1Of3qTtuG7xzrsu+nTnIjRu+t1zITz64gJ1XvoO8oSVXuEO/C736vVe+sL5ZAkZIV70RQlfyqkGP2BCIfLpBi6W2N7wVKbe8+dVXuCu417hjv9e7f8slAO3Zt763u1e9alcbxhq2qowGv5e573drD0LSCk6uw52FmJceQkkdN7/3vte+mDoPvQ3t2lB3vsNkY23LuvwBd7mfkyUET7+aBGOqm2tXv+Mpt70UZQ++w2BPuU+6V7iDvgS4D7zXvGOsOtpO2RLYaz7TLjddr71rPvyFXaR1A9bbWN7ABvyHaz6DHiyMb7p2vhFAVJ+aSESK7t3vusMNqz1tSjbZThUavXOGbrtFbRPBDqQyZu6+WoFtAsES8CigYKWEV7LKgSXXHXL50E8HSaFIcKgrctXzvd07SaBt0QERCzkgQHXeuwW2ISBHSIELOh5A43cOCKLWriewhvWASIZbtaYljISuT5q/woQ7OFrcOz9Ipjs4LbqXF3gHCctauXm675WpumOCxu+Hpc29wDha3R/A3rhw2CA8xrmEOSLfoESevGmpQRG2bw0A7bp+Aq3jXwEfw4BGSQCJuITsl9fH4zNCrYCGYbq7Sr8RuXm/KIdd4UsA1QNtEF/DSxcAY+0sbqaGB95TJGrpv9YDzQMG5cVYQs3kO7ZijiJG1Rw03gBsxBYBioRdbz8IJo8eBpsqIAc/3V8NGy39vgyIkH5+AH612lGzxrsEkH55uQiGlgb3wrfUTr0bKeA6oSknPW3m8Nfk3AKvWr37hAkhkH49vgXYUH3fC7QCnzwLBCI9mb5GmlgAWAQgAIzbSAMEw1m5ebgfoDB4ArDU3IcRXMGZv2p09qOadL8hfyQcBzdf8HkIhAh+18J+paMszYDqQS85CHicAuOpW1pI3le9ZAG6uo0/FEQgEKgHL43Ifpm7KbuRvE6A/odeZ4h9TNRIfEXhxwzJOwkgikGEvzYfmMYTBIB7RSNWJiXkLdPuAtB/DQN5vIEKrVItKmB5cIdJusMjYH07AOB6IALgfchC3w3xE+B4B9nt7/6QJo4Ifz8ND9QoIwh7KbyIeup2iHp6hYh6fjnbkOh7qHzHa3ZjmIrmJ1h7KHq5vth990ZM3GgAQOFM9DaiOH9d4ea/9sF4eY68cH9uJ6tGZmi4fQYDkHkbAfyRnw2Qf5B8UH+mllB7BMcTIfPTn0dQfvWCdGPoedB46HqKMZfSYBDVBlYjGH08NNm6g0GDRph6hb2Ye1QHmHmwAEG5O9EwefPRJzuOugvDsAb4f5gXZgP4f0IBkH5+BgR88r+kf/VscHvyuL/fpH2otUUFibtkfWh89EVQeoR8t4zNhYR8ueeEeJG8SIZ/VGB651lgfxh4abzEfOB5xHnge0DUJHl4e3wyTDigAE64uBOke3h+Trj4eoYEpH2wN1VOkHofCgR8eWlkf24iUHnkfBYD5HsExoR9RuuEfda5ebuBIwEmsdIeILh9h1dVBJR7RH+CUZR6mHmYeFR4WHk70B7YJo5UfTB5Uk9OuIIFRQXUe/Yh+H6kfDR8BH+keTR5BH2ogLR4hHi0ebR6FH7QfMwW4IYMeSR9DH7DvEIg6H2ZZzwOdH84eqR8CSMmgK3oljfCJ4JWWoFUfiR46kN4ewx5QAEGu0ftVHu3Opw1bHvMey3Zf8hseL87oDvDkze4wd/GgOx9FYad45ukZoN47Ix+e20sfkx6tH+Yxp3kZoXS2fsFoyhcfEIEZoKYblx+tugmyJh/O9dDuOh4mWIyaLhniDBCzZgU9HzHAZR7JoHcErgA6kTEbo9J1b4MeKgCyk5YqkXdrHqnOqFan+jp3qtymdgigJx7EjB8f0QDNgddJXvD1HjAkqEpUHyEfrR8VjHIhOUFw0c2BAm/HHiYeCDiTDl8fQNggsfMeMwTLal5vhlgaAABIOWnrlY8eEDlPH7ceLx/F9a8fuB7NgO8ekJ4wGR8fUrDVdpuJudbeH6YuJnY/H8/cvx5A48aRDDj/HgCfYvlRBKMfpx4kHlMe1B8gnxceYJ5XH2Ce3joabxCfiR4YnwiAvCDQnl5uR8wPiC4ZgJ/y8N0eRh6lH9Eet2kmHvDRsR5vHuYfeB4JH/gfwcBy8bfOLR82Hq5ufB//z1SB4gDwCmoevwGOHqoQ7R7Uryiecx7xzwuuLh9ywVIhC4mMHlSTzB4XWFof+J4wn4W10o2GH8nv1J69HjEefR/lHvSfFR7Bufyff28mIckfHJ90H1M0siBfiSgfexXCYyzvLWRbK3i3eLLRr9uOR/FqhSg2OVbm6DAeznlbbwLxla7A77k8HDioL5MerMokbrB4GgCw4H/VJfpr1YgGZR+DFHt7lZYwQLjqyAEjmvOBaMv6n+wAOh5nFBgfkR5g5wifvR+0n30fop/9H9KyzO4piAmibAFoypWJ2YBZHuXMsrIkbhIgC3QuGYcBYRIkb43tv1TOkrjrvWBWntmOJJ9LdHli6B78IY+0BrKubuRv6IlKAMkBbJ7yYOkhTp8Gni6fM3WbYU3A+p4Gn86fhp/dH1Ef6LbPHiKeZp6invEf9J8JHlNZt86C8EkBMh7FzkatiPbMn9wefuXmbjiuvACenoIRzRyeHgwephu0bs2JIcR7qDMfAp5Sn2ohjp+3HyDlrp5M7wseiOCFFQMByx+omk2RKx/X+asfxYwRKMmgfkmhAJWMZR9EAf3vjQEa6McfhfhEnuCekoGXHh1BVx5CO2upzYGeHxqeC3W3iCUedp6mnsGesR9mnyGeYp8WHlmzOqHDHrevMUE7QUIfoYC462ohzp6THzqg6O6a7/WEDZ42n42faMtNnlwAQiCWIkIfEp6yHz6fM2AEUiCALQZ9iXavJUkeANAjiLvCH0hTrAHjbZAAVgCCEbGRbm7PqD+hYBNen+yeiR4Y70memOCwng5IQ66YBTKf/wAEU7CBIVYmnkIiQZ+3HyKfdJ/Vn/0eMrNQgTABtzcr7rfD4e6Jnjaf7CHOnntgUsDTn13LsgdB70ue054Rw2EN82JiwPDuMrJkTqWeQUjA7kgQU7SL4F9Zv6+2Ec6A/43v44uemaAC0XueX67LagnulLV7nqNPqYA2RKpJKljcH9qc5G+wgbIBUrASAIMxkp7sn2WfNe/tHkzuFJ/5g+ueLO/Tn7WeUAFTss2eItCzno8oLqKghZ+uMgDN4wGPaa9571kAww8obpQeKGG3zwqFI0BzC0kFYm7o6y61lZ80n2UedJ+4HuaeDJ81nvZgxTY2nzu9zp87vYuey55PrnfzHAB7FBhYwwDEEzCpvqGiAP2B3R8+oMKfQZ/AX/OeoF8LnmBehfAQXz6fO7xyHzXvLm9RntI8/4+3noaxAfSW3R4eJG9jn+sffu9QXjAgKA7JoYxA9Z6tnj6fzp72zU5kyAGwX2HU8F+CIwhfiF7zn8GeC5/xHwkekF/HXL5vaaUxQfqeEZ54YPAG9xK46muejW9648cBpF78IDVAiF7AX95uIF7VnpRewbhUXjqRm8EViZYiZxXWnrjqdF8NntgOSBABngUWL5+j0kofqO/nwgRTbm4YXjee0Z8LgZhew5/E0QYQY5/Gno8psa3DsnhfW5+e6vE6vF/AHvJhrhioHnheDYhn0gOfrm68ALefoNCsnmVgH5TpYOltHMnoiKJe8Z4/nrKB0iEHnonuR598AMefqC4anljumaHdnlAAZ55EzUbL5583HvueojmXnhNO15+yXuRv91CrARRvsZ4eH8pekh61nsjuwO4wCN+vHgC7nwBue55qX4efAG7QThpeCYCNr37vRsr8X7Zfbm9GygjuOl5urlnuF57mXoBvel5Xnp+ABl/KHkJeiZAi0M+pd544XgIeFS61nl5ujp6wzzqeK1Wpn1M0AsFK0dKecNB4YKYiLAAzS82IacNzb7Q4qbcKnzGuiQ7Kn74rnO/XpIMeLl6rgOoh8YkGAOWMip6CtvGg4B/qthAeqbYzadFeqQ/Rq0euHDdvUEEOe6gqnnAeLl/3n/Z0fPQYIHuz+NG3y+LvJB/PDLNJfho8779RRJnGbupeVBC/n1JvQR9/np/P/58CSNWh+gGAX/3ArUHMXqlXLF4hn6xfYF5IGSrBGYltdrO1WdvHAOyhO7ziXSgYtrwwXx+fWV/tnvaJ6YFPbjlewkk6AV8ArhicLXLBvrB3whk2f54JnmfDBV+NXwBeRV9ywFgMxV/us3Ofpp9Vn6VeoZ7BuDafyWHOn8lhuEdgIRCBj/RKwFxeaF+VrwNeVil7niWBNFAwtKF5Rp9NzSZer9yVX8RvaV4anl5umoMReR6Bc4mTXwZebl/kbkZelG9YX7CAJl/qH03OMcSztKlft8wN+C4YsKAvzqReUETtz2ReJV/YHhRfyF5lXgMfUrEQgQ1f357tz3+u3F+ur03PPp9rXkceA1+dwRWu7c5O9U7kdV+kyUafER7FlItLtV9OX7CBX585X1ZfgG55X1kfrV7/n/k2HV9FX0Be3V5VnuUfFF69X2BfHncVX/rpYdVVXrKhu+k1X5len56C7l+f9V8CSbte/wGNX01fAsHNXp4irV75Xm1f0QDtXzFBhV73X8VeD19IX1tfcR/bXn1fPp/9Xxleg16oX0NeVF9HXgyfO72zXqF5c17SPCOfaqGqbktftwivATDvms+HX9YFFTcoGUaexR4llGtfTc/rXgjeXEFMXuRf3V6PXtteT15O9OUcu17fn8qKKN++wDaeqN6HXwdfEN/HXi/OvF7lHEoebO6CX2Ru814w3nYAg5/JgR5uD2ipX2OfRp8dHyjhW2AhmV6AZR5NkKf7FcFGywTelY1BoBmgUETlHQ6hWpRurzXuspPE7kTecl4WbyOf7m8aAFZuZN9xn7XxxYxurudgrkGxrM+vStkQTA+vYA6VjKhNXN9/bGWMSh4smXTeK3pSoq+vLaDQ2IvBjQC9mkGu5RzpjKYa1mA/wKseV2XFn9ceZZ+z2P9Qd/Oob3oBWW+q8aDQlY1vNKYaVR9eXxQC6OiIEC4ZsHG3HtLfnuoDGjUFK19GL0rQQvi1nkHOOXhRHinuQN4sXqYfigmPXjWehfEGAWjKee/crkv2HZsqF8i8JnbXwfTuWQ+THi4f7wHAnucfjQAdmyWBUV67gabfncEFZObeTwFRXqGBpaEfOybew9gSnlY6W6IkHszePB8coT71ELzn0bDeHJ+FHzMFRp6TntwCcJ4a36rgspJPHprfQp+bXrSePV863/0eSsE5ibbqPFI6uGfCht78gFGfgl/pcZpSw57O32Tf13kcnk71Xl9PnmthAtDgEUYu+0orYHXq4BDMIj5eGgE7QI7Rz9k9ZAvROtZynjFeyyeWDqtuee/Nr0qeC2/KnuFfKp9wHpFe/q4abLZMegPIrhCzX7hWKgreMgAaIy/Yy7mIBtmBx+IXr4w38V7T9nrfEB/3k92T1G67Qc/YtQAVwcZRSV563qXf24+HOfreZQ8hMeXf/24G30bL3K5G36gfuuG6IMbfmoAm30/Ypt9TH2bes/dyntbf3lCW3hL418GN3gnfbnHW3pZP7ookoXAfHIccOWkBgfexzjoeIOFM5WnOHFByH1+5QFGK6SAfZi//kXaVUAwAGGTB+EoSj5tJt3lBgVHev1uaEnvv9bdyrghmjhfWTyNLMEpJaE5K5e61N1CilGTEuXbvh+4T3xABYzd6zqu6Jk8zL2PIz18YW9ZPjk/67lyeVesj14uvV8EYzbWi2+97N4auC6b5l1/2Zq8yJgu6iq7270qvwOKEHrIhtq9fufrusiFUuh+lkIEx78d69kG2rufQdcLbgSxjYqIWI9Zuxd8yjkkeX26s7m3F33vj3wrPPvnfFt2uR+89rjwlva/PAfVj/a5FZJddc4ho3Qx3hffuNlezxfcgKc3s69z5iCket8+7b6FGG92uwLIgYc+pCOmIL++NiF/uSBGnzs2IB0XsIVtEKR9v7kgRG9Mdthvdze31W6kJW4mpCLxSytBIELLOrIJNls/uED6wPzzOQs9wP7A+L+4IP6kIL+98zkg/qQl8zhvcKD6QP/STqD+N7Wg+u0DE9hg+u0H7RMuJu29HWh9B6D6SbcODaiBv7n/fyAGSzpJs+Ylv72ohKVvyICg+X+9mIrDdaiFbRewhOgc/3mjhf94CcDAN0iGbiFjgB0RDlLfOr7TYNALRq4jK0aPwED+dxWohBYlmI6RJdkA1AYNKcD+wP8/uiD7IPmw/p5+nn2g/rsEYPu9FvWDK0O9EX+5f7tmI2YkMPww+MAiIEO9FUD9QP2LPYs+NiW/vM4nUaVT28NazRxd7ag4w9VuvAUGWn3kgeyW7r+7YE04vHkevrsArDLwLLniC6a7AKGGuwHv84l0eES547F6+dZO1LnhRoXXvFE7CTqlIK70qPnROqUhPY66AG3Wn6I2BiJ4An7KByJ7ggT6ggTPbn96BEE3tgXoA6HUy3ro+TXvhwnMz4pN8j96AgugdmtWgXEGiATorYWm6PgszcYjg0VxBFAGywZS32YCC6PAGMLTwBt6TfYBtdkOVaYmN7XaaXMlpHo4//nYHpRFebcVSEIvAfwALwP8BNj5kwbo+/jMXwF2BUhEUAP8Al8C2P7e4KV2EwMmgfwHaPlxBOj/g0KQBIkmEwc2LaMu6Ps2A6IEhlom7HoCkAJKurFEIrHReibvegfoBpsvsXwE+m8JBPjE/yJ8eWvE/4pOhP/wj+j9NUIY+XYE1wa+2czJXed0zRj4r0o9TnusAlQEOrkDgEE9jGuj6tGPwXpu0eCpZxMgTwWjKt6+fgd9PMAH5PiQ/BYAIpMlA9ExPYp+BBYAKRko/+j7lbnuodkAoYSgYe/1+wb7Ak/i2vMJJ+uky9M5RmpV3w/539QDzLOqh6YBWzi7XWo6PDfFZzYBPAclh1ipzM/WArkEsIa7Bw8FtPnHkXT92vB0/IIo4M18AXT41AcPAj0FkM70+JzPa1slBLCBdiSLpdpXPwMJJsa3JYIvBTUDCSDBfs9l2m6YeQOM/XoYPaMpEIdCAgW4aImEjQoEBdpd3cK6lYAIuMNFSESM/IkmxrH8AHx4n6SXo2A5iSIXorkAfH2/BvsAqAWUP2QDlPhThmMGg0Yk+bcDJoKRLrhjJoa+2fT6F8cWM5V5A4mdZRzdt8ccB2xXyDG1A9xMQgbpE4lzCSPZgrT++sRzxXwE6AR4/dtshPpLR5QEcANc/YT+BtJNBdz//eME/c3tcQfVefET/AZrOYmr1PgLvDT91P+QTTT6gW+UvdpudnGdZ0IE+P7M+HjrzPk8wzwHk9mZIAYD/Hv7gzeLkvVVvrT8iSQWJc5W/P3aV+8TA7ygYUXApH67WQfeMd923q66tADTcCQDMgNve91zCOtcBlWLwKXZARTRmcZjcQjDGAOC9lvKlgAtyFW0lAMi+mpECjY5zvphovwhBz9kxctAA2YoQATiA222NEPxSmL5E3GJoMLcYvmZxTEBYv3SovgDtYNjshyxYgQH2pfZv3/tu9tadtiHVOZv12tO3VrPd9tVBMnOvIqVh1WvMUk0QlXFOfV5u9FNqIS6BlsEAzky+AM6/39/vluxcPh+tvWHsIWy/OD/cz8ODrM9f3qQ/TD6d6Yy+zL4svqy+7L4cvly+MAgwCEgQoD4/3x23qQi/3r/emD6YP1/vX++f7itKgWA8vuK/TL4Svjy+bL+7bjUA0ukwPvg/L++hRng+7+9f37/ePM+SvxvcTN3f7myahti7H85BZiLE5DVMgVcY0RVBUnCzAXAhp/hyThtBFUDIx+q/1vRMyGq/y3d/Jeq/YvlEhMq/CBC9Tk1Jd8ASPzuu3LUVQSt34jtXy7rIbTYY7QxO6mRsLUVha07m7sXXex8h2Sv2r9ZQEIyUOk8wj76OtlcLTuTA9gDxJu9QKg9Nyz9v1E7kTsY2Ui3YTyjulddCAfxPWwGbmHGHI6oNiDKRxMrdgA2Jt29ywfbpo+uSsw/2v89v9l2F7/c1N+H9Bi5P9vf3nuvY613P6aS7jhaTOmiGTjI8/K+oraZPBk9yS4oIXWutDwZPdBWTiKj2W0BAjlG/DO17D/G/LzbFzqf3Mb4yPWpK+k90FTHLYMFMqHJK+k9Rv1sAFw7Jv7blsb50bim/4b+25THLBCsYGjeimrMfhxqykq0fhs9rszmW77nDxfW0MdH352ZrP/uBwT40IMWvL8rdso3DBzElhoJKCHLGvjmxwk4oIt+35Ikbw4Whe8Bgd6c6TRBYI65rQxsBdmK0dMgkiozI+Su/UN7AJVgDgTXAjq8FvoOR/kAzyLmAFOHWJMgIHmPGTzi7DsMe1H+2ZxnUTvjA9gEFvjS/UXeJWWt3/b9jgdRP322DvyFPej4/Gw7CAtGgds7C/E8wwkO/254DvqxP9GHlANJThMGpFCWRUk/4uBAB2k/OSupP1I/DZWTvwAHBAmnDmb9+gXfDBmLxv+m+Cb68Gym+Eb+I68DOT+1ySgG+mXHuGjZFj/cJvpu+EVzhv4ZPK74UE/lKB5uzASFO02LewSnDUDF9kI7Dz8uI0fTJ7MgUDqBAv2P9waRytwezsFA6FkaWj7rhbrNg4s2/9OpPDlJOIIEUwIaPIk7oDoQT4COSTqIjQERPvxrlJUzfRmxYFOCJAY3Bx3ofv5+yn75cUe6yH776a2+/n7IbZ5ZBZb4cOdJOpbPuRPrAT0GLBh0hiKD3qxKTpg01wUu/91HCEKbZng9BvtpRj08M7P2AV08hnlEiO75v9mcZj/ewfuyStVtuCdB+NDiIfpUb2z6gKR5Lw3ljunMLK7JNEeEN9ZEHs4HAzA3aTMWxZna2Ff9Bet/uE0okvAqAk82BOFQ1TnyiOH92mrh/0QA3ovVPdI5lG0okVY+7EVABrQ4bj5B/cYnxicxSP/tXgSXiQIdf9tW/wqPOvvYBVUtwyfxPcMmLvzDDG8qMfulFizSpgA6+d0qcQCx/vKbuzR6a6fbMG9JOS7+ST0APw8FmI/t2Yfb0ZCk/VWsFv5hjpk7AfjmPXH4ggdCA6OKWT7JOpbMYzdn2QAH6Z+O+jyhPvugOGiLANQW/GXeCfpGJQn5QAcJ+Yo9ggHXq9kBldyJ+30f0yQ2Kmk4ggPDQjq5MftpPyn7PG22+z2tRdhlO8O6q6cJysn5CrkD35IguswwBUmOvemYQTiyIch+/779vvx5aH76Sf8p+TwA1Abp+UsoODyJOcxofvySPXH6GkuwrVo5mf+Z/L78Wfgi7Yn6DkWJ/mGMHswW/dmu/vt2B0RIOfuPCBM+KTt2AbmuOf5hiBrLOf/ZrgcG2fsGJxMj2fh5/V87Afx5bY3HHXfGIc0gUpKsP3H49ng245n6n9hZ+dPt4jmZ/QEQLd+uvSZrsfuxOzH8BGqlO7bjei+TBjH+IwUx+DH/Tl+x+X2FFIGx+/AgRfu6/LH9Nzpa+FBZxfu4g8X/TryHYs0BWd3F+HH/hTtWy09lSEXB2HoH9wXF2U74MTuvhSIENOlo+DAEFvkZ/3H8Wfh5/ULqSfoaTPsEhwrx+6wBdgaajNyjewCV/3sGmf/e+hGLBieV+P170SYasMcHzQKV/58MeWyvrssC+4HJLcDdZfulqFOAoIhQgeGGr2E0RS4D47AoQgETVfk4Oyn+vns1B3sCCItajxGqLv6p/bX+gAd7AKyDewdV/4pNIO4pJV2FS38cBlX7rqeyCWX8guc/KwDVv6Pv2gk7ZfsezdS5DflsgyA/Ck1TBI371fnwQ8NBgnvbMg4SIuggjlX52dcTJNqqbqSabk39DfrVLNcC+s9J+Vn+orCfDtX6lfu2/VWpMAm1/h0dTGmt+z2pAAGt/BxKdvh5+t6Nt2kravtteYqcX1g6jfjR/BwBXYwJKYH5IUrFqcxocRoQun0ESId6AZMBOEqcrncSOUK3I0n/6ZhYX0IGI9hv9e8Bvi/W+4IGzAJguA1ulftRywYgbK/Ebk+U+V1I3fuGOtdDhI37Tv22/4pLNQSVh/vBHAOt/NiIMTu9+QAAEQciPU7+DvuWIJj/2QXN7Sstvf39/1GmcTYD/s77MQCY+9CTI9oe1+MvKt78Al34aSUEjXut1kjAIkP7JQad/LoCbSKUwVb7HfzFrG2qu+qd++C5nf1IR5381FhD+oddppJHLkfZ3fzfDn/3fTt0G3sCDAY9/QEUjQPzbz3+QgfjLtAOvflB+rgEXo1fP33+sT8SOSQGg0XvpuCFmSMgpX34Yf6NJwP/hauDQBH4XujAJZP4HC7F4CvZuu46058SuQRei+D+U/r7lxxgK9nonpP5sP3T+N6KI2rtAlbQcR33uMLRTGxd/KP96rt5kbP6sIZd+MP+I/rD+s8B6geWa87Ic8KpMJe6uADeiqAF5drHOoYCxumtHRwGrv5ZB9RnxY+6j5EjxIwej/e/wf5P2dI/5Sju/ew7392ywXmo5ukNZAI/1EAjLgpd+4C+qHmC2wce+1b86vl/y9wNAzxz61UEbwpVxd39iOac6ZKLVQOBHWkhrGmAV4Q0E17pRUhDa/8pHGsMIKmj/mB7o/96BdI8TO0GlGv6iSSJJdporxmAVDn5382VLd9HcX7d/JSRdgQb/pzqjcP8ASBH6sCAUwkgm/tUB68IisV2BB8NMQd8AZv7Dvw7C9b5/tjPJQ7/TA/8BvwCZpUSUuX4ef22IRrD2a6JSj+hgC/3BV8Lu/t7BywPQgfnuFOAzyS6bXv8Sf97/msM+/kABvv+I/p7+M8ia0yY+3v5IQTUjQf/B/x7+/v/7WiY/UhFeY40AlXBIEQxbRv9l6l2Awei+/h5+Uda5f98/8YmHkE54kmAZAA85ks5IERVpw7m47/zsziqq6cJl6edTBCn/5jsVQXaUdkC/39Ih9ugUiwU+/J/Age6/7PXNvOxOg753S8kfCH8sfiqsRf+jvsx+NEj8TqX/hf9k/3kgB7/6T9m+R78V7R+msv8CijGfu/btCRf4hrsAj9+O9f+MVM/H6mAJ55JA6U+p1vSvvy6mN5ZOB4NX9u3/7d/GyNQrWPQ9iMxBBYkZpBHuE75ygf3BO0GTv/uAuOsCwXWAsKUAH0X+P38SBzxIWS6jvrO/BartWrXrM79H7O9+RsAbSxP+xf5tvuya6hs4u5WIXWq0Gc7/JmTT/iP+6IFajoYaoEq0fih/LH9+YkCOkSEr/vQk1CtSEEd/C/4Mfiv+qX+uvyfcCWOJjuxOY753SyX/W/4/97CAq/+JjgxPa/649QV0My6CjwT/s77ewdYqLsMtTVY/srIbfxCBb08dAY9/qiHHNV8BM2CQC8rx877uICCBgiNfAMgBNcPsIK/PnX7oD/f/D/6TbkBflpgxs0Ei4YvHNABrZGg5GS10F7K0krcaM2FbjoROyYqVKDejaAExQV/ZZs2C/peFIc6UE8tQAb0Udnv//XPOIX8zf6LSVuPs6RKWAEh8v1q832+wIgApGi5+wB0TleB0yKXCOrkeN9nE6x3xAAOsVL9+oCJuxSiIE7/oHfMx+j+UoYAkAKWTrL/Ax+q9kjEot/wxfnC/XEAwOBe/6MALb/swArtAkqB6tBQP2oAbH/XgB9id9GCcoC9vsbHau+XdsnI5pxxTZtCJY4uGD8iH5ff3ezvuodCAkN8zR6gjwS/jv7Qh+uSVsH5IPx8AA8/c/CN99/r4UPw0AVoA68iaw9ghpOl20Af+8dk2GBxw/54AJ2fq+Aae2eAVwgAKcHoCvwA9P+aT82v7xSWr6uPhb9+Xf8P34t4HxCP+/UwBUFd7TLgzTXToZ2VNOYgDAI5MV3kxmrlH/+J1NF6LmKVkmITJPh2bFxa742cHuonDfXJKqv9yk7q/wyPNeXYe+CN9p4jOw3Ifqf7G12Q+EMgGNdnKAVE3ABk+QDtuS0ZQSDMctO9Et8IkL64e2hGKhfaOu9CUiO7m13PjujXc+OCu937bH63qtr4nMFe3QCCp69AJV3jsnBhQszcTSid6w6rg/lLHIzv95KB4PhazJEXeC+85psLRP2zaAYXwdiKEKNOZpyNUhuOVZWZ2kNxpRpqB0Xaj/RJe60/xWO5bMR2PJ4wdZC3U52eA88zy6mJAW8yaz4G0B8FhCIKxAamAR6A7PaQCAtQlAIAAQPRkElL+NH3rqJdKgw5mFIRKawXuEv4ofAwdBhzMJEK3yrvS6Y4BhGJYrBeXVKlHFEK9WQDVkGJh5XuEpApepeODsbpJa3yoIqrDCKIYzst5r3CWqqP5CBdGBCEhpgQGT7bshfO/eHBU6NCSAHxYNsIOPkIdw27DncnbsCfQEgibiAKADAACNYEopNAADmwMk7bzBPoBkRHkBfICxABaiGqHjpDBYG4AVJyaEHBkAGmlbtIJ1AZABfIEcptL2VAARh0G8jTOFO5MYxVqUmYJiXC4zWdAHEbd9ugwhTKCZXEVAVeAGQAGoC2Rw3VypgIQMDBOPkVdQFu8DQoL3IWYW40BdIAyLS2sAN6P0gbXQb0pYYHXmOHQUgmqOxwKa76xHOoLbBpsjd0ZIq/jCnABwAM2A66EBNrViiFAUeHAIaeiA9RzLBz0QPiOYiQw5wYwHMADjAeuhHMBgoDYwFKMDmAPcAQsBIYDTeCvIUQYHf5Ysia2sCqDYIF5AfyAgMBoihcECZsA2QBKAgUBIYCjw7TTA3SsyA9zY089FBTt2C9YFKwDUAtbAHMjjQ0rrip7MvChjl4ibv4FXwrMXRjgFLo3hp0VV86NUHJuugrIFVpz92Jnv0PVIQxCdFiBN4UGDqNYCzIJTJt6jUEX3qEeApeMZ40zj6nQBikteAlEOG/98AHw0Uv6DqANUqCVgiLqBwDg0CTGTFAM4BbwFj4TB/twPWos8NEU0BIyH/ASUIYsAYo5haAgQO/ULkIMVQ9PVJUAWAFAgeBAjNouQgYSLRZn8RMERbpQf3BXwDYWhUdHlgVru6ED/VrugGwgarEPCBK78CR6PLR+AHZJHCBHxctcL4QIJwK4lYiBuEDaIEYNwJHsunCMAUrBBYDLp3RwGo5eGiNnhuIGBYDifiAAVCBZARetoEOVW2l0Ja9qp5sNwFxHxDqJdvDl+e4DEVYuIEPAbDqJd6tL8d6haDHPAbDqb0mBx8NQCIIF/AVvhDNo0w9l04cACfAcLQF8BjeA3wEJWE/AXkwb8BV4C/wHQQIwgUBAyTgCECHIH+wHhorjJKCB3A9YIF6EnggYhA+GiTPQN/6upEJ9gSPDkeUNVGIE0QISIGRAv2AmEDAMDUQNIgbHhciBmECqIEkQOYgQlAzCBkqA4oGpQO6+A+A9iBFMIZGjvYEGDoFgXiBDKhCoGLqWYAEJA+T2Alk1PZukXOPLWIS1s1rZx+B9FnNptAADAgzcIXWy6EBWEudAG0AGoAG2DjgOyppOA922VUDIj6IzgHwCYAHe4ueBiUJmwCmgWbAI9AZsBKoAtExRAO9OBVA00DpoGUkTNgJnhKaBA+AzYD3GHZIsAAVR2q9htoFmwE5MLtA/aBe0DQoDQoSPQC8OI9AlUA6GD/O0+oGIAEgAQBA6GCpEGxWLngIz2U0CKgDEoXOgeihTQAOYAtoHZMCxUrngXPAD/BPqAkACX+mShVIghOJTqw73EKoKkQKQAOYA6GC7w2yYN0ZUKSxiAqGAF4GmgY4AHMAHVwQBRiAFSIKuaMQAOEApoG54G+WBYAGjgaetaACaaUqgCNqOhgU0DHAAVAGyYAFoPcEHVxyYCjQP4AJVAAfAinYzYDnQJzAIzA4WwvMDcdrIwJMAJlWTmB1RBkYEQGl4AKNAyP4YgBCqCL9G6MhjAqaBA0AyACA21mgd9AxQAYRAcwCzQNzwAdAmwASDQzYBUAFdONChM2At/Bc8BUACmgWbAzQAiNYBgBAwJxxL0AKgAxKFHACCZCPQLngRQAR0CgYFUMETwI7AnMAAchVABuwNzwKjWIz2hVBPYGB/H4AGbAN6BsAAPTg4QF6ABNAraB50CccR9AFjgVNAwu8OEBE4HxwJsAKnAwu8vsCB8CzQLUBI4AT6gzHRFkLxEHRQmHjQu88lszYCOwJhKCYAPoAm+AbYHaAGxYNtAx2B0AB0UJ9AHpgLXA4lC9/AjPYRLEUAFHAlhcYeNQ4HAwNgALV7OmBOOJ0UJy00TwANAcuB5cDNAAcAE+oAPgTfAlUANGyfUE+oJ7AzAASDRFAA2AE3wMAAM2AB3sLlJ0MGYqIoAWgAJ8JFAC+wIGgLngTAAn1BaAAWuDCIIqoYC4WgRXYHmTl6APTAIz2M8DFADzwM+oBXYEwAfwA84EmAA0bGbAaognsDc8DxEE0AH0AXoAZtBB4GOACM9k3As2Ac9pC7zAXBrgf7A9wIgfx7+AL/WAQVQALaBueAB8DbcEUAK7A6mAueAcwDooStgL0AKhgRntUiD4NFAQe4EXBqFylLvZhwMwQZnAhuBn1BMACJ4GPgb0ATfARnt2GhfAIR7JLA9wo3cDegBpmGPFgPgK+B+cC5oHvwNCgNAIAfAqgBHAACIOBgZoAT6gNgBiUKlahs2K/A8+B4eJ4iC86GAuKfA3PAraJmOiVQBEQew0WRBm8CRvYCyG0Qc3A7aBQMDPqADQAHwPbA8wU1CDw8ShQB1cMBcToAQMCtEGaAB0QRXYPRBG8Ct4ERLAsAMYgo2BUiDzEGWIN6ACW4TfAVDAJEEjwPGquUUfRBW8DgLgCIMm0p9QQYAn1BFSCyIIdgcIg42BIIBq2jewKNgUegIz2JAAAEFUAAuUvbAsBB1QAjPaYAE3wM7Ah/gRnszmbQIJ+gIjWaFCFgA+gDHi0BtpbAw3QyCDUACdAEUAH8AOkyNsDNAAYhBmgUZ7K6YcSCpoHEoXYaGbAORBk8D+kHRILYQcDA3PAWUAl1zdQIHRDSAicBt+9oRhDQO6woIrWXm4JAGmy88w06uKA5sB04VdQHeS22Qe2A3ZBiNh7QEn0H2Qbi4ETg4oD8oC1QPtYPsgyHYucRaSBdQPbAdcggJAGBATkGagKT9vkgB5BdqRCEC8gN2QbggWogRyDwgDrzHeQcYxSHWIWkKR4LIP6gUsggduP3E6NB/IOBQaIoAKWw3gH4Rezi7hFcgkQANyCXGwvIJagZEhH1sDUCpSDcgOeQZig15BYy0cUGtQOZgAgAXQgZJ0PXrzI0+arTSLgigkDUIHbv3jWLvZAEeidlAoFSsBWQWT7Xh6SuwUgCzRwR3ANaNMOALY4a4tRHTAU+gbgYWYDdACI10XSjSAbJgegk0wG/QDKAIeABHoTQ5ZlDQrj8KDmABVB3AApUHBtWFQdmAzAOco55UHw0Qp8HKOLVB/kDxlDpoj3kGrBLh2w4AzmrwACEgXLGCpoCUJl6YWsGLLPsAWem+6h0pxS70I7AQULjwXgxHUCucEemtdGF7u5WJEfz73Awbr47BUy5yAzmpuvyTqAiAwyYW+wnwiajUaxHN0E825I9l9ZnFV1GjkQM8gDYDgADkoOCMN6wIFBDTZkUGYUFRQbggUxAEKD/5B9QJA5gNA+kBcJV4UE70BLQeRLBSsTQBWQE7Tw8sChNeS81LZGQDvYHGbn6AQM6Sds1tahf3EgfegNcBUkCW67w7Xn7nKtJI+lu8z+KzWHIliPXfMo6+0uFywxmXrGOFK6As1grqDAAG6REF0XmMU1MHFDvYHwXpKsChgjGhl5iamRf8s5IP2AZUCoYAFHyiQFooFp2VsACCgPoMHqEomNVAx1p9CjM+2uKgyoSVAFAAUKAgAEy3oq0QtkMMYdPr38X3QZfDZUoJ4BXF6RIFVKqNJfWKTZ8pFwF/mVKHvpCLgljpgcBRJwbQBSZMR2HNglkClX0PCgI7F/yM8tLnhMTHoEPbARFWeTBFiAKcE0gbkIQGAQj9uIF/oIecIupAvAhXVsvyFOk4OPCOU8Bw3Q96guwGxHoLAdYqZZA+QEugGy/GHIK1AT8xweh5YAffmHIPzI5I9hE4dgkewFrUayC8oAxZp5kFX6I9AIFuXK1ZuaDf3u2AqdcYgbOtFMFpmSTQAS3IDQTTdJOBSkGloAS3VQAwOBDFDGr2e6jX0azBO/kHZpXDG5aCK3Heo4XxhZAuwHswc91UuAScxlmCQhF3thzYTuuajlFey3oImdmhsTzBsIYKWDygBswbCGU/wQgMnkEIoObQYFLVtBJXIyAAQoO3iDWgmfGrttw66k6zW1vKAKQUkgA2QB/oIY2MN4Kh22tNGGB/oJv+n+grHOuaCrqBme3Ilk/bfbA/uBYMDEaE6KhZzOvUgTkLxYqOmdiB1cLLA/U88LhRJE6wfXYFR0qRBesF1DUwSiAAXmMT8C7UpSLkhcFwxI+G72A/0FLEQoADRuCbBiGCKYbBtQCdl1A2rBUkpApYNYLZ8E1gjoilgtAYgxdX2wB1g9R0w2DesE3/VKYOdgnrB9eExsGUnVWwcEwKbBvCBeYyzYPxCPNg17BjMZg2pM2DVUt9gjhC+WDwAjJt12wWZzfbBkUYWsFUfxOwWz4M7BXWCLsH14SuwYNg7rBI2C7sGtR3GwZNgjBeL2CZsFfYMFUPgAR7BHEwvsGNpzEWsG1FeqIWkuoEQoIASBlggymWWDdtaBxR2QYig+1gLaDuAjrQ0/+jvfelB9hBYaBMoKCgdvZNlBSg8HQicoN4yCPdG1BrZtm/IplXvLqGVcIWHL0SgB09W90CaIcZwvjtI7bzHR9tucgEBEpl86ICdWzySuLYEwqZKJGBqrjkhoE8EAxKw2FFEy73yqooGCVayVt9PfxjWS3dufhB/KW7sMppQ31iYEOgtT2ej0Q8D8oPCcoKgo+aXusRUFxjUVQWqgjbamYCdWwpdSV2L+gRAAxqDuBjpgJVQW7g96SGqCaQDmoMlQf7glVByO5pUH2IiNQWbJQ1BtsZzUED0ktQZdwa1BQDshcEv+W4ACunR1BhkC/9geoNdQS0oBtgJeDfuRihHh6H5AckcfqD6BA/ADm6DKtSQk2KQzio5pGDQW+8O0ec6tbmwuVTkvFIuIaSHnExcFq2X7xLmVRpKQS4uspRAMj6AezfPBaTR+wxeRW7wX5gV8AWMRB8GZWUi6FY3PKII+CcWrS0BMih/Rf4gmyCmuhn8UFwX47DmwJkUuL5yoBTKqxeAi2OpkeVIv+RPwVN4ZYAauCdZQDhUvwRHba/B5yBc3Z5JQy4H1Sfr0zGCLyrY4hV/heVZKAjNAyKQophxAW8A5qBtYhCqBbJlAIZQBcAhHYhCqAEIU7romgzxa4dw5cGv4MWFA/gu3QTwRUCFZ4X0iqfgjAhFNNtOAgAFgLj/sDVMhjVw7jErkoMMWgkFBDOCJ2SVoI1AIFoCnBa9MOsJ1oOWQaAQq0AbCt3EBdgNdDlsgy5B7YDcwHCgKvmGcg+0BByDeCG8gP4IUeHUFBQhCPkEXIMbQeIQ10OoKDPkHoAAeQf9gvghRYC8wHdgLkdL8gi5aahCBCE2AEkIVawEa4YhCdCESELuQV8ggTcVrA9swagELdIwQs+KLBDYUEiJjcQDC4ZIAfICRADcADbREzgyNYLODgcIQvwJ5jjgoNBz+D8AAXoPOQDTzX6IQYoXYD9RWXTtnUVZGkRCT35xIxiIfutK6APDAlEA8MBmvPzSFIh+YAuBpN9W04AY4KgiNecJ0rcoKjrjDja+qD3VHZqnm03MDJgQ+qVBE/0ErmA6Kr61K/ONUobggqdQq6ofgoIhiwpLcBnFWmwgQBKFW4mR/eQN2CEgfXKV8Af6D4aJyvEiSP8kVsAcT9iZ78wFVkPzAF2AMGDG8z1mROvGD0c3i464pFx+sC/TPqAv3YyMZtQDbEOWdEMHEAAQOB4gx5YCGcPK7f52yrgXd6nEON+J6jJSCRgBAXY/YN1koEXUfelkE2bJpdGXTjGZb9QYLwQACmbUOIXCRZ4hDz93iFgxE+IX7AeQMRxDfiH+rX+If7AQEh3xD0UjjcEoIU4Q5gALhCDIDuEKtYAD7KwhVbAbCGMDTsITlgx3BWDsS4qQ3FQDGdnP8A1RCjsAWg1pcA0QsvG4xDG9j5QNp/iQgIghT6A3sD5a3ygYNJUDBT9VIkBIHHuVtGBDNol4IXES34Ew4PQIQYOdqAycAkBxs8Nvg2zadVYuCEigKManZJSV+kI0LKqUGCZAIn+YJgTIAo1D0/yh9Ffg0/y5+De8CH4PlwbfgykA9+Dz8FPBCtQAH+SSgV6trwBF2CGTm2ibAQ0BC+phmkNIAC4QYcAM/cn6rkNxleCaQ6dowRBESFLuxPMFaQ10hrhC9wIAoE3AW3XPhaLZISjTQEP4IZaQk0hnYChQEEISHeNJA4aqbK4sCFakLQIbIrPAhIuDwZTbdFJwVYQscBtICWgHiQAKITMg7aBY0CLAATQJWgTNAuaBC0DfigsM2LIYMgqgAF8DpoFbQNzECdA0KA+DQz9qr2FOgf4ARshwCDN8AtkJOgbtAw6BQ5huyFdkLNgTmAM2AVDBIYHtkO3gY2Q/wA5cDKoBINC/BuXlTWBlUAObRxwPnIbdA2gA90DHoEWAGega9A96BgNtN8D4NHdOEg0XPA6KFQoB/QO3gYDA4GBnQBPqDxEG4AJ9QRQAn1AASjZMGMQEEceAAAWB/ADYwJ/gRYAWGss7oB8AvQPgAN9AtRwkMDm7qFUF+KAPgbRClUBTqxgwOMQP0ADgACMCHdLYwNSINAANeqK3skGgO6WRgUEcXgA2TB+gAF4AqANEAVsIFgB3ibswOBgYjWMQAVDBVzTZMCoYLg4GjgRABsKFDkPRQttIYxArYR0Oi9AA2gThAD7Qt0DeqCjQKNKJtA2WskMDKoCb4H6AEQAZGBdZx3pyYAFQAJVAXPAK3tRoGQwN4ANDAiwAsMCB/i7kPQALDAmwAvMCIDQPkNGhnhQuGBv5CzYA3kNQADhACoA+DQkKG54CIALTAiaBnJhXYEMIMM3APgc3c1MBFAAD4CnhsAAIz2igAyAAMoh6AKvAyshU0DZoEnwjpgZoAOhgtAApAB0NCRrOZQoz2AuxJoGwADNgL7A8iwigBJEG0YmAQQj2bShblDKyF6ewcoWbAULUzHR+kEDQGY6OFQ6FCwVCTAg2AGBgZWQy6B9MB2VIyIJwAK+aZjogwBaADUwEngWwgmRBwFw5FCewNgAOrWHMAdJlNADMVDNgMBcLJBw5DJoGVkLCIEegRfBRntUCg/QAgQTFQ7BBQVDGkEjIPyocWQy6BRABiqHmIM9SMx0AaAlVDy4G9ABqoYshcuBOGF3TgJUOLIUlQoz2UawcMIW8G4AGQAZqhOOI2qF1UJyoUZ7J/0I1CtoH8AAHwJ9QcSh9xgZlpYqWQAHkg8KhOGErYGFUCM9hUARPASDQdADw8BmgUHORwAOEB+ACqAFv4J9Q76hhd4yAAwCGhQi7A42BQMD3CDMdG0AOihdhosABFABnwOqoYjQ32B5cC8EEre2mQd0gsKhD/AXhxmwH4AFFQp+BgNtwaGwAGcobAAemBecCr4jMdDyQTUg3BqYVDSaFfUKQaIMASGh2gBA8hHMiumK9Q12BnQBFSAbhDNgDdoJhBJgQoqEYTXqyK7AiWhQMDGEGOwKeiMbAhHs13BLvZGe20AAjWaRBICChEGI0MMQd4g6eBlshjEAYKkUAKFAKhgyVCrpiKADYsuihbJgZ1YIBBINGxYAMAIz2mgAcaEwlB6QUBbM2AQCDegAZUM0AFXA9qh70CiABhwIGgPEQZjog9luAADQAoaMx0MrQVVDOgpGeyoYDeQkuBa1Cw4FnwIAQXcsa2hVQB9PbooRYZt0AN6BqCDkkEARUTmGbA/WBSDQ1qFVAFngVTQ/WBFyk3aFHoF9gRPGMKhDSCcwDe0JdgX7QzQApiBhABB0M0AMx0VQAS1CjPZGeyeiEegW+BP0BAbZ5wKlCEZ7F2hpiBmOgC0JRQi8ODFgJNDuADC0P2objtcWhN5C/YHaAAAQU9EJJBSLBB4ED4AjoeihLwoF2NJaG54Azao7AzKhudD9aGoAFRoa7AqhgZSDukF/EiVoagAOGhVABruDvQOQAGEQGRBciD7aCqAGvgdlQ8eh6VtPqB0MHZofNQ4uh7hB+aGmIABocXQnmhm+BOgCeSGY6MxUV2hgDCIGGDLmboZoAB+hn1B7YFIsAkQZvgQBh/AB2VKwACPQHlQ9yhl0Dc8B0MEwGJgwyah7lCB8CVQDOZsShS2BieAmyBhwJs2FNA1AAysDVaG9AENga7AqRBAEVHYE6IKNgWYAApBdwhQEEH0P8AL7AoC25iCi6GR0JXAL1QmWU5pYu6HZe0noVbQiRB1MA+6HCAFdgQXQq+I+1DSaGbCFngYkgiBgvNCUxDMdD+AN1Q4shYRAQaxSAAqQTowysh90D4ABo0KM9uoAHOBjiDzyGOwMwGFsIV+hfQAoqFTQO6QXPaMKhrsCX+CE0KM9mwwlhmiNCwqGOwP9gRlQ8ShlsDB4FJ0I1oXQwLBBbjCykFtINCgEQAVeBzdDLZD92ixUrrAmRBVAAkKHTQL3gWbA4pBTFD4iA4AFMQIAgvzYVel4GEpMJWgRvQMgAx75mOjQACMYStAioAUoRQqFHoAHEBUAMOh0Pow4HAIPl+sDAqKhGVCzYBzFBDoW3Qt6B+ntKmFTQN6oQ/QxQAieANwjHwIf4D3QjphxeR7aBShC2oStApKhG1DgiA4ADYgE5Q46h3SCZEHyMKM9gkwIahYtDgEE1IJWoZC9YBBOEBCGHTQMKocVQxQAADCqaH71DboRAg5phUoRhyGzMOmgfTARQAwAANqEpsAaodnaVZh/SCcEFGe36oWbAbRh7lCzYCDMMtgaVQ2Bhi4IRqGb4FdgfswmEo9tA14GJ4GpgG3QnMARnscwDRwNW9pPAvOhwFx5ZDyW17ge4UHpBfjDUazXcF6Qc0wgZBA+AvraxUNAQbfQm5hvFDImFjMJMAJgAU2BsdD44GosPboTIg3xhFgAsWFcIPPoVjQ/2BN9CwqGdUP6QWFQj04jSC1aEUsMDgaUg88h+tCVMJhwP6AMlQzKhtAAMkB3ULcoRbA9qhisDqqFRXAgEG/Aj+BX8DYGE9IOjgW2qS+BsSD4ADHi06obYwlhBW8CDvaNUN6ADa4Zlh+sDF+jMdDuWFsIY2BzLCIBC2sMaQc6wwshbaoqAC0wGSQSYAFOhXlDgLix0OlodIgwy25LCJEEq0If4PrQ9mBSDQLeBtkKOrH0gmRBe8CNaGG0N2oQXgXPAccDd4FHMLjgSDQgaAhVB5qzHMI8oeHidBhigBqiAVMIBYfEQfRhltDgEGmIG4ADjQmzYzdDXYGaAAY6GnQiJY6KFV4FGe02EK/AttUPCCsaGawJhocQgqeBSSCWFxRULrELAAexhecDPqEyIMPgTXQp8KzHQl6H2wMJxMeLPzYvjCN9LRwNdgZPAthhyAA68i2UJ+gHcw6AQqPor6FDkLSVHIggYwwFxCkE1wM1gdHpX2BZ7C+qHF0K1oZsII2B8CD/EH2wIGMOZQoGBwyDmqb8AGHocAg2AAOdDOYFNkOXgUDAzTSfoxh4FrwKxYfAAJxYa1ChEEEACmgQkgvBBYcD+cC9AAGMKugKaBq7ClaGjwI9gTOwzlhIDD8qFssLrIQPgGeBR6BN8A5gHZUlNA7oAKSCXGEOsNv4KFAM2Bh9CivzpkJhzlCg2tBMKC1SKzaTJOnt1GaAXyNLr6+G11jkrbCIAeAADGyosFmNqVmPqmlmRBcr2LjxoBr2c+Ov0AGxBtcVY9j2wYUIbKs+OHqWWI5puoQpW8QBAU6QUHGgHnHLPatsEtOFW3Td7qVROrMqIhmaK/QFtgsUzFzIw5x2+iSSURFmU1CnoVnCZeKC5UU4SM6DMOlOA+LjLIitrJZwr8m1ktAZakZU04fAAfjhznCTg7WbBYUJEgF16ri4HOEip2voAvlc4urmZ7HTRsCw5HwoWLhH1UvpL6hVkFurlb/Q1WQhwYBfXk4RbBQP4ynC98APfTveCjYfHgf2tTa4IKAi4TYcUaWGCsnyy3OGtkkzsYLh/7spOGoyztTMUaVUoATtJFoacJazOVw+TaMXCbXQa9jxkqlw7KygfxmJKxUUIlmJwsWgEnCu7Zra194HMgzjc6JCjJKYkLH2GIhNghI6DP4p8lXhIR9JHAAR8Mn0CHoJYIuq/QVQWgxGPDZYGqIfk+NEScVhd8CN4H4XN6FEDiUi4ouTXcJhjIzGe7qE9hgmC3cMUao9AOOacuYTuFVUTO4aeyR9Ay8ZOXgD9B5eKXUbtBOIA7uHMtCmoLzGVEA4/Epy6n9AEgRDwqag0/cgsH5lH36Bm0YHhBaQ4eH7UHR4X0iaHhThZccEbEE3ziv0erQSPCjQJjZTqDlWQXpIdHDDkhzcIWkgtwjgqp7MsCSscJS7lwuN+GyJsMcHBMDWIaTJfEIG1kutrgYIDCpeDXaAyF0YyKo8JZ4eY5VYhMvAOeF0dVf2POwS7hwQAVFS5kPWdldROB+q0lxlDe4OVQRMHNVBkeC/cEAtnjwf7g22ArJZncHwAB9wDGWdeYrb8TrxyAPTRIbwxAATcgemTnPD14bi4C3hU+NPiGm8LB/s1wi3hVvDLwBrfgsFvc8QLA+0ktmICnH8gPnQHMg5gVuwAWkDxCNReJSQgqDzgr+4N4kFZvTUB+MA+Gbw+AzaErVK/OIztY8EAtjZTPvKQNAaTlG8Kh4KVQZBoYdGkyAnUaSpkeAK7wgocnqMkcLLW0xQFX0CyqSMRzeFjADd4VnifEIAmcVeF6JHuks3w+dssxIH5JT+1r4TSAevhFuASaYSp07shY1b0+NfDLuAl8J6ZActJvhOqD/cHkf1T4cRIA5ap0B2dwFLhYUtwAEpcpENuADpgIlQF3wXVBqa09ECvGgKXNpxbgArxoSlyKtF34e44DfhFutD+FFOH9weH0OogtsYl+H5oLMyI6AfNBsMU08F3yAuWo/w+EhN7Ug8EFLlFikHgkpcVXQvXhPMGf4byQRben/CACq58IuKoo3eBq1/Cw5AHgGO9DkQPA4irxc0EQoIvXFTwvl6mJDpwFz2TjtiKQZ7WHhVcyGMhQ8AJOAGuu+VcjBoEPQbADcpaJwOx4iBE9FGANqv9G5SgtQQVxUCKpgLQIuf6Y6AmBEDiQgIJNwyLC8QBKhxdlVvphQI+pwvAiFBwg/GANgIzfARPAiihzGQSSxvwIsdAQgipBHfKRbAGII6Ahqo4gEYgXVQurXGc+42YIjsLUT0UaO7KBTgvCI/xiXAGldEkDEQqSZEpwpCg1xITPrNoIor0NpYl8U01o8wJxKeGhbMBRqBAeo4ImDQzgjT7oeCI4QvgI8xggqlPUEWsElqosoAjKmLIsrIYqH00K9wDvoFOhK2DPaCgYIL5FiaGKh/JzAQAlUF3YYn0S64fBHR8Cl4N4wQNm90MrmLHHVJQYLRKs0or1QUItVjYpusAeQccgifACp8HwBtaRJ5IoV8/4YF+FREBUI0BwitEDYpTzwbsCFfa7AK3AGmwb8OyILsg7fhvQi6cFkbErwZawNBk9c5bQD/0SCyo13IKOgqDz/LcXhMCrmRcnitpEnUyivRDkAF9fARXHcdFIexhBXEsIH7kPkUyGaDS1XEGYI17GqZEdCblGFDttWzREADAiCGzsCO4yhhheogbiAeQHoPlEvO3IAwcnqACEI9SHIIHhyNy0OrprxwH5BGEMAARzARAic+SsZiUIW2Amh2kVEVqK2QHflIiLXx6fFBwATnQFEAM+QBCgD19uCAEUEapIpfEbC5wjS0blCMkEZUIxkOuQisMD5CK+fCFRDJGvowb+zXCMIES40bIgQLtz/IHhBGEG4gWgA7pAaUBliAAzkwfNB4jQjcRHNCOttiZfNkRzxQJhEZS2LOEcwBPI0IjWVguCMlIoKI45g/TAi6xiGhmYMKI7v6WKAFKR8iLsEf09Tu2okM9fqN2WyrtAQ3LgSikR+y5cCIEZ4TBzwm8p8iLg4wgmnSIuMQgIBGREn0GRYjiI6Dc30wTRGW4ATGIutCi0+PFvpjTZQALC6ItjAiGFaaSYFkdERyPHnBjoj01qRxEHomPIHO+6EBZYIeiILALWtYgQwYjXRFxSXZQTPrFXARQ5VrYBDCsgkjla6A+RBrLTNcSEEatbADOr/dW2ohiO8UJyMY5QEYijpp2zAlaCWI/2AUGp6aRQFF9EZdhSOINYiQxHqNBpdg2I10RBk1RegSL0Ooo6IuyaVYjiugliLikkjhVqwmuDHxq1gMiwr4InYROojzuD9JCCfJKRZPi5gi+kZ1VhKEdiIjkRaTB5BE+LS2SunhIocpOtcXCzgAPyEG2AER8IAf2hmELsAMAAOGBwAB4iCHkNgAJgADm0HAB3lhTQOiADhAM2BQc4VoHdILuoUPAwG2K0D0UJmwCHIYMgnAAU0CiYHTQM/EVNA4qkZlo/xEfiJWgREsMl6H0CwJFosPLgTl7d8RAEjBkEAsIAkduQ4mBq0DukEASJPEQqgVNhxsDuYGfQNwkdwwz6Bd1CJoF3UJzAANAT6gx5DbqG/QLytrg1HoAcDD+gDcMPpgM7AsIg1MBb+AVABzAD6w2r2n8CTxZHoD+AOGUWlh8AAOYEiULwoX8AEb2m+BMABhEElgdoADWB8tINICYSLDgS8OUBBueAU4EkSP0oZlWCoA8tJH4G38HqIPLSbSRO3BSqF6SJ0kfpI3SRxkijJGmSMMkeZIgyRlkiTJGGSOAAGEQSZB6Ei2mHcwNv4HTA1eB4lDV4H+AGAAMShO6hqEikJG+SI8kSJIkb2YcD+mG+SOKYakQbvgs0D9KF0wOBgQFIqaBJgBgAD0wBXAF5Im2BebCQpEnMJDat0gvpBk0ClJEByESkdpQtGhKUjUpEzQPSkWMgyKR0QBr4EeSM8kXlI1yRhUjsGHFSL6QXnA7L25UjcpFESLDgTVIgqhdUigpHaUKkAPSpCqRSUipkFtSKmoR1IoshjUiKbQrgF/EdzArWBRsD4JHEwM3gZVIhVhrUiBpFpSNoABlIsOBpUiwiAWuGakflIxaRS0iVpFvQPRQmVIjaRc0jkpHbSI8oUNIyaBB0iKpFK+WLImPwIegLOEbRFaQFXEaW1OwmqqCcWoOd39wcSIwoRV0tGa5NDgSYoKgrKSCeCMupvSIBbNrgVlYlyCi6xwgMpZkZSBURRLFrpGfwGPAEeraES0MikIxoiI3rP9glAR6WCsyHZYLl4W7DSji4oD27BwAAsAGSQcmQ3f02kbBCTHkP9rKpIguweIr68M8Yri4VcRTSsyREVQEYEZSIpdAQ3dc+GD0QBkbsrBRYb7QGRE7ckeYIR2VTKre0smI14LakMBgW8qkmEhBFZMTpkXiIn5unzpFCDcWiUqtmIu0RAGc2ZFqoNEAJzIhMYQ6QXpGmoHryADIpGaJyJ9eGriKIlut2eWR8ABVxGwNAgONwJNy0Zg1yZEjiBQwFhgd88Yo1dkFBgIwHEKAsUWudhwBobiNtEYfjKNBDKlIcjjXz9Es3wweimvDiJDN2kZkQCudgRWTEg5EYsSn4QC2Q2EZojY0AWiL5kSLI7sAKCgi5DCyMI7FpgblAiYjvZGENUAzuyIykQTQiNNZGAH5EWrlWURfTB5mBDzy5EX6zWKwRLFL+ZCiIrkacwGYwtq4CqCcwHwIRtFeLBfIDJ7AEyNwQBoQKwh5OCYeZ4f1Jmh8tV7Wk2F/wAVYIlwtUQ5nCvMYmQDaqX+dh9pToGgqhWhBcLlnke3wx96Ui5V5GQp0TkkvwA5a72A/MgW4DVUk13SFOcT8yZIVgy5+nkwQ9mAkDXODDVn4AJa1NRyExCRRq3yKQnDSQ/whljoLM6mAAUcPLgtfaDdd2WrMfz9AIfI3/cjGCWyQOvzEWn5kZlsKghZzZvxVXytSVVhy2s1oj4z939IfEfPOAJZ81UBZCC0GLMPLSBRIcEVyXQGRjKNZNRIn786IAgAGkcnZNevB6YRsUg5jROeCdNbr0oYis0BkYIPAS7ALKAcLxv1AewEXUvvUfPBCEAHUHTD1vkfYARvAXOon4C8i0Ksu/MGSYCnAXMiuCjw0BHzWAA72Bx5DCyjVKif/I4OLCiiFGtrT0JD7JTdBLe5yFE6TQ4SC+obQAHvtANAXyDtfmwokAAHCiQABcKJAADworUoyzoTSJfPE9It3LAV4yqV/JInkDw0I5kGDQp/RxMhkBDVeOPfGpgKLUWiFB2xf8tg9DPqSTAsMHy4KZIQyAPXiJpEcCArhD2NmJAk/hVbVtWA4nE8WqRDMOiDuDIj6cGBm4QwQ3rW8DN1gCeqHkHACFYdB+O1qyRK7HqgDopGbKTk0kcg/q3kHB5xWa4hzQATpvwE1EmsrKDq1Aku0AIdWoEmMOEJC4HVEOplcTTSrkomkG/isacK10CKUSZgfL6hfA/2LiRRHIiuLEpRElBGNAVJTAyhVVe9Kuho6OEfrjQEVyRGnhDaCX/pSIDMyFgjVkBjaCCZEFlDMIeeAAvsYwstlHR8ArsOxlGbk7SA9xpXAEVAVgee0BCVAyTpnAzhNjZtF1W2QA6mK61AVqlslTlccLUCdZhm02kADrMeObj1xCwYZWsisIoPngU4VfE7hUDSkFY2O/Y4KjjGQnG0E4VFFU/BoKjQUGO1m3wa0gxBMsuCEyFi2UPwdGg4cAyuCzL6q4PPwemEHOWnBs6jYyAAgVkSo682uoCgza30BuAPjI6PgL8o+6CBIGjIoCAVUB2MhxoinIPbbLtwTGeGAAUAD7WDPgggMX9WiKjIpIeUF0gNTLXqYUKiaID8K0HjmSox82uoDEwE36FBQZcAKeo+yCPUqqGzQVrVCRZQiYclVHgBEOyGqokCAiYcPUp45Q0TFbWHL+0CN/FaAqMqTgaxU+izUturrmqKnCuXgPm2aAAcJCJgOUNjKo7dYjoD5VEQAgJERLLeDirYlfMDUqO7kbSo1YAvEUVgCsqM1AfJAU7kZLY4PAOACmUHRIFKgNwAPGCkSX2EfkAM+CaqsnVaoKx5yt8BO4gFqjRzRThXhCr5rBdA3ZQ+rpiqI5UJdLOXGIMlRVGmYXN9jz7Vqyzqj7QFT1DlUc6At621dhhCHKqL6urqAr9ijsxBogos3UgNlyA+gcFxqvB9XXuQfEQPZR1hQ7QHSEM4tB9I2ZGlhNOsJURXtAYODaFAw+xW2rKiPFEfCJEUhNqjjhEe4z9AWyrdBouyiDpCpmlfQB5QN4s2DYERZJ7yxQDqQjEQkKgz1HNmwUol2oq9oEbEKAAbiFZosrYZ8wfkAFSGX1Cu4YgAYAASLtXUq4ELvwWQiWTKP6jdSFn4IwtuYNcIWiAVtBEZbVFUb+o7/Q9aBQeF5QCu4eLwz9R6rtDYhiq1PwedATdRFsFurq7IVeFqEtCDRh6jfChU8Ggem5FWdRu4ljbIn4IrUZRlIjRmoD4JYqUUsAAv9W9RvaiFGzdiBMioOo4dRF4RzkHjqOt8BnLGDMtcilUo6QgxEJxsUXcv6jCJZgqN/UetsO1gAmiMdy7kRo0TeontRcqBeZB2sBMsKxRKVc3cZ7Zxj0DOAEBITWCkCtuNHNYGk0XRo2TRHQVRSGUaLB6AgKLciYexV4r9wAJ1kIgK1RSwhFWBKI3Q0a5lZq63eCjzaONWTUscbMzkzUNJoY1cKetFwIyI+9YD2wHbKJY0buowtBhhDcGAWAGOUe4nMIAEIAvWBFoN7QOso6hGuCAuOAQoOrVIso5ghTHCx9iIzhvIUN7OeBjgAqGADQE6ABUAdnsrcCjxb3iMKoHQwbJgOYByVjOazxACZrNzWHmsvNb8ACIAKFADf6BeBZNY9AyjiAprVIgGVAcyHLcPbktPtbc6cXY1mzbaQ1gItpEHUc+01bLWKlVIbng85At6d7iJjCxo9tB/aJ2n6CXYDQAGTUpy0K/KsLwCwBOuw56puvUEem2jPEaMjz20aUAmfCTHV8xpVO2dysqAjziSWQvRxhy37yswAVbRIAA4fbnyWlkmQUd124mReV61EEO0ehAbbRygCPtGvaPPwhMzDjgSRcXtFbaMvdmyPT7Rb2iSSES5wsIUkXcqwIOj7fY2VxonHMgsrQDHDMsG3GzpAWD7IJKWJDIj4mqI/ElScW5EozN/A6r4E9thNUNP8MmiqkAH0APshKFKNBiqBjL4iHzgPs7EZbsHl8u0AhZ0dtizo/IgF/cws5AHwfrDbiV/e1cQp57v718zo/3TzONhAONx0xH7RKyIr/ebOjBR7RZ2uwOtSZbsDNINB4y6LUPororIgXuVvhG0aO7UeTouVAjGiYDqeJBcYteovTRWuiDNG7IQFIuMIk0hgCl04ieDAXWL0IIcReTl5lG9QMxkdTgjgqymtEzCDkUgKNgIpASP35hDzDVg90TRQYDWQ8U5+bVxVB6n1ZMu20GsjSAkaywRohrUiSyGt8YCoaxWuI6QHSA5wisNbpkBqBj4CbMEh+BiNaRa0m1ikdaRWBg5qNZ/CzZ8KGIncRWTYmNY1SXcoKxrFTW1fxONZ3TW41rG7R2sYt9oXaH+hdgMJrMJoomtmJ7ia3kIiOo8fC0msTqCtaPk1oprAGALuiFhSqa1UlhprFURhtVtNatG3wBgZrEeQfrAqjjVaNc1mZrAyAnmszyjMXjwWhf5NXK9msTsDwiSM1gvo0zW7mtl9FeaxbAD5rCPR6JtKBCBa1hFrldReQcvCCYCXIFP0bKwDrKFeE4tZgxSXbslYZLWYZALwFK2XS1s7JTLWCGFAZBiDnNkK5wArWycsitblWRK1mMxaRabuBT2QosFudrymGB27+w2tbIoEI2muUZVKbWsNooTpXmUc2wFLRlUUEMI6TSGwFo0PSavvctGg2TSnuhvBLeCNVwd4JY6II9vjtJ/RHoNU0L9lD46vA/H0G4VhFH4b2gZWNdtIMGMV8M8hJg1AIWt+duqYfUCUCHsFdAkQ5WOe1vhEJY88PHAJjw/tEnnhceFuXnZUF8+KE2QkRyv6cJTfIFqHChkwkZ1ZCsGLw4C7AdYqgYMX+rhP1qdDrZRUAY9V0sKsAByIKZhfTgeGsgQCYQHiMh8IiSAR1xh4CCIBuCBIYo2AUhjbM6LqXkvKWzZmiz2sGFjeIjfIGD0HWyVVFP5hYmRMMQY2cwx7PBLDEqgGo/GgLOzCKWE8up0UQ10EYhcmw4AB5NJvZB4sOAAF+USKBKsJGgHdUAQgAoQzgogrBzSRd9jxrHMgbsBmsAiNFisDk+TrKR1gkQHVRTdgMwxfUAGvFl4BCRDLQAtgO/Sb4AW+ZUgK2CvQYra4AaBGhIDYHH0TMgdCKUqAo9I1GJGwGJAQhA8RiajHgYlj0nyItIyhCAt0Ck4PbrPEYpFA4elX9I2eHarEbzZ0MoVQJojDRC2MXjGUKoS0R9jHtVhYZkbzbr0STAopz4YFiiFjQI+AN455oAAiJoNinyPVCZnoYWJxrn4hlOgXfAwZD5BwmkCN5s6mZBEKlEowT7NCd1jzETcAPpAjeakN2QQHRwuGYDQQcJC4IGwMWjo7MhZJ0I6otw1fksbREKqmmESwDbmmZwWNAV3WB0l4QC+8LzXs+TeRQFPofax3pR7oPOqaFsQA4xL4f0QoANKoZwATpAkGB2cXtICioRciNdszMis2FWAD6QPwAVdsAoAn1xgYNC3AAcJyAeQrZS2MAObrLn0/ODUvqg9Xj1pthV5ESdFzpK+6OmCpFcSwqzlNbYg92UlUD/YGpiU9RtaowZ21qv39T1AWNwWwCLzTFMjUxLmMdNFMmKoW0qUmUWQ0x+oAb5blFAeOjRYMiAdqkUSIWkKeWFepP2R+QBLkCyoBflp7IF2SJz1NBRkBHuev7sQDanAdI/ogpxkjoYRQgqpX838HTox8OuEQjN2etkZrKGyFFvuDZabAxOiLhHrAD/7N+oYPscM4lgABKG/UGWACsAwpjawCamGfmhC/Vqc+fNTSrSvg/jOUlFBEs8lcPhX53LogIpDIGP7xq8bO0RDqrkDIrQbXFkHbBlV8RnT1d1QJhVTSrg4UwWIy6IdgNpUOlp/Mk6Inv4UdgjLoGupwUEFwKfNaEooPVtsLiOWBFkCAtkBsWjSNYn0Hekm4gCaIXHcd4In0E98OKA7ZRNKjCZHmbUOUWFo1EAegMQYJHmKOUZpZEhgeK8bzFhaI2ETX2ZA4j5im7BhAAVsDeoNkBvIDtlGE7hqQNc6SgQNngoIaH4DTMaWjKog1kBjhxLAHkQGJRSCx6pMy6BINBEAutPK6AMFjUVDRiGYAAhYkCoF2ivNATtDOkGqA4G0uV1/Gh9WjdoP7ba/GKFjNKAazTgwV2dCCxqFiHNi8AARIN3eK+oL/ZQFDoAOn+JiILGgYwA5HSV5nQfLlQF/sVHR3NL2yJg2IqAVUB9C5Q1HULkF8uPZJB0XrBmPYXQFREOwIl22nWU5BxR8kUHHqIqmA8oV2vqCoNezh7g4iQM2UzsqWEF8GKXgsNgM25yRzssCzYEKA+MBkFxdGj8EJLAbAAe4AllidCGVgIwRKrAIvc4eBV8DS0FXwGTQUTQlDAEWBknR/wJyIBEw9kYeejiphGfKao2qACMZMKDGQHfEJ6gEixrRB8ajSNE2MeIobYxTtBdjE+AGOMU+OI4xCViDjFO0FOMeIoX8AoUMYYCIwB+MeIoRMBCMZe0BG8zysYe2QqxMDERVYXCFBMVIgI3mYpoRb7vayxQAQYD2WF68EkoAp3tUVlAHAglAgpSBEm2UCkf5PecehCNkBPCN8csfrOo23FieWAv9j+1jIpX3A9pkeYAXYTk2ioI/ZonVjz0Q8WOcbvNYgJQushryImRRUEUknO2RksgLQFzDkaUdco1fAvgiTLGV2ERvG5FQEx34gbtABIARUaZOVsg3kszQFYYGtNqKo/1RLyoXKDovCNUf33e2Wr80zPRmqO0cOuoi9RANirmIlUGisQmAJWRDAZEpBYiO9tnSpd0xCVlN2zypjPQUmIu0RvsiwKb5AEVQE7EXaU1IjdpQuWKlYJrg0CxSeFORGp8FBgEXI7rgBlBDmTE2PJsV+lB/k/nAR+SftzXvG4gMmxi05X6DxqJroJV+NEAzGk5hFQwEqbvtYU88AMspVH8232seaA5ymy5ssLH4wDwscR1EFgXeho+BNSF1AU1IYSx40RxLFJJ2lOCnQR6xwtiXrHTxzhUe9Yty03Bsa6JYWMrsJLYkO2i4i2qyE9B8UD8IxDg3e5Cejypjo0LuYqME+5iCxICMEXUcUACKxVPA9rHPWPCANXYSwgNlB0tGhQBSTsNYtJGpSwyDHf60ggDvBDqKJ+stVTs2RVUemo58xNuRm5AfzCgGrIrWOxt1iq+hJMAGwJ3eFaxjXDsYDTnSusXXCVBgKdi5NSqhRhoDyVLrKJ5j2LAFCMnUcIVKfW/RAPbG8gRrsQJYr5K0ExBgBj4jHEfsI8Ox41jZLEsyInUfYIzFitdi8oDR8CyklhY3wRXyBBsrxcWP7BKeZcRD0iZZGXABenOvMYOsJBMo1Gg+j4bJjPKw8FAlV1Rm0w5phKeWWx+oDiOq92Ibsf3Y524aKVPVEnHWhkXTGe2Q3T1dIA7CKIEe3Y682j/Eu7FpsWmooMAeG07aRtq4G2P7CmPiZ8xk8ByRF5LivsdY/Nux7IBj7H5CLS0N3Yj26l/EpXroJQPseOIy+xrABzSwShFLkZfdeeuFTU2pIWqx8AFcxdmUOaiHZDrCS9KlzAEBxbMsV1Eg2KnCudRA9RClZ8rG0sCjykZLQGWCCMwVGT2Be+nfsahxZQAXvqRCWPCuuovIRuKCK7EDcL5EvXYg6xXtjcJYp8V8rDildVq0atrrFx2P97I5wr3UFVFLOgTxkRgBEdEOgP9ApHEoABfopdxXgGMvFPRYlWOJkZUwAhmtnCIewzjHPLEeAXPiOji2MAL6y8qgY4lWgdiNQDo0yN1GCUbfXh+BDew7SyK5EZiAG4Ss+tDZEyyNUcauGcuRIoiB2INyBM4BrYmDYwcMHrHhRR8cd2RdvokWwpBTCELiKMqwHli9DiggbR8F6mGeQYCS0KBm5GVjmDhmXY52RngBXZGxgOdIm9YhhxMGYDkZfWJvShqpC/OBAALeGLlizRsvbEKxpoD97GV2HXCJLeeIAkcipPrMYOBsUUnRmxrOhURBh8NVbPxAK4ReS52BEn0HukZbw6expsjmbFutWHODX0fYAvVjtZHLPzjkfA46wGuGw7HFJY3/QBoLP0CBAjdhE1FWtYri4Z56RFcpZEpAHWcb9xcoIPMik5HBqBTkYLIltmPnoU5HeXSxyM04wfibTj+sB7Yx0PDvkOVU24jTZHrOPjyJDYvXhIziKABjOLdwfqg3QA8aBvpglaAZsePYlQEkmErnFBtlXEYFJIocJJjIeZLABTBNaQIgRdUNamYrWLvscs4tXhOLUvnFmBlaVgnIg9QlojExwCyLTkXHoE5xmcjfcigYEBSlAwbqAlxgmRjFDkDYr+ILAoCnQptqreFCgJLIgZxVNiTIHtcWGccOcD5x7MjUXEmX2RccsHTmRguUZKZCREBAJc4v8x1ziIhFu1jYwHHyfXhJ21puAvOPv4vj3DlxWljvnGayPryBpY3WR/uCk5JEOKtrDIpDyAxTjtyyDyJnKrYnZpxArBnWzISHywshIAWQjRRhXHGYBJMS84k+gJlkXHGrMT0QE84ulxksi7XFciOV3tkwZXeOYBN8RNNxosG5aGVxaNjsRwY2OPweACZXe4qDZ+HfOLkGI2YlqITzjenGrWxz4Wqg8Nx/dEExiAGAjETvbMeQ8uYAwSpuJ0wRwRZm4cGgSxFByHCoq6IqpGzUt+XFuICvCqa4v8xJ9BiXiVCyecSAUf1x7rjPXHK7z34VP7PRAHrjuBhH8JbcSvwptxZ/Dc+GfYCywJf7FqIrxpdUF9uMpLjyxR1xKmFs5H1uO4GG24lqILd523HuOGyYJ24mdxp/DP4CQrm4GHO4wdxPbiE3GbuPesO9Ih2wGrj8nGn9jGAEGAjvupnMymZeHSIoA2QNZxKmFmkIpAGZsVqwCQRK4iZZHYADKPCZY8dxXrwWeCxPVghiIVXqYKgjUuE9vUs6B6Y1ZikjjD2wRq1qZvlgpocaaU3cEAyLTSgDIrvgG/DbIbioJDkboANNKyHjVaLf8LTSrKg4PBowlNUGYeL/4bfwpmoS/CbYyEeII8d+QEpc6xAzUH2QmGETyxfwRcU4BZGoI0I7KZY2MB5lj6+C1ixDASx46YsVliaTC2WLY8UKA6yxZYD+CEOWJtmjyxQTx53ZHLFMImtYqW4jky5tNEYCz2NEUPG2HNyo4Mc1GEiLYcQ0JJdRHZAKFpCsQKca9zHVxh+MPKqsbXzqlM4lh2knjmnFr80PbHJ4+E8k9grRH2Sxk8WQ49eYs1ElREkiPuhp4JUOgARgXPFyONA8STgfXhLziDZFauM8ALp4kgqpAhFhH9fXAAIA4thxuDjC+BReHfcTs4lnMicisXH8yOMsbi4jwA+LjyRxdiSDgLU4lmRVf0wJQ4ZEfcVPYrkRWXiZSy4uGZsYTgAbMzNiX3ECSH88IGhdLxGjYihwFeLaIKb3KTxSYgt55BtkkgI0UXpxq4ienGT2L6cfl4mmqTni1cpRcDvcUy4wxwrbU+ViDGNNtGM9CLMuJjKVA3AA4bMHwjZAmy55IAYIk0YvaQIQRDgB2BHYyGZsbyoxdRfXjW+AAeLi5EB4zhxIHjpHErUSk8R+wFYQyjA/zEkMHk5EJECDx+o5vpE4tRg8U9XEVBdvCxgCw60REXUbP8x8HiIBGVCyQ8bHI/NclQtdUHLGGL4XXwgockTjvE76pB74QUOcYRY+i3CoGJUxhoOAD+6fKD4ADM2M9DjV4p9xXIjyvH5ABozoN49HxqfBjZEBxiR8cV4tjIJniAXFJwCksn4AS7xJ9BchE4WyM8byzEnxB5RFNyeFjZ4EDMWGKYaA14Ye3TgoNnRGbav80KBjEOIygOT45cgWkBiBH5xTXyhIWWQQsjjZiBXbX1yB5447xp3UdTpfyUMEVDAa/c2MVvZbyLVARIKgeyCKDtmtDdWLrIJQYZvhO/C/vEoeO66AZYweAdyhaPGWsEoscvWF1BwwiuxIHWHo+oLYh1RiLjr7EUbRVsUe4mkAJ7i6cHDpXdmuwdCLxTUsODDuzWSrrnw4WgAmA9ZFVdDb9sCovcAT1BBfHhACAkhs7G7itPi79rWlQL7hpYzISesi5g7PYzycVuoqUBoig3ig4ABfCoXIobxeritYaw0G5kcGsXmRBzicXFCyIY8al4wlxFOUmnEAuNPcfJ46yAbXiuvGPSM10AXIpqAzNj8YhdCPXmBvwn7x7Mi+hHX8IB8Trw3ZBQwivUFjwEgceb4wIRwpQrwDm+Kzkep4tXKe3jXPFXbXc8SkgeRx+rj5Pr8EI48XGXOowzrjavGuxzmDvj41Uocd5tdYAuOvpga6FnxHcATvHNOPScXmAl6cCcA4XF1o3e8bfYzuxyzj+/FqoOH8XHIwMapfj6RH7OOxcYl4qvx0Xga/GcOQtRvlhSWRB/jew7c2N3wIeNaVxKNjD8YAZ3f8Ti1T/xocjFmJROIJkUmA2MBKYC+iBjyDV3uvwgfxLURAfG8eOY8QWAogJeYD+PG211E8fchasBVxQc5FaQFWtrKLT50yrig/GquJxRvT1BaqhmoenZSePP8cz421xGfjtYJ04JqVgvsQGW/ziGfGhHl2QWiLR/x9mAdfFSrDc5E3WS9iF+1aXB1RDxIl2wOqI+ljqPGeS3bkOmA9Ni7Mj25C6oLv2HB41PcQfi1VFMQD8gOmAvQSbuDr9BquOMCQgYaAAuqC9BJwePZNtrIscUMWVOZG8IE9UemQKc2RpA1+YVNwWtlUPGkcMkBwRGW6zVQft2bFBgdiPOKcyMWDFx40sB1Js6iGyTj48dx4rKA1+5pfGS+IYKBL46AA6/iTchxcnX8XS4LIJoHiE/GuRXlcMkEgpI/nhFdwc+MKCWkE9awoz0cmq1My/ZjNoAzKo/CQfE9Mnz/Fdw4JRDN1aAB/oM/fhgEsgJCQS+PZJJw+Tr743bxsW5APFS+LSCev4tzAXDiRbG+CPdytKcBpsufj8/Gd+KZcbAxcYE2m8/7I+qKNILN4l+UuXBPGAtHlgCbnIwNRMLiqMbxtlk8dhgVgAlnEnHBIED+KrheKigzmN3GBV0F4gHMJTBcLwDkJCqUFTNCeuNL248ASWH09gkoZAIWaBOXsJKIAAwdTIYEtVBlgSRUGaBJ0CQQEnXhz/jHzafeNsWN3wy3hpfDUAkR+IF8e34GPxO4lj6YwyMz8RbBXZBrtMvOHGgLXBJQIduA0IMODasM2EUOw4lYRQ/U0AkxONSccGAt2RrzUD3Fsqz0QJcYyQBc+NV/p7iNNSnQuWcR66ihQYcsT+AoyEklx29s+QkggHsEfoRV1KBuCbY6BVGdbBPGS4xNFhzbzXIOZgFKEklxJlhO4AzehN8bUxdQYqp09EDUfRaiIuWX4xfDE6zwLGJyfLqtQAaARCsVGMGKidsdaLQYX6CEnaewEWLs56H4AOBFFQl8PxuMTaIHy6BUt6Ql4ZTXvCzhHzR3WFFACdyOPMe9Y3uRWhDtlGXmKs6MHmfzRRyikAifmKtYGCI0LRR8NviDI6yDCbeYwncr+R+0ThhKfMddY3uRJAhMnBxaKVIAlo+wgdti64Q7wS9YPEQEnBDmkCYh0QDcQIFJBzgsJiXmCdXGVFBsAnrRauUTHFT1HbKhLhExx9dsj/IY21F1t4SPPkJuDwrBm4NqZq9ETj0VeApsBMTyVMZ+PTvRu719EZgAQYbhYjSlRMGtvAnzN36AHZ7ToAvg9qxxrWEcgNS2NwAXkkG7BrhK54J8eLIAnjBKqA+mGgvFwJSkigLZJpjRmDHCbv4CcJhREpnq/ykxgJWTIiiCGx5IpB1wJSP/IQmSmwDulGQnEDHBOzAwc0D03JKC6SG0mdWWoK5YsCCiARKp0stWVocY5kApKyy0nNmsEgugujYVgADiEr9LBgPcJFoBUGDPNkaPC7YnwAp4SWLT9AAHwKUAc8Jvg9ijbgAF7Gs9OCQA1zZwoBttjs4r7QX4QjzdQRGWQAvAIYxTwALzDZPTERN2HjKwXkAtGseirKuHnCeOAG4A4hRKyYyQBuADYY28yvEhCKZOOF7oHrlDAAzWFLHQObAwifegWaxb2EURhcQDqSu0ADAA9MACIkf0Hh9BxANGg3wAz4KDOw8cneoB7mna817LU6I5sEnlXB2wzs2UxKPzDCGM7PEhJLsvx6KEXgicRJQEAO4SqADoRI3CbxII8JOESIMZeADPCXGlfaclZMrvF2nTFdpOoPVuHL8PdhCoCjqkeNPVAfBRWmKku2ZdusSfiJBdAPIleRIPCWzY/rAfkS8IlERKCiUtUSLQtTpIW5CZRlEBwQroYcaUCuS2rkFwOdALIgxmYbjYCWV1XvwpIWw74S9qKsaPVIorhF5gPQMegY3G3v3rMRSKBzxtScLdii/CefLYSQrHoMdaI+x9/i61VayP9sB3arg3JkWj9K8EJt4+2AWRO7HgQRTco/w9yiAkCE3KI8tZVwYP5/VoKazB/ByPWxSYP501rB5k3KKWtbIgm5Ra1p+H03KHGI7IgZPdponsGLeqrEdSJAbcZFlDnPCcjDgE3hKtMZz8D6PiSicBNTJY/0SyID1aEVpJOEr0c1+5QYmFES9HCvwAOA8i1/h4HnEdDs91DPIOk1HiqeI3kmqjEpGJOY0MYlfaPTCNjE2/AuMTEYnoQDB6KAiPGJ+P92345hyJiXGtE1YCkCIVbJoEJiVC3Q8BqTUECDgiJ+AAS8a50FiFAwCxfAa0g1gPGJyMTyYloxJb3LzErGJ9MSM8j5Sx9pMTdE0JmNi9xpnoJfwYqgTQ2GFsgETYEI5sPLEvJKCnth7C9t3PcYO3TTMQcxzDhdKMLpq14de4kd06IA+8LkYIuEwuAnAAH5Q4tgjNgXo942iD8cnwmxIXCXmvC2JljBSL7WxNe8AprE6qzVkHYleBKdieyExSQGAA3YkiFx/LNGtY2J271pYJM2N9iZbE12JyZsbYkAgk9IkpNb2JBdAzYleAGdif7E5mQQesX5QzMGP8FYeeOAAkg+EArABf4D1vOdcfwBagAEgBgvHT6OUJEl8SUDd2jtiQWtROJEcS0jypxKticmbTOJRzBs4n8UTziepEwuJJ4Bi4mlxK5US7CGhsTGFq4lLVzNuN+oTP+9cTpPGNxL9ic3EoPWscS7YlxSVSiQ3EipuTcTo4kZxPUYO3EvJAZR584ngAG7ib3Ep5sOWxB4klwmHiUWGVfAILANQChgHR7keUY60q1kZrAcj2/UMz7F8IXoj74k6txXrJcNB+JjWB/h7PxK3wt6nM8a4xjM2CluxzwUfgl/yMbJ1olvxJ1bttEsBJBkCJX6QJPbfnfEzmAjw0NvSTO0nCZy/O6abejxwksT2QSRAk75ASCS7wnQJOwSe3oux2rE9NygSTQ6olrUDkypSCxvL4bUXieQko9AmAB04lIMCZFiUgV7wHJkfrZYW3hhhjbVhW6mhoaq2rhWiecgaHs0S9gcKRIESII7AVuQM5RBUwwJNqdHAk9+JBYAwSHwJIMga/Ez0i0iTF1pfxNSaml0UWJsZBRADp6x2LNcXCeJdJFE2LhAEpkG+AUza8kAfB5YaE8YHgFBwAWkTCIk4tiyAHAARGAejZ6XD1QGnnNP8PDBk2igEnnIE0iMBo9S8XvxOEmy824SZWOAR0hVYAWLUJJXiUpILJ0ftd6OySyHH4C6xToKPRl6EnT0HDUcmxWmcMdk57a8JOHAGk0Y+q+GDsMEv+Q5iY/gk0iSsSckk2OJqibfCDWJ0KDZL7R218epjw8Yq87Z0whM2F7wcEwSHhCGh9lpXfRGlIpfBaSYnFwsp4XV7FAGhJOiWlFJqLQxB2/nt9d7Att0akmoJKaSYMknJ8wyTCMQ1JPAxIKocLm1pVV0GgYOuwJb41FKMXNBhKpTSFSp2goyS+T5xiqlPX8UN7UIqyExD1Vp7JP2WuqtMqBP184Aa+f21IlqDGe4ANJ8dqwSXOwq+AHKIVUUT36rIwHDC3uWB2GEC4KKEABNELenYaKUsA4n77JPUSWymNJWTPsrSChgD+SdMkme+0ySM8j1vjdfmagb5JOjVb07HYABSeok6isU4Qzmp63y0og0kT9+UKSQACwpJ2/g1ZVaIaSt4KgcfyvzuHca9+2UFiwgsET7AMbRcqKxHEG6AvJJWwB0Caiausl5FrVa3vULKNVzgr2CJorwcSd6rUoVqUEc07eptBCz9NwQYVJkvp9vQlGzB7rsZUaUdjEisFvJKeSWYfF5JJMSXkkt7meiRhA22Amngf2rmbVgEccEJPKiCBpQg1By8BhCPbxaAHEdZGqxgEEP7CCEem4CVwibiEoxIz0H7AsTlteJjejtSXs8Y0ASYMWl7sJUjHOdEBAaM+BeIZz2U2hpdzNWyQ79ddofxQZSasAcTIk5Mz8qxHXVGqvZWGJG3B1pIcXVTgIXRQcqflJyorn9UZsuGkmBEtXNz4kVuFT5JZGdLqvxgWrI8pK6apXgMdG5VtlyJA4CrwhAlbTgIuJydpagGJWsrDRxxbQQXUkSxU5QMjJdnYzVELxZJj3DSRrAPAs3ocFTqCqAqIEomOY8MPsyRB6oHQejNo0HCoeUWCY94VKyqzIiektMZhmK9CH5InjhS0IkpECqBLgElIppiF5g1hA6omO6JU9kbAZ52YnJ794akVeNpL2bt6nusTtBeEDF7FmEjJRk8leiC+9l6IAH2JVKwfYxiDkFEr7KfGW1xbhBjiAvkDDkFP2NPsp2gV1QS4IjSaIAQ1CdPZ9+KmoVYnJj2TnsVqFcey89gJ7AL2YnssAgRkIzcFOEKSwSkhCpj7vzCHkyuIFQTxqIVAwqARUCNAEgYWKgdY4pWBknTe1qO/G0aDM4G5hrZADsjmQNwQr3EOrCdozcEOsQTGAyjg3wBsZKdeKxk0K430ZaOayTHxCDm8WQSjlhVyrYZPzMCJk9mAGeREzotTVo1lPUFHEKghLbLSSEzwTDiZOAEwgpMnTrXUybrZDhyRvEWiwlLD4ls0IPTgA8AnZqSqhzSB/AGeAmQltxjLwBXOqgAcPAdZIcJC7wzG4P1hd+IB6SUL5sEKNgHuk0imbaIbgRP2yLDKHXNLRpclWPQKmJlamJkuKcrFNP9AckH84AAOSESRoSczGLzWRUEWYk0iXXBF/p5zlRUJGAcsAVMBiGzI+ISyVqDHsGIoU0smQAGe1iKFUwci5jtkk9omrIrKFfr8Q2FNRIyUQD0WQJUDqlAlh4pNKISoDQIWxyQ7Al0CUCDF2iYVYXxh3MbHLTxXBuMqDUjRjJ1YMoeyyN2LoFNNiWSijOHZcKRyNLEpJg/yASpg4iQ/kHbBUhxggT4BDVzVxIf4HVHwE8TplJtiH4gFkAPyAZvAVgC2TmGFDbEvsu2O0TqDakBI8HBQKey+6AYGIWIHKSlIUNbGckUze6/YC0GPDZHHCsxBjsauIF5Kh7sGrAE1lXvD71RijBXsNHaGHwqrhzsENMQ9kvgAuWt0ADb8DtytDkpnigEA5Bgfy3rQODk83WNTB9QKCrCJDqgjCiALnpsUQolD3aC39U0az2SWSRKC160OPvA4eWUk/WC5sAlkP8QCRAo2VAICW4C6hP3lSJRfDESqAGQBSnBsKCZ6hXx/A444WfILQQG/hvHCKIBA5NZ1EbxBEwAuS8cTPkB5Yq28ZeASOSp4CF6wzMJ4MRvBEOScDAXZLpyYLksXJYppGGJrUX38lAooySFCFnQmoMjZybkQeLkgEABrK1WS1TCFrTkQncAZcmC+RM8CAqCBStZMXkxiEC9MCcGEucJvQIizKpH0nKrAXnms4AXRbvcDK7N20S/IOgQduQahlgBlb7Tcgzvtw8kPlCNoKqgN8g1cA7+psy1hyJ8Yn9W03BMQpI5GxCpYQOqqw4BhwCvMQLUEFgcnWoUAo/Yjd3NkO3AB0GgsBPP7NhkkoOJFPEk5xwylFGcNEwfQNSbCioAwcnkLh8cP5hCRA/3YlHFy43KdhDIlCamkVdpaIwCexqg9dEIz1kh7qJQGKIV3gLaaT9lUjjUlRKoBdklc0zgwzwhi5LZDAM1Dgwg8kbPjl8k8YubIHZAqQV8sIMLk00LRzE+xukEzqSMXgGCdM4lGkUJAiUrsJTVEUpdfq4reTL8l0emhQAfk/IRytEF/GX3VTQNaYQVKOSAxRHOeNvycjk+/JRLFeGpE5P8aO5ma8stnjoFLdWT6wCD9UwRDaAcuo+jR4QNtxKR2ZXEenj7LkO9DmkCZmIP0yAhDMUXZkKYnbJ5Vl5PTg63Eqhtk/eyoNB3slP9lmAS3k5HJZOSCCn6i1iyXv4AreBw9ZwCSqFVySDtXG+w9EKCmy5KoKWtjCAEmRMlcmkKTvyVjkyOcepAw9EF0FiAJkAYUxL9ADElHhJUCNT6Roo1dAfHC18ziHi1ZCOAeOR7IxMZ1iycwU5hJF2TCtxdjV4KdbktZugEAbvAUQH2Xh9k8gpkGh1WpdcGxyR/IIvirbwFiJtKGMwF0oL/W4HwmzGPbHxXtgOUYoGKhh97k5KoSp+nCpAF+SBCn72WMKWQUn1kcaZ3iouJl0KSrk/wpjGhy7YF0Fiyff4vjAPkTSJIeAE5MfI8GuiPYRjsasRCO+NG8RnhhGtsBxMCXylq+oAgSanEaVDYDk9ItnHWgAhRT3ZQAul0ICUUm2+QWEqpCTtGYADUUuNaSScoaC+9B3JlTtbm+fvtxlCB5OI7CIASISpOsdASG5M/FqRlZ7Jw5weimA/Ef9vFAMZOaE5WVAg0P3JsGlHIpe4AOQC0VhigCcHaT43SIXFQNGz6eBNNXzYoPVP3o22T2qkz1YDxOFso3q1yT7+mH3BdqWKAgFAkAMRjMbZDfKMdQgcLFpTsiRFEP8OwRU2nbr6ztsMaRHnJu6lT4mo5TtsO1hFsx/ngHRK9VWK2O91WkQ76xj/RA2WS2pqJeskEuTTxzh5HEisAMbWq4kwZXjIlJFRG+qHhQS6ACaJvoG2ydyQZgAlFkrLrxAFxKbMpLhABoijpZamOqURXJJVOpdxBXF3yk0oASUqFoIXc5dAE6A5EosoAL6r0MQXRuFU9UFOqOIKm8luSmMQFTyS3AJoIgDRp7ZlnQ1YCexAmim0McSl0lKWAASUvfO4kUJsmUiA3DIMTCUAtZNdcq88F3yWqOXQ0a+Br+LAZXTki7DGUaCMjiQnTkAoAAv9TLJKWT70qM0AlAIv9eSWDl0YFFqZKzSlcxJr6Y18DACpTSCYjPkh5qqABiSn0lMuRootTISc7AyQlZCxbMS8DDQU/pSgPjPY3XwK/0JdANfRpSkzKU0oDvDQ06CeSnMrADGe1kaU9ZS3pTczFLrjaCv2UA0RSfCOQbXVQdqiKkuyWZasqVjISEeKXnbRfaGxBdsBuYHxiqsxO2wUtdfJ5WZTDyoCUjG2Z5AUKqKqxjXpiE0pRdlFNBoqZGCoFgYduS/1ij47PZEY7kX3SPKL5BNIpw5I7ZljkBven8c0inkFJyzAQUzdUF+SEFCC5N+Ua0U+YprjYdj6VyXEEirVTKWmuhFHDmw09HGRAPZAm+SjQHKjQwitcUpJKvCJYJro8VKgDI5TAwwuRMchFJwb3prrfLhfChlgBtFIHWFCA8Yp3wBZ8mt5PsgvHIOCgEoBLClpqOBgGmgc6AuOTm/ohlj2wbYnZ94wFTJIqvzU5mjilO/Iujw9CkaJgMKa0INQ4EX9vCkMFN8KezoZgpARSsiihYDGGq5mT8pm5SdMEc9TVQNBoNVq5JCyKlzFKeAOEAJcah41fynDllAICsUvPuUNBsBwRBGG5Mkk1ccsxTsByudXGgKjkB7qJ+x6talzjxYNgOHpxYlSHZCKtE5AO1iKSpBzVL6A24E4UM9kJXuxRS9wA8VIsyaOoNwpIvIhynpQDUqZkJUUo3FT6XRGVIUqZpUvQ0ka19Kl4B3UqTpUzSpplTFHHaAF0qZ8UDxKyUIdSAIRP6uPQzdVwdkAxNLxHhpUNjIUUoNsTVKnoECV7sZU+ypZbgzKmium4qVKUZZADSAnEnyWMMIvRUr8pntidMH/vXtgHcHaBWH5SGKk7kz1slF4rUse4AhKnDlPQIGeU6Ccp9BzKk0a0TAajkTVAYVTYVjeAGygCBmFmK+7AWwBDNB0NM1U652AlSCqlb1Rdal/rGqpWaVEIh2IwYknBcOQwErAasaYBV0eLb3AwpJ4lwCY+Fjwqc3kqrMj2x68g1VNUmIRLcYpBFBgJLkCSYLIeQfHaoBAtClsXCAqfK4ECpBgsMVBNVMAqX9uVqpp1TeXDzVNoCibkknJ7IwqQLTVPaNmmgHThguTDqmPxyXKbdU6YBtUBith19HdILjyINgGwoqQLO4w6isVsMwMEcApkKr2ifttPtJKpFFTa6gqFg99mllUqaWVTkqmVqI7njVU10CzUtVqmQj2wKMNUqWcqCMGincVIEfmsRCOAtfA4UTBI1d9tDUxipRvV71A5QHhqe3ws3KSNT5intHS1nlxUvcAwhiJUqsVP1cXoUmsRnStobrPZNUfvRxL/MUsFPAkxFOJMMrkfyA/lSiTGZTDcXEEU5pcB3A2yDk+3PxobVc5xMtSZODCmP3irPtIW2kq4GsKFQFyKfexfCpWTgZqkEFPi4S1mNcpg1VpyBEBVAIRtQP6G/SQZSnHQhbIMUyJeAJhVKLJTEH8wtwEXApmAB7akgQBiMR1JR76Wh9/nYyX3R0cVkvKoQ0sXDGwaLkMZcAEAAb2AQAD0phO9LjhSgwdDBhSJpgDO3InUnrAwGBleAKkHcAD2U3KqBQTwiz6ME98FtYID46uVBFB51KuQFHU7xIYuFAsx51K4XL7gBQG85oZxSfxyQXJumENqYABMd6eGOuoOyoGEhnHBuokuZPuNhUkpj6bPhdmYJCFTUGvtRQBabE0cH+8mVcA/I/P8FMMhLqfYNXiuYcO7iawl2sLx4XGKkQVDVORBCSZKngD9ACAASVA0MJpsp6s0csDvU35229SWCJQoGMcmh1Jri4xVKOIePlZ4RxMXlJsGjGknK3XRSTJEOpJmPCNJropNARJI9LZJpuVYJIOdxIiKZQcOgTiJXwDvJgGovoE/+prAB8rxZdCjcMR1bMAy6cVnY6jnTAeV4VoJH4ALxZUSTr3OgffNiLro4+IcMVGgOFlHp+TgkI0kdZVgkknwwCiODTw0kSfjRFtVFcYqDwsFjEnVUyIqGNGhplCVhnrZIGQ9k3VZda1dVJka0x1SsCSQhCyUXCGmLukT7SRflRZJISi7ACoNIIaVEjC6IJVEOGIW4BHSfZRcO+9DSVCx6oAeSWbtZVJsZAGrIuMSqMYNxVdBjMYGrIKEA4mvXjEywHRACsGZoA6IDp9V9RGEd5Rqr1kNCV68fkkDVl/xpIYUq+v3IXRQntF9km23TEWutFD+pVZAs8D3FzRAHXRNgS/7sjGmN4XWIIE025qA1lAmkz8XeccZAa80+wA/gCxRP7eHotGJpETT+3jG4UiadszGLKpjT+3iJ2lGcUNJJ5qGTTBVC8xnZ4dk0nT6uTShpJxUQsMD/dQ3giKSYbKJZKhAYE04DQ3Zi8ypZ5xeKeDacSIWlFlCzTfitIGT3NOou20CwAXYUiaZ4bAgC/t9Lb73HnpQBQke4Wi9T2qKdxiXAHC1ONo5zR15ZC+E49iNLTCgbNEDSKFh3yABiDDJp/uBSDpayN7umQxJ9iedBZmlqjwSYus0mJpSkFL1aHNIVwAJZC5p+TTReFi1UjwBc0p5qJzS1R5xUQaaT+HQLAsjSQrAQCleadBALMCWaSWoBCvzM9CkQnQoIgQWmKPPwmsCc0yAoF38J6wnNJWost0EusQvCfPSv9FkfvKABFpFMAkWnta2tAD4jE8S0nFmOIHNIxBjHxe5p+LTr/LO8KeafEAKBg8IAkCl5OWSYpg0zCopDTcKJ4NNSym7gAr+IHMxOLmOImaQY0tEWXNEYubc/Sz9I51ViSBy1T/BD5VjgAKRAnCGUtE8CqkXTqdY2KbY2tUc6naFhZkM1AYcxGYAbtAH0BMCNjDGO2StSesjj0GVaRtUNSgXENkUHQAG1aaq08p24aTNoBF7SN4lbk8eggwBR2xZIAIQJlAcW2ksJwtCEJHcmoa1ISQjrSY/HGiWIaf4RHqiZDSrBHZIEoaYB3IKAxQBLwieHjdacGWVmR9dURoocNMjaSEoNaKSIC+Jq5VnkipK0vwA/vDzyaeAD8AFNsLVpo9AjWmJiS0oq0xEZA6iMIGmwURhkj31OBpIetD2yINNY9K0E1zgYjS7GKIlXv0cxXHHmOexwGmF7y94LUxE0i49TVdKPw0pgAW0gpQViI9CRYxUhAB0E8qB/C4KYZrUUugEO03Hhs2CuiHjgGHqZ7lREAjlgeoDjZTZgOKkhUArDSdv7VrXCktkpShppSkS6y7JI3aTt/LdpuPo4VqpFH1ySRfDMAVrTFWz0eTtaf5mV1p4oAl0AP5TFNEm0j+gYmFRYzptNFQkq0rNpurSPWmgtM0ipm0lVpX7TTWIAawXQBo7Rtp+bSpdasAEAaZdyP+pPbTIOkYoE6uEH5fTKf7SdWlqtLa+iFWf7WO9ckvgjWJIsKjiTkm1KhG6xpACzqXslaa+XutA2n5EUVWB+0/9parTwkqgtKD6j+rEDpsxtKDBgdIAaVYiGJcj2UXym+ADACG60y+iIRVdwAcdOQAFx0mCSoLTGSjksWg6eB0ltp2Nwh0b5QPgaeW03PhSOVWgkBDDEaVpRDPiI0sV6b+4IZfsR1ZTpV7Yw8E1SgmoldAM8RkjT3SL+QFwolExB5A1/Qu2qDdnXkcEwJDB3K9YWAtQEsdEQo2UqcMSs4r4jSRAXdNENq+rMzxHnPEosU50yd+cbS+YAfNI2/v+AGIQMAoYOIZ4BlIYgABzpqrw6WzYPzbqYpeRdS1JDx5AsETewLF09y88XSj9YwJ1I6bl8S1cvch+WpoFOvYiOMNEW51RUcQd2xqEBa0o+gF7S8WC2tNHgK+Ep9p/ABCOn+DVSugG0yqghjgkOnZtO/aRgxCEeDjFaRBldPPada0q9po8BP27rtm4SOKAZ1ppQwhul0JBG6e106MirTE5FKWxlHsd20sTpkDTBsqltK06RAI0TpplBIGm163XbEENFyiciklumlZXW6YW0+54pWUVumKjgQ8Qt0jbpXvBC3HbcEgaWmxVF6jjkJmlRMSWatuxeISUi4D0HcADVUgfbTlAjCjduG/7mGSZmkwVQKwJ4KKekRkiG9Vet8oCStX4kJQ/+PRzN6qFHNtSIuXjZ4V3UQJIu019lpYJLVUrdNA9pRVkCCJtNJx/nt/ULpEXTtgSZpMSyanZftpoCT3wC48PSAOsQ0vyFPSKYZLIAgSeT0uepGZBqemM9MmQPS1IFgZPT88EjtKp6Wc1Lnp3op6emc9MxwT8ASZAzPTBekZkGKwAV0o9pTXSg2keHjtYKG0xcAH0B0whq+Ppaq9VUSa8iFNRreanw6bwAerp8hMZimBQGa6Yq0g1pn7SqOkmtLAaT20/bpuTsu2mrdMg8Yd08TpYCJ1iBdBDttppAObpcMs00oO9N6oJoAIIaH6S8Ah0dKB1gx0ptpZvTW2mM2SQcaV024xlrS+ulVdK34uNAN3pmkABOkCNBCKtaAaPpFiY72mMDTsYvd0mSKj3T/BI9FyZ4T2g2AAaqkt5H7enBSSD0pVJ6q0vQT+KAO2lD0phROY0u2rMTTlElwub6YpfFPqo7fyV6WItS6qTfSsekdNN4gKN/R7UIXSxOJff0fhtPfYYG98iU0olpLIgMl0qRcj9TLcaJSU5gPMtHAANPSl0D5QWWWrP0xnpRgA2enT9PGMZIo3npC/TwpIb9NF6Sv088YrfS8upz9I+wOPUgE2yy0BenBMFmwYBgE/pEBEgqIJYH9aRl0yqgwbTZenigDDacqUdMIjfSfRRuPh3WlDAe/pcrTMuky9JpAHL0r9Mtb4cxoY9O1YN/0/Ti8VF+GnRkTS6G+QG4IZ2tjj5USXPwO9xNkAXlxUBkUDAC9hdATAZ/SUH1BmexmSt6wRbguvZYvZsjm9YLngVz2ieBXPb+e0zYEuATNgipV70Sxe2GSjB1cL2ujRFkrkZON9uq0qQBYXxJiltADveoeJaH2hMkmuJRmKjtkwCNCwmsAd7KfR0YQG0ReUAwqljVJDaLsAPFJQVQdoBxAyR8DmFh4ZNHQpTAZI7ihLAuq1pPWQjLBXqAqQ06AGIAL6h0yCDEDRACIAIVQAvAEZlFBnpuylauhAU9pzew4thqDPcutOQDzIKgyjYBODI0GQTZTBe391tBltEQVAB5JDRoPkkAf56AHC0pCZHrStIBbfwBDL1UgepSEycEAFQDYBExrFEMoIZCgyc1JCqFCBoT7WwZr7Ej4AXOhBEOvzBuAHzRjGxYYNbwPcZdQZ9oB1+YuDIKUTLwVQZJQz3Lo6FASotinIIQdgzO4D3oji2KSzLf+iKTvCSfUE+Ab2Esj25VkqkYz+GyQDmkGqUKvQrSBa32uSfx+UAgXQytARQFBCeBUAYCgHStCoCfLnmGYBUX5WbiAKgBWQRJ5ElgA1++MSFhnzQA1WrsMpeAOEYGbra4RNEGD0ROx7z9ThnbiUAqPsMlYZm5hRIBUEQretQk/JCYrjGijhJIwRN9UbHpVpAr8z/gHuGXj00XilGVJ+AHvXuRhPErrEADALOKNFHAPIjIFvmkxjq/IyLFL6Ryk9CApUMRhCg5OAJqlIfZqE8SzaDmNn6SHZAF+UHRj6IAmdICoO0WZ0YlY4+wCk6yi4b9hd9OUXFGuSsQEUEZ4MJzQJ9A27C0jIWJnvOR5B2+02siTYUZ4uA7Sr+4OEtgjEMRIafvoRIQ58BFWgH5D7ALhRZOQvJUWkA0jMWolZMHuANIziRlIKzRFlzALcSy9SySQj1IRSf0rMFBA4Zmy71WUQgEr0rWRMozz4ByjIPyAUxLcGSOV32b6FH6VkV+aUZ1xRZRl2eWNGYqM+FaBMQVRlzQXnaCyMlBIuoyKrIejPtBp3GW0ZlUTKxwmjPhWiMrVZy1oyLaiyjNWcvKMiAyDozSe7Nlz0mr7nUMRIystnIssC0aX0QMfRP50DSLIAB9ap6zN+AGKA2AptmNDGYaM8MZB+RFdzWkSoUTbZAya/tpaoa54DzaD6Mw0ZVYyIxnygCjGVbkZsuLe44xkxrX6VongXBABIyUxm2CTTGWOjTMZGKBsxmNlT2wDWMkYRdYyixnRjNqKdfUtsZ2vhJRnlORDGaGMWUZ5Tl6xmNjLUkvItGyacYy7JojK1hNFqMtcZjVkPRkkKLzGQuMw0ZS4zjRlOdNsQL50lvc8i0s1pUKOXqcBgfpWZHl5xkmWFlGWR5ZcZuPolRlNjKc6SMreFwO4zKvojjKQ3H6MpBWF2E7xmujMKoNWMg0ZIwjQJmvjPAgI6MuMZK2B+lb9FDvkB6MmSIh4ynxmGjMgmcaM00ZIytG1yPjMFGSMIg7y9oy3xmOjKERPJNVsZAcB+lav5C7Gf0YvxpsVF0xn9jNTsiJwIcZD0A/xleaAAmcnDEsZLYzPSLTjMReJKM6IAYEybRmGjN4mVBM98Zq4yKrLNl3rfP0rQFwP4ydRliTPHssxMwSZxozbxnTKyV8nWwQEA80QcJmyjKukcaMoiZBF0G2YfdXrktcxBtiwnTR0nAoEiRvrI+bRRH8OX6pqFwmXpwA/I/ABMWlq8WbgssWWqGcwy00rgTOs3KxMhsZuPokwZbiUUROE/AmIQUkDDH9K2DGYWUo8ZIwjCxm2rk8mXVAR0ZTn0qFFgWhoUaGAXaaLe4tppUxMtGUfJZiZdoyIploi28mXcJXyZFGD7xkJdDyYBq9dKZHkzfJnATOQFICAUCZXbAwBkhTNQmSMIjKZ/ozSpnTK2wmbmxEKw2Ls3aCrORqYpGARtcJpjWMh//042rqtXl2jGDrfwbPz3ujVM6yZrOgPJmDCVEaV5Mx0ZCUz3+mFTNXrIVMwNahUyuJnbhB4mZ2M2dpQ6QDDF9JPUMfbAQEAVYzOpm+IF4mT1MleKfUyaeaiQBBdu0JDPuBF0kVwENNdWNg/RzqGqdG0428IemWFwf+Rybd/mlMf2pkqNAZ6ZKI1XpnBB0bTmSM/iZYUyPJmmpJbroMJWaZ76curEeOUhaRWMs3oVYykxmYUTSogFMi2usngHplZYANZvYQf8oTH8t6lDpPOeHW3YYGAMyPplJdOGSUsrQGZY0ywxkeTIACDP3AKZUagk9iJSWpFgg7YZWs/paoZzjIJGQU0sXhGPTvbq3NKAvtnHG+R8k0TRBPTXPiYVMvSayUybJo4KKbWm1HZwJcuEKZkFjJKmcRQf+qq0lopnB+LVmNcyFc0KrUwbSPSQVmQt0bXixRCN9GX3VlmSDMiMZFzQ25oqzLG4CzMs3oykzDZkcgE0mRFM5WZTMyh8ojvS6okXkHrJ0QkIum89ItwPO2SdpOjSaBDezPP2sS0j2Z4+F1/bdxx/kbqNKJiyMZIkCKtDRwfsQiepJiMIkCIpLSvrpAy54GQhaFGkYIsuNu+SdBjqTSzgm0HGylXAZciKH0CYgNYXQgIGIK6iKH0CGlsiwOWiG1bbhPrNAemIpMjmUQQtVSs/T4eoOoKz5AygfFJahBVXpeGhH6d6KWfpCtRJFHMlm1Il/GT9+o/hJFE5pBs8BwAQxRe9BW36tv0VwEQQ2khmIgJ5ktzJAgfngxVolhA4XjPaLGBh4YmbB99SOZlYlOAAB2bIeoW6lZ+lZ8nXristKuZv2At1LQtgbmRdMgcMBrMpJR19NmwSBZIoZMnFoXD7cIUMfDwV7gkxBkljeIgKaY/M5KSoFkYVKp8VfmYFJd+ZNziv5lxUX/AHokRBAaODznCQ7niEEY3LhcT8CjIDHqBbRoggMfpT2Ddz6yTCyEMR1J7auPCn4GvgB56AlINMW1exHMg0kLRwacEBKQibdMQ78nzwWWIJBAYVpAZwBBB0kgrBo9nhr0A4SJUAFoWbHM8hpRIclOI6nRyEF8rKhZZGRPsD12E4WZ20wX2wiyOFkdtMnqd9gNLo+09w4AM9LWwUugHnoGsB96g79Iv6YzGJG2uAxNnZM0CfgGSNGxAiq0+NCNnwD8PhRGzwvPTZJiWEEZ6bJMcPAvPSeejS0EZ6Tz0MmgvMYkelhaLSaIgmeIgjadP34gAEZoEXgdxZt6dJFGM0DVoONlGt4lxpegAgAHbgLc4AvAxiiNQAUMDoKqEsh2afHZIlkZmUV7JuDbCiax9pB4gAGiAPskxQA6YRslmPLTewJks/ZauSzBxI4PUoGM1nEsy4Ij4aoo5CBYKUsxXsE9YsOnw1S0aUnwzkZh2EuMEnYSX/ib0wMQM/8s4rDwC/YqAMpHKnSywe4xtJkiDP/MGIfSzICgDLPeSd0skZZ/sA+lliRQSwOD0bMaVjT6oparXTCK/EsnhKgloBmEAD0sQpeS2M8liXsGpcx2WbbGMhG/sYbjZuBKPxikgbLp2b4DKYU+3HojG8T0q1sNYGLUlXQ6WLUG6ASQBn+kEgDDaSptFCp+6AeAG0VWRFJ8UUPJT/spr5ABCtySC2CPpcnApr5kBGxku0km5ijIAafxhpSEIBaDcNJEjSPmlk93YusnfMQcy3Q0RZQP16Wew0i7Csz9BlndLMeSTG00BEeJE3WaWTDv6bj6HFZ7F0iVkrwVDGgSsthpqRwo2kfh1Pae+LHNydRBR4DzmP3QHmWV/Yz/sI2ls2SbqvffVzpTKySVmNWVpJqCsqzxHKySAhKGGbDt3HXuGj1Na3DJRxCKqu0z3KBMQBxkzcTVWST02+Z9dY8AiM2VKUrK+PrAWDERhmMpJHfqenJfggxDIU7AwBbnK89J6ghiU7VGM6Bh4DIKW7kARBD2y9pOMsAvdDoJ5qy6ACWrOccDoAEtsyp1rAZNcXraT8ASgQ4vFGwrt1PXmJtAMDi1tB2zCVFMbqR5kPOpajldLpsBXhllh0mdJMogJVnsrLtaT5NW2UKfSbmLdzPQWeb4J+Bk7T76kP1KmoB+olw+3yA36lVzKGcAV1JBpiGCWgl94NAwfaRZIAGBADEC0IBSisoPVtZD4gO1mQXCe4XfUrpqOVYiFGcoGGrIWs54gjgAomCIpO+emzwsXhFaygES7zKf4Tp012i34AQa4OUAwIPDwReg/zxXkSIQD/gPngi8pRjVOpAfQBXTj5RZWwAwgcRnXvS9eBNZS1gARwl44DZOHqUtJdCA5HFXTZnrOrdI8xYGANfRQeJSkCrwmcYF9ZpEAQADG4AvFiS6bVSHmcfKKwiQL6T8k9di+dYDcGkJL4bE6sr4ALqyiCh1hxu9Nas/1ZdlF9MhPrJ/WdIoV9Z06T31mD0Qb1qUwWogKhM02KiICg2W7gI2+4IjnmIyiEu4BkOJAEFwQlwBBSRlXPOwVlZYKypVnzDCfSLtARBifyzQ5nhpIl8Ol1OuZdfSxeHwkOv3Gl0BdZB50apR8pj/gNQAU9ORytCuo7rO1UjYQfAByostKIFYAzaFoMFLACxV7YBvQEQgGOsp+BgTcdNkYLyYWRaDWhZljQrFJkLKkXE/AqiSpqB9NlN2BL8G2sj8xnaznZx94MZjOPYVZOTCzAenXOjQ4mfmdcBLddO2rjAnJomw2O1gcGzYAAIbIMmdGRbDSBwwag5gzIb6ARs5UWgqQ/Wm4+hQVpgFSvoceQsVlUrN+AGSHCyqR/TZJimbQnmZYsuMW00yrQrpbIugJlsmxZkcZvT5+zIavr3lGqkVkwVABO83FABPGKmZBSkuoG1bL3nPVs6VyxozAMDdaTMWWVs3LZovSkUBa3T18bcYljZdrSlXyPWUE6R10/kZAjSyGl+MRW+iVRSFROn1KIyoSBLbJbGM2SoSBOKocERONL60kywLWyZmj1jOGivMteliTIQo2lyXmNooGMj5pJY0GX7CxBdgFtszxxdWyCQANbL22eflA7ZFHFpHJj2WWWods+FaJXT64A9dINaZKs7NZnt8GXr+TVlerm08ZQlrTDvwYgmbaY61LFA6xUhGLpWRvkKpMrQA7vTcEAw7M2sSjsty0fEUExlTdgKKiMgSrp4fQ48K7MDR2YxoNTWWqpXRm8dNfyCjsgnZ4D8kmBT6xJ2eVMuRSh7IKdm/cEJ2UkweyMbAV+laJ9N/3OKAZHZ+OymdlU7IbQEubWwULQJZwBMdLPGIzs0kaOtlGNA73Rasijs9RaMgSVOmGtIA6SGktoA1d9P7LhrMJbKIoHfK1ZxS2aRrLctJSgL+SedSsHB75zkMZGsrt4sKZY6IoZ1WYr6sm1Z6kAiFHvYHTKBbgQ9mo0Bkkr9GEuohbs/dAxuBvagYgMjKL8su0pQTtw0kLVX3yAFsmkAQWyQtnw8EB8IpoDSAgWzzuQhbL0JFo/LjZiIJDhYyLTvyAQ0rKAcey7SlRo2qqDm8MIJXyUwsDQKNW4eMMqpJ1FYXRr1JLB4ftQH1mLo1EpLdzLCjMD0gMgwtAJXalZSrYNSbCc0tIBlsEWcGoADYQQ32YRAV06fYDoAEHMIOYiRAtKJGbQwjotswiAy2zbYxYOHV6J8QkAAs2lssCwvElKr0QqiSr0Sq5lpdDoABaskAAo2ZEUm10isAFdQTQAnQShpIj7MBHE9QS2M0r92+EhtXaETbsHowO+y99kLbNLZmPspmohMyD5Ev2HXqIigRECP8yziqYgW1IqagR9Av2B66J/wG2AoQ8TMiBpE/4Bc/VDpDZ4YUIgZgnoKIADagXUAJPagChRRjE/hq2WnwY7oHvRjRn8S2JeDFoI0YHcBMUDoHNN2HGgeFauBxEDl+bjI6PWMtA5SkFgDmv7KtyNgcsg5KfQHMwDbIEysy0a4oLWz9kzdrIe2caMy8E/EtTwCjQHwAYvg1UouQgBwxBgHb4dwchrIvjcMUA4zO9qIupFfowhy+DkPTL47PiEIQ5ueEqDkYHIqNPPhCcASkEjRj4HIYORbUJg5a6zJDDtbIimewc352XByV+hHimkOQIcuQ5xhyY5o2GLEOUYcpGQvBzr/IyHMEORYcyHcihyL4DKHJcOS0sIOZg1UPbJ5rIEafx+W/pbQQ12nPbKfquMVd7Z7Vk4fz+HJYaSEc8Yx3zEfKIhHPCkjEc2oinwznBI1FGeKTqgIzIERz4hm+yCCObEcrI58RywjnleHBmrDUzxicLTXojZHIXKrkc+KSCRzj8KFtWkYkEySMoVAC+Xp2MUO6hMMxFZK/AomLVNJlwauslg5ALYS2yEYEIOcgcqWQqBzhVkTI0xrJMjYDAqKzZMR+wEoKj/bE0Sy0V1Embg0WWaUpAlJCxzxjGOdX/ATZHfZJ+eCjHpDLO2bLMvZZaaxziVmjHJ2/lscq8i9KzwMSfqPHsl6I5D2GxzVjknHPxWSNgOls6xzooFFWU/UWzZDY54UkDjm9LP2Wncc5455xyDxlxrSBYIccgWqhKzCMQvhE7jNoclg5ehz/RkEpMq+n50vZqMyzkJmIYRzGnzE2E5tRZQTlCIBeMZyMBJis2z3SL8KWH2bfso/ZtsY+jmMHKQOVo2Vg5EUzlbonbLYKRpNKk5w2FPtlobGLEW8XEk5RByUDkRTPVWsCc0VZjoyDGm3bL8QDoc8k5/oz2TnsNNFWQxzWlZMyyhVkInKZWWKcyV60KAeVlkF0pWYVsqI5TKzBVkirNpWcKcslZKBYjRLFf20Wey8R4SIaUM8aoBjb6Chs21ZVBhgAAyNDiiHC02+ZR/TxDkANSX6aL08Q5/nTk0lvYVPtmZsjBZfwcarAEjLB7sgAI/pW9F4cK2nPUWfPU/IqJRtbsx8NMoqPMsy05vPTo7wKLP9OUkWOH8oZyAjnhnMUWbPtKM5eOCTYpVkGKou6RC7hc8jSiQngHHqQUQMbKf8BIpKLnUGIakQW3ZvPSpy4G2ALOaUSEp6FAASzl+nJTOX9we05i+yXTlFrN3PlOXKTZHfSI0kD9CoIu7oHxGoWzO+kotIZusTAew5XpzeelrUUrOUOc305FWzNlSBnPJGXGct96W+t5lnjnKLOSOcxM5XxDaFmDEOqIEQQ3cGg5zvkCTnMZ6WuctHBG5ytzmxnPzOTuc+w5NZyu9krnKs6RTDUzaY5yzznw4QvOZ4s/c5UysTzlwtKXOeecks5V5zL6g3nKPOXecws51ZzazkVbNM2h0E6c5mskwkQDiQTEiHM4eRPGzxMgnbMA2eHcRvAjJRG4yLnIG9CoID85pZzEzlhcArOahc3c5xZynzm79MbOR2coycDL9hlbqB1GgMhcgI5f8BrGrDnO9Oduc6i5e5zRelPUXIhrjwMbKCZzrzlLoDWogxc6M5oFz04wWnMZskf0zi5yZyufC6nTh/KIgMIOnSEJGh57PneuGkmXWT6A25H77IJOdN2cfZ4jAWyTdjL+AAfsu/Z35AJFqDEJjWoPs2K+ph87pnCRlg2dHsxUcJUdznh+gIgORSg78WUlkOznbgkDgHCNT581kEiaL9HN22caM7mJdRB0TnfTRcucQcty58y1lajUHNASXI/Dy5Hxz3ngxaD/gIFc9YkjozG8DvPEoxGPZCAyokBwrkbFTG9EERRK5CKhSiRmH3BOUgc5g5kBz+TlIKwxQKlc8+JlByCrn8P3hwsVcsb08+EyrmRxhV6WMc6qo3mwLUgvjUimeeJFiKPWEEiBy+wIaSypLdU52h8OmVQG16UX5BmxPFhgyx+WBT4Dfs9upmlykKhG1yNOepAMz22+zRDCdtUVHByAASAXA4ElJndIgEcuhbo5xEgS2ylLm7WRusxhchWCvFI6HPbWTVwCyx6RAwdksOBH2j203nmR9A0Rz5rm+wCLs3tpTiILODscAcIAH0tPg32BZum2xlB1nt0r3g5YZEdlO9I+uUwwPOpkS4g9lKjhMuTqOEyxxlznVmKjjD2ZgeLtAkDZIDnQHKkspdYurMFAkTlAAqL0LBQJCmRW55jank0Xz0INcrc8+mVuVbo3JCQpjctSgJwpWk696z3IN/UU56Vx9vmDTUD+xk9fOkAwayiebnOIGuZGWFKAhEtD2B43LUoNaAbrKrsz64C8bBtEPgSRiAW/FJyYn6zvkKk9JpxrNy/LB0Jkm6Vqc8NJGfEDYJc+LlyjzlFYgWjZXTzvh1jIePZfx4BAB8kidsTlue0cgm5YaATRCPoFDAI5RYr+3U1F2oqdORWUCwIJZlxpSIY6rK1WXqstVZWByVeIBwDN5ttyFsAi1TyumHfjk5st0HPJz9k3RaFCWW6DAxRrkWjtFslXtgBgIVQBxxE34VbFXEB1uVYiW1prc0LlkZTF7kHKsg25mkUufEmkRNudvcLX0E1VEpKL0WmZl56S2549B4lR+0Ge5CTRFTpBiAWHAm9ILuaxJYmAzyyfDpoVK1aX9stcGazpm0nZIBDueYWR4ANGzeACbzkSUm6LRFGEdzoQBR3Mscct0b5RnsYOnorEGTuTKuRO5xzF5gBWXhmqmJxULMGYAU7l63OmwoONGZxHbYIYjmMBSAJfSXfY4oApwD5IXG2dN0w259hNiQmIYFVuQfc9VC7KzoW46ZzpOYF1KcAlGSuNlBSUoYDqc5dZGdyENqZXhtQFJcpe6yoseppWlCtuW40AJA5dzpZKV3MO/P7sn3pZ+iBDAgBIhufBsxUcFLF8KKhgE42b7szYITrICALN9GUBM3c9lZc5y/ppFrDwODiQuiq4wyPpImYGxSQJsy+iBXUneiibIK6s0gOTZUmzW341pNM2oesuh5VXR0HlWkDmQPjM4DQjsBNNnGploWQXzfTZxvQzwBGbLRwd4YWpczZzx1lUSUQQMrUcLgLzDbNk9rKOuS2QRPh/hEcenu6Gu/ll0I40SKBgSoBHMlQA6g3npBtg7JK3yMZ6aNAZi5mjyWGnaPKP6W+8fR5FWyCXhw/hMeQqAfsScP4Q7kFCEbGlJc9oSfiMy2mIwEjuX6qAdKsdzXZxPOGOCF8lHQ5x9zGUkf3Lllv2krApqNSj6CPbyPoJ48wFmBEcmuJtYWBtLMciBa5YcJ4nveh0OapAWVsmvcWNDbzyZ2Lqxcn0ZgRooBUSUEabi0XvaGRyOJJFWU9XOMkxYKCGhmrKVPNqKanqdqwQnTRsBSpPYaRRzCY5KhZUjnQQBmiVKkoUSGXUFGnB1TaCFdFcRprU4SxrztlhaQlgQni7fSAunyRFEOWxvdWQPfS4+LKpV4ysdgIFgl31QTmNYEeWia9VY5kijrMqjLIeOTs8prA9Ky3OkKu32OQc877+MKTAUk1tiOOYKoEhRMiSf/K7PJ2OZigM55WcUr5m7PIlOTc8wqy5zyPjnPPIueW88655FxzGsAcjwWWec8+qylxpOTlmsXtcDmNO55gLz0DFUtOrzOmJAfAIeACELRNUdRk13ZDZ47Z/VnUPPduSA8lBEp1zjMIZHP9uWKs/BawdzL0REvObKUPc57wxRz7XA+PK70N2s25AgXV96DIdKCeaCJRW5l5VBGmQFGhWRjbN2yKnTRCbAPNarP56b25LDg39h+3PiGUS8w/YJLyr5ZxUXlroe2GJ5GRzT/gGwRWIIy81Vp9Lys/QgtmZeQgiVl5oTzP+7vGM0ioq8yVZEcUv0hwrOQcD/zAbR0qgHeYnBTChmqpZasKgh3gqzOCSpnDMZUoNrzUPKboGGeQK8jMAPigzZyMxW2ruPQKJ5Z8hbeJVfQpebbxf1KkaAscqt3D0ia3QEze/3xw3negAlFnX/caGdjFRng4aG64pAUIyZTpzH0DG3PQPv20vwSy6yBeIcpJ4YNyqFCZaIt7+KIvJUEAN6Q2SyXRa+CAHLNIkHxb5peiQDGknaOtegZ0x4A1ky4eqVjiXgPO00gek2FJRkuTOqyFnctZ5kyN9RkJYAIAqlMjc0epFWLl2g3a1kGM5do/QJqJpaNNreVlNWt5xj0mfYe5Q5ORi0ldpWzyRJqcNMNUWGciyaca1v2LjvL0mvmtSd5/StlJk1vLGyu5cmKSnDT4qiqlD+isdEbUiiFyvWlSNIhUIeJYt5m4B48b3By1qBRcg96LVk7JkRfQEyvEQc/YcT8ufBhvKCAPpEiGE5qz0Xl+rNtWdQ8q9gvLyPbmqXTxef4UEcYrzF1GrzqJHGDAxVD5I6z4DnncWYaG9xDI5nLyrMo3cXFeQlgIhpoLTE3l3vS+Eam8+zA7l9Hdo0fKbefgAFt5EYzkZLmPU7eViyM3oLkyCRlmrMpTiNcpbZhJymaiG7MD9nDcqy5LrZwgDjPK0OUgc1y5tq5MhJj6I1gGOjVKGYVzjaJ/KDGFj2gdMIl7z9VlAsAveaCcuGZ+JArRkZHOxWQygWE5oCJNPnxtOU+cZ8s7hQUyNplIzI2dnAo10yYnz4tluECXYnAo1iShsk69xKzO0+YCAZSZeny0tnqJL2aiss3PaqvTlPnHYA2eZK9brpQ2y/tmjwHqYoSxGl5LGyI4qYtMXABPGI+5xokQdmeGEV4iUxHBp6HTuFl3028OnExIf2qbix9EaUSRiOFMMBZqC1D9gygmTkO94+HZ17QB3br8wqAPkM8Yq1oAoyj8vRCUA189fmIytsrkYEAa2YhMyEA6/NFAB1fPFsI189Va50ABvmIYQa+X182osQ3y+vnqNFG+fy9AyaLXyRlZknJK5NV8zoAfXz8pbDfOa+eAAcoZzZSngAd1IeJpPYFuGh4kldjC3PlAeMoE/WEtycblS3K3PGAiSbZYWyOGJla06aWwEU/UnStJRlgrP0RjMYda28XyXiaT2G3Yle2HliV7YhcgINO+8e487imaqDx6A28RJoP0rLB534zb3zvfNQAAl8r75ejz5rm28St6YjuYrBi3A3Xnr+Vp4CMrMPpl7TxlYzS2gABV0jGgq7FcLgZHPDIjNZcrpfXSc2mjpMxYldctTpsHspbEIvwB+U0OCh5b3zSTaw/M++WUAb7581zqfm/6TQMv98mTpkHjemRH0DB+Rr0jOpOEBermJiWMLLsIyVRfBYVMJNGxZkT/480Rloikk7cBCqulwxUoYkmEu3mLPMO+b4AY75O/8tzxnfJNJBd83VpZoy6swqYXVssobIIAn8ymvHp0ANafp2bFg5pZfAD0fO8ALd8zt5HStCvjPfKs8YfsDSAAtE/RJXtiruQ2IbZiC6pVLpXtkCMCTORmKv3zFRyD0S0bFoE6V5LRN8AlXtjdaRKOZnAihBGICJ/PXbD56BP54oAk/k10Uz+QSAJP5lsY26JaNnz+bbGVWuOo40/nbcEtjLHcyTCE8YlFjgJWqom3jT+wPlJXRmQ/M7GYoQE+ug8owHksOFxeUfQaXQTXFaXmQHOaqSscIXmI1QjemD/IFuUM0MFZAcct7kkoGyCHwABfQgfyNdkeKAH1nS4mv5PMi6/mAdOOOkfxJv53EzaobY/Nx2Xj8gn5eIFWJJZ+nI6fj8in5RklyWLo/OuuboAbd+xHVia4rXKZ+dfuJXY7fya6Lj0HL+U9He5Q7/yrfRH0Hf+a/8n/5Wfztum2xhMAkX8wAFTNRu/kjrgABRX8vOM8RFFRz+/LxOePQcVQwQ1xQBaBO04gq86v5OGEeZGj0SM2Fb88EANvyhGxIAHt+cA3Czhl3BG/n2gG6yugCpRYrpVN1QiAEX+V8gTrC1SBeOxH3LWib0xW75GXzDxJZfLDEpwNHSueXzbBIFfO4GB/M7+oPxVSvnfTEgAhV8rpW17R6lAfuAnjGZNKqy/St2vm6HJ6VviIRAAXQQ29CQnJkBYa9BSauk1rJqz3FdGQt8xQFC3z1AVZ4HkqUq0qzxkLEreQqdJU4oqLRUc01AceBu1LxKUNLK+OKABrQAuEiN+XB1MpqvccFHGc3MjLAgMWW5fyz5bm2wW4CPfUOUAcqzlbmgBP2oEx1EXA8dynETArPHoo4Cr0SUQLuxAhApLcRr8iIF09zU7n63NiBR4C6ZiK9yZVxTX1CBXS4xgxR7Ed7kL3LvWW5xOIF/djd7lr3KravkCjX5iDsfAUEgEPufD8n+pP7SsgVBAraqIl869iYFSCgWwiVGKkb09V5AQKFHFKvIPhjUC/LCe80v4CP3J/ua/cmS5AwK+Z4pAB/uZAmZIFowKo6KBPKm6cE81oFKwLOgXIOPJohr8noFarzVgUsvNqgIECvYFmwKNWnbAtGBT0CzZZ2rFhdlXdgfsDd2OuwXA5jBxdXIzqQNAcX5GkVBFDF2Gl+RHkXqi4ABpAThkQKBX2cmMi2vz4yzQ+z1+WpQA35LgKvjBc3LcBXb094FWMQ0YxIXEyscHQDGMSJN2Zwg/CX5H/zFwyXICTvl1G0t+fkAa35RuT8AW3uH9bI781L5PySXfktTK8JpABR+S7vzaoYvfJE9KiCuyA6ILezyKePt1p8ob4Uo8hPqnj3Lh+Rz84saUVF7lDkVgjMFe2NZuV7YTk5sgsqUIKCxUc2eJc+HCgof+WUAZNqrIKhijigro0OPQOdUz5BbMJA/Pf+W6FMUF2yg6NBXtjXbJKOPUyL1dFRzv/IeFqnWbb5FRpY/lV4kgBRzQoAFLuMvhRKgoUNoe2fUFO3A6Yp2ADyGeI3XP5t7hQAXfkGtAOvzaZWLfzw1YMgtd1OvgDEFYKzRQWKgp1BQWYTkF6HTuQXZIF5BeGCgUFuoLFRyqgoXVAmC9kFeoLBUFNSDU3GmCh0FxgL4uTo/P6Ck+LAf5PQFx/kp0VH+SWCre5brV+QXsgtpbLmwS+kSoBoAhz/IWIBD88n5OPz9EYH/Ip+bI1QLq3JdDPB0sEL5KT8r/Me/zCflUvRTSVf8tTpjeE7/ml/P5+cqgpdZ59FuilKWLRBSGC5kFHdhyQHVgtzBTtyVn5sYKeRLYArxBbgCgkFdvziQUDGy0cImCx0FYytRsoIAuNeSlqbUFTygkwU6jilBU0OW5A8oLjwU1gqPoCmC6cK6PzNQWu2HtBZGC0J4ToK5FIT2zWbm/860FpoKXGzmgourkBCvP53oLGICfCmvBd8oU8FGeJZRyugvdBR+C60FlsZfQUF1VsBbbUhwFWQLnAUaW1xuZGWbCFhwLPAX4QuluZlALcFJvtygVkQvZ+Qd3eoFVQL7lnp3NaBVo2PIFiwLwgXa3McRIkCjIFxDFygVeD11ucxCroFKQLe1CXLJiBVxC1oFaQK6IUP0RGBaxC7P0lQLF7llAvWBfPcjiFW41JIUfiC0bI0Cjn5+wKNXlEQtR+lfcjoFZ9zhpbdAvtAEMC+eKv9TWgVGQqjAXX4s4F+1As/QTAqguSaRVfAb9z3SIWYVaBTZCrU5Ddc2OmWQoTktSobtZ/QLygUbAr0hZ+3HYFhkKmgXUdI66eUC44F/kKsciBQoJhuAAQFga7BdhFT8SfYoWVCjizdgEoVZkX5yhRxOwFqKhXeItqx+iopQSm5bZB66KVQCw2B8OPOprbgKR62KR+nu3JYaJqOix9j9pNX6vckSUW8LjBsqtBOb2O+AMhyE+zTcDJtFe4offOGW74AEUZh2XAAGR1TH648hERr7RAY4vo7IOYH4TNYk/cSPScO3MX2bilh5DSmPbANDeOvSYN52eBcgnJFBwdMnkznDkniTvPVasrYD3UjdJIpbacAsYHIYCGE2tAL7i2pVQvhyXX9A8ZYCWb00kqhdlTe/e85pz0nqkXKIItCsQmawAVoXhAB10RtCjHIW0KbbkXHG2AmjAPaF4Hiu9RHQooFJC4JxE0y4LoVj5N1iWp7G6FEaFIhIKew60T1Esx2sKQ5oU9YVY4B1ccggn0KJpS2LB+haZhP6F3WgAYW7tINwLtCvmA+0LwYURS0hhadCxiA50LVmCXQvhhZEfRGF2sBkYUUjyUdEX42aFr0Kj0mCxDDtEtC8kA30K1oXpSC1WCTC5FA20KgYUUwun+L81amF0NMElJ0wphhYzCuGFER9usKswruhfz7MrQ5dcQObPQsxhe5k+XSuMK39ZfQvVvKtC36FosKdRDiwsBheTC15A49ZpYXomEOhTTCnbkUMKzoVAjiVhSXFFWFUCk1YXswtLiCHXaaFfTEMYU8wuaic7EA2FsFtloXGwsJhetCs2F87BSYU7QuthaDCutGB0LmYAQwsdhQrChmFJNAmYXuwqiOJ7CmFRrJEytAxaC5hf7Co7WcmsPoWGwvxhb1McOFIsLybCtllpcGTC36AUsKJYkJwowjA7C+WFViJFYVpwuVhddCsKot0L2YU0bgU1mjCrWJL0KjtbC2DauQLCo2FsmATYVEwsjhVXCjHkMcK/hRxwrqqQ3C+dgTcKToUtwtThb3gduFbBCs4UEs1EPpcnX2FPWEB4UDRIW1sHCgvECCAhYWmwsrhdHCyWFscLKYVgwoArovCuWFy8LoYWrwvThR3C1bc6sKaom7xHzhfvCsX2xmZDQJzzWPhX6gU+FE8Lz4UWwprhcDCm2F9cLZYXHQqdhfTCl2FbcK3YUvwulGG/C5w+VAAtYU1QvRhV/CnrCzWELK5/wryFCfCsOFwsLjMKTwovhVbC2eF18L44WQItphSvC2BFa8L4EUbws7hUjC7OFMOdC3Sfwt1hfrCQ+IR8LcEUAIvwRWfC6jwICKZ4UgwrIRfPCihFycKqEUpGBoRTPkhBFXcLGEXskWR0SwigOFHVwFNYcIqISngiseF5cLCEXAIurhfwi8BFVMLb4VJwubhY/C6hFz8K6EWvwq9hfXKPuFM0KC4XPG1piCdrHBFyiKuEWqIoIRerqXhFmiLL4WkItthQvCvRFD8LnYViIqMRVNw+hFbMLGEW2KXIAOYiv2FGCKQTaeXDM5CPC0uFGqlHEXEwvNhS4ikhFAiL3EXCIv0Rd4i2GFtCK/EUmIsYRVkQFuIISK94WsIpY4FHnWxFpQjAEURwo0RdPC1xFSSKIEW6IqXhdAi1uF4iKroXGIsQRezCvvZU0KnoXoItYRcvwJOoUSLSkUVwucRRUixJF2iKb4X2wvvhXUip+F68LMkXNIsYRYzSXJFciKjtbR+AsgsUi2NQvSL1EX9IqDQKAiuuFOiKRkVQIpThYYiiZFCML/EVIIuu1qUk7WFHSKA4VX7w2sD0i7hFQCK1kUSwsGRXPCmWFNSLRkW7Ip8RfsilmFhyL2YVJLEehaci/uFrCKo4iM0iURSUi65FZSLbkWWwtrhVfC5JFTyKdkWiIvSRRIippFUiKCWaN6SVcHki7mFR2sfjbdiiuRQ4inhFRfw+EWVIqGReQiqFFlCKDEWvIoyRQcirJFiKKUEWC+13haii542QPt+YV4wpWRU4inFFCSLwUVuIuqRdsiolFaSLXYVwosmRQiis8gJmYqUXtIt+RQHC8+wZsRAUXLIuBRX0i5lFAyLWUVVIq2RYnC2pFLyLYUWNIt5RQwiglmoJs2kU/IosRWEimQEsMpMUUEwtiRUQi3FF9yLBEWPIo5RSIi4lFyqLmYWqwo+RYwi4bBqCLKcEUK0sRWL7MgA5sQvU76orLhYai8pF6yKtEUPIrthQqi55FMKLuUUqorJRVMiglmnlwUUXOor+NuPEcVF1e1JUWrIulRT6ivFFfqKPEWKoqDRXAinlFoaK+UVB1wU1oKirVFoSLWEVA+2LhSHCwWF8aKmUWbQuNRbKi/FFQiLCUUWoq5RRmikNF7yLyUVnkFY4HmitBFwqKjtZuopqlB6imJF2KKK0UsorARSmilJFXiKYEUkoszRU2isNF/KLScKRop1Rc7iNjgsaKVEUGor7Rf9CytFg6LTUX+osbhYGiy1FwaLrUUewttRVvC04hM6LWEVkpHpRSXCxlFcSKo4Wros2RcMigNF0KLt0UNot3RZnC/dFZ5BW0Q+wqFRdqi1hFxAhqiDuooZRWWii9FU8Kk0UmoshReai1JFo6KrUUZwuRzJOinNFsxEj0UiovWpJci39FWKKbkWJoruRVWiodFtaLQMX1It8RVmitVFL6Li4g7wvfRQWi+RFgHpukWIYqXRchi/tFMqK10XAYtvRZyisDFO6KIMXe4igxf4fTVF7aKP0UiooSIKRis9Ff6KjUUDouvRQSikDFI6KsMVvIptRc2iknCuaLYMVoosGcGJyHtF48KQUUoYrBRdRi9lFtGK60X0YofRYxizeFL6LlXCSYoGiWbEH9F3GKkMXyYsoxYBitDF66LU0VbovrRQ0ix9FkGLs0UDonTlDpi7+FANhi0X/wtDhYZiqVFxmLUMVKYvlRZuiu9FlmLsMUTotsxUHMV+IcyLnjbC2BpEbJitRF5aKV0V8YohRcpinzFdGLhMWkooCxbhi/R2rcQHUVMENtylGi9zJk7clkVxorcxQmijzFimL+MU1osExWMivZFSWLRMXMYpmRd8itjFRGLO0VECAQxQZi8jFRmLosVUYuKxWailTFmGLxkUVYr3RWJigdEztse6kY6LHfkaU76An0YPU7Co2OccN3KQ8/VZ8YCkwHPHJqEpuyabEMkajVKB2d+4pNon0YrooKWLZnDPBApwJVgioqveHarO5UTyolSR6AZCbUOxYII47FIPx5UyprMmmLaGJMOV+jnPAbgxKib1kpQwqpRjbkpdCTMUpfOvRjfka3aNpNTijA7QMA7us4aZDPmagDD4LGgDRJ+NBsjOHROVHarGCIjWpyRuE6eaGCdgxcSNn7JnJ0h2FlNcYxJlkUxw+fOBAQOJM2SGvQA7EuAFEvE/Ab6c4Iir8Qv9Uk4ALTeikb9Vznj6oCmuQSk/pcJrAS5DyTVwRAn+PmJJNBn/42cFvARPWcqAkyJrkIGv3+wPeCI2AbMSg7nOS2tfMM+KrojJxcDnuVUh3NvedWAiNyNCB+iW8eaw8WrYjPDFLE18hB+GD1G40Lk0JlBKgvVhatgP/YogB51RVwmNshnPeXIRuKgcYB4CF8D5rRyw+szrAbRURPBc5CWuRO+j70l5h3xCG7i0SKoNUFqrGRw91BiCSKW4wJNlS6JI5UXcEyziw9AVWwh8Om4G4AdiQYbEk2ArABAgGKwXug9lEVJDsUUeCkpAG4AXepa+Y4iwrHNPQGzaugo+GaZCT71P2ClqyS8A8uiylQfecYlDgZbQBdprNYAyGks0/ZoSXjbcVpGSvOuMcuc2A2S3KzvGFEAP5OcQqkAAu8UBBLTWZN4E1gzGhsEC2kTCCXVraSy26B8Fr7gF4SGWcFhwpWp9GDu4sfVHPiiAKU+L59ykWT6REfbcdI6rV1cVNQFXxV6KP0gcY0SbCCuFbkDFJC7CoUMJDSHcBPxXD+P7FepM3cUW6iCktgVAayheKRDQKMXAwGz4KjJtZjpLJHcS7xaTXVnFsFEo4BKOVghRRWLvFuwpeDT5KBPBW3YfIALyAuQHG2O6rOmYvhAeiBxvDDo0PUKAAfXmv+K66AWMHBMQfkJ1KVKDvQAAiMSAKXCQdRvyCsOl3CJ6gAWLKNcjIBGolfSEBvEHYzeCIdjzSy8MJNFsCSQ4ARUgYAWz4v93AvilVsS+KK1DqQFXxYKGYd2iT9wwJ3lG3trYOfg0IhobDg4Vi8kLVPNwc/epJiDb4rCALviy/cenFooVHPFoUWSdeaSZXdFEScemEuQYippWh4CA8r9khr2DTspHKw3RtHzqNVYksVoPqgMToiRDXyI5ulmPNcEcssYL7VBhpeuV4EGgzLTrAbAZGLODwaaEEnhLgIz4ZBEJekwMQlFWEs/SwcyTem+NGQaoNBuCVZQDYuFPimFiXeL7IJd4rdCtvCA9G7GckiWJJ15aOyJG4urbhqoUrw2ONqcbMrFkYB8jqtszs2toS52FUpsysXxa3fPFmFa5A45MTgV9zUHKWz4Mb8GoA0LZWwGANlhk3ARs8l5rJZ8LmeWGEOj+xtl56r4HU7dqFcPnFUlkYZh4gONaU+gX6IsW90rBlpX6JYDIW80MUkeDG84vlxUMcRzqoYMhcVvYpGaQZ2e5GqfpEJr8+1O8HkivNBU4A1t52+hkAIIKZ1anHAbL6neCaJbyAwSIPiREXmnEuLkEMZcXszuJR1rtgPLyj4kShYDxK4TEBd1qIC8S64l+aDx5C1exwkGcS1tE12A/iVaEP3ACeARQARUKviUQGU6BigirDcrxLeQGNQBPAEegWSgsJKkqwyIsRJf8S9DsqgJgSWPEvTlLZfK4lWhCUkAngBAofiSuExw9hOgbYkpJJdIAfAlcJiVE46TXbAeEAE8AQJKMSXn2H+djSS5klU5c2SX0kogMlHEdBI4JL2wHkwBPADAICklEBkB4hAH2JJcKS3Pq0AhxSX17lvhGCS6UlvICrGAngFpYfKShTWe+YhSW8gPKAKKSueAGJKh7CZsG1JecFXPqDPZ5SWK+yczsqS84KU5dFvbyktbiKofY0leuALeDykrliJ5cLklvICfACikuiAC6SgU+xpLHMAngCoYPTAeUlHnh3SXAAGSIPKkCeBn1B5SW6H1DJeyuE8AA0AYSV8kv7WlvES4lSJKwyXUyQGgJgADUl36LLSVpkr4wNafb0lGJLWOCgj2NJS1A60+hVBoyWK2lDJWIAU8AZpKMSX4uylJWmSsQAqgAczn9SAxJaXEQD0oZKQUgngHZ7MGSttEjZL/iW8RR7JfqSpMlHVwlSVpkptID2S5eeGJLGaTYWlDJXuANUlWZKMSW6HyNJVaS+agopLQIQYkuIEA6Stcl9gQ8khC+PNJc87f4ldCAn7QjkrOJWYgFpwoZKJZA+JCXJUmS07wc5LjSXXkvpgIWSpMlUcRXD7Gkp4ACeAHoK0ZKbCBEkrTJbmwL8lOEBoyU0cD/Jf8SxUg1p90SWvktvhAOSrQhV8w1t6QUrOJZHED7SoZL+5Brby0UAaS4ewq5K0yVF2DW3n1SLclDdhcyX/EqorHWSpMls2tUyVEUtPANFbDUlnaBfiVWkvN3D3Ek4lpFKegahktJAlCSzclSZKPIwwUvbAaxSlBh8pKm4jMUuNJaxS6IAdDB5SVhYuxJYCs+KAEGt0nC4b3Q4h6o5TxADZwvH5BJCesLUtxA1wDSJK3AKhUQ8Aq/SzwDmxIN9leCQ0wr4B6gIYMkmAH+Afs5Hy6zOEt9FcEV1fO7sjBx6mVnKYQTQ01lhQbbxn0iMpY8em8yDH4Mri+BZuskF5B6MazIl5gjNxIkAKa0e/hvCnNFwWKqoWNhJA5lwwAgSEWsF0A1kUqyaDharJkHVsBJ1ZIoEm0o5pRUqxyJLNKJ+aE9i0Z6JOFPLgckWpRftrTtAYnJsiWVE3M5rSIQSGJX8SxKZUXL0a2RUMKL1hYBKCc2TyXVStjWg5F2ggdliV7jG4a7ZZ41n7J6203sRbgRymztoITauZX90fUo4Iq710M8h9NT5BgTNbtuxVKGwl6xJ+huVSmUQlVLGsKUCB90b5S9qlAdkqv6iRDIKt1S9TJ8e9+qU72JoaFNS0M2a/A7MWHxADqYiYm70plN0YXKuGwtEHDTqgeg1x25mID3tFJzR6lQl0jYB2cm3rigibIqWRU1YLiKG2BDICOwgi2t8RCJyULKgDSo2AzWEESLK1xQaJR9EcAFRpRKpGCLVpLcxAhCtaUwSoBHMlhTcASAAwLgkABjgCFbJKAYIAEEz5gDmlju0HhwFIAjkY7AaiRJX6IZE15wb6o1cwT7WxpVq2P5weNLbnDCtkJpZ+uRdKJrBxIAXIIwPHoAUSJl4I9+xatjppekgCfalPIvcrk2HsFI7bd6Fl1LssHXUv+wvfvO6l9WgjuL2hIl9i9Sr9acMV3qUcYXhpa4jD3K5MKNkDIgBiwnS45jSv3Yzmhh7IwAKaUhownFAxgDAyzGANQoGYwd6ox4DLDizAN3gykxcxAlwC5AEwoKerA2leWEG0AW0vbEGbS42lltKzaU20ppANQoHSJHgAsaC/tgkCGy2InoaQK1OHR0tiEWt0d/spcIqvBhADE7I7wLqg1XBxiAQCNSIBQAYxAcxAvaXiYW25EC4v2lptLSL6l0vXWdbS5FB0RQvanN2Fu8XH0a7B1RA5iC3FWSsbc4duEQnYEIx50ubpe3SgNskgAvmyd0vzpRP0bVsk0RPSVmzmqoBuaP/hg8gazlW1LFYOPSrDx66waAAeUrFpa1E/PQwVJzoDYwoKpWUkwOpLnoJhYK0uziErSn6lT1KsYUnO0u1prSowRHLowUolHL1pSJwXTCAqxERBh7MwoCXIKyAzMBp27JqWMAFLrYNsGzgqeCq6VxALF8IiQugBUChH9inABvw5uItABaHCF0sNpSXSs2Ak4AvcD10q9YH+g6RQixBr+HtBOqIIgyj92p4Be4K2WNKYDRwRBldNL1hyjgiYUDvBTlsQVRe4ALBH0KFEA12lLDNSGUQeGoBM/uASAAelmkDJABlwOH0XTop+AznBcSwoAGEQRBlrzg9GDojgnNBAyn2lxtKYGVHEu65HAy2bSyakkGXojnEZbhgAocGHZoglyOioAMmpBwxIMKV6U8WDXpXZi9jgMtLdtZy0odZmdrfelD1KVaVvGzVpafS+ep59KN8Dt3PiGdfSwSyd9KQIAP0pngN5jLpqwtg36UBQAzQNRWL+lnGhlXC/0trgAC2QBllgBgGUQCNAZeAyp/AkDLTXGjfURIPbSpnQjtK1cDrDjPABpIczE4w5ARzO0qVIJQy92lZDKchDFNMFQV6wTq4tDh0mUUQAKwaezCfon7YogHUMs9pcEywRlYTKU4n20ERINC2fKALNKHnBuc3aCaYgZuleDKnaXrDklYIYwCYUxvR6ZCzXOWwWgy2RlmDKlwC0cAkZcAQNTGUNRHwDCPzyQNUyzFsRDE6GUB6QEZcXS0JlVTLKmU66BqZbrtYuwcDL2glcMubpTB4zZl0ih5mWxYUWZTroZjSSzL9pCzcjqZRwyl2I3dKA2wweOyZVv0eag3kBRDCeRIKZbkyoTsVgBF6CEQC7gJ/WfZlRtKKmXHMpWZV5MCgAE8YAkAyeBEAKf2MkA2/t3mXbwB2ZQgy7ulgEAA2xPlOeZT3SvjsbzKfWKFYMHpaxmZ3AozKOWyYtgu1BMylZl0zLvmUl0qWZX8y6plALKgWXQABBZd09FuAELLplw7cC/EBpsTFlzPC+2xvwHGZdBoSZl2LKuWyngEagHnYrP0ZTKFmW+0uJZRUyxXAUy4lZzksspZWCy+EANLKIYQAwgwIAyy4vITLKcWWssssdPiyzlla7Y87GPABvVt7S/llJLLlmWkspFZaIAMVl+UAJWX2sC8mMxpQ1loLK7o46CVgMLMywIAhLLDmWIkB1ZcKyyFlgLLm5DisupZaayigAgzZJACfwCuAHcVKDMn8BmWUvynoZbay5elBWcvjDqMusIB1cLRlh6TgYA3Uq1iYrSgxlR9KjYDGMrepaYyghCF9KLGU7Qp6VrfSyYAtjLdsEOMrIgE4y9+lrjKqKDviB/pf0kbxlxEhfGVxrhAZTcCIJlWrKDmUCsrBML3ofQgcLLwAjxEFocMxpdFlLTK1cAUMrjHKkymhlDlBmGVuBBbpSaOW5wukBTwCOlB7AFkDCdlDzhjajTssTQMPS4aI87ZuuAGymJ9Lc2XQAgbKKICGWjivpqyouljbLjmXNsusGGt0CQI07KyIDyoHkicyYYwAslh5jC96EVwMey20gegBzsB0BF1WNYMb5sXkAHhyeRK/ZW4BTtlAkAh1F+sH8AKlgvllB7Kb2U96GPZXSynoQMwBtVLxAEvZdcYa9lWJg72W96DPZU+y3moxgA66V00voiGymfkcaLK7WVNstvZceymVl5tKEOVvspbZXey3jYltB2mWeRLAZSXEkgAnbKzdSEAAEgGDAgYGvABTEDgACJAOTzZ8AuHLD2X4cq9eBBykoAoHKbXAkcusGHKyrFlW7LzXHe71iziAfJQedAA92UhMrw5WBy4AYMHKdjDccoU5feyv4AInKFWWcsrZAAJAe7SlgBbWXAcp+ZcRyxTlBRVlOUCcsQ5dYMD+g6zKMOUgBC45WZy6wYF7KdjAnsqhPHZyhXApHLKWyacroZTgAaogKOl9OUNssM5UeykuJLnK1OUbMuo5ZIy/NcZWgcmX3MqZcKStNpl37LOmVIsvaZc8yntlW/Q+2VJhAHZZhQAhl3dzeGHEMs6GCUyseoZHKRkAUcu/ZVRy39lTHL8gCm5nc5dS2MTlO7LTL6GBH6ZQkEjNgOTKcWWMcvgAMxyytBBnKiWUBcpU5YJy1zlx7LeahF8DfZeRyz9lhjBPInGIFK5a1y8rltnKjOXdcvM5SXE9DlDtKt1TZ0sg8W2iHJlMHiVuVb9AzBQEy+tl+7L/OU8cpm5W+y+hAVrLkuVJMrubCkyvLlX8AOuWLMq65Zdyglu9zdoRSrMu3gJky55la3KC6WhstWNuGy5GSrOjnYjRsvdtjoyvbWCbK6laGMuepSfS1NlfHUzGU60qvpbXC7Nl9dAbGVW0pKwQWy1+lxbLP6X4UBO8FQALxldYAfGW/CBrZQEyutltLwbuXHMv3ZBYADyQzrKlOWE8qhcYwuDTlVXLFWUTcWg0F5MCNsuAK/IBmZEtpYrgXDQBLL8eWk6EJ5cTytDwDnKyeWGcAflC6y4FlRrK9RD5QEs5Rwgdnl/w5DuVc8qVnKTyjMAX5575TZkAF5RSyoXlh3KUkDWst5CkqyhDsfHZG4RNj1pbGzyvzlRLLOeX6stjbIdy8nlXZF9CABtie5c3SydsXcAZeDjDnv8Ciyj5lWBJIuXdMuZYGNyrfo6DK5GU2WMGZYoyjFl8rKqeVacr/ZVQABHSsxFaGW8hWDZY/MLVsHDKBgYT9GBcCK2S1gSrLPJDnOFDEEwOWis7sB5gDtmWYYsxpfXlizLDeWQsuN5XLyzSgqABh2Dojid5bS8O+Qakg0+XXenwAFzALPlO3KDeWy8qJ5UbyvZwJvK8SlF8qPjGP7aog4DK3uUS0s+5UXCn7l9xs/uV70vupYDypNlDz5XqUa0vnqSs1BhYxAhKhICKU/ueDSmBiIJtlRT3a24RonJOGlHLpbYDxxmHcF+8yxlUPKb6Uw8tzZXDyx+lCPKi2UuMuR5WWyzxlFbKMeVVsqx5f4yyDxgTK8eXZ8t9pZi2PegR7higCU8pxALiy6DQO2B6oAs8uZZXVy84cnkSy7leAG3ZT1AJQe4ArQR50AGHkAVyj9l8SVxOUeXygFcYAJ5lnbKO2Xu8vq5fIy1AVxvRVzw28r9oEQoFJkqfKAooZ8udYuzyl/l5gVDDAF0QbCKV7P9B4DLy+VumUIFSyAGvlJArVWVkCvf5f/Sjvl1ArH+V18tCZaQKt/lp4BCTABIBy5WaECJlouhTdh3DmFkHcOeds8PMmoCxtlmHJ8yuziJAArGAncr47P2y87ltnKeBVjGDY6k+AKxEcDKyMHX8PqQLIylVsG5o+XkyMvH4ZkyzyJqRBO2W2EByZR7ynFloArZXH5yLNcTVysy+xgAlWU/8tP6LcS6ZlWAqIRg4Crt5XgiWrZ4yQaBUECvT5UHfYgVT/KubHMCt4FfO2LQVTiIKBXzsHyIIEKivl9Arq+WhCq4Fc/yiIVGgqohXnSBiFWwKiwh23K5OXhCoRbCwKzQVWQqaQDvsstoANy8fhtgr4BW1cscFV3+GoVdgqEBW5238FVkQPIV5TL1BWJtgKidBoQ9gHzQHmXMsBhZRP0OmlII5xBV64FP5tIKmYcgI4lwARL1EvLUQUhseiBD3gSCuVyGnwfoVJgrLwCe8tssagKtQV6QqOhWTTC6FcgkfrleNAtGwLsq98INywrlw3Lv2XUcrXgEbAaDQvNQ12U6AA3ZTXWTllsnK2hVbCqzxJ0K5VluwjhBUwcCiZVv0GJlAUVnMa9wASZaXCKLlohgoBV7MqYFYUKyIVbwqVLEFFS+ANXyzvAzXKfYhhEEQAJ7EMVsbnN4hV3Mpd5cKwTyJoIqC6XgiqhbEUKnLlFzZ3hVECOZZUXy4EVfQrUGV4dilYHiKg5wkIqdhXEiqpgKSKgoV+IrIhUi0rxYK2yvJl4ARsRU4MtxFWEK1SgEIqMhUFROZFaeAdIoggrAwj3sAkFeMK8AI+ZQmmzmaE2FQKKxNsbIqskAo5GwFe30LAIYXKUPGlME1IpSKifoT3LOGWuosQZUOy3kKI7KPeUDMsa5Vv0BLl+gqFcDT8lEMB7y3vQKwqZ4C0crm5Xy8wSA3kAKPCVcpxAIGy7cY/w5+IDscpJ5l3UEzAS7LPSX1YKVZYfy1Fsw3gPSC7YNDFeUAH/c5EsnhXasv5FSyKjIVSoq4+j9cpgFUVywxgqArK2Cdsu9FZyyh0VfAqtOVKssdKLcK6Jxc/C9eWpCuFFa/yjIVnrz8egVCtWFWaKzAV6YqHhwNCpMvqg0kblhjAnRVOVEHqNbytYhvgqcoC1bMP9OiOfQV7zK2RxCoCTXNSKvkV7QqG+Fh/Px6KI0ycVLwrTwAq8vAUeFAdkVIzLmeEU0sXgtXwgQW7fK0gBkMvlFUmKxNsm2UP+VjMpp5Yi2EAo97LKhWPCo1FXEK/UVOoqluX6ji1FQaK5ul1PKrhVnirFoL/uIjszLZPBXHctS5W7S87lmXKMtwtkoKif+K63laor2xD4CsSFcEK3YAKQr8hWJitpFRkKo8VpoqGuVZiu/ZRsK2gVA+EkhWMCvnFQqKrPEiEr0BVe8vaZVmKlCV+4qRRUrcjFFZ/AZ9l9wApQVOgDaAHBKqsVh4r12wDcutFacKonoxXKf2UlxKVZTcK+xgpYrN2XlitglS/y0UV9dxKJUFFRzxF9AOiVBIrNspsgAvgL2MOcVFYq6JWCSvu1MJK6iVcQBaJVTitPAJJKruADRS3SK5cs8ME9y1bl1/DpGU9itt5emge/wT5SJxVySoElWRKoSVNwrRJWqSoXFQbKddsUkrmEaf2GPFW2QDXlZEqbBWPCoglXQKqCVmfKaRVvioeFY+hGeANkqJ0BiSrUlQ5K7bgTkrexjF8puuU6K7yVGEr0+UMCpglc8KhFsCkqgpVvwBClTRKysVEkrHJXSSo7GLEKjUQrQqExWWSvPFdZKyfIykqwpX2So0lYAjd/la4rqWxf8oClX/ygll6ErK+VECtr5fxK1VlaUq8ALBSvKlbZK7KVkQrqpVaSpyFVLABIVPkqq+VYSoslZ1KqyVikrMpUqSv6lQhK3KVNUrmAAFSpGlZwKjqVqUrppXpSs+FVbAb4VJEr6JVZ4nSKGIysgAWSAXmUFYOn6OwytzmFAAyABoMo9FZ4AQNl7krzxUeCqvFS+K4R+n7YkCDtwiAlVeK9BlpK0DhXigCOFTIy5iVsAqGpWiis8lfs4JAV7YrOxX0csDgAo4CVAfcYumW9CuFYE6K0dlI9LbnDkitw0MDUP9BVvLMRWIti+bBjKpulQ9LW6VmZGOMNWOdcYi3KWLAkyozpVkDeiI9TKaRzNxFGlQlK33O0Er2pUpSoPFQdKlbkdYqs8Rmis8iURKztlUrAWpWYSuSlcVK+yVh0qkJUYCt5lZmKoqVIHLwpVLioecCuK5UVa3LbxWIMr1FdqKxBlQYq26VtsqTbG2QHEVE/QkWU4yqg7J3SnkVE/RvpWdiuAFa6K/RgrHsXCCgSq+6O2INlMX4gY6VJ0ukbL7y0TlVQqnBUOCr9FfXQZ8AyMrl2UhitPFWGKuMVgcAoxW+ypjFf84QKW8YqpZX2SpllSmKzSVmFBtJVOUE8MEZK3AVpkqBxVwUUoFd26Va5DdgJGVrcozlU7K9cVRYq5ZWSwD4lSzK+CVibZMYCmWUggCqK7wVvYqTJXHCpHFV6wHJlqIqaRxXSoLpfzK3yVgsrw5U4StPAKXKx2gFjAYpUoeOo5fFK1qVSUrmZVCyo7ladeJGAZcrNAAFSv7lTdy6DQlIACRDX0GwlazKzuV48ru5XlyrppVuqPaVBIqW4AMivhlH7yqSQ4krIhVdypdhGryt+AAkB6yDtQH8lVvKskA3tRKkjrrixZfNKkuVK8rj5XNcrmZZfK1kV+cq9ZBPgA/FToJVsAM4rF4DECvClUfKplwJ8rtOXnys3lZEK7eVp8YQtkPyqzxEAqnuVzXLeABDqKQVbhyys0P+41WXdYAPldWK6+Vp8Y75XM8JgVcvK1tYq8rJ5XNcq4HCgqsMV6Cr8FWyytHUJ/Kl5A38qUkC/yrFYFRUABV9kq4FXlypIVQ3Ya0ANwBZ4WqMvDZXZMx227JETkWo6MxIYPy26l+jKR+VWROPpePyw+lT1FweUgBMh5dvk/flaIBYeV2MrfgCfy4xAzjKP6VuMpR5eWyv+lmPKgGXMAFrZdPK+cVM/5vuyxMr8gO4UJ1laHgi+XHcrRlYVg2gA0ih4ExSAEIZdly4CVMTK6WCbCpMVUEHSLk7hQzWWusqF5Zry83lfHZMmUoMqVlRAIzplDcqdcAkADBFcYq08oXiqL+QK8vNZVSy8FlXkwORVCdnb5YVgrZlE/RbFXYip1FR4q2JVZiqouSdPUmmOcytEV0SrJpWeKoKVRYq4hlsSrFeVusuSVfqy1yVgbL6GVecvJgXkq+YAcSrzFWN1FA6lMbRJVxrKpWXgBD45Y0q5rliAA7CD6rTaVaYq7xVXSr/EI9Kr8VaCy91l+rLfFWC8otZQEql+VIbLuFVhsqowJ9y9akvcLBsV8kVjZfLS0RVw/LlaWj8pTZRPysHl6bLzGW60trhen5axlh/KVFVP0udbIjys/lWiqL+Vo8qv5WwK6tld/L9RwP8o8VZ+2J6cFcrnCgAKFWEGc0fMVawqaBnWCpOFUDK0bllgqHJAlxJbFQBnGTl8MrouVCoAi0PK2M65i3K1ZUfODLoHOykqw/0rZ2VTssW5Qly+K62sr2xUXi0NlUiqkEVOor4Ex1Ss9FS9K7/lKgBf+UWY3JcCmCJqVX0rQfEmypdFUqyunlcYIrYA0x0YZd+IXkKh7BflW/tlMPCkqulVhDBG9Cn9E/bIXKoWVwawjIDUGD5bN6AAFVEPAwJUgqqe5dnK4yA94L9Ry50rvFZaKilVfQrDZWVsAcVSSq7Bld4qimXd4I3NODUUFVXMqc5X+8uf3PCq/OR+Yr/pWp0qywJV2adlRxgHYAO0qGFSCOSQVM6U06VSiqXAAoK/jlWmlyGUu0pUFR7S4oAwqr5oDyquDAIqq2TCc+gU2xRSvylQnKvsV6SrTEA5Mt1lQ7ytkcSMrgJWAgEAAMjkMUAmBVyqqenHGqpWcaP4/AAjnBjVVOXYnWWrirWUvyrsIMx7WsgRaq/lUKquJ1uEK4tVraqQyy1qtV5U4qrLlLZKepCWqpVDF7Kz0lusqEIz12AzVRrKvul+sqoajjqrWlc8KjtVsaq21WVqpLVTWqrIKaIAlOgXKOcVf2qyKgInBPABYcq5HJawCgARvsmaUE0vH4EyA1wkJmAIlWFYOulbyK8pVLarF1UwVMGVeKqtwVrKqwZW2qtpVYWK08VxYruJX3Cv/5VGqtulnaqIeB8csqcB1MIvlNKq7pUvypaVf87f9VVarS1UDKokCCBqyqY7ar71XVqq7VZay1Xlz6qGVXuCtZ5V5K5tVIqrANUfcEnyH5/RFs9TUNCAzyrArPPKszCHUqF1WoaqVVdZyu0IuHLZ5UggDGAHhq6NVK6qQyzIavw1Q+q70A3aroAC+ssJlaOqqGomQhJ1W8RWnVW2QcyVcnKmNWUatY1QBq7jVg4Bl1UEaotZe8M9GgYtBtpX3qmfIDBq9jVKLZ0ACEiyWABzKz4QVMrZGUIss7ZabKs+VnGojNKG4C4VSoyjZVGmBPuU/woIxYxw2S+Iir42ViKuOVRIq5NlIPKzlUyKouVRDy+ZZksLoeVKKruVfmy5+ljjL1FVI8peVd/Sy/luiqb+X6KsMVZLKn5l2LBOlX8arHZViqzNs87L5ST4qvS1WIcI0Vij4vmXs8sS1YUqo9xcIq1NWiCt+gEoKs7lEar9Ci6yrMlcMKjlsowr/VWAisDVVYwPaAvL4ixXDdjecJpQRdSEOofVWLCoalRWOQIg3KxMRVDIFa1V+q9rVFzhOtWR1I2oL+2YpllWq2GW3OCn5nlQWPhGYBlWWKeivVdgy29VsEqCtXuFCNUkF2QN8oEBPQDLDitYLZyrbVCvLLJALJwe4A/yEBVGvL8oDhiq/FVeKy0Vx2r4lVFKqCqD0K5FVdmhLBXpqrnVfyyqTVLGq+RUnat9ZfKq84gmwTlhBpCGEfpV2DrVSwBjAAQACTqDRUvIAtzh0lXxtgZAEqy/rVCAAebFFisB3vRAWHV35BqKzojkR1aDq2eVjEABtUOAHR1eP5cjVc8rftVySpO1Ttq4rVPqr6tWgyUa1cNqnAgbWr7nDjash1SAAfbolbBmtW/oCZ1aNqlnV6IgHdkQ6mt5Ziq7u5zuAyETW8pF1TYAMhENWrbFXc6vx1enS/5w/OrF1I1SnA1W5K08VZLSPICvqsh1XNqmmVkSqoBXN0rI5d14W0VsjL7RV2ipmAKiyjlV8zcuVVG8p5VS2SmqUvrYGghHarJ1cxqheVlOqntVFavfYMUq81VsrBKtWMaoo1RTqzbV8SrmNKUsB5CFr09VVVABGtHXioUZcMywblhurmWCm6q36AnSqeAnHY5BWPajRlb/uJNc/eDZdWuCsxFVDqy4VYOqxtWK6rR1V+qjHV+qrcNA5Csz1SDq7PVCMrc9XM6vecKzq2L+eeq7iphU0G1QjK+9ltcqK9UjatfFWjKmvVvOq69WF6uJ1cXq01wTurpNV/asD1feojRSuBsLtXVtgHYucOP5g3fKhDGfcqwReli2whTHDnNUWIoB5W5q1WlnmrpFWzty+pbPyx6lNPMF+WA0pdiFHnGGlTvR1+UVGg+qkjS+iAO/Ks2WKKpZAMoq4LVjyrT+WaKtLZZFqt5V0WqAGW38oMVTjyoxVckrTJJogCp1cCo9AgONQAdW3TEUoHvQIbVLWqedWvivB1fXq3PVSdQVdUbirV0AnpYwAO4rZtVe6rubCBKobVrgrUZgQGu71adK5FlZuqPmVZ6t71Qrqw/Qi6kV6rs8oANSyAIA14Bq7WIsyNbZQrgTJlsurxGXgABPAI3qvegeBqCW7d6sm1ekyhXAOzLclU3ctQVVlgChVUWFdMJ0Gu4NQcEovlmKr6sGLcrkNRpq6g1Ehq3dXeRTEZdnK47lPWqveCkGtgNQXqig1fBrfxVUMuFyABKohlwErwdXVIBJ3HkuX3V5OqXdWwSpoNa3rJLVx3LfhVxMpGLICKqw1zuqqNXlMrsNUAa1Q1ThqvB4SsClFeVq8NVe4rh9X+6s8NcoazpVuas0ADZYBAAKkqgNsWarGdVy6rgNYrq6OpYcq6XE/apsNWEa+ugkhqQDXU7MYNTk0mDxzcR4XxuGpH1f/q8I1hWrJlWySsk1X7qjI1CYqvDVu6smVUHq/uQHkAc9gGSuzlQbq++OuMpjdXWDGKNaEa2o1ZRrttWD606VY0akPVA7E7ZWxCOT1RMKWzldRrOlXQaAeJcxpaY1UXJlWWIkGsVV6qsQVtOqpBUNarBHJMK5DmvpBP6yotn4wFZPLeYDIAX7C0OAcAEGqoLAvarAJUVarSZfWgaFwXvBWPZKvB7xZASnqAOTTMmVNsGsILQ4a4AShqsjXxKtmNfgS+Y1/RrWeW4sglFSMKjY19OqtjUAKHYXiOAPY1QQADjXGQH7wba7U41nOrSdV8ioWNVUquY14hqfjUzGvZZRWqk5lUS5tYCBKpU7PmuJ2I4DKpjWAmr+NfFATE1gBrfjU4muY0knAKRAdtLMmWyGs9JQVE+8VcfQwKy+tlhNYSK6OwmTKuTWsmoS5QUy2YVj2oDDVbpOWHPK2IdVvhr/hVSirJNViaxY1GQV/jVUmtoNTSa3FkdJrz96UTEWUGay7s8IBQ4GWTGu+NdSamY18prKTVomqBNcsa1U17SwYwDUKDoVXxqhLlR6qaOBUiu11bwy/NcIxBDcD48oBZcaa6FsRQ47DVS8se5RAIu8VMHjdVVtsvaZXQAfXV+EqsGU3SsZZXaq9Xlp4q6eWeCqbFaxKyOUnbLO+UlxNgwJ2yh1V12A6AAu5k8iZ9q4eU4sq0zWiNMigdrqtml4/Ae5B5IBNYNrqriWWornxUB8tflWEKt015Jqg2xemv1ZU5y2qVt0qOWXP7it1Xnyl/l3LLDDCpGqBcXWa2U1FiqGzW6YW9NfZ2dsQQyrP1WvipjNaqy7s1l3A6uWAyoo5RvK101+rLFTX2GsWNUOa+ug3prReVwMprOa9y9ZV73KqMB8Ks7QBdS3ZVO9K42Xr6tc1YfS9zVY/L1aU76tkVZfSvzVetL2eUCAt68L8IXDCy0qU1XVyqwFfW2PVI4mxFDV8iufNb4yt810RqVRXfmsbbF3AFygT5qwFmAWvu1DAHXEAp/YVAAFStr1eQazrV/Yq0+BIWoh1W5RdEc6Fr4DWL4BI1e0OPbMkFrP5nQWvSlbBa+1gwuQKACiKHNfhkAXuV87Bi4hd8r3NT3ytWJOyrFkFOav2Vboy22JRyrLzVb6qkVXPy7zV2tK5FUPmr35bcq4OV9yq1FUaKpLZe4y1Hl6PKPlXf6ri1V9qkDln1IgoAnaoCgMYgfTVberzdUmas5VdGa63Vm7YpYAt6qZcOpaj5lGwr2eWKWo4ACdqmipTRrPAD6aqtYJpay3V2lq8+U26r0tYQawy12arPtW2ctMteZa6Fsllq6tW7atiNVyK0vV5or31UQaonNcI/blVulrc7bTaotVT7qky1LMhPLXKao3VR7y4zVzoq7LWTmp0tbyqkaUMVqlLW/GrHlXoQSsmiuBGkBUdG5RgR2OaC7KrbLWFwA7NWh4aFwulqapS2KouFWEQCdVnIqU9VNsGsFa2a+6V9lrKrWOWsUAqGapcAoXKr1WcMquZXx2HZln2qAZU0yqN1ePw+0VP4qw1Vpcv/FbHy9ml56qUCDuWtitdlaiM2JWr8GWSmt2hPWgYw1LirJpgbmna1dkEA+gzlr4jVyxGd5a3q+I163LFrVZWoNNRhhbeAxsqyrVeACVZUQKf/lAVr6rUlxOOtWgK8fhDYr4tUl0o8tdla661zZrlpWftj2UZ7OI4VyjL+zw2astAJ9y6xFCs8WLXb0rX1X7CjfVXFqjGXb6t4tVrSjNlVyqFFXCWvvpU/ql+lL+qJLXaKqi1ZWyr/VsWrf9VfWtCZZakcSCONR3+VuBAbbKLAf6V7RqxrWrCvtFR+aohQnqrImX4MsuNSYana1s2r0lXRZlq2dIy1416cqfeVh6okZdVq2rZw1rMDU30jSZQiKglIyIrj1UXSsblZkqno1NRqFLU3cD7ClTa7AVyL8YhBp6pyFQ8a9y1qtrKbU94SabK9qkEV9iq8Oy9Mv11a1a8VVBbZeVVPSrfVaLKgiVGwr59Wr0rs1REi/vl0Iw4bU9YQRtXPyq81pyrbzU+aoEtRjS8mFNyqc2UiWuxtaFq8S15/L39XSWr0VX4yn/V9/LceW2coJFfXcErVU6qCQCK4BACCNam0VcequjUWio1lTkK7WVidreBWuSoalS+q221WurvpVACpdFXYKiAV3h9aiCICsztSxKu+Q1QqEVU0cHBlZ2KxsV3VrArXM2rtROzypO192oQfSQssqNeUyooVA9q0PDKqolYKqqjAgrNqRBX4MpFNf+Kjm121qSGXRWr5FX3a9KVo9qIYQ3CvhkNz4TNAvdreBXr2sSfOVKre1drAB2Ji0EOFXmavmEltqQrW08rStbbq3s1oTLV7XdSunAE2aze1F9I0kDF2CHtQmKke1XkwlJVH2qUkHXSp9s6bAyNUr2rpFWva7+1fHKP7Ugcq/tU2awZVKuq2rWpWoctdVau+1vtKH7VmhH3taOas5oEDqfmVQOshZeg62VlsDrxVVhWt5VVQa4B1gor+7Xf2uXsZg6kul2DrplzL2LpEMwy20gxVq2ogumpIddsK0B1Cyrm7CUOvvtXva01lddK9VWZMrMQPpKqRlL1r91UijkKwZbK3ToNNrqIAg2t3tRoK/e1xtqDVVUqozNcaqs2IxqrDZWF2urFdEKmkAOgrI9UrxlVFdbKkFVT5SAhVb9Ht1Q5wOR0A8rCBUhCuHlZA6iBVmjrO8DpKvRFeY6xKVyQqrHVYOpsdSUKzvAOQqHHUyOsTbE8AXW5eUqXJW5qvEgN3a44V4/DDBXACtBVWYK8AAFgqaOWwqtBVS7KuoVzgrahX2CtTEUk6xoVG1BmhWk2uQdW46vx1S0rY5V5UHjldgKquVLNqPeVhOuMFR7yyJ10TqczXvWtWFfE65J1hNBUnU1CtcFVhqzXVvLKWHWvCuKVbYq5YVgwq1jUSCrp1TIKiYVkJrBhDZliFNfMKvXAvWrlhX22vWFfTKweVzjrvHXtOpe1Z06+IgZSrYJUEitYVZPK4J1MjLa5W9Wsj5ZdK6PlofKWWWnirWdX+qluVjMq/JVtOoIVRPKmi1dcqy+VBCvGlW3K1x1GQq1nVTysydekajw1n9rD5VPyuAVevKv81ckqr5WdtmhFbgq6lszGlVnWfOvgVQHysBVczq2OrYKtvla2a4F1HzrCFXPyurNb5y35178rqFXTyCtNQwqtAATCq4XWPOtBdWwq8F19ZB1HU+OuhdSD8aBVuTpcXUIuuAVQgqpBViCqyFXByq6FQm2HF1xLrO2w4KthdeS6x+VlLqwXV0MtIVcIa8hV3ZqmXWZtg/lei6pcVmLqs/j/yoFdRc6ohVICrFrkcKqs1WDa/c1tmrzoCFIs3pY5q2G1bFr/uUXmu9tdxam81KNq7zWZsv81ezy4PVzRrv+VQGvqQJfa9s1aurvLUtOrnNWUKh4cRYqWJVeWpD1QAK+sVDXKuVXdWt/3LF8GXVlerTxW8GuwtYXqrwVgKrJ7V4IhHfBDCOM1zGlqiB+ACs4Yi2OlsYtBbOVGus8ABRapser9wmJW2uqJ6BvKp21ajLIbVM0hqxY6i4RV6rqh+UH0q1dUjani1Z9L/bX3msDtUJakO1WNr4eUhasLZWFq55Vb+qPGUf6sJtT+QWS1JNq8eUwcCzxJ5IWKg3+rx7XSsuMlSzap8p6Or/sLxGvR1SfgHIVJOq7+R4Wq9eHAkOM1DUqhuUEt3V1Z4AThyYxqHhxHSmtVa666M17rr78h8EEDNX66ig1bJqEjUP8vYNZwapI1FBqkJAZWs7daeAbt1pFq41zDGuaNXO6xc1V7qPnB9J1vdSbAWpV/iramWTOqXAG66j61CQSjIADmFW2Nisa91r7rFSD6KsWVUry5ZVQvLuLzMaTO1ZPq7i8cDLtDX56r51XoaiHUMHikPV+spQ9RNqiHUx3KF7WfSqXtWkyue1s2rxVUv8qzEqerZ91N7qwPWx2vvdVZak11CMqX5RmuojNR+qi11r4ql3UctjLtW7gb91DUrv3Ueuv0taIYDD1kBrq9XGKLINRhaoLAVsrgVVT2sCfKG6yFVltBw3WRuvyQNG6vGgtnKKPWvuv6mtrOTvAUnrwAiCoOY0isZJEACnqA2xKevZ5Sp6kNWlVA+3X80gHdff4YW1kerDJUSOp/Nf9Kkx19TUlWWMjgc4B+K4D10PokHXMaWM9XIrCJWwuQcdXESFWtcsOZT1VsAu3WqevjsMDLNSQ7/LhbVBeuA9S+6kz1OilvJYReowZQC2YjVDuqWOHJcui9SF6uL1/HLKLVgVnQ7Jp636GCr5wAiYqrHpQNQOT1enr0ACKerFoAfgQr1KCRYSaler/QfJ6ir1BnqqvWaetq9bPS+r1EbryvVZYGa9Qca4r1dXrvuxleqjdT16xx1pzr7nUl0q89f1NZjSOXrX7hRCsK9e2+CEY6eqGwjJapRlbN6tAA49KzZyU9E4VFl2JE11hZ+vVGHRJnJt6lWs59gdvUp8sglaN6lx143rgvUgeqy9VN6pN1iHZNPXzeucKH563QAy3rl2Uleu+7G16tAAm3rtvU19ECyNV6tb1A1BPvVNGqp4D96hwAnxQTnW2WFmdXyKib18dhbvVUWry9SG6jFiiPrFvUMfL69e16j71G3r3xCg+r+9e96/b1YrBvvXHet+9eD6251kPqJpWwSph9QkMOH1uXqssAPes09c961H1hMrcfVA+sO9dj63b16Pq8fVfevfEEd66J1YPrTvVjSralUZ6q71sXrvPVU+pm9Q96in1CthwvUzACzxO3ytLKyPr2+WvetHpXt65n1XPrOgYnev+9ZHBQH1mPqqeD14U+1bz6kb1pPqxvWhMol9ZVQUX193rEfVAesy9d56qX14bZZfWreoW9Qr6tH1APqMfUHevfEGr6on1M9LnfUc+uB9QRQd31+vrBfUxepvdZN6xN18PqafUW+pN9fF6poA0vrFxV9xjl9YV6ly1ivrbnBM+u19YQtBwAKjpPjUa+vW9a76qng12AonXUco89Zb6671IvqHVl2sBmrHd63EALRr0Rx0yruZYU6iz1NcrzdWxOrW1bE62xVVgqfhVatkdNSh4ic0IjrPWBkJG5pP7JdNg67rWvVH2v79SsAKgAybSr7lFwH4UfyOOT1oJkLHVMyoD9Vb64P1fDYy/Wh+qudbTEcBlMzqyfXlMoj9fxy5f103rqLX2OqTNRl6ov1S/rgbkr+up9dBoX+1neAAHWWsBv/H368fxV/qNfWAquH9V6gyf1fcSTYBg1hYZhysg9Vcnqn/UotlkMDtKzhl3mwF/Un+th9YX64X1/U0bfWvCrIZSBaiDwkjr3NiLmuh9UL6oP1YAad/VQBr4FWQy4C11Nq7PX4wGP9RAG1ANyAbQvUJDHQDSj6zh1vtKd/WeesIDVl6kgNbAqyA2UBsD9UQGhWwzGk9/Xl+tENVf62AN4bYcA0QWqQDQwGm714AaUA3EBoS9dH6lH1flqXLV2Ko21dv6qgNxfq0A1CBvDbGwK0QNT5T4uUayviNZ0yzFVgmq2yCIspE1f3SqGoBTLQbXi0oX1fo7FR0girc3Wr6vzdYcqwt1j1KfbXI2tLdfxa8t1kRzHzU8Bqt9QTIo5AwmoHaWz2qmtX+K2bVeHruTXzsGXtXJKrz1zgboXH8BtfdYEG5YAlzYg9YBet7ZR4Gqhls2qrPUJcouFU8ypM1RcA8A03utCDSsAYINM1iGkAsqp8Hp6y/1l7/LdZWeOuWdZIG3gNOUcsg30MwyDaUGlwNLZKfB4pKstFexKlINoHrv9X0BqcDdHwKoN8jqsRXWeozlQ0Gnt14Hr76hlBpbJSWq/tl5Er3+VZyqFtYLapRlIAbhfVpBvlVd39doNUljlWLxEAGtVqquPoJxqHW5uBtaZWKav4V8TKwRyBGumtX4G8n1Ugbpg09lWY0l6y9xwogazrUSBoTFQEG1oNLKrjg1G2r6tUiKpV4vdrt3Cr2k52f0Gh5wggByfHMaSANQVEyINPwrNg3OGv8Na4a54NlvhtuBvBqqDR8G85s6kBLHQP8g/dXMq+pVkLLxzV0Mt0PtUgFwgFDKB1VuKpNDCCG+4oksBpg3YYChDSZy2ENvSr5lU4Opgdea6sPlAWhbFLPkMTtS8GsENeIbPg1PUBhDdW2OENSSrJWUest6VcLykQAOprP6zlmtKVVWam1lT2BslXhuqKDVcGm4NYQaS1WP0Aq9SkqzJlyrgRbXXMuQZaFyuoNSgbORXztj5tYgylv1sTrJrXJMqCNTQy7wNwErZtWJ6qJ6Ou68T16oquPW/updddEE3j1QVq2zVRmtfFaQKmncTutVlWSKEitd7qtJlLqr5dXuqqzpYDag6QwNqt1Rsco45aRAZT1YoaBg0KqslDVlgMB1EgQkQ22homZcwKh0N6Cq7dBBhveDRKG2eg4YamzWEcqjDQc6u0NsYal4QtkpnNRqyxMNEIbkw0oMEsVYZAao1neBNVU7MsVDRrK9JVuprofXBhtg1WGGksNtu1rDVetHaDfT6mvEGbqPuV5UpI3Ceaj21ejLOLVFuuB5SW6tNltgb9XUOBv8DfWGwYNaXLhg3LSscNQCGvw1EMIAjWjBokZZ06u8V9Nrs7XjWu6NUZ6ycNCqqhg313E89fWG1Q1VnrjuUFBvRHJ0yoj1wRq6w1Jht3DdOG/cNfQaIQ3eRX3tQeG94N3kVOWwtkHVtZXKuv11/K+5UQqq2dRCqv918jKhmWHuue5QZKrGV9HqkZV9WpvVUbK1s12nKazUThuvDbGqvcN/dr7w0sqtfDV22fJQGYbYI0NqvzpQWG24NN4a3aUzhufDQ+G0Xgdwdo4z/WswjQJAEZV3QMgHXwRsLDfhGlhmhEaUI1hBrQjf4S3B1neB8HUB8vgACo6HAAtAAL5VXhrojYhG28NyEbpg0sRujjFuap0NuEbxQ30RpM5cJGw8NJEb0I0fuCIjahGkiNer93+X1qvzpThG7cNCEapy5IRrXtUxGlslaEbrGUcRroZcZmFHSjIjJI0hhsEjQRGu8NIkb5I2CWXIjcZGsPlbHALADYWna5fxGvCNVkaGI02RrkjX5YWBGumE2I0URuVFDgAZVwAjotI0CRp0jUJGvSNtkbfI3e1F0wuJGpF1oUb3I1SRs8jTJGqKNPkatzx+Rq/oPpGpnlvkbVI3LSua5aZGzjgzDraI0eRoijdZG2SNL4b5I2N6FBDdoACiNtMR6yAz6gsjbBq3SNj9qlI3MRqqjbSGuPoZIamPXBWroZbYQYewXkAmo1ThvKjWlGyqNMUbqo04hoCjY5G0+VoUk64ixMDCjaVGlJljEboo0ZRr3oJ1G+KNAoaho3SRuWjelGtSg3/L1o1LitEDekq4lVDxrnLWeOovFvyGsPlDDKHg1NMqeDUlGyyNZUavI0VRuIjeNG9aN2UbXw15RuldfVGgDlW0aUo07RrGjatGt3QFEaUQ2IADcjSVG5KNj0bUo2tRvejfJG3bY3Ua95W9RopDRNyljlv0bIY3/RpejYDGyLY6Ybpo3acuIdNkw10QC0aIY1LRu8jQDGvaNv+5oGB10okjYTGh6NxMaYLXRRTdpQdq9ocP4BDQ0TGp5DSzG3jlydLDrXEGuzVSKGkDlRwbto13hp01dWOTSgahqfeVahtO5TqGjLlPDLr+Fd+r6takQRBlNprbo3MaVOjeKqt6VcYaCWWdhs2VVcbK/ebtq9lW70vMDYmyqwNw4bzlWjhvRtYQge/VDHygtU1uuf1fW61/VklqdFUtus+VXHa75VCdrqY1QVh8APzI7UNewa0mW3WuStYXAc+1ahB1g1q4D1DVzatJlJoabZWZMtbiII6/NcUcb5LU/MumDfB2egKMDqZPUPDno5UXAXmVGcaS4kXCo9UuyRCdo+grLxV0MqDmBlpfwAEmrt/X1hsTjXcVY2o+QAU3ULuqfpa9OWFV6caS4kNxuzjZSGsGB+g9ZGXNctbjdSGt2NicaDMr71nf5eLG5QV3sbdQ1bqp8Df+K5cNwEaug09xqBUeQCzSATjgDtrrMuZNSVg6MViIhwxWYUEjFcvGoOVq8b/ZUxMqpbET0H8A+RrWjU+8oFtctyqeN90b3Y2pRSsGArgeu4dAbso29xtMijxymcN/1rb40JxpnjVfGp+N6YaLw00MqQNYty76Vi3LxVWa8tu1U9a3D1o8b9Q1pMr1VauG9UNtfrE5WnYHSVabao2V3MavWCGiqYZcaK3ToTUb743vxv3DajXaeNlScH42qcqElXxypI8/GAcE2XxoC5R/Gy2lRCa6HWoJuUCOgmt+NAXKzPU+Cs/NXAmvOlfTKtnUsJsuDXzG8uNdCa9uVBcpbZU9yt3l1nqBE1ceqrDY1azGVyrExE3KxrNtadGnGNOnLsdIr6VoTbgmq+NLnL/rX7ct65epymRNXnKfOWJRvBjS2S++N/hKHzjxYSqDQvGyeVa3LhrVPcrctSQm5q6SeJlpVO+s19R96rDxQY4mfUOJrDtJiqt2cDBZX424JvpkFniNxNq8BdPVDeveojP+BWcWYBUZwSoC4TZ4m6xNX7Z5ZyVsEa9d16gJNK9oe7XnxvvjV4m9810CbU1VJridiBIyp8pGSbD3XwJsj1bkm3WVx0bW/XOWsMdUUm7ANYFrEA06JovjSomu+NM8bkk3vtMW4C1ytrlCiao4UUJpqTeEmy8AifrIk3uzn+lT4miVgGKrGfXK+ocTTQAMzkTiag8FT0rM5KD8mV1pcbRQ3vBqSTZbSqhNb8A3AjWgEgAJiqzGAafY1IC1AFmTbUmiJNvSauQ2KMs6TaMmvwo4ybh5CHJu7EMMmwoMQzKDk2DJrGTbnba5NRyaFKTiMquTez6ielRybzk2e+rsTWyOIZNnDLCgzLJrWTdYwcf1Wyb2k3eJtRnExgZNSTyavfUvJrOTd8m95Nc9Kxk1vJutAJcm2xNsKb7k0wpsB9c4mxG0GcrwU0fJshTYQtaFNmfq0U1wpuhTdLkhi1Bgat87kpF1jaeag5VLmqBw2WBu1dSYyk2NaNr5FXmxsxtXmy62NONrbY142teVdHamLVsdq5LUoKqf5bl6xnlydqNnUOeqZjdMmkDlcHqGE1FOqTlWnwMcVqcrvw1YU02daiylFgQcaUuXRBvS5WPUEONBHqaGWGhpT1QFagT1Z7qJtVAu1s5XB67dRPUatekbOpq1TzahVNpK14jX2wFFTV68Mjg5IbYTrN2qZoFdKgv1pqbmIL7avDjSCqh1NN5o4g0ZMogEcjqwNNTQ5d3UCGqPjRIym/1pK0kU1a+uz9c0uJ5IGfrk/VxpvXWK36zHVhMrdk3gBE9TQVE7yWd85EWw6epiTTG6wgA1ABOvVt9mWNcEm+WcPMYJ9XPas6GDmm9DsYkq/E0KeviPMWmvwApaaqyYBupVVfo6qe1LMbLWCdMqQNRryq11HHrnXWOirutZwayZVF4qanVsqvnNcNyi4VrfqGnUt2ugFZ3a4a164bOjWbhrjjSXSrNNO1r9hWn2r+lRUmqo1LYb2eUbppe1SfGh8VbRrQfH5xotDQRKqVgKybCZV/Jur+MkwKtNXqbSIC1ptiTZ6ADwknjiD1XRpoGTc8mlP1KabYVWoppd9fj6pqAv6bPjW8+Cm2FGmn8AMaaAM2c+rCAAvS/9N3vrKeiwZuXgJAAW9NGybD001pvJgHWm7eAmy5302iOvSqV+miFNP6aE00BvCTTYBmmDNRGa2/hgZuw5RBm/DN2KbCM1s+oIzcmmpIsy8AD00PpoQ9Swa711OhqsPVs6rQ9dfwg1NuhrsPWBxrZtU7Sr+NGXKtU25cv2DeUyrNNBh466Xoeo4zch6vvVehrCgwhGuVtT8yyVN2SqlbVvOolTaxmjp1qSbPzVWpvHFTam4cVyqa9A08Kq1jWwaGjcbaKTA2sWv1jdSmiwNQPLJFU6upsDYymwS1GNqq3WspuP5bW6p5Vdsb8bXNuoVTU7GvlNymbNM0/Mq6xEgESwoq5qfFUdBW8tX8G6GVyIBYmULhpvpMCGvkVIWbDIJKmqGNU7BWcNqqbdg2eBrSZWJmpyg4OqpwDUthizcwa6rgbcBquAaZvZ5clmgIlKoZlLXpZsZjQrgLYNLhqdg25ZryoBJmhMVlWaws01ZrCzR9kUA1CXLhHUS2v/FU9y9P1W/Q1uVKuH/DRem2yxoXKW/VjZuHTX7GrwAAkAkACIKsagNPar4V7gavY3ZZpHjX2qseNs2qkDUBxts5e1mhzY4WaFeVdZqkNX0UFO1omq07X0RD2zQ0eDrNY+rjs05GteAesyw+NUjLZ1X8GuWDciQixNSWbrs0HZs6zQdm7rNilByI3ZKqdVRcK0zVRca840mZvBteoy0VFy+qMSGmBpszeeamlN9maPNXGxr4tc5mit12+Te7UqAEjDSKm6d1ZjrNY2KuopHrakXsNZgbbM2GxrpTaDylHNlyqmU2c6DVNbGERZQflq9U2DxuuNRB4U9W9JqLTUamsBZVqa1TVsmbeXxRKrw7Bwat3lj45IPGrBttlcUAe2Vg/qXQ1YGtm1QUmpNcfWao6WrutjpTkCl3ILOaac1h0o5zfNALsYpEaP2VBqOLtb/G0Hxi3LMmVKBuYNRAI4XNaeq4E1BMtZzeqar2paubhsjniq7bFrm8fg8MasWUg2rxzRDapV1bqKKU19ho4tXZmk5V1gaRw2o5vsDZW6g/lodq2U3h2vC1Y26qS17yqY7XY8vjtX/qlZ1nUbwQ0pghtpQZOFY1QmbomXzhqlNYlm3518ea0g1J5tVgMm0z8VcwakuWZZuazfOwMw1ujA8lxZZpiDZeGrPNNUaE83LAFzzVWTbIAn4rw6VYZvb9TLGhuwvIaaRy85on6NLapEVLsQaQ215pzzQFLZPNTeadBJEJtvjRNG14NQ+awZB55tHzToeeKYcDKPtIrhqG1Ueq5uls1rx+AJ8tz6jc4Av1k+a6Q3BhobzfnmsfNalkRnTSuqojfqtQg1direY1YOuzzfvm/pVKeaZ7VO0s6dfAmxxVoCbN01imvcVdiGqfNt+bZlwQevFZZyG7eAmqrglXLCoNzTyGtbVV+aqHU35v6Deg0fVlFariQ0IhrHtdLmygV3eaArU5KvALffayAtVQboC2Qso82t0qx/AcBa2Q0NKpkTSDGsGNcebB83f5pgLWyy6ZVeBbZlWshpNZdA6yMNMiau40EWpXtRgWxPNd+a2WVxchZDX0qlJVGibzNUCQQHzTiGuvNr/Z2C3vCp/oFwWkkNtLKGC3Opu05YiK2W1Ahav81QFrvzb/mz91XIaqY0sFrILYoWn/NXBb/80nBryDTYmiNs3rL2nXP7kEgHBG0gtghah81aFo5DZry3QthhaSgB10sgTRwm6/NGhaqg3MaUdKPkAIQtKTLos1Chs4ZdwysU1RxhSs0T7U/zXvm/oNrhaq40ctmmDf2y1wtdMKPC1xjmzxPHYOBl8sbHC0QFucLSyqxiiXLqro1QauYLTXm8wt9YbbSCd4Bb9WvmyPlh34S5DkXgQAJ3myJVmAr6NXO4HBzQq613N5ULNGVE5rhzfDazV1tKbi3WOZr9zZTmlzNzKa3M1H8vsZZ5m3G1kdqm3XcpqJtbym9t13Qa33WLirtCE2G0QN+dr4E3jFqo9XGucmNzuAmw3KFvhDZKy4+CgxCrC35QDYjS/GqQNCxajiUgBBWLeIW8FlV8bNi00FqF4NsW7GNMEalWX2hpzDZzs0OR8xbv9VLFpWnuyG84t1LLj4K9wBQsGcWpZV3T1/827FpKDfsWyYtyxbXi0/Fr6VVfGz4tzJhvi2Qet+LQEqvtNp4rbi0fSsx1Q9yoBNOLKTC0B6UCALcVHK1E8rA2VolvRLY8W/RVzxaji34FvO4A4MCEt1xgoS1/5s15TsWyYNlHqni2HFpBLdCWsEtAXKyS3z6ApLSoW/mk8ya4S1ZhsKFXGGmc1rTr/A17FrpLVMWhktf+annXxGswFTkK4y1fIriS0fZxhUnT6LnwcFr+/YBKvYzZ3q+TNyFruM30QG5zTAatUtonr2dUF+plLWy2eXlURbFS3z+2sLXXSyDNnyaxk3fYErYHBmnFNnCou0A2lts5TKW8Etj7LxC2MCn1YNv2WBULJb8gCDEKo9aP2U0tX7rpC03FuzDYiWmotjFrzM3rUg9zcTm+HN3uajY3tFoZTZ0WtHN3Rag83Vuo8zTbGiO1EWqhi2R5p5TdHml2NsebymXQIpiLUmEBhNQbrbOWFloiLUmEcU1JGApU1fhqfKewmifo6Sr6y3lFuvVYaK6s12EavfAwRurtaCPGu1ojSvU6dOu7zcrGvplAEaCJV0ADQLb7S8st9Ya4xyxUHWZTImhhlnTrjEChKsg8ZQAP011/Dly1Dlv5EBbq8q17VrDICOWoytXyKict7wapy1IYGLsFuaqz1y4ayy3RForLWbarYtXIbZy0YlpALXogSPVyobeOxBmqENfuWy8tk5akwirFoU6e+WqxERZbry1vFvgLRDCR3NHnKro3IutglQeWiENcY5mNKxGJc2OzyyCtLKroK1QKj01cMq0ZV/v9pY3ojmdNc2W5AtNpq5i3wVo/LYeWr8tyFblpUYVvzXF36iBNK+bB6XJBvwrX+Wq8tQQcFI2ysstTbVs0ctzdLCg1JFtCZQhWsINsRaGK3m0pvLQAWwM14qafmWcVpbJdxW/wl35aLi23lukLc0q/520GqaK1OIn/LfRWsSt2haqS0gVsjNafKkuNGkam1W/lvkrXRW0iNMJ5lK2XFs5LVJWs/NnaALy20Vs/LXMQPStikbKY0JRoCtXQAUxA65bOZUNcq7pbqK1a5iDK1uV7MpdzeoyrtFUZami2e2paLYjm6819KaKc2+aqTLfrSuSVpwafWWM5sljZqm1/N2qaMuUTxsQLVHCnkNp4b81yqBoMLe44HEt12rDIC68tw1XyKyKtpJ5F43pppCTY26ytgR6rx/UNApVqvEmvYMJVb3GVlVtMQBVWtqorQBqq3DqqT9Xt6njsBWDKtW7ipoZbj6jqtktqIPDdVtKZflWvQtaQAFIWd4B++W1q2wtT1rXE0hJrkUvVWxqtJsAx/XNVotMuWm7pNc1bSmANVvf9SUAJatIlsVq16guPbK206lsyybVk1IwHWTQYkxt1Q0xMU0WlvL5SjysxAvmamfXh5rurV4ypDNKGbzq3uMsurfsm66tj1brCDo8oerZJap6tFbKkM0nVrHoP8mt2s23BQU2ahjvBf+C1mwZnswax4cElBXIpOUcNeJLk16guhrVKOWmIYJKO82o1sQhUzUDL2HCrHk3Y1oNBbf6pJsWNaEa041tDUFLAZVwL1bTq2g1rkUhDWwmtG7YdpVKxFJrVDW8mtSFQpWAo1rJrUTW5HWmNb7YAM1qRrVLAfGtmKaGa0T21hrSzWv8FbNax/Z7t2JTdZq2ot6jK50U5uoyxQiY2Wl0Zbmi0I5p9zcjm1G1iZaA83o5vyrU/KAHVvWr4EzdOrK1b1qvjNXGaHdlKssWFeNIdnlVqghk6UoN/QCCaurVYJr+nXydk6ZT6qiYU5zhE6WbWvdrXsa2egFnABNUBtlZNT7WvRAbjKn6BMEEDrZNMWzlttaKajdeGtbI7W31VbvNQ633wB5DcHW6mS9sqAjWp1pdrUuANQNEdagqi1arMyHsagNV4da+OwFRLDLaSmk9FvlazzVq1tjLWTmrzVWtbQq061uTLYFq4PNaZb2U0ZlvDzQ7GvzNbbqY82ZOpODfJgMkVumbB3Vi2olLc9m+uVOzqu82hcr9Tf3mMpNtNrcA021v7rSpa+nNVHKsxUvWvgTO6Gt1VmdLAi161tCABWqhD1hpaC9Bp8NMTTky8xNTXKUE2LJrQTfPWnetXNjpM3rMrPLRGmqOtC9bsuCixomDdvW+iQ2XB2gBqWrOtSOmh6V74rQZVa6tsVVKWiKtj9aYeClAGEkLsYfcuJNgNLyEmuCVZgK/rNbAqDfVDysvrb4AAqV6IqbU2sUQQbVD6oBtV9btACqWrqDZ5E1etgsRpnUCyou9aEyg8gu9bLtX71thlQ2EMutztrxMXfosrrVSmmMtpOa2i3BVvrrQHaxutAWqH9VWxtbraHmht19saCbVd1uJtT3WtdNoTLV8VdjDOzV82S7NXla7NXwYoYbexar21rRahw3xlpCrew23flrmaUy3uZr6LemWsPN/DbfM0yWqEbXmW3utLrKmdidJozTWPAXNNYkqI3WrVoYLBhm2JNv/qcY0VWp3LeFaodNGDLkJW/hob9RCq60VseqV02M2usGPyq5hlh7AU5XzsCAjUlWjUQtHATrXRcpQle2miVg0qa8EQS5v6rRly/h1DdgcmV+pqy7Fl2J0t9RBak73EGhEVdqn11zTrpVVXivXrcN2cPo6QUjjDHVpvTTTWu9NtjbEWyvpsIgDhmnv1oGb6m2AOuprSDWqptFjasM1vpqjTVygyjNH6b58jSNoU9iRiuRtGrr1a1xltYbXq6s2NnDbLY0t1q0bW3WnRtPmbhi2tuoMbXH0H5V7PLElUSNqg7KtmiWNw8aMuU+pqntTlqlhlygRWq0rsr+bOuygFs1XKEnWOqsxVZlq3FVi3Lrm0xgGkddKWmgt3/KISY3WukLbtm1ZtTza96AvNvErf/mjZl7lbkGVjlvEre8WhwYbJaoPVSzg+baCW6llpxaDK2SVvNTXA60K1N9qnCwZNshbeCyjYtMLb4NVfiFvjc6WgLloLaYS3bFtUrcx66MN19qEHXpWv1LYBW9YtILb0W3UlsebSi2yVl0La+K1TRqDLduWrXlulriHVySr4rRsy5YV0LK7xUAJpu1blWt9VICbNs1gJpoZSJm/LlndrzQ1OVstDTu65FtjJb/824tt41Z0m3WVwNRhNUqhtTta6qrUMglaS6V8Vq3Nbs2jokoEaY+VC/OyrXx2fltWureW05VqPoH+qiFtsrbDo3RVu2bWPUM1txraLW2eCvXzfHy08VifLt80X5uxFY8GnKAcubRc2J0rjpcAGmlt1rbm825BtsLUdGpNcq+a7o3stvOLSWgpbV/kB0W1/Nu2ZQC2wot8tqdcD9WqjbbBKoNtdSqCC2D2pYzY1AeNtMpavJhYtvJbXQWxENgOa/41ZA0tFZ2ygRNV6r5rU+AFs5Vm2o1lEhaN7WH2tftbfGuD1QLagK0H2roCM+tNttVrbs22ltumXC/a4/w7EaU43xmvOFZ2yziV5Uqf1VnNplVSByxttaxbB22iss+bW4WnZAebamZDHFpzbdzyxJVlcbmrBrtoXbbQW/pVLIbd23zWEwjY42lltpLaG23RttpbUu2g1lK7awi3UtrklR22zdtt7bj204qvmsI+22CVhbblzU7tvfbedYRltcLaCHWItrZbZm269tjJbm20YtsK0Ou2gttJbb+lXPxv7bU22rttDkamW3wOo6tYg6q9tX7bYO3f2sI5e22ifVnbat23SsstpcW2m9tcHari2AdqvtU2Gqq1RDqC/UHtu4LUby75sU8BcO35tvw7be2u4qfnZiO3gdq7bWx2qeAGCB7/WesCv9Rh28pl37a8+VrsszuNB2ljt/SroNCJ4h3tbR2iDtUnbfhC8dpD8CP6h2VzdIZW0DtoowA4MDjt6nar401lpgTd369NgujrQLW02t3TUJ22DtHxbXS3EhvdLfawT0tejgdjDytr+LQh2xdteCaeuXIcrdLVSeazt81BZyA4cC+LQm2hxtzLaqO232rU7Yh2iltQ+hXO2Wdvc7ZPATztXpa7O1Utpw7Y52w9tLpaoOVudqcRJF2nAAXnbvS1A4Fi7UZW8jtLHqEW0ktpbJSB20ztJHaPi3Dtu3tfZ2zXlWnbgu05cGZLaV2u1g5Xav3Vjtso5YYwC4VU7ae20ztrLFXlWsDt6naPi2Ecvq7eC22TtJxbmS29dt87Sh2vLtaHbqO1Bdqc7fvWnuVOMb3m0DdslZdN25lgBLbEY0uptdlamIybth7bFu0kzGy7QjGm0Nq3aLm3rdvi7X0qrbtPzbYS2jduJbeN2lslYdpglX/NvRHHhW+bt9OCFHDyloZbct2vbt3HrEW17lq67VV22UtRpasu1jmr87ah2pxtE3aju3jwCedRs6+I1oXKchU1tvHrWm2/GV+zqGpVHOudbSequPlDUr3W3J8qObXc2jFUtzbsVUEqo01U8ak1gfL4jc2QeKbYDRwT41VwAba1b3NO7bUym7tSba7u2Ats9ZZT29FtW5qYPHptqQzV3iwntb2bwADwkrJ7fF2l9tP3aKeV00rVbenau0I0Tb+3V6duGlcI60Jt56bJW0EStnVe2Kl7NU9brQ3wtou7UD2q7tZLafi189q27ch2nLtRLbKO2dWvV7dCWzXtT3biFI7dudlRR2wh1gXbee0GluN7Qkq84tvzauPV1tqXgFb22DtJ3b7C0a2taTht27QtaQb2dxp8Fm0kY2xJVXva7QiKto1lVhGZy1QvbQ+1PlI+NSI232lAfaOQ0lEFqZMH2lUNofbdZXh9qE1aha6MJsKrl4AQ+ssdezywoAOoQHuXPOpudWd6w31JDbfaV59qXCAX2nW19FrZa3hlojiIrWlfV1maq63+VpGbbXWv21psaqc0Wxsf1SHmut17dbdG0LNv8zWMW9nlXa5VQ0BIEWLXeG63tcpb+eUylrRbQy2uLtfIrh+13crH7chGiftv3bsW08cr67RyW/7t1xb4S0hlpZVfcKgv1C/bm5BL9r0jSv2xhcEnaPi0xdr4rbfGw/to/ajiXj9pd7Tb2iTt4JbL+129rO7eamhqVCJbs9aYlsATSa2t+AuJaGGXQaER7Vpy//t4FbymU39oK4AWKk/tD/bJ+229uK7aSWl/toJb/82ftrAHXXQEftEA7GI2n9ue7bB25/tPnbZ+2m9tzlTv2nktdxa+S0H9tQHYv2u/ty/boB2r9rt7WKWxBNI9biTVGNvAHcf26GNmA6hNhJdpg5S2G69lHLaps3u8vO7Y66jXVg6aG7VAys7FW7y5q1TcbUzWupvTNQiRDd1gEafeWterDdQ16rr1qWUaM3vNkUHVZwv/1ErAFB2deqs4R3APb1g3r8kAaDuk9VOm32l2g78kC6DvZ9foO9AAyg6UtW4+ssHVpWuSVTA6KB1QDpI7Sd2vntJXbepWhSvnwui26/tZA6j+1ODpYHVQOs/tfPbwS2zSplDr52xrtbEqWu2niq4lac2jrtYMrbOWODsgHQEOxAdR0oa42N2r9De7K5dUJmBZu2SDvqdZkOt1C0dgZ61SOoyHQGGp3t8/bfB239qSHag6lkNgfbncCJ9o7pSeKzjNCmaULUp9vOzR0HRodOpb4DUJDoqHegO+/tGvaOQ0gBCN7TAO8NtlAqLxb09sSHRgOu3t3va1A0ayuBqPu6lodWgaoOxzDpE9V0OoftPQ7mB1mhBD9dT6iTtrg6OW2PuqyBtdWr5NXqdTk24po8pWsOqVVfg6qh2BhC2HTJ2IYd1A6SO2JdrIgBl2tnoUHL/rUvDqeHYRy75ATPa66WTJq8gBYACzV8PazNX/Dv4LecOtAdca41LVmiolba42qVtsXw53VsSs7FXmaqTZ/KBLBWJmokHWt2/M1Smbyh0XDsqHd+W8iNNFS+W1OtuAHeMy9g1zLKuDV3FsJMEzsEpeTNQB9XclvxFQ6G4wASJagB3GFuJHZQWogdH0qcuVHIEeAFSOjmonBrP+0x63AAKQO7EdEA7cR3phvxHea25bVqJaBIABYHJgSPmQAdeLqcNXGFqlHRIwDq43Q6hR13upZDVT22Ftu3am7Xojr5hOK2rd1w5aqJXSttBHeQO/jliSrz+2UtrwHe2IHwdao733XmjuCHTi2v7tZzRi7XBlrZHXv2uORqo6wR12jpoLRaO0LtCA7ZW0VdpNHZcO78tT/bmS3+jspLYGW9/tro66R05hqRLT/2wkdio70S0YlrlHZy6qFwko6kx3aJtglYkOkMdbg74B24Dtf7YZW60dQY6cR0ajodHTxyjLtG/aAO3ajujHVi2YgdCbYEw3FjuFHaWOjkNtA7a5X0DpQ8YA2rMd6w7tCj7+txAD82tZ1No6vR1XgF7HebS8m1ZwgDbUlapM7fyykQ1DLq64TG0u7HWaOmgtAUaxR2OtolHcAOnTl5srQY2YlqZHbyFM2VlwhQY00NszdSThaTFQzaC3XMNqUbWM2st1Y4bA83N1tTLTM23ht3mauU3ZlpGLbmW5ZtrsaBU13cr75Awm3EF7ugp61cDmetdNm6EdBEql00x6o6NRfAHO1X5q4A12ev1zaJ2fwt+7Bs8TjVGtDdpy/8dXzYFZVwJH6zbNqtbV0PaznAd+uCbR3mp0Ny2adpVTjsbZWgOvvkM8rPx0ZTEv9a/akrVl2byJ3NyD75HEWhIYfwbGNUUTtP6MqWiARO5qJ+gs9pGwTrK6sNSa4kzXFJr5tTky9L1gWa6J0BIAYnQEq751BIBDx1dhq3znpi08dBsbxFWt9t1dVeOiZt7PKIpy7NA4Dbh2cpNWQNbFXzDsh1ae6/jNBk79J0W4EMnebWwTND+a082xZv8LR6qkvN3wrNZW2co0nRFoETg8igIkwLcp+dbBKpydvs8YjVFDvc2PjAT1thjATJ0uCpWHYrqxydZdBdmj59ko1XMG+2Adk6hil9gHUneFOiLQkU6xgDAWrqDUFOsydzQ6DJ1SsH6bTAfQ5IjRam+39hprrSw28nNbDa7A1qNt+QfDIZemB9BRO3N0l07b4K/0N/orPZVrcuPratcnJluqb13VAtgAUGWIJ0VZxqkTU9TuzFQG8Ipt5gBPQ2wUSubTj2+dl2Pa0tU3NsUNdjSJlwjcj8i2D1plTaStHIVRmaPmVypsVTak25+Ic4bYs0NZqBDTsG0Vt+hQ7J2zat8nb+a6Sd0i4h6AWMHmnTYWs4NV6rNmW4itmnZdO6ERzGkHp2QQHmnZIK+aACga+bUptslbJdKx4NMk6zM1hYrzhTDaq6lqtbm+1FTovHSVOqfle+qGZkH6rDkf9Sxfl+2tMKU10VP0CX0eGdgNKncQr8tBpWdtWRV5zwt+XI0q35WjSiZtnfbuG33jp77XM2p8dn+rFm2jFuEbSkyFlNvRbVFX9Fo5TYMWiPNlM6B+00zpu5QDqv2Vu2Ca7YWuko7RCqDSgZzQWnVBsrzEBpGzEtdPL+Z3M8slHVxG3iNvEaxZ2ItqrYIJAZEVEZwnsAq9ovbbbqoNlC2b/2Vyzvy7YFGINlfw6AR2qzvp5eYwRnlhHKhZ2Kzpn1NUgXmdY6a/61/9oEgLIWz2IXQrJoAd5Ae5S/KXmlD/NEjHXCunbbEO3iV647NE1hEGTHciW3/tQbLpR34u2/7Tdq7Xlq467tWKjrT1mEQHAA+dLMS2HsDNneHygAdjUqOPXCzqTHd/2jyVHcb1x2azqWzbDq88VfHKk52KJ1Udv4AOBI+c73xUyyslHbfCWjgIfKLLUh6rNnV2WmYVSg83AKgjyLgDWcsTkKY7sS2Sjv1nQJBTEtj1rJR1lcpY5ZiW621LZK051JOubnRPO1udwyazOT0qslVUXOjOds87GVVuvm5ZaPOhUdu476GUKCuMQKXOzEtL6qCm2Kjq4HP+OxedUqrf2wFsvcLemOhedDzg/WAvyhQAHY8TAck+A1wCItmx1VmqpEtGkBFuAkyGVKJQOdkxuABH52MQBR9S/OqcA186rIAfzpHEF/OkaFcOr6fX/zvnYO/Ou+doC6f51J+pUAC/O42oJYrf1WSjtBzSXGzEtC7r+B1Q1HbFcgKuFV1Qqi4Bg+rB9UiO3qdNHLUR14LvwwGxK4AAlbBaABv0owXUZOv/tCEg7xVpZV/bO9KllVqC6maQ4ACdiJiWvkdlrBBIBJLHWpJxqbhdu/awg18lqDZUZpWYivAAIM2kjtYXSIu+sdruRBIDZMM8uCTpIRdbo6wg33CqDZfuOhQVMQhaeXuuqlAAx6vOlT4qh6Xjppl7UaO4Vgbc63y2pCpnHegq4u1Uya6XWrxvQVVYu7s1FLY4W1bqh1zR5On2lji6E2yczvpdfVg1I8sza+G3zNqv5YbOiWd7Ygk53VEBwAAfO7WdlVqQl2CzvPncFG4KNUS7Ve16LUEgGYgVJdLhBDZ27luDnVIkMaeGS7WW3Bzu3zIbO3Egxs7mWymzrHnVKOwD0gzhEiBdCt+NTbO4Odyo7ZR1ngCdnSwIF2duPA7AYUoFfAIZEz2dbXbvZ0PCujnUq4VENYc7xR1RzvXnbnOlxAK46qrV5LhRLeuOpJYnGpjpUJzvz0EnO/IgSy7pYDlztucGUu5Zd+RBM52PSuzndHO/cdrHstl3visLnesu7C0Jy6Dl3w6s/FTiWyiNI2CkAAqzqwXex6tedf/a7BV75kjlLn655di9KZ51YlqIVZcu+2d6S7Odlb0EuXf+ymfUfhBBPY5thttQ8ul+UdgrOSXmaFtiOAALqUbc70Ug7zuadWUu2gAz5DUV2IrrnnUyqzwALKrkV0FLolVb/yvedIy78gBazqPne9O25wp863u2CQBRXVSu7Rdf7a88Q9LoBXY1AIFdGC6HXVsepflJ2KzsVSQaWxUELu5XQzhJEtasbyR05zqJXXnO6RdDoaxF3wYvQXayOmMd7I7RF0KLosADRuFHSKi6pV0sqrzDVAuj1SzHtUiDEIklXbWO9kd6i6Ul2qOxY5SWE9CVAOrnPXy4B3lWyuzEtJq7rJ2IBFgAKFADaoL8oVl0zVjDwK56yTU6yVI5S4cpLLZ2m07A7U7OY2qxpYXerGq8Vx3KatV2pqCbctOocVnQaxg2nxp95WNOqad9zbJp2Tsomne4u/llwkqT7XV8p3TYmug9lOAA6mW4TpiYB3m70N/7YIeD/xoo7f3Ozrt+QruwCDKrzXeTyiVgEHYtGxccuhFezuKZoOUa+k1ZAyDbF22CmUwrBwhHWyvGMC2u5tsFnAloiWOg0AOiQb2oszTW5B+pqc9U6u6EVSDrOnqMGuCdXYutBV/Lq611LxsfpSvG2MVocqA5WbxtfFVzOiMVtnKALWvmvu1G2God1xeqDjUbWG1tVha4vVrnA/vVp6tHdYPq3n1peqUfXzur8gP76le1bCRrTg8dsFbVca0w17WrzDXYHl6EL3a59diI5t4DbTvqzYCGxcNmeaVnV/rsBFSpaifN4G6wRzbz24CPu23510G6JhzIaqJMFaaz6dSwq+9kKxuUDYgmvOlQcxuGUw9uvVTy2ijt/K72R1I9pwndfwrCtVRaqhC/rqyYP+u5DdAgqlxWUJso3ZPGxRlidrEN2AjhUtWPAG8o8kSfJTUbpSQLRup/sCEY4NjcbtVgFBumjdEG7h5gobqXFZxus8owm6temi2tlTaxusTdMG6BN1WWvUzbxuslxMG6TkD5QANqJpOmJlNk6s6W6tsU3Xxu8TdXkxdN1+FpKzWU29TdtG7OraQst2aHPm601edr0RzayubLVdKu8Vgva2h3C9uqLVZukzd+rK7N3pFCvIuNkY+CGoBvN2abtM3RFoIhNAW75KBeTDVAE02jpcovbzPV6dpOnQ82hDdSm6kN02brQ8HZurTdFEYeO3ybsh1kY2oZsxm7Qt2+bvC3SyGpetRzb1A15btztaq2jzdCEYXrVGbo03WlusLd0ZEWQ3Jrt+lctsAONQg6MxUTto4ldEOr2ddwrZ20lruHtWxu2iVTW6i02JKu17bt25Xtevb0O0hbsa3cVu5rd426yO2TbqA7TrOwrtn9rht3MaVG3biO2h1+zaGHX4wCYdfVu6zdW26E23BKuEdTsyurds272N0z5qrJoxAMrduW6cN0LlrAjciqp1VxE6fmV9FHoiWIylq1OvbT5VKzpuXRfmuKV7PKtt1SbtCHT+WisV6RQf7XUTra3e7RXIdeo7jB1NdpK5T1u18VMQ7+t1xDsh1VxyottgO75t2EAEOjdGu+Nd007E0CY9qehFTKvgdFva6V5nppkHQRKqEdYKqAPW7utETRIwBxVK8YV83kqqGnZTKj1V+zalk1LmpwdbV29NomO7bN3hbuB3a22kdtKa6z7Uw7ptdbXGyIdk7bet3dLpR3T7O+IdnO7JC2Ytt53Rlu/ndn4qJt1m9ty7bkuy9t8u7CO1Fjr5FUDu1XdS271d269tJ3Wtug9l5DrgbnwbtglfrunQSg8ALd0LJrPZYw6vRgxUbYJVz9rkldbulJA+0JnR0A9pjDaoup3W4y6g50gDszHeUywjl8Ha9d1Y7vs3Z7ur5or3apt08LvjDfyWl3dltLkB0Jivd3bFGRPdhu7QK2Zhp93Uqu2Rd6rLwyJK7pEALs0dLdBe6ItCUsvs3es2tO17Nq4q3iZsI9eqm1QV+e7+OkRaCL3Q3u2ZCIvKGN110v4dQJOtblmArarVtTuw5Ueq2zlo26m927NFL3UuKyPdb9rJ5XgZs9Hb568Edo67TxWWroVwFe69z1hE6i2AbBp2ncBuhLN+07a92tZpA5cP2rNVFLYUk2fhr07UGuxBN607Q10o7jFnUcS2xV0BrYUhISCCnXx6qFwT5T+8Fcqsv3TnqmkdYOrQgCf2lvXRO6s9dN67L12IJrHdb/u7GV6Sr0dV2ID+9X6m4RJmWa57WYhvd0Elu17dUDLUB177rjXEdw+N1cm6Q00npp95cum8Cdq6bXs0TxsA3XFmjPNOwakt3oNtBHYgeqcAyB7vLXAuuG3XMG1etq9b8G2MDoXHc/WzO13jasD2+Nuj7fOO20d/HKqwBl0Ba3YMq/3dCY7150pzp3HbbO0wtKA6OD1Z8s5HUG09PdalaP+3CLqxgFPuy4dPgbos0HTq2tfh63LlZeaLDUoAAAnWwe00pqA6Ww1VqsYPezGkowr9qRc1VUHGNT2mnkNmB749Vcxtrlc/ug5wOeqchDyhru7eE27Q9w/b/lXG1o/KBR2+Mda465d1YjqrVfBajgA8da+nVF1omFOwagTVxTShRVu1t6dc7W4I9n9ZEdU+BqFNfnW3rVmAqoD1imqUIP42wVV+ehIJ2cBp0nWXE/IdAYrxi39TVc7cv6twIyiFr2WuHuoMP4erANtnqwLVz1t8PU9OSo9IABpN1cjpJsJuqzbNGIbUj3g1E9HfUe4XI0RqFhDNHrksK0eq417R7Ys0f5rqPRUerNVdU7PzXBrvWNX6q8E1sgqc60l1smmEKa0I9KWrNVVB1qiPbMerOtxdb4j0hHrWPZNMRI9XvB1/VqprWzVQymJlaR79m2BNtgPc+QBqdHsrAw3Z9vn9WMe4MASftuY0FSoLtRD6xBtjx7+ADPHpHFVc6gu1oI76j177vt9U96ncVFmMlVVPcuQoPQe0/oAJ7uY0pnjdAMxO/494x7uY29HqE3S0e7wNwx7rRWdHoRPU8erNVvR7rNiybsGPUQy9E9Dk6sT1fHoV9TMexOtftag1XLHqDVeGul+tDg7dD0VHvkDeSeynoSdarWCKCvPLSSemRSfcZRjV+tqT1eYex8tc7r7XWwCruXQX6iI8zs7HSiV+vzXARs9UNQ2q8M0parT1XjKmU9reqhe2KnubpZiqtPVCEZpT1PbpjbKn2jQNywqHW1TLrttSTu+WdLjawVXzuvoXS42my1s2bODWk7pqlA8GxBlUO7/pWuJuJlWJiSmViaByZWuntwhMTuuFtQbYGpVinuaXZrywwIrVqphVE7q7bOwvJXtoEqAWzMaSgjRT6ORsQzLdkDUqtatRwy9akeHYJhQdCKUZe8ezBtsEr/T10wFpXY0q63lO4qrpUOKuFyOZoRRlCZ7NW2hMpzPXx2KdlaYqIh3y9sl3UjuvrdPErel1o7vZ5VWe2ldau6M93vdp1nZ927M9TS7cz1TsqkPYS2zPdmu7Le18ivn3d6asrdMw6k+1Q1El7YsOtO1tW6Im2iGAEne5ur5smzah43rZtEzVXupyg2+6fmUTnvYdbfW1a5Z26DJUXbv3LesKZxdK08Q62/Bsw1XPOgldbuANnXpKqAjUda2J111aU/VVlCwJIoy20tb57OFRDMvv3YjK5uNzfrqj2z1u4DXJKvXpBfbjuXs7tYZZMmn5dKBbPW1ITsLXRruwOd/B7493lMrAvWaWw89y3KuW0GSv6FbZytC9+LapC3v9rgPaEy+Y8M1ZWRzTFqfzRba9/tHW7fV3RqpkXZ9Kt9VLrbUe1b5uT5bZysdgsAcUlXuHvzrR7W9OtgIrhZBe8GWwbCylUNigaUq1YbtrlaoGsI9KoaMZW3RrD7R5uqS97Fay+3XUC7bLuAJsNT8B2eVcHqzxLMuErV3qqJBXcXsTpRnW/i9iwbeJ1CXtq2c+WuI1iCbxL2rHtmHVqGSNtMl7cZXWXtujeVmsIVVMAFO1STvsHXum9w18Fbzz3AEFVDYoe+I1surlXCdstfAKe6v1gvPqp3UO6r+YJmerf1CYqGBVGQHmAMeALFNyKa5UH2lttLVh4989ClJ2eUjjt7bUp2r1Binbo+DKdsf9eBmp8tPIaHy1+30R9fMMaf1DXrbOWZXpf9RawG4diHYar2wgHk7dI2XK988rPWDruq6bTo6w910WYyr03+pn9W2es/1JR7G2xaTs4OTkejAAeR7OOXCGoFTb22iA1tw7yj3BgGizXZO9Q9366uOX+bokoCMIYLdYQr4piudoFTbauxUgtq7CKhEbr9XQKuu217KqOBUcSBStcI/EGVOy7/60r5sMXeMQOIAadKN61TwCzpWaGkKdB7rvd2rLutdStelbkkW7SqKFQCQwq8O1Dloe6KxVbXtdLTte61d+173h0ocsnyJQ1Ai9y27PD1kSqOXQ8ujz1q16Qsz/XuElXQG0G9SXbwb17Xo2qKPVIjVjp7dc1w7ol3Yju4R+yO7mz1/qvx7S8gP2uN3Bye2+HtIPdW0/81UFrd13pSv+LYv6+Itrl7mM1hCqklcLq9YU4I7MmVH+vx5TzewmVHPJFi1lAAKGC6O/ztu5bTT1mitb9Vxy4W9KWrRb1HEvFvVUgTs99Urz20BdppjvLe/2tit6+b3K3ql1qreoc9HQ7Rz16WtPVgvwQZs7GxzfBP8sJNaMG+F8AVq5e2UEXlzQzmyA9W+6cs3bnpazWky3HdHZ6MtXjTtxVciMqLCCFALb0u81RNYHep5AYIaeypvmuizetaxrNEw5K80apsOne7e3wNYcahtUkmt4Hd9u2CNI4hRZ3fStEHaZq6WdPEaL5Xm3rDvVbe//Vod7Lb2QGo8INR2enNRx74EzHprj6NYQTPtAd7jwBB3u24NQa0u967Zy72aQGo7NF4ZJllWrI6XRqpm1cEawu9lt7Ad1aACccKI0oe9wd63d2j3unoCkqtbVF0ang0T3pbvfuWo3J7IdG71LAGbvcXeiCtK96Z70NKrljbiKxe9m97PDVt3rBDfia+/NK2bV91AbvizQCKzfdJx7RTWxZqUIGbe4+9h97ajVP3tOZXQKU6cOn41wCMHoFNQ3G86VrNLT1VhTKpgKWaqAlLm6/p1yuv0DavSzgwucRgfb5TsYbdXW88dDmbLx3t9q6Le+gMG1xK1EEWvsWmbfGuMS15M6o7UVsokolHmr5VcfRAQAP8rSEeGW/521hAFJ0k5qUncVOuut4zaO+10ztEtYzO3vtgS7WZ3d1sMbdH2g2UZIBIOxb0Ejvba2zc9sVahW07WqWvRXm8HtEQ7O2UXCpQlXOmt1N3Yo/x2MeurHZa6+udgg7Xr2Tmt0Xaj8UCdDNqNL1+NorDdfwui1nD7lvCVUCIFG+agKVZAauH2GPrwYG+auR1cj7GNUGPtvbBY++7UJj6Z5W2Pp4fce4Bx9RApJT19yu73bKesqMOTLUJ3IMswFXLGvDdZG6+GUd5sYvZvmpPl2VQnH3cPqMfQ4+w6V4J7HK0GasTQDkO3UdMzLde3EbrYXVeKwm9hmrzhxE3tTdUcKm49WQ6bH3RPvsfelKv5dNgAeT2mHrXdZzGz9suqaA233XsrAB6GzetWXRa73I6zHLWY+ux9vD6yHUNKua5cQWpXttTrd2UFPoKHZeqtvNIT6Kz0Et2cfTE+th1zrKBU0TPpKfY/aqytsrLmuV53t4jUU+8x9nT69I0ctlcXZzeqJ9az7XH2lPp4rZqOqds6zLINUyVqyLZJq2Z96z7kh0Bjup7cbm27t4XK2n0XPr2fY/arAtViq6s1NdsmNTlOtWlzQDssGlUqLqpbVKtRtkNiWZbqwulgMY75acUsv5asZPjGVOdJsRfrVZwCQAH2EX4AR4RYQSc1oLGPWuCwSlcSDHU4X294sJxReiMSa8kBh8VV80J6XC+q91OL7RLxHvPTSsT1PvFyL7QxHFSCakGi+vvy/rU2XmYvonxdd9adaA7sWX05rWZfUdcO/yMItdNaaiK/cSblF+2QIA8YWKk2G/CvBKwCH0Y/oBzwpNEGBDFTiwVhzQlR1VKzGGEL9BE+SJCy8wCnCAogHWSMUkWioTTX5PGqgB7Aq1lpiUbejQgOCI79QcxKTLQLErOqrswKa8oMAJhC7TQMmslwabKZYASX3giPtfadNbhplL7SX13zRpfYRfel9rr6cxoT4qquaWtH05tXRDqq8zLGiFTexooXr6gL4t7nxfaEEonF3r7QEQsvsSmXYVdkAKb65cI4VKAvuo0JOMTr74X0c2PikMgLaN9u009JpZ82Hxf6+pN93L7wBnprWiYMW+saI0b6g9Q1TP36GeQDD2X1Lvn1V1wipRczQ2q1DFQfxO6i/AAYOPq6kWKrAHIJANsG5JW8yE9YQACQGXVAN6Y06GTv57KWpZUlWH/U7bgYbUwGnbcChgEwgR9SM9iUqDGqRV4r9wH1qeyALZanQyrBRhfXgAZGxpfW5yTT8qa+u3mcMwOECbaUvMmfBO3mZryOEAXmS9nGn5OpQVuN9Hb70rbfSp7X59lMMKsr6O2RRUTmuOp97p10kZSyEBhQMUVpfvjUCoXLnlqRlLEwG/VitYlb1wDhbYpU/V47d6aR6Uik5mPyqlIt2t9Vr3a0BNk7EdjgwJt3jZ8d2Hak93DjgKDQztYBYHq0EV1ZpwHUToa77ay/WufgJbWRAg0mhP1321vO3V+uzTgega7ShnAJDSzq49WgbPAgmwBsLtKVtoyeYxUVl3jO1tH4V42/HoMUzDtxlmvtrLjgVKRpaBHpOHsPVocsesKQyMYj1ydwYSMTxVrHp7+JW0ExEmAMU+xlixnhKVQDyIhXs33u80zX4lPoBBoEugdjlGNEadDN4HsyaW8u3016Tq3T9CWvpBAZe/ijFKAQASNVt4qysryYBCAqS2ZCQNYHjuOEVZKBGeYnwAIQqzFbAtbmVjoSNZwZGcK6z8VuCB7+JVPCi/bMuWL9HfcFwr2bCngBbAF5A2glNOD38WAGCYALGAUYh4gDBEEo1XUQBz8x2w25zfTEkFd3c+f5sckd5VNhqAkEOkCdY6ckZAA+fp0oo7xAdijIxPFVhqFVKBlwyr9Ox4f6B6cFhFZdyFL9kX6JTzy0HYESdqux0cIqenFYMi8/U5+qL9eG59UCN1klXF3oeWgO8rq01naCvpPJYCAyCa4Jv0EiSwbMzAPgs8tBMv2RaE+2Z4chUie8Lh5C3rO0fh6RHzWwHEh9H36EHIpVFF79kpA2qXi8U8GApYV6WH+1Y7a1Ur7IvVS0ASGUwGum1YUTOPUonoSvrS2rKYgMEcn8mYoxdeiOnn6bXVkDMckrm4HAEMIXYRSrNlrC7C9o1vWqRjR/wCaQPea7Wg7cX3Yyo0uHnUz9l1EwXrQoA+/b5QEH94Alc5K/8UbIu60lNCC6AK9GJmDp/YXyyKiiNFCf14kRJ/RcAcz0jP6dHBDYRp/SAJbymYAl/BqkQ1/moM1e/iQMBmMEmWA4IViUPsKgLqcQA+ivxMg2OGMIJlj+qAfeq1ptBUEvg1Gx/kD/IAwyruxDapPpgJ4yWpGX4gKOeT6HitGyGtmtV/WeQLrEYm6qLg+ZMpOk6Bb9Wd300YTjKBk2CmBOTQjn6Ov1Rfs5nDkuYotDCbwSASevxILXwRb9vv6bMkEIXryN0iEGENu6jv1RfqXFUXrXYRyv7HZxW5IBda2alfQWnKe+I41FT/aCOHkg87hNiilYMN4CZYa39ef7Vf3d3XdyCbSr5o1/IiBGq/o4bIYYcHJqjYbtCSquH4tX+q5Z8IDRcDbbJKIC3++qAInBImi7CPr/bwKhLoZXAXmCUVnHkE/JZ7kpJgWZEXntE5UUKrP9+zgusRhtndonBKpf9jEBodinxhGEnr+8HYnCsbGoy/ootVSAhX9036WZEmlAMMBr+tdgGQsMRDT/t2EUuuLX9bI5CPY/uKDbC99WL9qpQu4zBkHuniWooxm9/Ft1AQCHjxo2QSpC2Y4tBQr3TroPr+5yQnK57+Js2BEIBUaSgQ77SYNgAqMREKh44OVVBZQPCo8Cr9igB/V4kGMXAj/trQA0mISLRrZBIjE26hgjQUQvP9BAGuhhf8iqyKPUTpRumE5FA5cgoA7ZdEEcsOtEqJ3DjvNhgiD4c/dbMPF+djIbdtsJAIJ2rXJkNHhO1TtCdsQ5LKOQBBtggIGPu8llGZhFMhgAYwyuIB5uQ24suoFW5IMaEBINNKhHLyWWlShknj4AM39EWgr/2njhJdOBup39TuCvf0iAp9/e1+qP9lcpKDDaftiVWdRLlYu+AKGD7/rl/Wsg1BkVrZCIDOAFP/bAQc/9CIsTAi07lr/apY2vEoubAfUP/tpENv+lcgBv6ieb3iVUOKGKUv9ONR66BEeIj4b//CjxtsZ94zQwGiA2iAcjxCrjvsGlQzlHBfGR6E8v0PmX38SDgFcMDzizgHH8ASGAAqIVQUimhsl+VaaAZ1QdoB2ncqqw9AOO/sYuM7+8AK94Jvf0OftMAz5+vogfn6rckBfpLvBDCTISiw1Qv2XcjRgOCIhP9KHgYC0UWtZHK4Bz1A4ABAAAoBKnWLDp9/EFJheuNUpW0udAEJtCXMgsEt8UrQqpcVyX6Iv3HfvS/cUB6YDQ37F3D9frYyCdCmkchSAV70aaOaEEpSV3IMGN8LipmmetkBS6OBRMD7jqPAf5JIlbICly4TnLYzQMqWCWQbL0IlKYULiKG/4L/wRQAFQAMaw0Zy6XNogZ1cySz7AOH/q1QsUB5E8bgHncAeAax1lf+nwDqoA/ANVUACA9AAoIDIAHwdihAaN/cKJCIDVIDrf0xAag8bnwkNqmQHEgN9xmSA4pQeugaQGAZHUgYSA0zUbIDc7BcgNsjnyAyugZF5kwHCID62EsdAeLCoD/MMNAPKEBqAxb+lIwdm59ANNAcMAwxQNoDSolI/2dAYPFoNsm0Q0X60PCBfu2LeUJAfAQwHUGTRvrGA2qB/m2SIH6xjMaHmA/G+i9ESwG6oArAdZ0GsB7uQUoBXwCzOE9QIl+nQSewGI7gHAYmA0aByLQJwGj3BnAazOBcB1BkcbabgOYwDuA0qRV/GHwGfOBVSCApVUAZcJ/CUwwPPAYoAD8BmnsOEBPqDRWxJQrDHUF4J8AgQPRWzAEDj2cEDkIH2yQF2wbCDIUWEDu9F4QPy/q1QvMeTkDKIG5EG3FAv/f0kDED0Irb/3+Ae1/XiBmUQwQGxyBEgdmNuEB83wkQHeO0MgbRALEBqkD8QHiPHfkCSA+SB1IDsHi48FDgayAyoAHIDrI5wv0w/EKA2ejSoDooGtAMSgfqAw7+4zdBgHeUGtAd+ceH7AkDAswTAPefoIQjK8Krocf6Cv37AbS/RMBisDrI4T6CGCo8fYvC8RlQFkI/0dAdLeV0BlUDqDJegNJtI2/SRe4oDzX6dQPzgdS/eMBmL914GssIfdi/lbsBgCDk36DQMOqJAg3qAr0DjBwZVbJKj9A8Fua4De37zLBdqVm0kB84oDuQMWojPmqSLIQgZNS6oAi4ZnbiRgMGB4v9vu1YwMMWyApZVAW/gax1KINfAfjA3pQ8eANEGegppgcBA6ToLMDoIHx4C5gbzMQWB0Lcch6o1DffWR/dw031qsGFUqx1FjgwiYoNA6Jn748YZJLSfCbLKz9WoMWcV/YB0moGDaFstsAggnKoKdmsLQE5Wl5t0gPILRR4U5soXpe3wuFwHoLEAPmgoUDi6lXADlAfoEJRY1oJjqBrIO/sybllGoLa8g8j8DHyNHjGpUWCpGca0sf2JVkaLPh1YSD9AduVRiQey1tm+hDCOjQwur38ScjIYM2XiehJuQO3uAIQifw2flVrxUCKlZSigxQAAaA9MACEIWEgv/BlBrKDMi0n0CaiXTKE/AOBlmkHJYBlQfxSbmkdEcQMi5+E1Qd0APikusgdM5kJL/m3eEegA854kGJslpgYg1ANXUeSavZYdJp8QMkOYD08NA3EDXoCGs3xAxwAUADHYHTWL38UfwKW8kNQuQBWFAXBBZYF68AmilrAqhD0gb9sdSaqiAC8IlwClQfGcTB4uqDRPBigN7jE5QDAB46Dt9ITf3VAfN/ZpQAUc8+RcRJcoAcAxwQ4oDE8YDahgznV/TWBzwD9YGT/3YgfHpYxDMe+C3Ni2ZBgcu4ORBqQBeHc4wPCUpIzBvbaEDdVVv7q9Ln4aumB4KoHEGQQM5gYhA0oYcIDsv6EQPrIOegwELQ2o70GnKC1ga8AyMIhsDP0HcQMKrJmQP9BtJstwHgYNBlLBg1RBqqS9Ei7w7QwcGenDBqP6CMHMwPIwbBA6jB2EDpYHHAMcgBpPJIYYOVVYG0QOX/u8A8TBqgsOIHmwPo00VqS+IIx4IgBRCkgQFuPMUcpp4csHg5W3HnEWr9wMfqiIhBHDnMIUwnPAv46G/BTEBWhX09l57A2DusGPrCnQbbAzrgKaDKYkFAPByvFuRrBkQ12sHDYPdAD1gzo8HWDs0DMAAmwdJ0M7ByRB5sH1AM8ajFA9dBnQD8+QGgObgZlA9uBy2Ds0cjANBFEPA/Zk/39sfJA/1nXL8tZo2cUAvw53InayqfA23SJb9fv65aLsLBhKSIaob9Rf7P/LHLS0wCRB1QAZEGgykswZ0OFNuRQomxFaYMMQcD+i4Ilakj0GtULqXrV/Wf+j6D6IHvAOmjsbAxLB+/9U/c+MoQAaiwpxCVkqFoHqYBQAbtoNIBru2qgHm5COHHb/eSy2ZUraB8kDwxVZWUoBqNQMAHrNjzwebkIvBiQ9HSEXKCwknhHFVJCeD74GOQBtwdUUkzsLeDASAd4PLwZUA5bStQD24tLYMqZCng6axGADq7aeijRsF2gwIYMItww56oAfweiyTPBjMcnksqgOBwdqA6KOM8gQMH7gO4ExseOxBmAGocGyXFbgabCa7+zHqhnhzIThOWjg9ENExxGEkOgPZQeVA/5+/VlGoH+gPAwACGF+B9TQ9/E1PQU/qXnMvBg5xie6h4MDAGRea6lXbVGmhRgMXgYYFFfB7QoZ8HPUB2vMWA4fB/gAVoGLnLAkidA1J0fUDd3KzaBrmyoQ7DFKr9z8pOGBIQa4lrDxEHiLflIwCJCOMYk0iTqJANhobVb0pBnUB+6IAOvVlSLnQEqgBQMyUi/QBVSL3720PrtKF1FbaJ7tbjtx4tep+57u/iVZHqAgpJuWgAWaOxJoTvkbFFycOrZNTGWXQTAOZCRzg0oOEDq636tUJbbtG3ZSyzBkbdJuPmgvtfxuDKZb9P/Ikv2HNACQ7Lze/i9eQKf2PMET3RBSdsp6NgrciMIaYChfXYqYnn6okO+IbjKCfB+Y0tJhMAiy80Y2m4hqiMM4jzbwlDF5pMyYEFabFxwPjj/rq/V8ABfQ5R1o2DTjCy3SrxE0pZHq0uIRkXm1v8iwj9iH6SP1npPI/Y9S9YamCLiP0onEhpVkQV42esLlRScoEY/UR+tKE9j1kzFPfte8CL+hqlX6t3v2A/uAEpshkYgLcMcoA/frrxUbAf79oGANkMc/qwCuD+kgSVAkof0hjBh/SfNaNqRRivsVFhiR/e/owjq7BiscY0HS0aJj+jH9Jig3yB4/s2zjz+04IeyA+f0a3TJ/QJgCn9o9Eqf3sgHOQ2L+0H9XZEYqWCkDipf/xZn9sKGU+RdkS5/dkgIFDDo5bNZvjUF/fFS/jAaKHOyLofQgZtmLaESH70QnqggqcQ+E5FxDQgYdBLm/IqQ1pAd3BK7hq2x6EhnfDeIVUoUgZrxDoAFV0M3adlDPKG8QADMAdgNyhkN8rCJRXoyiVuOBKhkCooaocOBVSi7CP6mGVDW4lyIb38R8Q2YBvxDcSGFSAbfvn/f3AXOg4Qp4lVV1i/lQ8QLYgfMHWhgGoZ2A0l+oiiIgBxCilrkmEXfsdZCQoMFJbhYyIVfZBTGAZUMFobcZzF3HoJXpcegkJdwiFBIrBbgQnwnmYSMgiUpy9hDQfrh4qHfFhHmDZnIRynoooERhuH52nbdjTc6oGrTxKoozYstpfT0Yz9CAiB8Ar8CjEAwKk0i9Asb0rKgOhAf6mUb4MXExnDSGy5FmVNZz6kAFsyliNwrYJ2AKDIIlL9PY9BToYOPAdQEJgBFSqNodNKWl7amAraH8IB6wcbYF2h5tDvaHWeyfe0cjAyoFgigWBk1IujOoFA2hjMD3aGW0PjwH7Qx9YCfxiMHh0OtofbQ4qVCtgQ6Ge0OtoZwgLclZGMkqAO2q5qT7AHWWQCaDlg1iWKocpjjTkHiw01BURE4oCdjIjB2r298DegBT1ExgI+hkSlAwAUewrNDwDjehr4wepEN8Cg1SZ5hdoseiJaG+aSC4plQ4jHNHItOQuCDBBDOaDGEG4gKgA/JzPGsEbCDkY4cJNQyzgqABnqBKEcP9WcH8kNqoYD/Wt+zVDWqEH7W7foHgASYLBk4SGv4beIeiQ9BB/xDxGH1kEEiuJ1ra0yRDkPBzPQVqH9qHiERaMEsN0tDVIZVMLMbRhDIwGsOnZIeHCnMBhYDYQTa0NbCBdhI0LeyGAiHwIMWoZEw6lMBdUYEHaFXToApqCpq3wAigLMYBSYdtkgPAWFKlNBYy5VQTFDFXzdJDymxXuJSoZE9C8wTOgk+QxDB8YYKsLhhjz9GYd8oAkgdVQz5+wpAQzZ6MPqQC1Q/C6ieVoSGPP2SYaIVbaAUzGImGifpaYl2gCYXZ+24yhaUOrbHpQwfSE/WzKHGUPjjHGUJ4hxKSEwh1kC4IEmTH8QYsQYxwqeDFaEkedsYFqDKfRr9wXGhkiDZ4UuAoCJAcAiodV0IJcTEQM0GKADZoY4wsDAavlWCHXMOlvN1ls6BjVDXmGSMMgOsftX5h/b9Xal8MNuYd6A7zB1aS8SGdcBYwjObO2Ia5QKmHx5AQQdkaqxhyUidjwLvwvMAHgJn0GgsHnB83qbS2FCflZO2wLdEoGJkYSlkgvZDbimvKm4NTbRzgzO+TH0Vg7PQDt3mBQLkhqhqg2HS3mZCVc/dMWdz9/WGVUNxweBjOwsLAY22zrPzVtmwAGrYkGDpVkhsiZuDlQ0thxURvJA46Q5CuqIH+glJkK0rocPs9zLCa9h8yw72Gc4PTGDFuaTMBgSGRAbd3zYduPLU1FlDBQkAZr8wFPsZgII2mISwDsMTYBUptxh+OMxOFOUAo4YIwwnBojDXWHGMPZOoTuUFhn5ow+xPtmqoEhpQp+sfBSOaN86e2smQ3J+1tEZH6CB6fUuFsF+tNT9fUTdpTub2TzPOi4LezThD4hpNDVoJDSr9agLx3jYSOkXCj1hVuIB6Fklm8fvPBGSdcECD37+UYbUue/Tsh+qlb37jJIbIa+/apxBYmv37KuEYFXQmmbhtjWFyHQnIQ/uSpbf5Gui7XR7kPprPW5m+iBH9LyHff6BQZ1QKj+ifWMFBvkMSQeqLDj+/5DmYz0yhAoayBKChrhi4KGKYCQoaQYtChtkARKHxf0IofxQyihzaGGeH4UPfiC5/bHh4wKvP6sUp4ofKyduOAlDLP6WNYtUs30HCh8AS7k0iWKDNWOgB1IIvxQeHtCIJjRCg35By7CuBjikb38S27Fc9e/i3pKEoMucVb8jD4/S6q3cQsDHcQNwOKbA3A1loNsMuUUgJYwuQas5OHjLTyId+gBftF6Gz2M4BAP/uLsS/cq5ptC56ehOkSdPtIuKADRISSQYyxH5xB27TAiMi02YBTXhE2oPh+MD2UHSBoP4e6Ck/h9QmEmT5swETAcxCnaUL+DMj32KpdxqEJv+kZiQ2F5xGFfpOQBDQZeSRYYm+KBy2cVA6ze/iOlFf/3d+JucIwB2vxSsVK6KJCym1iSBu301fLZeLb/3ySZoFa7AfVIObSJQcuQJaEeAjVoU28B8tKuAF68HBSp8tOqiFQEc3EqQO5QgAi1R6l51z4Z73WTpaqku9BkMqGqAwR7vBJTsoc7HwEswVXaf3B1vdOZEhtXOgJKYYuxJ70VBLAofS0PuBscgxuBjcDEgZgA9uMdGc+QRQxBYmwruQ02K5AMkG+Or+KD2FAfmXxY6hHByA5BHXmP7B0394oGboMJUHtrAyoe/ic8AW4PrIKxKCFs1X9QsHbiir4Dv/acs93ZB4NRGLGEaTCC4RzllmIA3/202vpYj3k4sW12B0XiMSLw4s4MXQja+BAQqRAeRyFe2Cv9LazThDqEYCI/s4bKl76FoeyI4cfg0oRsIDPlFgEOrgesI8HJNQj/hHFRx2/pQYtKBzC4zQGHEOb/tmjpHB4IS6CGWsPRIaew7+kl7DuSGBsNnYbVQzg24NQ2wHx5BHSmzcqahtCDcNg6sPHfqT/UD82kg4QHXMPxwaHrJqGJODdNKL4bIgEzgx5+unDbmHCMN3get5SH+rAIyxH9v2rEfeERRaopDUCrkwVY4fPAwgIsYjn4qbTY6jh6cVpy2IS2vExvGtWSSI5yy+fqfhHbGzlEceFYXB3JwgOHEkp6IVAgGkRt4jz+4TZlDpAVQInu38FyUVOWUN/tEeHpvHv9WGq2/2J7ueWt3+lAAvf60+B0gFBIzGIRf9w/6GRDV8HBI34UCDGPLFMWxr/ogxp+ASpIW/6FCPu0WIg9d+07DDhHMYOoMixKOX+zllbhGnKAeEabA/3B7KmZyzlCPnQBSI4vAdQjdJH9nBBEaAI6ERsbx5BHECPI5BV1ckRl4jYgAeSNLAHmafIBxMcpJGCXo+EeJA2sRQojVhGdAPyfVKI3MQSUjnCs4EPUEpqI7QFOoje4GJoP0bEaI3KB4wD7QHWsOJQZ/Sen2dojuBY9iNuIB6I5QQ9F1AxGTUPL6GGI+AEUYjif6LiOMryxZZMRlzDH2H1UNzEcu5CVqxYjdDhXSPzgemIzHyWYjGxHsBVbEamww5h3Yjg2H9iOx/qtyay681N58H4/1WKSgg+MRlXV1xHn9y3EdIekGU0UjTxGa6LqkYlI7b+94jhf7PiPwkZ+I6RAbkjZZGASPNIlOQCCRwsj6JGNBVN/uhI63+8pQcJGFMYIkd9PJKq/v9fiA6yNLAAhI5B4N9C5AlF/04kbHIKkjccjy/6iSPOIgcyo/B3f9bOG9/35HwP/WWBpwjmxRoblwAoZI3kOWG5zJGvCPQVH5IyxDGDG12AECMJEcoMIh8xCMA9FciMKkc7A4jhksjm5Hii1AIZXAyqRuoD8F8NwPwIfDg/YhvUjxJH6iOkkeMiU0RmjDHX62sPXbsrrIc0G0jCZGf+Q21KoXEjhkYjGZHziM6CXfbq+CkV6EFG7ECeOL8sBAZTUSc4BIdkdwDi2O6RmJDCFGLumPuE1GtsW20j3EJOhGH8rHccHK5pEmFGwujQhpx2Ta0nCjIIg8KPtYZdQLCINuJdYhKunEUfA+RBRnsMjXRYeWUUcRENRRhEw2LyNwW4Ubgox6RgijwAquQEkUZ4oxQAbJgJAh+KNX0UEo/aAbqDvQ4z2nxcgRMHmRsIjWYNEPnPEfvI4K8vpwHxHKkN2axLg/Sc8IDVJG1yM0kc2KCFs9MB25H5Ry7kb7g/uRwAjxJHgCOg4UFIyeR+Ijf/7kflx9F3/fIRw0jK5A8iMqEa6gSWRmyj33iLCNXQdAQzYR7UjBFxdSPjKH1I1LvP8jxpHeKDygd92g9hqL9IFG954wUfACJ0R8MjOCk4N0gdWfA8L0CSjrFHvKM+kdtI6hRzxDOF8nQWZgo5WehRvLBCJgisEIbGYo+MRu3ORdAvZxUltIoyfAFu8ilGC4PeUaO1S8wTUSOQyR+LiUfwo6xRmiV0lHuKNdEZ8/XKgfAA3VGKKNKUfjwH1RvbMA1GETAtDKYoyNRlij2sAejBe5K4o26R2Sjs1G9fF2wYWo/gSWUFdd6hKMbGE3/mJRs4jxVGtqN25ybkDtRvoDe1GpqMIEK6o4dRhADx1G+flx/NPjUIgWuYGxgtKP3EcIDtOCiOAxZHMWB/EcZ+SUnCsjxlGjGaJJXBhmZRkkDFlHeYMJlAesNUOCHId7TzRx4wZ3I+LB36DqHNnKNzkYFI8eRuIjwpGclyA3LIQ9IuHCAHGEdUMYvKeoJeR4AD/lHFCM3kZfg8FR0GjSYQw9RU0amuU+RgODRRGdANvkaqIwfwWKjloFnES/kbpo85CT39JpGY4NmkdowxlRw2oWVG8kPPUcgo/lRsCjeGHrqOjUa2o0409AlJbYyqMoUcoMJVRwpA5LSoMywLlqo1ueDCjCJgHBnrUeVo5tRgXJ5Qg8AMTUaeo+GRs/B8n55qMiGvOoxoKIaj84GiqMq0YFyV8AGHQu1GwyMfYblQKBRN6jsvNjqPO0aOEGtR4aj5tHxiOTMvubtPaT0DHVHZKO+UMDoyv+w/lP1GR4pHCH+o0GUq3ZJbY9KPM0bmIKzRqD56kAJEO44fhI7DRlRD8NHVyOI0ecI7ACw78dlHNf17kZ1/bjR9/9+NHIkOE0bPI5DWw9scAKaaMZBDlI4FR28jqhGc6NiABC2R3RjmjlhGg4Ovkft/bzRpygTuD4qPu/qNI6LR5KjppGFQNTUeAo3LU0CjMtGcqN+kZU3XzI3JDzVHPSN+/Oro8hRuWjFVG1KOoka3I4bRtSgxtGNjAiUZNKFdR92jFtGgflwAorhB7cn2jnVHgwCJ0YEoyBAEOjqDJ6dmiUbNo7fR8Yje9GWHDdZXG6TbR32jOcG5UDaAHIo0dRp2jK1HL6O8dOnnIxR8Ojf9Hd6NV0cAY3Ax3xgj1HQGNmAe4hJ3eHqjydGVKOp0Z1wOnRqBDADGaQDZ0dSI2URnUccALC6NFwe7IyXR5cjivZy6MK/s2KJqOWEANdGmSOOUfro/XAQ8jIBGCaOnkb//VGm3f9L91u6MM0Ztg4c0fujLDHLWDD0Yio2uBnmjjQHqiOu/3CcnUR4ISkcGD6QAUYlo0BRm6jnmGm6xOEdDEJJu2JDHRGd6MEUZv9SfQW0jS8FpaNW5N1jHkYgrB7kS8jFmNKVQg3YZa5tCAOQC2EBYw0XR+6GPUBCvl+hFyBk8+DYwVuAOOInoCuogDR/7WB6qhwbikYkYyjhVjJXW06KgUkfMo4wxrVCWJRTCOtupbAeYO1ED7hGHKPY0dZIz2iI8jrlL5+qVEbkY3zRqejP5GDSMe/v2AGoxxej5pG4SQr0cyowYxiCjeVH8L4y0cMY6xR5Aj0oDTsPhkaPoyMOEIwMPaqul1UcGowq7G+jmZHd6PXAefo7JRxPAkDH3qPQMZwo7MhNsgglAzCM0ZQDA11A1ajptHEGMDMYIo0ohkBjL9Hk8C4Maoo1bkS7gWOgZmNJMevbJASpIRCzGNjCO9iaoxtR8Yj9CAsXDrMf2o3/zLZjylHJmMq4GmY80xmjKVzGISgnMY0FGYgBBjbtGVmOsUcypgOIa5jwzG5aNyoCqoW/R4OjOzGpmOdMdmY1lgf5jlpBVikEMYhWdNhUAjx+HGqG4Eeysi8xu7atbFHP10MDqYGQIqWUAIUMWOYka7WeQx5AImhHwWJW0GQAOrSxLDXxHHwZLke5gyuRxwjX9HwQBrgHQAIkxqfGbDH0mOkwcipVkxnhj90MEWn5lGuwc7wjFjMMiIEMhgeho2/MedDwIHswOcwYxrIzBmuDJjda0NEoERg6/AslCPQU1vabob0EkGh+7YyrGqvYre0gGSSxBlj1JGRAOjzis4Wyx6oeKTHqwOMkc5Y5LB7ljsdtsmPQ0f5YxeLIVjZLGZ+TPY1FY18RiVjyrHOIMowdlY1DB+VjJgEtWNdoZVY4VQNVjS6HfYPSJUVY8Gh54goNDPgE2AfsI3Ex9cjuThEmNmADj5RyxrGjXLHUdG0iG4Y25RkHBlGdK6KoscgI0f5IUjrdGbnApsfZpReRLBDwAwMCOWOUc/TgRhwaqYM5CPLIGEY+yRxmjYjGSWMaEdIgGWx8fgUjGQEMyMfHo/kxyej24Hp6MoIfo2KoxsWjJCl6qMbGH0/esQN4oeTKH8r9Mfgo6xRt6gp85JMLtUZko8CxjGAQAt7mMf0ZgYxoKadjblQUkAYEHagd8xxpjW1G4p03MY3YzDAMFj0DGPmNHCH3YyWamkwJSwF2M3UbeAY8QIFjdtGKLUYBG3YybMupZYQT9hIU/u3UIoAfoAQppNRL7sewHH5ARJjJ7GLmOekdW3Ikxi9jH7GHyHXsbwYyFpFOquFpViPL0eTzdUx8CjctG6mPQUe3o9BxgijpbGAH2a0cPo9rR4+jLrbumNG0bHmX9R1KayLH82MQEdrag900MQXbG/1FFsexY7ixs/D+IsiOMo9uehJyR34jD4RmOMAPrxqMDAG2AkNGtIBfEeiSs6uOGj8bHGWOkmE2KKvixgjdzY02OeEc4Y9vAbNj/GA6OOKcoY4+M6GMixbG//0jCEU495NVAjYBHq2MacdrY9UDKKiDbGhGPC0flIy2x0Rj1ZGVcBJhAU4xaqntjXNGx6NSgYHY3lQQpjgtHimOz0dKY+Ox5ojGjHKmOYcelozUxnDjm9GCqNK0aQYwRRgzj3eCSONtMbI4x0xu4xtzgogGUcfPo5OxjQUtBHcYPPsY9o1qgU+W77G/aPAwFc4N+xz+jpJgeCNQcYjo56RyrV8HHCuPcAHsICVx3djRwhViCqdgq49Fx1ijbAqauNgMc3ADgxx2jyHHfqMaCiIY4v40wWKLHtOOyDVi40qQZnCS36cWOy8UQCgCFcbjWBreOPikec45NrIyj4nHi6NcrGk44axyyjcnHcnAI3L8gIZxmujBMGMQNfpJJgzaxzNjVGyXKNN0aG43mxrTjuBGV5J6ce78c62KlBYdAXOPGcePw6ZxrAjJ8ALOPmUUGao2x68jxIHlSOj0bAQx5xsOD8jGh2NFMYSo8LR/8jAXHAKNqoalo5FxlYjWtGJRVJcYltWlx+TsGXG72ObgG6YAihemArXHfmNbUaiARfGTrjWDGosLUwCQ49sx29jx/EseP3qIt4HUw+6k5zHKuMEUcq1Xtx8dgxPHpqPPEAUo71xinjYNgp2PU8a6GdEABFCEUgGeNtcYJ493gpuQI4q2eMvUd/EeTx5SjEKDNKO0cdzY2ARgtj+HF0s0GBGysk9x39AhnHJuPscZm4yndTCq9tb9uMWqoXUatxjv9ifiYaNcrFLozJxo1jSNGtIClaljARrRi1jGv72GMZMfzRemJb0lC8CxxKV0Rig04lcrwRIC9SbTMUyptth4sE9/E+qQYYS/xtCgSNAhBHY4AEiVNIHfB2eD8cgM+rybQD48UAYcAofHgsIh8ej47yBgBDGDybNBZscu4/ax3TmqVGW6NeUdgBUKAza5vlGm2M2cZ7o62xhzjYNH26Nl8epo52AQra4pHB6MN8eksiWRt1pU4BW+P28epo8FtDjD7bHO+MJ2EoY23x7zYaDxnyNA8aio++RnUj3nHgyBC0ZKYzuB8Wj5THJaNVMdC49hx3KjEXHFaOI8cZ46xRk5pJDBWmMfYfaY33+pUAw660eMkBEwoyGA6+jv9H8eMmZSFAZLxo58VXAZeM7scp48sU6lsl/HlmOLsa2o8zwu/jcqAu6GP8Z/YwixwbjhfGpAF+/JH46dh70l4eI8iKyAf97JhydmAGfH32yQCez4zERvjjNZGkwiD8e743mA8vjLfHS+M98YLo3Y4ahjlZHaGMbcct41txiujmxQcNz3woxo/ZR9NjZ3HHUV58bxowXx9wlw3HKpRh8cLY4/5EO6EIxgskV6CvuKM2LDOJgG+GPd+KUIOQJ24QLItmEl4FF4E+0B/gTyOQ6WBCCZVEAPdBtjflHqNjV8dEY5srQrDHWSxmiqXUnbLPofujUIwZBMNfv7o3DUXQTazd45Bj8c5oy+R4Hj0VGEEMjRNqIxDxmejo3g56NNQEXLJAUOrDDWHc0PNYdh47vDdKjK/GEeNvYdqYxvxhpjBHHWKNTWyngNDTPfjUxHaMOEYZIQ+sgzXlOm6ItB9YfQg7aRgmiZ4HFuC+KXrQNDTUf2p/GL6MaCh3jjlxu+jQQmFmheQElqmqCgrjXXGrGB/8eVIUjAHTDohhAQAdjOf4ykJ2XJePGP+MC5NSE7cIM6kWa5v+MnIFQo1zxxEQLoBLVyhUBjGNphohVru5ZkHCUbjXG/xn5jjQmBx7BCZaE6MJ4oTJPG5ujfsZ6ExlMPoT5QnVACVCeZYNnxWoTvHSxhOnsaaE1MJgoTWwnZhPs8etin/xxYTfQ5+hMVCcGEy+RWoTvjqE7kNCZfY5MJ/ITSJAbhOLckOEy9R7qRJwnklJnCZWE2sJ4VgBRR4WPy8aRYwTRtPjsvE2v3eks3mNER+OQ8AcVQy6CbxI9oJ8GougmyGNckbKI9CJrNco4cTeM0sZMsJsR1+cncATZn78Zzg4kJqTddQnHhN16SoXDrRvITIQmMhMY8cKtJ1XHIT4xHyRMtCc6uWyuC4T0KJqhMEIdto4Vx0oTDXHahN5Ce2EwEJgnjqImWhM8iaZE6sJy4TNuS46Mbsf/pgsJz4TLT1ahOjCbuE7lx+kTBQmZhPNCB+E6fBtkTmDH2ePzCa6E/HgaUT5xMeeOZca2E/KJ3ITAon9hMzABPoAMJlkT+JlxRMfseOE1KJ3oTeonMKPPCcvpMLx6/jDwm0hNOienCtaJwrj7wm7RNLCfOEyKJlkTsYA5eM0ccBE83R4ETBf0H8PgifNvJCJvOgngAYRPICcc43MQAwTJom7agJifUI8mJ5oTXkB8BNQ0aAE2mATET0ZH8L44iZUQ/CtMyjSrq+P1RlqA/aApGcRCpEU6mC4AdZv2k55aYlSJMMzbSVdYB6dRDqrrETGi+xxyQKRGZKkpFEJq2wsJsbIgfnxT1BEWjl0TRYMShGFC48BBaH0wHAENChAaAP1tx4CFUFoAB8EpHsRvNG6SrSGXoHgSpWcT/KlKhRMH00MAAIgAtABPkBEsAnE5fwacTs4nPPYLiaXEwzwBtcH/BxFDricYZiuAB4lwhq7RB7idz6YeJ5BaQojjxNQoUnE+eJ7oADCC7vYOsHvE3fYTcToQaB1gvid1QieJklCU4n6YAzif/E6vAzAAOYALxPziZ6Mg+JtaQVEqPaVHIGgAH5kAVN0wAgg7O5BtqB1QRAQ/ulhMZYbGDamBJ8IAua5TxMwSZnE9SRAz2GKE1xMgSfLsB7KvogO4m7RBUSegk+eJuhgT/BhgCYAEPFkBJmZKwKAfxNnidgk8hk7hhX/BKvb9ADEQWyAG4A2CBuuCwAFc3MmuRwAvVB2iCo+nX9TmAVeY5jBx4BfwI4AKkQLwopiBQoByIK8sgrA/WB41UqACYACNch92MWgdcDCIBEBA+cqkKtxlhEAcOwtwgeKB1QU8ofjKLGykDnYkzV+21gJmxxFB0eQ3E+XYXCTZF6CJOuSfEJR5Jr+wFmTIJMQLnNNfycef5wUmnJOhSaLqJc4V/WULiHpGCAFHbPZJyTVeEnnJMu5GSk3d9MlwDfZjGKEIE7KoUySWE0bAiEDrUikdHYQdjgqywq6x10Aqk84xgL2DNIl9I9A3KILakCaIGbAcmEqOlxAEii/4dFmrZiJIACD5cxuThVUEnfxOiSYHwIihFFCkAhUWGbe0M9ooAJ/gFvAOQBEwMCjJqRDAMsGAeNxjSZEk7RJom2NEm0JObiZL4BBJ4qT9MALEEBsEBtlMlMsABeAi7AIAC6CB4AQ8AqQqg9KnScPFvV7UBS6cGsiDK1gfWMh2DwA8ACCEDAWxMttkwXmhFvBV4Gtof6APTAZy2entPPbbQKmSjA9LyDVTFhJM0SY+CVNJoyls0mcwDzScWk3FbQcT1BBhu7tViggA14B/9Q7AcZPt+GG5PzOBKleqQlhAiwZaECulUCA6Gq0fkIsbkEyYVSBU+dB0BRQyCi5Lx2bMgdnFlciOcSzwMpBcGxiIBhxPqQFHEw2QeGT54nm4EoSai9teJz4JAkn9pPl2GfE2xJwiAb4mDxNHiY4k+NJmcTosmrxPLiepIs17RiT6DBNxOyycsXa+J+STisnPxOPAG/E9RJv8TecCEJNISe1k4FJlcAFEnzCz6ycgk8LJ0ST8EnAJNqydQk0xJlcAGEntyZ+QBwkw5JnKTSUnxUZESxIk7JjMiToWiXA0DrGVk9tJm8T9EmwBDWycfE5+Jt1CrEmHZPFSadkzOJ7iTNPZb+D8ScYk5HJhGT/E50UISSc3gtJJ2ST4wp9NCKScRnMpJnAAqknJF2d8o0kxtEPpOOkm9JPcAAMk0ZJo9AJknNqzPUIsk1XWayT5FhciANtHqkNlJkKTnuQwpNB7Aik4dJ7yT4/7IdgW82lkyuABKT+Emh5P5SZHk5DsYQASlQIGw05sak/3Jn2ljkm55MuSfyk/U2TSgK4iMpNBmFPg37JweTO8nA5Ml8EKkyvJkqT78oypNCSHXk1VJ1qTtUm5Yj1SY4AOvJrvOLUmG7BtSdWWG3ASwAXUmkliMiMQAH1J+mkAkFBpMjKvgACNJrhVqcnEZPUwGmk1OJ5nsqMmegDoyeWk9jWOdF60nyiA5yfPE/TAXaT04np5N7idQHMnJx6TA+AzpOfQI5AJAAK6T1kB4AC3SYPOk/ywhTi4nb+AvSY5ADQAd6TS1ZPpMmsD47DRwX6TT/BKSKAydoSdAggNgYMmGeBziahk81kryDkRQqGC1e0v4HQwH/g84nf+AW8ArxRCjZpEp3gt4gViYFIgMAFOpYNTdyAp1KVeEOkFkjjr0mKYCGBTqcSudi1pxC0mhi+044AmhN42nHA0oQYfu1wyAVT7FRuHZwC8yYzMQAONQ62ZjhTF5mMVAPFk3ApxZjpKXdnzpovbTRumv3BYpqLUtlTpi0E+SEPVLxJymPHym0SxQxypj1LyqmP5hRqY28OdcHqlE6mOqUXqYkqgBpjDpleaCDMEMdfdAlIk+hbYmXkaNaY3UAtpiXUhiCVIgFepZ0xS7tXTF2qXhsZ6Y1mw07740qRKbq2vgRN1qqh1WCZLYXXkuJEV7i/CkHWbg4QEYEbxBCSJv09FOG8AEzgE1GYwcJS+ZWTKeW2KvgJpqb+E2ylP22AqZJgAUQUGt8TGmxMJMRBjYkxdnF49psmJZMUpIGkxdJjrSo9MhJMcyYqkx6bQ2TET22SKV5sDJ50ZEsnmNFAFMc+k2LJX01VIAHD3FMfjzCsxDngVlZW8FrMThbBER+vASODOFLhoK8iS1Bz5BRnqfgCftoOYo+aKymXVCH4DHMTiTCcxN3oadANuBG4LOY+VwuxLopiJiSDMctnbB6SOFsHqDO0q/kIM7pqyyM03ab30uGojZBjiWWwdEE/rPTQHSiMGAIBqkADp5AiEZTwYQA+DUGVOsKBucdacDOgZntG8CE4X4o+CIH2DesGxyMt8tRUOJsMiiF0BMWBhZsp3AOR/EyJZHNSMmocYVfj0FfQ+gm4xMpiY5ADyJiVT7bGHyNnXKwoxdczVTSInSWOdsYAfYEhTPo/dGzWM0jmjQIZffujaAnsBMYCepo6sQV/j+qn+ONzEAkYwoyp1TKAnc6OTXMDVe6pxMTA9H4RNqqYfSHCJnUcFf7NEl0oFNU+2x9ATpqV7VMX8Z9U3XxxGAHdGr6OxqYoY0DRsz2JZHluNYGopgOnOHLVI5rsQB4bi4CGzJrCs6hwGZCQQELU1YBYtTmgAf4OvyZZML9QRfD+CQr7mlqYwdHHxjMcq8GPQzKqdckGIASncbGwlwgmWM3g02ppuBvYwl4Nl0AFRPH2zmkTJHN3BYAfvfF8cBCg807rMTDmpgjQAeXTCVWQ/Ch6cEEsjQBvw4C0GTLGCWTIRotQOuEFe4V3pjACjfIYQZgDbnNaCyNyCIVeB4faweY5WkHBhuDLHDYVfA8QBDE0pgnbXKpUBYw96nWkEXTuZYG+pxvxohgv1Nf0p/U5wApnYm84bQwsCDIRkQct9cORBzuQNqcm/FqhPUD0NlXRP21LhFe6QJi+ZoHRLzvYdUMBxhWGK8fbqDClIXbI33+xQ8/AH4lUssFYAy7CiMZLPBbphPWANqMRGSpIf8HKBDNgIsYFBp0YSaQx2QilDl+ECZYjnkDS4OeQtLjfg9Rpqsm0WTV22VqZo01/BomMDGmlvF7zBgzMx0NnJiABOQNsab87D9azpVMmmp4BkNrY0+DUJuQOIARNMpiCF8a2QH4T0qyu+BM7BnUy6yXP9g5HPhB+7krAO4FdADF6m4PAmWOOg4NRp58ONRamQWaYKSLXRl2EQgj34PVqf7ErJp4p9W9AkSM9qbwYK6puu0m7Z7NMPBOzHMuhbEjy/7wQGQVMwfQgBovgKYaWxykAbY0ylBNMcHLBm+UF8q7IsbSGLTm6n/I2r4EfWB6+JLTkqmDs2U7mi0ygwWLT9kastMJacRvHKpozTaWmitOZjky0521MrT3ZASyMZib2E/xsMMNxWnatNcGEgOYlp2vgZqmDKM64EK00/QD18FCR2tPZaa600mpw1T+AAWONVaYG021p+ug8WnOtPlabNUy6xvrTrWmatOzadK0/NphrT1qmr7mRqc2uf1podTC6m1tN1aY207lp9tjrqm9tODabi0+tpr8QC2n22N50et2btBlbTB2m0QBzaeu05tpiNT/qnMxMtafS009pjCMV2mctPdafe08GprTl52mZtPPab+06NpkKjtqmo1NTXJB06tpsHTR2nXtMnaYNU36pyhjQf7HtNDacO0x1pxHTAOnkdOhUcg8bDpn7TVAmRtM3aeR0+mp8AIBOmMdPw6ax0/9pzVTMuARzUU6cu0wjpmnT+an6NMkKgJ0/yyYbT9WmOWC1qZLU2zpx7THOnMdPE6e7IDzpitTvQ4sdAM6ZK00zp0bTIunB+NYVnZ04zp6nTo2ns+NTaf205Tp37TUunEbwjqdR4BLpznTx2m/APjqbwAySYHXTgumudPTkGnU9CIlXTOWmFdNC6e503Op9/txumqdM26enINQB8gDG6mHdPq6cV04jeQSyS6nAyPo6et06bp0gD26mE2wV7nd00TpgPTRzgo3zy6cl057p7sgDAG3Oah6bgPBtp7vEMHio9O66ex00CRn4TDmmjdP86f903rpoEjj6nlgC3qfJ037p6PTTun89PBhufU92phPT4OnEbwPqY/U8KwVPTJum89PxAG/UzzwHPTpemA9Mt6b/U23p77TAunHdMB6es2EBpg6MdMBQNPV6Y1092QRQUcun29Np6Zp02wrMfTMemOWByjn3jJbpxLTuen09PTgbT4I3p/vTeenVGztrhX03Dpj3TZenm/1Yav3018cGfTo2mbpy8Aa304fpgPT5Gn7phhFtc0w9p77Taumw9N56bo07zp7uM1+nX9Pp6Y55Mxp3wArGn59Nl6fY06fpl/TL2madOcaZAM2vp8AzD+meNNP6eq04TpsAzo2n+NNi6d404AZgPTkMY+dO96agM0gZ3ScL30JNOf2Gk02gZvPTrAG5NNRclP033pm/TxBnOAPsAaIMz/plTT1LYp9NYGY708QZjTTl3BUoJEKrgM9NpjLTTen09MIEslEWkwcgz2BnEbxl/sq09XpsUc9Wnu8SZMq/04gZxG8lFrAtOXqdoMzTp6zTJenz9PCGbs0xkALPTX2n4DMUGe/0zTpnqELmmeNOCGeYMz/pjzTuz7vNPSGZr092QIgUZ2np9M8GZp06KwVQA8hnLNMWGfH00lp0LT6/7ltNMGdUM/UB0MBX7s666O1mzAATANZDVtTqzGanXjjPWYt7OtmBMgaJoCaVj3xH4wy3Uw36amFSEpfi0SpSI1XtlZh3G4C47SPAqAUe3z9EGmoIJjXu2nf6b0DciPqkPXQVNiZbN7oYlGZG06mxd9GuYnKENl0EH+YgJluAL6KlcIqKbxwrwARZKkpFaXhDpAbgCnU3vio8BJSIncHg/RYi0xDR2tkP2WIZ6wkMhjD9v5Ip+XmKZdzICbYXDLuZ964K4YZpOLDZMxmMnf+wuKZXdm4p3ApHimCzGxZJ8U1igCWSDNB/FMe03TjvIbYJTHeNQlMfAnCU05WZRUDjF5THDUpwEbEp2eSKpj533kECSU7kdFJTMyioLGV72pOrlVDJToBAslOmS18QMaYwI2nH0zTEjcWA4kUpq0xh0yylP2mMqU06Y9AIJQImbBumPRsQDUL0xB77mlMcGC4hm0p9riHSmOAWd/R6U5IIf5KHBUBlNDKKGU7+NFOpFwdYmozKaypSywA1WcymNjAP4XJbtOQJZTB1SVlOC4DWU9gEDZTaR5Jan2UX+VLspikx+ymCIpn1FpMWjOY5TjJj/lRnKdA1g4ACkxVyne0DcmMyeXyYh5TOxm8SkvKbFMbSQD5Te5kvlMyiC3STSIX5Tg/0XeIZIyBUyRLIlxoKnbLoe41N4xyM/zwJBEYVMyqzhUzdUJFTFCBdq5yaBRU0JoNFTZmAMVNrt1Nytip9riIZiHAbcE3xUxGYxOy/V9iVOxmLggGSprkaiZiTUqrIZNw+shp3DPqgLcNj7Ctw7AJdoIugYT9jkSwdQz5S1n9NeH2f114bB/RxVa5DjBgpXl3IdyWrD+x5D7qV/cNH+VeQx5BlH9HyHAIS/Id8g9GQKPDmsFMxkDYDjw8T+0vD37iVBMp4fawmnhvPD9P7EUPsAGRQ5Sg1FDiZn8zPooYLw8oEjszxeHW2rdmbhhlcAbPDeihhf0TmYWFC7hhvDlLTO7ZOEiQOHGfb1gxt5ZYLLSF+AYMAGr2M0CQLbyW0EmW+RQqg5SCovYnmahQl3QzfAF5mPyIGiJ0GVEM7d8DcBAAA1BAAAYoAAKWAAEqCDRo/gyt8I5qRLUhEIeQZcEB5QDJqQ0aDLLF0WeLGJgCb9UKGQo4clAowGNJputV+qjx7XYydvNjxFPvqcwizwdvefdtdhZeZAgmrkxYcA9xG0Biowy8aS8wU22vKCoQEIrOSek+faConcBL4CSSUVQsEQU4JTjA3ALwtlmHGQgCEsFTsiQDpx0/tKF8m0QzFmqYCKoVYMAkU2likIgEABkIDR/T/0f6SEbSkcqTQyV2LBNMPaY+HoaPyWbumsH0mWDXp046RMWeCoKJZ8AITmgl2wcWZJ3P8qOpssOHO4CSlK0JlWTdglIrBGEO3xQjafCiBCjWrBA+Isi2ihTX4B1Ge40BLOJ7IsMPkNfiKelmWWNiWb0MBJZqFQHwhpLNkfnbakKaL/eJigcVFKpMSQ4VhuxA1+5lnTeyw/6ZWlNVoAySYwbtQaUcipZ7NWrSzoOaRjVPaSJZ/AlHIA0CDWNg4s+UU8yzIrAj4BWWbN4DPaJCo7Fiwv14wWrqkmDJyzLqBiLZqWdzE0iAO9qxhdFVbtWc//Z1Z+SzJWsyuJnkHDwE7gsCFdZ4rzpUTKCY+NZmC6UqhItALOI84hZMFI2yt0APbK8LZUH3IDZak1mOrPTOPysjNZjZaCxiehKOBMZeBmso+ARVnFUKBsH0SViBxCptFnIurpOAEsoHxoJjA9s9sOnCxD6cJZ/SzxVnEZzOQFnoC/QEPFWTyJ8YYAB1MBwxANVMlmOCpl7IJCBmYW5M3rh9qBk1LTttD7Gt21DT59qpa13vv2knTIpuDwiFSpIEQP3rGqZPuHDarqLTm8GHmMQevnVDeBr8X9Nk6BPP9zlNDyr/mzJs62anQodMZ6k0JqbuubzzQTjKPa2+gJfCW0+HsSlj3/rRHWzaUpo/nR71TjxHn9yk2aOIzqOd/pUOnNrmFIFv459Rh8QOqmpKNS2Z6EdYhay5hvHZWBJQW6YFUAI9AdPHbEDdqe7IIgmdUpSWQCeiQeMZpM7wwPiJkSHIMHZu34dLWm79K3CAOTxMHsYig0Gs2B2bxUGBiz1s4D4524c37jML38QiAIVQb6wJwAfbOuSor/TmkTxDf8HfZDnQHMzjABhDY1ihdtVA0FCgKvigayY37yPjujN4AFXMyRj0LgpYAAfM6jLUQEATOAmlwAS2djActc1HTMtm+Xlv8cM42VxngIzxQXLMC4g9szESAl4PtnAwB+2a05QHZlAzJARDHyh2YUA7cYniFtwmvXj8YGTs410TJlgsZr+GNdAFs7yFIWzlSQQtnphAvI4mpqNNlaD51EughsRswhweiFP7iXj1mVQ4ySB0QAFP6R0Am8SYVv+xghCS9tVNo5o0r0CThxhyFxHZChqZO5YvXkbazlL1NPGL0c9s97Zv0CJlhA7O8aZVSs2RwE6IdmZSN93vnYJkReu+QmGJMOZiwpHp6gCQJdSgo7Mx2Y/sxk7L+zCb6v5Ihiy/WhsgXH0q6p47MDhkNs3W3TNgkjHXwAYBEyZXN0Px10OHNSIZ8GhY3DrBBjxdnuCP19A140rZrA1wzR3SiLCJuhrmte+iJcVwgOr2e3szDjXEhdiNK7Ne2e3s77Z++zTdn1yiVabpRi3ZygwndmDZQgCPUld8xmxjgDnWhnO6Xm44ZZjrjWlnpHKKtEYczfZlhzjdn4rnsOfNTf7Zl+ziOGeHOOoGTs/EXfSDYdHzGlDSTasp4FLezdmGm6CLqNaiEHg14RQjmQRDBKN0c5PYFezhWHTMPhACMc+BxmMsgY4dmPzQDwc+I5pQiGX8qHPWOYp/TvZ0XxXlEuZF62fFQWvXPQoPWc0+H5Pkrsy/Q5hztdmn7OKPh+wHI59myyjmw7O3GLVuf8ABzKkjGhcgoic+09ZiVVTmTniJwQCMVaAU8iAyNHyCYiKtBGwANs8Jznnga7MmWGic1pwVhzEBkukPLUFfs1bk5Jzndm+HPpOZZADCJ9Q42TnmtNasBg8XYgApzJdZM3nGX1/3NKc8IDEQAInOVObrs8/uD8AtTn4nMNOcRw005rnZKTmu7N3yBTs9MND7T3TnOnMI2I2c50hFBjwwG0GM7ckyZUwXbDltHBh4B0bMKc4M5kpzIzmKHP8pSocy8wDhgdDn0eCtbKD+do8NyDY9Sm1nmvDcmno5vQjtjmBjaTUQKw1m4dUKU/0UWlvdIgwSl09lQIAAdKJ82FSvsnM1qcbXUDHN2Oe90HKycIzkaBo/jM0Xw+HZgMA5s7xOIHGQLLvM+tQKSIAAlEi2PP8RLyQOH8TzxvNQW5NIBNEVBhCI3A/IjTUFzJBY53JaXzn57MEIWI9P1ZnazNjl8pZFqki6Ay5z5zVjn9HOsuYiQ+KxirKXLnEExwYMsczi1flzU1mshbi2C5c2rQMVzjLm+XN6EYFc0Hx0iKwrm4qIXUTFHO84ipzt9nJnOCqticyMOIOzFB05nOJOdVA80590ZhUCMAjJ2bWcxk57ZzNamunOPCZ6c9fwhXAnd5MmUEt3upEtR05zN3AlwBKvE5QBQwH5zUrnM6reuENs/PhPS+3tR8XP71Ee0VfZquzkTmqnOVaaLIHE5o1zXDn6bPFFsTUx655MjiuapZCd2aO/v2iJBzzLZK8yZMsdQDB44GjA9E7KD+ufPs6+1Ce+MjRl04huY1SuG55Bzr4Bu95RufGczq56pz8bmDXMP2cTc405pJzizms3MSrEO/pa5lZz/Yl1nMOuc2cx05uNM1/Ch3P52b2c2bqsUwUaaTnP9OaKc8ZfSkaiwi9Hy/sbAc/o5ogS2vFhRnQLipAJLmLoD9eQ4UJqAmpgGDJr9DnKB5QCKAD/FnoR76wXjmCEJiCQqwnwtcxFCuIQMEfOaM8Ey5mhz8LmBjY5iX+c69AN7FQLnQ6lguYjqZC5gmybPSy3NsucpegPNJPYUTACXNYIYiACOQGNzurm34A+yTicyQ7Y1zrdnVQPt2aYFFm54NzDbm+HOAKMdQKg5qqD+a4tugHMVns9wh5lzNOKN3NHMUMajFJmTCjlZ93NWhTJQke5k9z1/A/lCpTSIMGwaYewDmqhFWmBqA/bbuSD9hmB7TP8eZmQP2JvbWMxngaDbVId2EXdZLTdQ5RVP522k86by78QzPEgnD4MSnI5Dq4DxTxHCabWaz2CqbCajDhUNAJpgxJPKV2JECaJ+wioUpkd27fZS6WJVNnhbOHtgs80bxJA1aNlk1K1vLMPvNcoTqyalr8VlAD0kgK+lh2/wtMCgkoGQQ3tZr6cLryV7ZenQvUVCAgMc9z5HD4KGNWhnwMTJKa0VdbJStVDGpXoW26Sy07poyYZObMeOyMtgH6BSLeQBTqd0ZsQAZAzJSJx034AN0lSUiyCBoYAFeYylskORyyKdS1uBNaPUU8Yh9GF4xn5kWHxGM87x+zWtU/L2OCDOFn5TICJXChH65jMkfspDWk0SJA7mSuP2gC29yavgAPJlq49VyIkEqYmRY34zzUhO+hQkAConN5+0iU3nrVxZoE2/RlMabzXiBlvPUWPIsX1NdViq+LZvN7eaWAM7QLbz63n2pwOrhm87t5rQAqKh5mj4SRu87BYs7zVq4ddA+KEPcC95xEg6hHDZy2VA9edeQklxP1RKBEsyJ6KFEFJyIhX8vSC9mcSg1GIFNsvgNwUb4o0lyEOkMQiUYgjjD2CItPqfqKBO+K9QhGJaFPaZD4MIgN3L3vPbednI+/+jTIYwBxNgAhUA5gRQfn6JgGnIwZIHoQ/IgbFORzho2DTrXOwiNLK183Sh6fNjAEZ89z4rua/pi02KDq3IMZFcMOxfpA1ElQYYZQau9fFexH8GQC2pQrYNvEcXz9A9MOiBaEpjm8meXexcAyjhlsBC/v54RmTt9BrFAKAnNNJKMoDo2VlBDAaS0UZL9QEus9hBLpqUWYuRpA5Rra+VlR5aEGGQRnz/MrDkXj0nCKyWWpXS6WH6wdiQLIQNSv0Xx4QzisjBfMAG2Dj4GduPLhX4AIfOOdSh8wm2GHzRjkiZLldzcKEj56rgKPnGwxo+ZHKRj5miaFwxFfOPdnM9OL52d1A6YT4DFwBJw4lEtbzjq4//Qr4ZNMR4JJc4dojkuPILRebaBC9azvYditipTyTdIT4QIhRIdv7qBENBXthsfvMkOL8rLFbHSIOBY27zmlBnvPbebaYot5ht4f8RrFBywEO+dHYeiC2vnleE5AhAgqe9bXzaNc4qnU5I+qQoQfoKMMEToJDp3N7NYoVdoqvmMaCH+MpyU4kmnJDYA75L+aAASHr57YYm/nDfM2NUDoib54y+H/cLfNabW/cdlZW3zGe0q+BqhTHwRkjUPzlH1GhJ1wkj84nhuhyBDlEfNgp3j8x7dVHz+dhFfMp+dW+t357DYZ09RIrQJBTWKAPWxoZsMaVOo03vaZuAK4Y7fnHtjZ+fqHjb55fzB6gmCl2PDLKudqN7h3BxqSxbGFlKpq5jozqNLTgjl0SqeAMqVhmAAIQ1DWWbqs8zUdEgtVn2CUpMhefJ1hYrY9cRtfAv+fwC8f53rQaU0K2B3byDQEQFkXz6RAproe+f/mXvNBaqRWgccDAwFx80/yttkygXUhX4+etXBPWZGmtKmY/HuYAEyjDRakFPagCCjLmI5sJkJTf9mw96/NBRhw3ngFqnJBAWMVBykJco/XkOojRzh6Nks+dH4y/EO8CUgDD/Mr+aYKWXgG4Cm/moE79ohn83v57JA92sJQCCBdX87CoV39OKg37OXkZfiKWqM3o+vn8rLX+dZFpFs6cY83QS6wN7jsmo/56uasIjEEZ2+fkaCVtAAqwfn0xLJ4ch88Wov/zbCJwUaSdVlMSAFsDz+VdwAsrOEgCzrsWEC6fmCsorecH89auf0SVPAV4JJMHarBoFnXQ6hG82PvuYZnNIuZee7ISX7Lal2K2FxwAAUzbBCfBQJ0zYMEFxyp+EHI+MR3HGc/3RHgLsAX9B78Bd2s3LAPvzT3mrvNEZ3wAKu0foLhfnPvNJhHl3lgoVez8u9cFChrJPgK34VwAqKFnYlW7y49Jv/Y5Im/n8ABd+En8zfffAAEi97+LWKBzQ9YoRYL9wX5d5UpGsULS0YwaxwXoxOvG2sUEdUNpQ8pkTg7TBcNioEQ7oLZCUT4DMx3wAF6nTdg9NlpgtWBcGHm4BWtgwFTc/OlaE8C6VZaYLSY9StB3KnxIEkF0gKwuQjfO3+bsQAM5gdEGLT0uC5BazBq/54raH/nIuhf+fJ/eUF3/zgYgqgtR+cjerUFi+OCfnUWisfKHTlAF6Dk+F0d+SK7Aj2A35nYLjjkoE6Gxwj2LICDoLhwXUQur4sdAOv5sBIm0AADzyhdq3qIFgayUCdgqX4ABV88sFpKzvvniK3RiZ18yBBVdmSBltQu+IEXPJsFx7YcvntfATxLr4KrAEPF1h59dBlyhUmTSFmSKKQX0gvXQBLrN6waJSOQWK5pxPRkihyF+3zqpR3mC8PVWINXy4MwjB4AhDA+em4OASgKKtmFliBszhVEooOAa4tcBH1Q9GCaCYI5830LDhrWZMuHpwjKCssLSLLKwtGgrLC5O2U0Sdfqqws0gCvIiSgDrjTvM+4zqgFnANz66J19hDwvhPjiaXP/wZS5sh5MKyVJGhXOPGFQAEtdDvwtRBN6NG+gIYgag+9A5/OnCxixv8QYDKOF7fgpvBQVIBNAB9BKeQ10U+Ka8spg8C0xuITSEsL5KSZhv0wFi9CAZIhKsAJxPhEHoZU4xltQRjFdzNCobM4XRZiag8gEVVBTohdjiOLSsSZk4lstDp/hLj/EtGYpTSYh4WwZiG/jaNXDGFmJDGhAyYcwTlQZmrgAgKIp41XB8gZgnOsgLnQJTKAmBu5UmBFzAtqEDNA2EW8oB8kEspeNMPyAeEWI514RbvbMhFgTA2KxsGyPlzBOVC4h6wsVhDELrEAvIHFCogRef74rkmaeh2IhFq2AqyzoNHcRcmRnPZ99zYchZK6E+dAgGxFxUANYrF4B58l4i6oAWKZ0kWm1prufNA3oRsOQqz4RIs5BHmuc1EPVgsBApc6bthR/tpF7iLcUkFIuoaaUi0LYSU63bcFP1tGcoMJVAW5KkpFO6DnUSrExlLcmAjHEi2CTq194FQwIGdQnmtZJ1ib21sqKAKuYvspjPjt1GMxh+6Pwmbwp+VNeYZme8bKxThH6Tnz3azo4vrCOJOtsAmP3tOkvrvJ+16lN9dwNTPd0WQ81hV6lT9dHqU89F+wCCbBTWrxseP2PUvZWgLhnoGGDcj0leV2V9igi4oLKuHcsZa4do/Up+/xwAWgqliSKqpSDLhqxT9Wg5PSIzvPBFkfebWWRAXcxq4e0Pl+tChgS2ti4i3oK1w8LYF3McS4KP0/wRJdC1creIaTR6x6cfp1w2b6GxDdp6A8hxmfzUQwY03DuZmgf2tUsapZbhtczr360zPffttw8ch7MzWAjjovtkQLM5chosztWSPcOjZS9w+WZh5DvuG+sArsWSBrJiKHCsG16zNJHC11mHhyPDEeHsf1/IbbM5GNcLAnZmQUMLmdJ/ffxPogfZnCrImCTLs4OZwvlw5nVjYNkSsEJYJTNASMWMUPKBPBi3OZnFDF3FskBXzWXM/mYVcze0XdkMbmcl/Y3hlQSx0AoISnCPOabQuATTs34W8K5HzcID+5h/D3vHbuYi6cZi8ubY6zR14LZCcrgD811A7jTIPw/4MwxdUExyRqEBtcKeMSpg0FPqTR2Tji5gdAiUaeWjMSRw7jn0HvANfpMEAxKwBWLLgRe4Mu8ZCUwLzctTsunAehm5XuabQuI2LIPxgsmnxmjYHUrVdtfdy5cAwHJ/xSpp89TV0YNaV0sEz01dGB3oiGB48jR8jLQ/0CAY6JdwxGBtdDo2S7lE40/eUKuHLNKCY79AQQ2v0AJHPBEakdYQYOUjCNB9ViiIFVoqdBrqBMun61NWgVH/ZdB3tjxRH58itcHQjDZsZ2L3cY7kCu2G0C2gFpIsjswdxKeAHdiyXF9SwZcWXAA6BfQCwU8q9mjsxkZL3MS9iyx8Pu5PoDtxZAEf/QInF/mLQVG5SGGxczi93GJOLg8XJuEjxcqrYNWUOkr8Gwi12xclSIjc/3YLlpUaLHYFalKVlPWQ+ySXZYyufCo7nF7mj0ULeVPOkzji+5sV6GgrnOrNSUT3bY/pgLhbSYSXRyUYDQAX9C+L81gr4slJUftYz52Ij6LwiaP//uFnF9kSeKjmtH4PjxaHiyGoGAzIsXUDPE4SGqnbZ139H0SR2MHgfaA/OUBuA9eB1wQXRY9umWosrVCCNhYt2QA/g3HhHoSx8WWUSV8eo2AAl2vE67FGuizPByI32p+cD/Uhx4PIvKKQ2vBll4kGms4v7wZzi25xy1gen7H8N5se9Jd7xkeqZ5BlhjqEfy/ckJ8YjLHwPyKkQepg1AhrVjKZSRKWiyZPM9ChJzmkbHITDzodUBOoCG/gIPGPyNg8a/I3FRmwT0CWBLj2CbCAClRqG8WvYPsM6UW6A7cY3oDVJa7fQhfrjs/OB5TC9wmBEuOgfkw86BixLronrEvwQakQxlLe0JvoGr/XzgatoCPB9mLE8HUGY2NQbdJ9SgZDIA5vkaGEUfQOy8uO86p0wMFqjwHw02OSPAlSxlyKzJj7ajfE1SqNnVp8Om9wC3jdisBzSeVBGme4YSwFvRcgoajkmBJj2SZQt/Fi9+M14g0DV9QheW0EQO5xTzBHKermw0VvWV+LO3ngeaq8cs5Flx4Cg7BtSgDagJXSGqRLMlRULCagLQZ8htNwaPkL8Wa7gfwQZLlLKLpLKnEOErw+ZfuSThg+kVgA1NPEkePs3/sRsoG2Hfe5bYbG8USJ4CgVIF9sO7UkOw8HRH2i9eQytU64KlcO3yw0xF6jJktKsys+L0l1BEAyW/sqFxlr5EjtVmACCMLtF0ejPIHzQRiGtHMdPNB80XZgmYrqiK8EDcDdKE54vIBl5gQjBfYWwP0fNKNtVXofSIvQYHEUdRhrATZUNKBvkuqceQkGzrTe+oY1IKCX/VRSENZWYkr0QVmj6ZFzyR0UqoJ5YTcLTNcbqlpqY5OWIBsy1aDpyhixcAARx5JDhoo6nQBSwqdJVJbSWTTGWhER/KU483+2M1drKmvzlxlrQTyyAAH/bDf3S5iygZqsFrDnUAt0qYOaQzFlAzAX1hUBnJZofpElib6MKWViHPuYnnoGdchLeUAfP1+pQAamZSXWyC35J+CHNWYgEtzP4CoqX23N/4FrSF7RGGilotG7NT6Lnw6soXOSMNEIgASpdhFnUxG/A2oBw+xJrSDqnFWDE4+xgJUAo+HjLPiCaDR7bmSQko0ylS6bFxhc3MX+abW+GdS7al3mLBkML8OepenSRExso04q1zuFxUfLU4zFomirDnPirBpd/g1WTS5LEaWLGDcxeMerGlkNLuaWJUsspcoCxSwVmLVCXa0q7RHk2mylpgqfVKt0hgwG36i2lxvIbaWaNr7lyFqrSkzWi0Gzy0PoWCvEoTYDb0TaWEPY/2azMDBNLzIqZCNIPOUz3qkFgk3oCqWq0pTpfpQPBUMhyzlMuAHFbJ9vIsTTsLJpiV0sEUC4Aeul9S8gGBc7Y7pboI1WlE19ZHmkkM0BZJA9el70U8VmKf1vvAfS9vZo0mhkWcupwaYp/U0VZ9LEDVb0uFYaWQN+l/A4K6iA3PQ0fkWkDCwCzERH/zb5QZRls9jJWC4KXGNqQpa+2tClsFqU/TWppLpblwhESotLkEBuYtnhD7w7WlzJxZqX80vjAkTlsYUOtqwQkLtGgJLWdGk5fd+PaBYspUXWlFJ7rAjLVanTRbpiS0UE+aLfGmGXRdPmpfLwLcrTKyqGQD6QXaN2mjxlsgiY0UhIQKNN7wL/ElWEXKZS4SOwAlWM7AOCAmQly4t0qeeqMzbQZ5hMQ05Y/q0D4qzAYDLuYn7+LovCsi+HxkGCP9njUnKWa8yBKsVIoY6WccZvpbzY3eloS2H6WoyFM7l/SxT+3S2KdU57M2ZYcy9+lp9LdmWGr4vMBlIIxDFrIHlU2ksvMAYYH5l6JyoxRVOwvMBvBIxDaQEQ2FAssA5X6JtFl0HCZKXi1wvMAZIHLF63j0OTNhAZMh10KrFruDIwiTuPUCd0U52+rhjLlHdKBfbUfg7/FcfjkVHdAPcJdQE6ruu+jGWX11wsiEES6oAQtgGbBtB5CJcgQ0K5sRLSMHpWPcQdRg4M9KXctcHKIPmvCApQBJy8Tl/BN0NKJen49uB9BDc/GGjgmAc+JWqh4bDPQH8EMXQDGwxyAfc9kLLXGOnAbZlkhB8xLoDnFIuVSgmEw1lrLLM3mZgOmgZHxeu55ZJloGov3PPUEKOsBu0DioB+YbPgcWyz5+u30aRgyhOlwajUMGpNLL23G/ECRXG10DN5x3jncGKZOnwaj7KdxwrLBFmG6O02v0xGVluUjFWXTBMT8eqy2+0HhLdWWsyMA5aWAE1l5oQrWWnYhUwc6y51Z79Q3WWpWNcQZ4gwNlpmDKSmngOyJZwAKNl1eB42Ww2N6wamyzFR2UD89GICi+cZgS4vR17Ll4GtstFIc/A+tl1SZGXNVss0imcSx5FpLa5wH9suwaaOy/cJhpAFjBActIafkgBdluezX6ErQN3ZegAA9loHAQ6BnstK0c5y9fxfAAtRAuRM2NVyYL9lxGjGWWpQlPN0oE0mM3LLYOWQfi6xYzY1Dl4rLc5GhoBw5Zs4wjlkejVWX4L41Zdt1mjl3ejdLBTcsyb3dY24VYAYOEBkKrygCJy96xmVjl2FEfD8QYpKZTlkbLgIVacvziYmyyDWRUqhOXJWNh5b6y76x6uDhYGhssvBP5JLHlsbLCeW20NJ5cZy5YJ6wGae9Zsts5fv8Atlv0jy2WjEurZciE04BgXL3OWhcsp1Pg4r6B8XLc9nLEu5cZNy9eQ1Zu52XxMNgOcDyxwca7LvCHbss2gY2A9HpPjAMhlV1SRJZHy6sB+7LtoGgcCBbgbCFPlzXLW/Htct2+g4AO3AfXLsIGaGBG5Y4IdLlyCAE8Z1zgrqmBy/jBtWLeWXwcsFZb2WRdxucjieAKOLlZcYS2YJqKjHuWxAC8Jad5p6Rg/LmgAj8tkyENqP7l+6Gg+X5Yqh5Y5g+nliPLIAxxCjR5dzyxGBuPLc4mkezLoeTyyHl1PLwBXSct+sazy3VVYbLUBX88uwFfDY8Xlz8jVgnaArl5ch4314KvLviGa8uqgd5ywxhhvLfXNBcsLYfuhq3l02C/4GDstGRcly7lxz/L3+XQxAMjLEwyhp/GSMRIh8vjrhuy3Pl1XLC+WJ8sDhg1y5ql2fL1oH58vj5aXyyIVlgl+HH9Ew5wbt9Az2T7LKiGyToNwC2i4KQAtRCZmyYvm4cOiymZ66LMAkv1bpmaOQ1mZ05DMyAsYuu4eLM3awW5Dz0W3JoVmbei5McaIqXAYuPSB4beQxiszrKyiBw8PNmZ9gK2ZnKAmYy1CsQxfxi7h8jAqYsW4YsxHUos+nh/Qrov6pzMM/vLw2jF+cwGMWq8PsADZ/euZ26L05noUD+FbxiwnhgX9sRWv+KV4fMK5uZslD65F/Gix7D3y1qhR0oC8Ecsug5cxAzblmgT0LMuyD74cYXObFuyAQRHH4O4ZYsAEpaRkAnbF2aS90fTi5mllAz3yFL4uwGYGsuT53TzhPBiktB5Jvi96SgtjmMZsqqNJb9QfVxHUI+KWnLKU4D8nuvBouGJIH2Eun4ZFA4jlt3LXCWUcu1ZZt3fVl42oFRW8ctisYJywgVr1jSBX+subEVES/OhouS8/Umon9ebO2NGimkRqZQ17ncZTWQ64gVMzWyGjovaFYOi4YVs6L63ckEsO4bKyX8V2vDU5njaJu4dA1tYVnlA3uG5a68ZEcK9PtWszme1fovcZQ8K4DFrwrvgAv2K4/szGbVePNR84g1iJdmdxQz2Z8JkNjnU8MIxep/ZEV1QALuGYiuxUoqyTnh/GI5hXL6LZZAIoNihrIr1wBiYsswFJi9Xh/aL4JXiUMFFZasuwDSXBIfmMj4Jsa/o/VAHIA6lsiYyVFbrA+rFy/LKnGJPMGxbNi6PFyiwnWU54DU5QEANSFKUr81hu4tn3KtknyRlyj/cWbOOoIz/I4Dx3Yre/kuprdFd7jIp8u8jlWW+2NYkeDWKjlw4r/CWJSs4EsGrtKV04rHrGLivswd6y8gVmRL3WXA/oWCdwK6Xll39w7GGiNaJa9BYvxovj2uWDEs85dWyyYl2OA6RB28tkec7y3fRzUrkpWwgCvQe4iSaB/vLh2Wlcuj5ckK3aBrQEcmHzUN2JYz4xMJ9MrbpWsytezmby1Uh84D7iWWEteJeuwJsV+hDP81YQM6cx+hoYRc/iV3zikbpvIronYhqwTX7mvAqespK/Q0V4tLKBm9rLcOYGsu28VgAGMAk7NhNNTsm0FCQjN5Uh6LkwqOS0sgAxpndERxgRApQyxMSp3okSWmSZ5satoMPh4BiKrgDX2nhAjIGa+2MgpMYyIAV8hGDhMgPNLVamqalKRhYy+84jor9ZJXvBriMmKrhltjLr7x6IAqZaw9G5NJ+AAGXLsuHZZsy9pl9lzdr4VHFxUQBiBpg+7AlhprQAAVb0oIe1NZ0SFWX6Tt8BMAwSADnjrUHGNrhAfnKE5OHCrNaScEuprVaKyzF9or0f7LSv5Ebni3u2xmLn8GyIxPxaGK16JZFLzpN7+JBkuII6bJDfy2KdfoDxWC58yyRcIDLZWE5IcIUxIIDS9ki5ABIdxEfuGbnQodzJExFxYbvFc6yp8Vx6A3xX9kPbIbBK67o06LNuGgSsmFZBKwD+1SrKRWISuaYShKzch0szNhWjPB2FZCrIEcRErrvtkSvQ4VRK+4VgGLwMXMSuVqJxK5GNDNA+JWyxCElchi8SVxczIRWt8bwxfCK0yVlGLXqg4isMlcxi1SVmkrXP7XKtsldpS2ChzkrAlnCUNhVdSKwKV1MGc1ARStYIjFKyRfYbg5rHzcvO8dty0wQ2tG3gB8kkh0CIEUl1KnDb5qsirQrlHqFoSjOL08XjYsbejHKwcGFUr1bpXolOgWti4GLJQgtcW7ICnQBPjDXF4uLnVXz8Dqle9i7XyD+C1gsi+NBkuN+iy55FA12B5yib4Gv9GcVZuuvcWXKOIEGDi16dSYrFABc8BxJZEIBgcLSrUCGo4uO7ANwGXZ0OocpHrCjWFEAS9mpps1uanHOJTxbaqFBp3eLTCWbCN+CF2ePynHLYBhmQEt+qiGS7XyNADTLgXqsYJZpwH7sCDLtCSCEIcIC/i0Hkg0cxWg+qzRofTQ5UkD2W0ThY0NWlADSNOAeyqqIpB4GVJABCpPpkhUnIA9gB0uJbAP08aai9VWLlKA9BL8xIRU+zMRG8atQadWwGNmTGrkmFgKAyvGyGMM0KZoKUhHDhD6bvcGQjNT4MrwCnll3hleKEOUUDrZBN5wdgmIKP4iWjLYYAJCi6ZYoI8eBygwBTm2avBxaVFki2irCzZW1qtxJaC8GJMDiYIYtAzpsLnTEh1Qeuhx4G9AjUQGLIthByIwtaQnnNHfkkoMNUDGredSqatEvDdlCC3Wz0leS6NkED03WvdB9F4ANXRPocBqXAMAMctzEdUMurADAVOkKaQYA6YRfauTI27uqXBlNYjwh71FXPUVq9uscnWktWvXPppVcHq7NAarKeSLgiFKDDwO8Ta0WZLjxqi3sGYkKJ9ApGllFeQsM0Ar2UXgGBuMkQKGAwN3rfPfxecolBHn3pEsCps/0l0eoE4BtxZevG6RJawIQGbfwoBPjdCXCLdQSmr+WExANNGaa3FbzYBLP1XUIAyvG4q5bkYPQHnFEBOLFYHJJ3VwXyCTEe6s9qFcEDfF/qQBeAKnNrUWWkGfBmerfanJAORJcoS8Olf6oVpXY+NCAdng72pg+rV8GB1O7wbQjIoB1tTaxXKDBH1bOaAvB0+rN8GF1Gape3q3jhC+r0pX14NAEc5wEdV3erVFWmaMCqsinOdVyvImsWOvnNyDJQPvV2+rh9X26uT1bNq13V9erx9Wc+NJDGJeGA14BrGY4Osj71lZ03XFuXodCWMGt6vHLUyJp+gziyXsGvacFYM0gEZ9YLsIdNPoJd+I7xpscMALFW6udwvn0L/oKerDNXZ6t0gGOq3vV0GoVGmQEvh3EoED5VzlcQ9XkJTc0Ew8f3Vyhr3ZFnquemsMM89CM0rEoHTav5AHNqzFlZhr4CGOstnFaKy6VZW4rT6HBgAvod99PVxaqr11XKkiVHVACZ2kdBrzRW4cTdlSwa5RYH9DqjXP0PqNcFodIlmx43WWv0O38G7pDfgSlOpjXQIA4FZUS3gVwgr8CIIyuOCbJkQvR6Mr+iXcEMrZe5ywmVztY/4Hyytc5asVS2YhL9tiWhENR8bdAzF+1t4ooDWMOBhVftXsKZxrt3J6eiyIeJ4vIhgdOiiGjmPKIZsajHOQGlr6LxKsaooDWSw7IsMaKBqUC1wuZi8OMAz98Xh4XOKWdzq65wa/cptlVPmboPrfMQVmzJbWGIhN85YtzbTmkCAcQm4bCdEe1y5tRrRjG37+muWmt2AyxZTusvIVjAXcqMGa6GRxgraMUlxWgVdEvBccbRj2AQw6x2sHgFhyALsSGzXqFA1fid1HolgpDPZ5WVlNVDWyxQVjkAYjaezx2Y17aGxh64ASqW5f2gsT9CAoNO/YQ2QBmo9AQ+FJsRMTjMIkrMPIAGtQywIWCp8G4/eguoZUKPMFvnIWLAYMNZ+1DyJ0UWpxRIxIICGnw6uGC11QALeRUvC+LBvqKyES5aHCFZODLNe7CuGKhZr04UETBBSWpY24VE6uHzWShhN8hOa2qhpps4zWtUI3NZOnAy198Vdubtwvvqlxa9G+4cKBLXQXBoPCwZLY5uljLLwQ/Pza3wxaU1oT9nKB2vRHpMA9PVoLsq7mSfIvYwCaiZ156/cGV4j0nlRdb3JDS/vZQS4mokTESxuvVeHkLU20Kf322n5C//58d6mzsv4rjoKi2XN0NuuFuxyS51BbPi9YDRoLZbBmgth91T84olMwLdundu2JSVda/XQLrECMqn0DayQZIh6gy1gTj9yhKGacUc5yys7a/f1znhmVJpAEoWU6AEwh3njTYB+bi4xaia4vm8QtC1I8qeE112cMRAwIBbBJmAHYavOmsIBunHEBZgAm40XgctVdNvMfeY5bG/YCIasvnbp6KhZkisVsDAIMv79gANwDiSwEMUEBG5qYI16vF0wkHp3dTnNIsgjdtYnQDup0CiKWQRDOhtef3FV0QSy3rXouVZ9EXU0HgjzYs7W/CikAbXU714DdT/bX66DLtboAz39XgcYCBEqDKTQuGMgPOHJ71RS2vEAxdC1x6VNr+O8uPSOo3ay/GB72zDoShQlkjTj9oV+DUAp7TZytPBebsOvByx+4v6tYt2GpJMYMAQqgIHlSkN/dX04EXUBeE87X12uu6dHqDP8yxdb9hgty8DmKwVi+eB8yTJNvq0TVKst4FuwLtOTvgubfQbYMGUc7zKzKq2sntZra88PGALroXG2vDLljgAXwx/AeNBCvybfRUml4FiILkqhNvrGTTJCx359IgTbWb2uYEa9Ku21tEAbEXjnghtd27RX+idrumEp2v8erTqfzBFNYt6g4clqXmnC2+qagFymH+qxtGGPC0B+EQ0uJRA1D1fkz8xHsZ3ERHXHHLkhZJAxgQPDYgNXirJKbwpCN8F4cYAEXTghrtbRABu1haDWAXLQBBzC06/W17DYe+YwvE+/Nrog/XAtIrnBiBDBzG3YCh11qyxWwkDjfBcTONhAGEqdtCBlxjyCqcyS4lTgqF5bVwQAf2AI4ATq60jEvSrPzl/QJMRyBIDyoE1lT+YI5KSF3zrjnXaiDf/v2ABt7AhC0xhP2ug/u/a3FGuziViTbkDqaF6CKm00DrFnWWQBWdcg6xvJ6cd7ISiEAtdfg61G+QJJkCRYYLhBdsC0IFlukmHXIEhiBfLa9t5lKQNnWWGA4BesC0qFkcp7JEe6j38T06w9wAzrLwWZGjH/zI68V548DAk1y8GqhYGHk+BIzrlj0RylBiKWC3ysWHOrOhVvbXmaf4JrJ48W7nskJMIoVf4PnAkDyPQEzQt6mNPazI0EfM/GgiQtmhafAv+KMOJT3o4mtRfr8KPFIVSgaxxA2D+hDUADX8s4L7pB1QK0cACCyOUk5zQhoP3CTcQmDEDSyHrm3Xitgh8vy1Gb8eVwcPWffnvyK2YhgOfN90F5BLLPT3X7JD18tUiQXL/MG+bpCzf5jILNRZ0iBBiJOc03EFkLLTUAppCvtV2TGFwoLH/myTrIrBf9o9++MzXxWqSvJmed0fz19SrhyHzovbVajC2YVhKr+lWrkMPRZhKy3el6LONmYQYoFEsq2nbayrP0W2ll/RY9IuiVhyrvyHnKv0gFZK3OZ+PD0VXE8M8NahQxSVmFDkvXiUO0laRQ/SVsczueGLeuZ4bSK7CufXr6ZAS8NeVdJ/bFV5ci+RXKYtbmdIivwNazh0jR3sP6tfD85UF7YBcPm4VihzJ9SS6nG1rYoWsKhJoCT8+gQdIGMixnWuLtQOIpFDQSyJAGEC6jtf462G1nLJwFhEpLXlGja+a6bbh8qF9gC54EVgJi7HWSJfWrQq54AIQnw4cXz8+ZEXgTxIj0+a6dlRmjFfjzRkVokKJpzlRt3yyQCi8uxkH7EhZozslwgBiUSYSU+BHPQ01MCKDB4lo06/Z1dTEHXZlOtjnF8yQIaVYfcBvEutlauolx1wgD7/ax5l8daxZRX+70i6mgdvQHqdHvO4F6Xzm/m0Ot9deDUM31xDrJ/XcIL+hfJ68kFynrsIGxaKW+bMWlXNG3zmb1L3GxhdYvIK1+T9rdrEPpZq2aeE5E5kwxkTfmvq2Xry1gh17LPTWGcP15fnA9uoChDRnK8+SUEKU5ShYXOQUahaysmUb+ihsENAwnGHI8U7YrnggXQXhN1gwbNYLxmr4Nhx0Zrw2GYBus6DITeSYHVDwwGr41mofHkDsYXOQoZG7fSybFOw6M13prVzWqBuPxuma7kh8diV36YBo0bkWRdG8OSrjxntotbXF2izyV3ZDAvW4SpKVbobEYV0Xrf37tKtnIft6/nhyErlhXSGPGVdhK/L1+ErPMhleuI/pcK3WZ9XraJX7KuJVh+Q+Hh3Xrk7oAivslfBQ7DF3yrYRW0UoBVc5KwkVpkrXP6rBuZFaN69kVukrFeGCHDclaSK3mZvSr/JXveuFFYBKsdAHM4Boi9oLyWFmjosK4yJUQD1bJ4evtGCYRevLUvdDvwQDb9I5wNpnDOuBv/2FYa80E/KNogT8o+pj1QMPCPFyLeihgquYLYIGg0IsK5gbUQD1CPibCyoFuq9TIa+Ix2mUYeaRPjpJ3Bo3xwnIxDeUY93g+IbDQ3Jpju4OSG9WXVIbXTW1iPQDfWy9kNihDVqh8huwEDtrYrZkobTO5ii3lDZmcHcajYYrnA8PW1DaIogkNna1vvBmhthIeaRGgQNvCMgJVjP/9bT3kc4HxCriHJExT2pGG6W8nM4nWHNmvJriDpeIMH7Ahx6ZtyysHwc370UMjIzXaMO0tbuGxt+9v9wdLq6XUKCGa9lR7AjuPH7+KjNZ+GzLR/gb7A2AmuGJdVA5ry9UTdvocAB12kYQxm16CDJmUT67RNdLK7E15gr6I3zm6vuELo6cB1zgTSHJ/3z/O9+amGrbL/LWDcOiDeiU7z1xSrQvWfit6Fd0qydFgErGlWHQjAlf5S6CVqQbwP7EqsGVY0G49F6H9Og3DRpvon0GwHhl1qbeH3kMa9c+Q95B8wbgMXdetggDcq7I5Q3rbvX+f2PNdJK6EVgczqg2hzPODfHM8yNm6L0RXC8PO9YJK/OZlUbMVWcit/8RXM6DhL3rL9kfevkodKK4mxh6wkzXm6zZVetY5DlpWt40HFBMEUHfRD/VygwbCtXONP5fXAxPRrzjEcG/yNoIfHY7ENuugMpJ2gPa5ZHENfV1XdaI3xiNHOB9wPN+vcSGxhWSlS6F8QJvMYCwO3JfmtfEYr4u7kQ5r2zXLuQTCCNxdSUGhr1v6nDMFJGIE2lV+WLWJQ7DU+6exKB3Bs/LluXSjMHyyhhMFuIPBNRW3RtZc11/d3Rr0be9WZ+sLtcu5P6NpHLIcGp+NM5fB4z5xzxrdgn/OMs5ZIUqv1y8qfznAOIjwZ6frER48rcSWen7EixGGwQhShYz2G8cK5IdnK9Sp92rjPC2OsUNESg8FQBKEvVixhah+cNJuGNeaZDOKOrAd5agg+l+rDxHBWuCtgVRLiW4gNZrdPMQgnfjad6tfpSja1LXOv24Ia4llcBiWx1ohUGTHwXVE3i15kCi4XAOvHyfroE1+18b/4G+4B9EatNaUgIdI0zHBLJITc7G7Uh4EwtjScQENjfRE1UhoxajA4vsvhAbU9LWNzYoXprM/2n5byoEdx9WLumE8+S7QmGaO52vP9XY2nKP1wFyI/2Nn0bG/XmdhUXtuqwGNscbQY2lGsVNZd/ZHBsMbc420hs5wYHuGBRupDxAHWzXETZ/yaUbZ8DqZXxiM54nYm+RNkkDlE3reN1jZd07QBhaDMpXCYMITbbGyxNrMcK7XR6gcTdU448wPsbB4MBxuI4dn6wZNygDI42qsvCTc846JNkgR4k3QxveNb8a7ol+Qr3TWCEKyTdMsPJNnEBDXXbLq5jbcKvmNz4bCY3PSOOTfXU5ZN8ID2uXAGCngak3TFNgijcU2LJsEgAi0XQKXPmIgBhWDTDhey+kNsYbXA2Px30TsonQiNlgbB4stuh0sdOwzpNv7L5I2J4z/DaeG+blhibeWWmJsQ5bJQAkFQPrBCEDWvQ+cFC26U3eznAl53oZcANa8j5sALifmIAuShZaC8n16aiwckr+tIOhF84XWObrJTQKnNuvIQ60g6CwL2Gw+Au4Be069hsWogj4p52JuBch67HZ80Lh7XZfOGhdv6xe1ufEJIHsVg8FaoS1VRI6bL8R6bJmhfS691RUpUOegvcFsBJZ8zG1nrrR/nV/OBKldy2uB5estk3vRvT9cRw/NNy7kD+VMm1yiMqYCXIZYUtzxOoyLKFiI6mVvgz3PzdyAvtyPy2MAblr9rzYAOe7QIQBe+rDpiM348Cvvq1AL91hgUTOwWfOXDd8YJiR0TrdM9oesJ9aCC+iF7opTqZ6tCIziTnGSZZHie+p0QuE1dn81yJdELepjpGBWhd/C+iFgziaABpWLGcXH85W3ejr9gWAZvSMbzi7TNqtUlaofqnBTAeI4/14MLTjtlcFtokZ6+U1vKr0sHf4BeO2M8JyF4UTFcGREt3fH/6POhp+xK7sgCu+leuK807aGDbjWCmMy3Sjg+GN5RjpJHpJtmAZsMj1+qmbKdSQ8q+gbOG+poEnD9IKIZuxxT2SxTho7De3F+/oqFebw9nDTGLmaBqxjpiTqm8blk+uZtKJ4xl/jHXC1N8/LJk3vqgdTYqWKlV/02PU3g+sChdD6/RCj5TI024/P1BeEKva1wn5U02nWvQBam6wn1w2KfnWbpuAXGPg96N0GbHJHX7PBzaJYwX1hFzp31AFCvTe/8cHNpfzvXX/puSNbzi3gl8HYbc2rStrERgA13Nkl6Cs2yoz0zZs8KaF80LfKxdpRszcs6xgKTmbEjNc/M8ze183zNx7rUhdBZtizYXlVr53Pzos2/aCtB2UYtr5qWbI82mCmyzb3i3UBxXFL8QEOTKzav82rNwiaIYXjL7hhfEaDrN5Fqc9lmgps9bKLF2JP/L4rHbGsWzblY6gVtQ61s2SctcwaDK+41kMrLQGymP+NZzg7GVvBDwTXti0b5ZP4aiNsmbeI3yRsL/SxG7Nhi1DaI2Xxsn1wIW0zuPzsuX6cABv5b+VtU1sG8FX6jpShUDhBoMB9AbIuW6Cs7UxJG9RsskbJ9d1lHNfpUK/aN1BkbuhN2tGTeO4+1Nq/LWkM85uFYd6mxH5/qbfgKxqLzvXmzta10UL403xQvx9Zs8FKF5TU2VkoE6Nzcc683Nzqgq02HqJ9zZvQCYRQ9rrSs6iNBOcjgxVbNwLw82/pv3zaAI+wdOUjh/WrGyprTHm/vF5Drafmt/PIhdXm06mdebRHJN5vHgGAoP08bXze83c/MHzZoAFIXMbrK8Qu/MF+CtCxLN8+bNi2fAv2BcapFTPAQLd82ZZtAEZ+EiDN6ebM/XzdPd/ROm139SpggkGSfOuBisbI/l0cbC82L1wX+dcKLSF0O6VPWv5uhX21m/Ip63zsdsDZtZvXZ68bN4RLXWXECs2zYzy+AtxGD1MAHZuDsdUS7ONhwTIgLbBOV5ejG7CNuMrGC2IYR2+gLwCwscxLJC2JgP5chsS9iNqzoSy2Yv0rLey/edAp8ANC3r2DyoHK/WMAJxLDmVOFv1fsC8kPQPhb9DHE5scEK3U4O14PTBfY6JtMbMzm62N76omsXFUL8wflg2H+q/L1k3uJt2Td4m7ctsoAQ7WK9wuTaBm/2x0Hjjs3hlsaJeXkSMt7RLvk20CMcDYZw3eBhYj6w57lJ9DZIZcGRzWVtjHORUXxg5AOfsJM1WK3eOzi8dRZfYx2hwOxHkcNATZ6m/sAPODCJgCiE9teHa7iAf1r3sGjYOewYAUEytl2DH1glJs35NsafsAd2DxsHsq44LdxG+MR/mDdhrVf2CTkREJMRlQryX0aRt6ZQUqzVSvUbBhXlKu/Fe5G/8V/ZDCg3NKtKDc5GzpV5VbfJWHevqDZl61oNuXrthXXovmVYlqqKNmszhg2USvGDbsq+j+zwrOvXo8ORjRwfNYNzwbao2NEwajbN6xEV+VbURXLeuBVdHM9+LXUb2q3JzOW9a5/Y6tjwbpo3E8Me9b8G6HxcmLiVXghuClf8aF3pQEANoACEC+/ATm+lV6lxL1hDvzo0abG/RN55b+WWFSthgI9IqEl0HZhIh7iOPxfOsM/FwFLC1mttlZJba/WxVzZUkYljbJbCX2ANNx0biW2zH3aG8FBgF3pPnzdBKw7GxfxsmzZxuvS6ql7Jth2ehmzOptEbqM3VKBqADgBaEJspbrk29iuOlYOK1WuSOjKgAM1ssOHNHKAt84rMC2fWOgFargznloAYUBXfQlRqCWCgItjkAN05p1siLblK9bljqb331u1ue+ewAEjlW26FSsPHx8FDlq8wAVEzUM0DyOGldnW6CtiWJLCWTyudcwT7l/rY8bDNz9qu4WmIq6fF+wR/FTFMvutOnwxLlZ1JZrXznj6uIfw8rx38633x/bBfxlOCC754UW35WIMufxeqc4HN64uPM3duILUSxxWO1nkgfVH8/OEbdDm0kbbliloLxUGD2b3gz/0OF4BLweZt3gBhohgmIHT+zgpbMd0ZJw1lAFjb1G2gdFOpfvo4d+VH5PG2NsOXQH42xMIdDgMNEqdjntJE21GmknD0VzlkufRlsjDDRJyMN/rebP3aZ72ozESJAkm2aSzcsUDaF6p4DAwdXhysFsZ8FNbsGSBbAQUUAi1cQI/J+QljONX+CDKbcOw8z0GGij+BhWPdElqhOc+Zmz7NKcauUxic22HNrGEMNF/3TebYp0R5tkTjuDmLVU41d+wHptz6MRuwYaJCtD4I5NrMLbDHQ+RFobamEF7cgtI7lHTNsQEe3AkDCr7472objA1HSUZA/h6tjCfpg9BbJaVYw7/fLDvPjbNuB/ptcw65iGMw7noab6hhhE6gOe1z0NN4RICOl+4yYJwGbxRH3cv7Fc9y86Vz0jZ63M1vNZZNm10ty4rPS2d1uzbmzy7TB2PLtPASVxFi2puf5NobDq2XGcP3DYilkFAB7l22XvQMEcWcPPYAIJr6oGGCvRvojs3CKnMr1cSZsPoTdjs5HZ3JDdvp82pCIDJOryybnrxuHxBsHIfpG56tvZDdDYVKsBrYWFNbhkXr6q37cOarZUGx9tjczfI39VsXVxMq71wMyrivWWwhmrcf8qr1u6QtlXZLNfIYxK3at0GLsIUjRvuVbkIzYNk3r5JX/KtajeRizqNu3rIO3UivMlfZALyyKKrYa2vBvW9Z8G5aN+KrJO2ISuxrdTBiet1ibTiJ2BF9rkeWxblqorT04rJtHxcfg/QqPQAAu3AEu76ew09UVhJiIu3gwCOzGqK4JN8pbgy3gxuQrYkmz5NqMrfk2YyuBNdryzMt8AI72Xms5oTYggxstyJrPO3CRvegaDQQ+2sXbMWUJdt2TKuW2mt4VbPkAOdsZzZbGzzt69bfO25SMC7aF2z0ViwDWGmW1w52fX7OLtj3btkZUzHj/Ja/a4tp+bYK3lEsQrY8awLR2fjFeWRaMwrcjK/Mk8EbUy2Wr3jfrlqwZ7Mz9C43DZKHbd5ABgxu30R6BtQM67eIW7gt9L9i+Gkmv7baIoqu24LcW9y2yMoAHbXNWN65bWqF+YO4NnPaSCuC9bRMGT/23wEgJQiLQHDqwXx0IQEY4Qvmt0ZTRfHu9scYQXq9XYetb4QHB9sKqPitnwVxmAFNGH5t3VfqAxutyCroMG9Wix5Z1GJXJb0rPWXYFsY1npYzWN63j/MHStTrqtKHM3tvzcH7Q3luGWf5g6QZy/kju2pYMotVKq/dqE5KJBmlrWdKvzAK/+/nbBFBXds18Yf25dasgzNDXP9tmWviVTLtudbcu2PJt/PqQWzDxyZbOcHkjINWaT27iNvXps3647PF7dOA+OxMuD422Cct9LZEpUpIiRTfXtx4Are09gw15koAbNJJourGbJOqoNZ7bP6tNCt89Y+2zINn7icg2aYaAlfZG2L15/zXI3/Bu8lcDW7qtsHbkP6DVuAVdMq8atmHb+YJqzPw7YtWzZVq1byO2ZRtAxbMGyDF3wrkY1VBpOrap2y6tuwblP73VtODfNG0z+4nbP2379DhVeUCdId0NbBMXLosRratGwTt8pKNo2QhtUw0HACJFUg7GxmEwCZmMeUyMQHAp6pml777GaLMZ/3Y4zJgXfFEXGZMFp/Ba8wtxnLgagYCYVA8Z2kbC6AraztEpp8fEp94zbtBPjMXR3+M4foNJTPxnKFYgQGYScCZzXqOSnDymQqAKU9CZy0xwZASlPwmYqU46YyHWyJnalMqZHRMw0pzdsTSmVmKf7XeK54VWQo7Fli0ZsEwAuNRNXpTcuE1SLkmenHJSZgRo1JnxlP4EzpM0JWTo7TJmNBQsmb0ktaZxrpZmAPcZgRSsyWHE6IpS8T5m78mZJMUKZwyAIpnirrimfpMQUOU5TYhTZTOXKY5MYqZ25T3g8VTNHnTVM6ioDUzbymtTM5ozshfT1AGy0FR9TNNS0NMznTEZTBGtAVOm7LEIhaZ1zhEKnCZJQqbtMy6AMNQjpm9QJp+ghQK6Z5FT1LmPTMxRkScN6Z4P6clW/TOp8lxU0GZtcMIZnvgVZ4RjMaK/SMz8ZiKVN5OXqhkWLBxTf624ksLjbwpiLyVZiyMdfWpuEu8838BHE7cG2jDCdsShAaw5kIzxtl6sJ37DxsIT4EYrlPm4Cq4ZelMPdNrsSDppaRBh7FPHKBnEPABGA0gZz8vzEVkDJpW0KYW8zAcH0c26LRbJ6IYr9HZGfFqoy6fz0rbgQ5B6Ow0Mqmt+WLniGj9tKgHlK3XRqfu6Yl1xue8YEq5ido20Ws8QvMejfB2PARL9bQe3boNkflIYizF2AAuLHshqy4N7ej7Zdpr03o82OsZZ/c/J8CCrxnjpM6FbcVif/h92SFc3KYagbaddF6dy9Lf7GvMsFKdgLt+lgpTKUS1LzY5RO2gOnA07K5AjTtzkczMHaV+Wb/jRGFHXYDZpBjAH9zzdoDytXPTWIpHg4DbLvBgDCx+3Xw+/Fzyj3fjanO4Zaf4NER1hz7LU8avcxcyI5ygGDBLMXfyvR83M2hWQbtLnKSuqtei1bS2+8c/Aa0YB5CXgnq0KagPs706X7EAcjaMZqsFrRQjJ3xEoD0WomK5lqRb4QG70v/pa8y7pbI3ipFWa0smAGg0k71HNEOaJAEvIGZDS+CA/irJ+GDOs0CBco88MJM7+8XBtwLrcG20utz0jSp3yBJXnc8JO3t5HYSlMOsyL0wX226d4sEmeWo8tWze6W5vt0Arc22oCsD4CAO/zRyBLUe3oeNSTe3GyAQvz9jC3QcR4o0kourto7b4on18uAhQDGA1x45bdZW28uCYYly2pN287vQ4OCsK5bI8/mVgQrauWH9JbAcEQ+st3Bb4xGlTt7iVSa42VrU7R53laZaTb9BAqd63jhQA7zt27aqK3mttU734T60gWnatO55zXjLrYH4cuqRZPi9+t+WbkkUi1sQbY9uqxVu+LIIneGlOOPXwyGzFmL2gBzEDm3mrO2Wt1sgtFW7kQZgjYuJWl/AmWQ3cNut0dqc3IJjIIr5XyKucHQIoDudt3bQCWaKtyObj4Ied73jenFUcpG9aevh8oQYrnDX4JYaiNlIzZx0GkLlHiEPnnfc456VoMpg2W0Cvr7eJy9utiAr+63qcv1YcvO0AURdbfCXPSNsXbwu/eduK7cxBbsgM+mfO2TBtAjWihLTv0IYpfcBdmfjosA5sszjYX43HtilbUF3pltHbcYW7xdmtLuV26KI/NXXY8hdzAAecHtROK7lYW/3tl8Qe2WsLtPjYmE0ldkYc+F3cytMFaIuxIVwQrUhW/xikXZLK0QtssrlF3EruQQDwuzRdkdtHiXWEtp7d8S7CBrlCZ2tOPM0CG0Rg4oDrRf83GeH4XC42+E5dBlIA3JEPu4Lz69WXflBR+GKrz9EGj/ZUJC0D9TXRoCn2MeqrnVp+A1+5eFG1vjFsKAiTaSLXQ0loZ4G5YsXakSyoPilUIjpujfcESyC7/pHKBvQMu+mPiZQwVxoBm8vEIawZEDGcq7OAo6Fzrbb+G8IykUVuAptODk0vYOp2wdRqcuLWABOIWAebxY7ZiXbYOXxnrjInMeAFOpkxAaBj7IHWKyEZJj9elIyTpdNVIO7KtxUb8eRpBu6FcF65Qd4XrGZm7cMRxeUGxL1hnb/JX2Dvu4dl61wdqHbPB2KIaMpA/skiVwQ7avXIHYNma16+Idxyr2JX7VsMkTIgDIdnQ7V81cdv9mcUOwYd78QPq2bet+rdUO8wd6NbBo3lAldNUp29rdjAqeh36dtqHf1G0ENow7ca2WdsmBFX+Q3yhTzyp3pPO87cIxQ0SO1G/a3bMTwcSDu/kR+/ii9AkXmb8QWg5vOIiiY4GlTXbQaNo3tB6Dx1/DDoMKkTnA/b01kc8IkYAPm7ev/bC4n3bVe3qDCOzAo8b7tgA7oK2WWAP5ZNO5KB+BbYe3EFsOIcV2zHtnxrlqDfnFDlbKC9IxT42jz8ZIhr1yr6emJGTUclHzxvClRANirqp3olxHD2zuzZ8/b16EBVdqBQfEsPJoKyLllV42tX140IiIP62hY4CwiAKLkHYG2hu7hFaqbwxnMTJLayhpTpDS9QrN26RtyrYduwqtr7bSq2zbs6FdZG/9t+g7Gq3xettAHyK6Ld6ErnB24SvCjePhLLdqyr8t3EdvCHdDwzat1HbFg31buXqC1u0EVuXGut2/KuODYNu1b1kczxt3h5ym3ajWzyNi270KAAHvaHaAe2Xh7wbwVW6duJFdge87hmNbzt3kqvVmRYu39l+mQE8YC9Pvqg4u7KVi/LV63vlvQAN1ZjEl4fDGJ2TaZYnZm0IkAYUomyXRAMXVNv8nHScu7/DQ5SNQcqg5YAl/OgM6mvND49cpkJiK7wARQ4KfHe2hUkGkGr708dZrADlyA00YfsNIN8eQUImXcGIe4GUhTG+kbP/nBhoVAOegAqFaZ22gqZnfScyRgDkAhQBd81s8Ec4i5Rnw4itFQgBVSWvc/IONsgoXDpqBWZe/S59LZylldjoSmcPeBmzZxnh7RTlrLuozbHW7gtidbXibBdzEPYlW6lt5YRutmAru3QYnmyuQbx7/y3cluwzY9RN39FRDDpXUruv5a9ywRRwh7Hchgw0tfrKZBtd1u1FGTf7L+HY0KztFrQrx93P1aKraZG2U9z7btB22RuZmZvu4wdrVb592sHtS9fuixwdiHb2g2jVsK9elu/uUN+7KvWP7tZI2Dw0rd0wbLZmxDsjPd162WIQB7vbFgivqjfsG5qN4W7DvWIHuoxdyKyFVjB7HN24HtBreUCRM9pB7Uz25cZ23dWe8kV9Q72D3SUNxrZewMVnd/FqCMNPBPwCq+pO2QISYo5MKqomb0ebOAGwYTBV9TySAG93CVJnT63u4YrPguGQAEG5NuwOn1cVyyjVD869dxOSgVz/Eg5jVgGV68asMz743pJ3zR8eyGgtQTyHQx3Y8NfP0bHhJMGdLYYwanwe2GMi9mZ7AWtY8IewAxeywo+cD8h3UXt11STBjx7FhR7nTViXkve5xe5sp3IZz3RmponfouxwlwxKMdXJMAMvfXps5o2prWihy4GxQfNO0LkGEwDz3uXnPo1ta2JNvTK77YECmj4Z9O+ERmrbrdGbGmsEavADX0FoQ7zib54dGCJ+rnRGh76J25assvdNYmIxdMS/UhDyuodKkAfmd3ByU+H18PEaDK4vdB2vb6yDCeMQS1Ie8ZNlU7FD2+9vKNYDu4adkS7W6Te4pYifXPDp9eIAHIAaSDF3b62wo18uDnS3N1u/nYiuygV787/pW7iu7oYdYCYDSu7Qy3w9ugXenG5oluu7cK349uoLdwQzBd6nJT9UM9st0iQux9hu30zz1PsvoXZcS11dsL9eLW0puBCe7wUTxvvL742Z8vK5bHy3aB6QrsRl3SiTXau25W90XjSpAa3vJAcWu3RdthLDF2zAyjsW329a91BkUQCiVuQSfte8dx1U7HDGndvO5fde2PAT17BYmqFw+vezs/69nrbcs2LztBXdwJmFdtPLfpW+IPgFZuK2bN2RLa6GY3sv8E+9gVdycbke3k3vR7dKuyPd5/imb3k6WhUGzez5RXN76on03tmAbt9CAw4t77V2CNbYEUwu+W97C7romx3vcxoGu3W94fLDb3CyuL5fGuxWuNt7uu2ZrsZPbF4yB9ha729qlrtNleHKxzF1a7tU201tRAMw3JO9y9b8xAr9uUEyEu3O9oAjVUQqslevdGbMsgS57HIA6HDrvcfm+YJ987RRnVXNbrfDy5AtyN7aB2F0Mjocmy/G9+Xbib2wyuJUaV22Vdlbb973oLuPvaJAM+9+C7ZBX4yuNXYLe2qPEqDrV20BvT3Y6u3mJsXL3V2UytAfe7wWmuWt7f4363sFldGu0298a7Wn3VltTXZxGzhdhD7SpAtPs9vZQ+329la7bZWsPvyxaiAfkpPD75D2CPuUPayu669uM7872yPsJUs2I/hfFd7NH3A9uRPaio4x9s3jKeXJtt/nbY+we9qN7J73F0NwFYve5Ct/j7UPGkqOjLeV2/CthPbWb3jKqSfY/A9J9yajyF2XgTfvaU+7+9rv9qn2APs9XfuE4598LLOZWwPt8FfEKyrlki7zb34lKwffz24Ktz0jFX26pbIfd3IjZ97V7PiW7PsUTew+93glnjB9AczgQeDFMM59q3Lrn3nXt25e3gA/l0j7i73vBXvDbPXP59wEAa72xLubvfHGyXlsV71gmpxvjLZve8gtlXb6X2xPsSfd4llJ9jXb84HkLudGQK+yXtjC79BXFlvwfdYo8zxg3jrPHjPvtvbu+1tRh77cw2dwsdfegO54l5l7PX2h3v2fet41EA5Dc+KDihtDfbIZaN97NbTy2WxtcXZne+59mb7LlHvPt44U2I9Vxqj7vr2QgkBvbW+yJNkC7iX35+N7fbS+xm90T70jYn3uZfeO+9l90777723svf6C3Ywp9w3bCEGRcuuJZu+wKtsz7932yGXA/djraD9mkgz324PstfaZ46z9oobaccq3G0XZiS2h9gSrg73yJtknTYsusZpxTD6SRiCuKcFMc8p+w7Xim8SmHGdveaDQFw75yAQ5ut4TpizuUlAMUSLPYo3ZzmspJFGJT81xXjMhHZ7srBrdfJXxn8SZRHb+M7qYqQumSmeTLZKbBM3LhCEzm7Z6aKFKfSO6LATI7bRE7VJ2mOyO1UpvI7qJm6lOFHdNMcUdrEzpR2rdBzWQqO+0pvC41R2ulN9/WJMxLhM8LP3Emjut8H6+qmJY0zLiX2js1E26O9MpxkzMHVmTMLKbZM4UbDkzbx2uTNjHeEKRMdwuAUx2dlMxRT2U+cp0UztVAFjuSmccYNKZlY75IU1jubtmuU2JsTY7vJitGCqmfl++4pmexmpmQMkv3IDSrqZs47Pynx7qP02uOwKEaRoppmbyoPHfBUwMdlXotpnDHBvHdhU3oQeFTqyhnTPL+EnMW6Zv47RGsATtXZKlKCWkI6yoJ2AzONJTxU5CdggqoZnmr7H4NhO6SphE7VajehBV1AZe8ttzU7/b2dXscVWQhlZYDl7pZiuXtgIhCCTPVy57QpofnvvPfBcOhQnSWfwAIAeZgu+e8ZAP57abZEAcAvde7P7gu0ypQXCsMBDG2lG3d4WZDOKKrboxMefqpB9MSjwBBXuxQcbOzWl3l7PkMTXs7JJJAyQDw8TsvEtbqoE1GK6q5mNpXMAZkmY1nfGeZtDPBkv2acBDsCfmJyd+iAIbz7thRGZbMfCNRWuEhgkQFFYFyupViHIzorpPQB5GZAyefgIC+RWA96BiLXbOz3ZLHakMtAdrEtBqpg5wFVz0IkkQGGlMOmhQdaCeOgPHaBh4H0B+uRJEBLRVDpoQXK9lIjUSsgSIC2Ad2CCOOTXANVS6gP+P0cOnsEE4DqtRPNQL0bSvc5e6H5zNArTXN0EyRBXip3d6gjaxcYXt8iSZwBFbd9Q609EIDJQHN9lVIS57DggMXs4OK1kdQD9oDH8W5XvTldL8mqPEARozj8gdqveC8aqgcR+vgO8vA2CVFe55NwBaudXggcPrcq+sqlUBEoYBIgfQvfIyXfkbFOK73i5nQtj4fgZPOboBk8M8jZ1E7xdK95bbOQO//3yvfbeH0QJV7C5W+iAlA9/mkeV2JLv33YoNi/Yfsddlw17Ur3qgdm8ctFkWd56ot/knny1sRZ27c3HUFbP2rWwc/eVOzD9vWLU32PPtjkHjO+/+s1qVWS3VU9jA0PS3SJb7tH3VvuBXZC+y+NNfbLH2QCtT1F3WwBd6K7opEePvAHf2u0m9nb74F2UvtCfdV24T95ukoVAoIDtWQgm3xfcn75V27fT8ABYWGhdn97c/2/3uM/dK++p9isrEWhjgf8/d0IKB9nT74H2ov2ObgHDGR5Jr7012efusUaOBzeCk4HBKDBfu9veF+0sDxi7Ne201v0g++UIN9kh7kP2udtkPfG+2doQj7Lr34ftzkfuBwlSx4HX668lx58mo+8t9wL7OxW+2PIHZDe4vt8uQYX2fSsRfZ3zjNttAre63zZvRXdp4MCD7H76iXwyupvdS+xT9kT7jHSxPvwg5zewhdzPb+b2FCsUAFugZd9nbLpb2SvvDAcA+/iDxdQ3IPHvuffaq+6SDmr7VoGKQevgFAmdSD0z7DiWCQc3gp5B8yD6z7rIOv/t/fa0m2drbXDnKA7LKTGZn5W5ZfB7iNHPhOMg+KG+cD6d7lwO6iufrbnI7GgGLLMdbTgfkXjj5MJdzh78F9PgcgbZCuz4ocQoZHkTLo0VBSu2dOeK77+XCOOWrizB2WD5sH6uakwjpXbdK9fljcaBa3amuf/boe7US5xgql0LJjJcfaS1CA5ozlxsACpYsZ3239lz4TLPGcwdOve4u0R9gsH7/6iweJZcIc1pZaJ7NwP3gcMfcUax6x/d7tcHAQDiFFAmY2Dv1o3YPfVNv5bvo8uDx77Wf6Hzt9g4724xDRiG4zgmXuxg+WBwJd/kWc4P/gD//aGWpq9tkHI9VxgnIQx1ZkSsAxABKUfKJDlYNe1c9X26MkUsgfGLbNe7sDiMpAEPVdkuXf9+BHlSMwj4OKUsuE3IWfCJD3G0VlvvoxNOMiTsiY0OaqCTCJweKXGxFZToAtNyJQBWIiARPbAPNjQZKWBOa/ZDq7DWXAj2UE5AEtxdpO4xDVoJeARFIaQpBOvNy48IDjtXKCPI5D8dXN19YgtEOCEL8JP7yt/+9YgTzD2MvFAebtOgedaS48dEKJgwGe/DQ1ceOM1oTNssQ4JEjNaNtKAVtrQ4txfXjHBAAar+Shu4uZoDywQ7qod4S0H3JKCiK9cwK8AWqc92zepHHMEQHzAAarcU715jWQ7WdLwojA47bxbb7TlYBScM1eVCgLFUTPzHSxuAVRNGKtcKZggUJAugCSgZAAgvlceQjdlhYD6KbOOItWnavI5ANzYR5lDx7CkzFBSQ+kXLTc/TZSyt7LnEdWq2zRD2m5l4J9Nm04f+q+JDxMcLHTAkkkgbEh+MDxCZdiB71SnYfnKHvAr/G8St6od//r8dfPNltA7/3IhoFA+CEmRDoqHMkOaC5WIkbKirIGBp6YkqocEIX02W1C0SHotXu/E5OtOw61D7vxzZUQBFyCawRPF1Yh0Eya8UyFPZlW4fd9m7Bz3Pv1c3dkGwyN1VbdB26nuA7dvuxNcA27eq22ns5JcNW9wdrp7yEhDrL8HZjIgjtgZ7XTyhns/3e163/d9HbNsNJnud5LfGiA9hwbiMXwHtG3dp2ybdxkr4D2uf1gw+2exDD79xez3rRvHPdweyUALIc6YOFf0rrdXBxN99cHM+N8quZocVIosD+JL9Qii+MYgyIADX1pCug9EXAvbiw8e/Ot1J7d4Pl1s0uPdY9Exl/aeMP4mMDjDG+469omHsP3YyZ6zacAFX7PuDe9Fn4DZbHFh4vTF/LbMOquMDjGrB4Y5Hd7VxXelsAg6ApdkwYsDC4OR3ukmBXWwv9QYAcHX+YcXA9yq+RNcHzUSGg+sVBaLm2mmAaba+Uy5vR9ZUW7H1iUL6PnppsRGii8BOu57r2wWdpvRhelm7Tk2fbQk2F5slWTqqWQhgSyWr30Pt/fcuuor5+wg4vmUHN0aEOCw84ODr87yDcy2fYemy4Fg3BEaobAu2LZlm8zD9UCncp8rJQJ357rn55mbavmx+Mnzb981gFeJbv03Els+w8fg889ZyQ8L2Z5vpxfiewIZ7XzBS20mAY/eD21h1u/r1S3AwsfzeN84yFmosjtttZtP+a4ig5ddkLH/WkEbs9b5/rLD9J7933dYdUsF4HC5BrWHaa3rDwL/WC64TDoUHbn3vHymw71awXNi2HRrWR4djUVth8otmGzDsO1FuJ9fCStKFoYJXdj3Yf2dbo62ktn2HWcP4hHGLYTm8HDtkHg73w4dDp0jhxHsaOHU37cOtA5YTh/OB0X7kO5F1gk+dTh+eBVJbGcOq4dykZrhzXDsGbI629NMW6fHW9DNydb5cGcMLg9ZXh2V2Pib1ZXFqIBNUQRxTNpQDpM3cRsTrYbAzQIXTCoq3FWBB0ZxAXSt2pkyM3nxsTAe7NUPuAhHqZX0v33CoYR+sVh+Hik8tFsjlPzhy9NkILJiBi4eXzetCzfNhJb6HWT/PXA6tg2RAGBHHc2HJuNw/E483DnsqbcPTTsdw6qWyrNzDDu2An+vU9bN84PD3IL+8OX/Njw4KC8AtrkLU8OhttM8dnh6vDrd7YC21Yek6D+B1qDyL7SMBYQO82R5hzox0HrK5S+QetTcFByuqYUHtddagf7Q4ph6ODgGD2nncoTMA78m1MViAjmMZmGkecSzEsSl8b8TeLkABXnSwQxiDbyAFPFfYey7ZvB+oRl8HmV2NwfHq1aDnRXDI+L8PKYfq82FKCEjlJ7LYPrzsJXZMR84j9nQLeKEnQnQ55669tvoWNB2Exbc3aqe39tvm7Y52GnvA7aqe6Dt6Xrr0OnosdPY+h7oNgPIvT2DBvijdcKyHh/6LQMOVbto7ckO7SAPgq4MPCYvTPddW7M9/W78z388OLPaCq8s923riMOVkf0/q5/bMj1GH8yPdnvKHaF/fod7ZHEv6cHtN4fV9IvDxU7dw4h9yc7bcR9UVtvbGV2tqnjnZKaMep0RQZ5BJvv5g5qEI/BjCaWkN4Xv2cbj0zSOXzMzJhWSrTYFnK1UIOj7c+2Q4OOcvEZj0BQFHHuMjEc3ncko352Hocf3JFYef2WVh1NtyK7uoOgKVKSPf4DADKpHu0BcdrqFfYAOQd97bzSOrofUHZuh/INu6H/N39mimFbvu89Dh+7RlX2nvvQ8lu59DqPabQAUArPIfNWyMjowbit2pRuNmdtWyDD6ZHxKO5keXRahh3M9zpHpO24YdoPYRh6FV05H2MXoUBio/2R7odo5HeRXnodM7YuRyUAZqmjiOnANV7YeW/zDhsDjyP+we65W/unIZjQzQWmmnQbw5FB3KRlAKKAVAEsWo9xAJoZ0KgwKPrjBq/MhR37D8P9dSGgylOo+wCFaj2K7JSO0nuHFcOAwaj9HS6KO1vqYo41B5HlqL7OoOqcvUQdVIhXSGpHL23insSDdKe009pMzlKOgOkUo8vu60jhg7i5nHcOKo4sK+Dtt6HEt39p5S3a+hxakIZHYo3vouf3YFRyYNiZHIz3Vbs+FYBQ6fZRUbRP7PKs23eAe7i903r+O2i0drI99W9A9rZH0qP4HvsgDbR9bd5B76MP1Ue+DZORyOjp27WMPtUfgADRanqjsI6O9blTsO7ZtR1cDx+DLNMWaa7neoMzvW11HkusQUfU7UPBxXdmFHxDH90f1L1SR62DkZsYEB4DvmI9zE98DsN7rH3NQfsfcsR4MAX72IFtE0dKRWTR2Qdkp7FB2c0cVPaaRxmjtSruaPjCv1PYLR0wdzB7Oq21BvMo5LM6yjstHudyBkdqRWrR7yj2tH/0PJRsNo6jkE2ZqZHAKHz7Lto48q4EVnZ7kMOe0d47bAe/2j2VHGyP5Uf7PYCG4c90dHNvFNbuqo6Ji9Oj9B7mMOpf3UxZNgMg9FdH7iBH0RHeevR6UjtsHrFHCgC8Y5cR+4BkHLAoOBYfrw5fy+kj55HmSO/Juf/YMq0w9inzBNG61sGZc8R18j+THviPuvvfg4Tw10UptbDoOOOOla2L2vy9rCrjMDeQOCdjjSKvikkD/UgxADvldMu6rInFqptl0gOFVcebOKAB2ra0P9xsFba1YLlDmDxOWkSWzLbBP4XFsCjxREhLMcvbFWh9lDwnuDBm/LsbYaOu1Fj5xE/m2aNtl+fzRx+dmSKu1WEwqFbeSew4FhM7+4OdcAu5Y3e+5xqNQ8YUWdsiY4IqYijspHrFGSse4wdcR7mty/L0mPaEimo/VO5+DyrmNv9p14uKEkIE4JuWrBbG3GmrVa6xxxNfSH4gBZqtuNKmwMqleJqMl2xACDY5yfJ4MBqy6Wh5EC9mn0xy2tj9bPwQopibo8qJoAFzNDI4PtMc+8fug0Uj7HAd01a1sDY/TZTk+dtmQXymBDN1Q+ujmNU7H4yMsoeUEeK42htw/YtcLdwfF2dnK9wAVWztPH1ASbQ7Wh221hZLngAeihLgCyYt9j5WLziIafxYdPOaxfk2TgdCUbjCnYawq9Wxwca6rUTMvyDUHm+YDvQHkcWwGoQ440FpsSvlpYdp+8oZbcS5vLgSwHrVkTOGdiJji7lWLr6R8tkME86Jnm0ARhB2zu2yIAvM14mxQ1msjvGmUXsIiPJhTxiU9Hp44o1BYOUmM87iLG6NDluMf8weM3IbD3MHxsPkzFNY4A2+MCCt6+mtcwBKjczQ7BD9CSdAn3/1SXd4BpzRVJLNm3W6M6hCd5hZuKAo9Z2FBNuvcrByzDoNHb+Xvvpi44W5ons68aFTSQqy0WaXCCSgFqjlSRR1zo0hACIF5WKbduO7Qh0Nah2VMNU3CkqhHcdhgA8Fi7JO+jp8Z7ccgBAqK4Jj26jLuOWVDl9udwBUV5sSKlKetxCUWgvIv8pEAxJGSTEgBG0IYMO4Ni8Jsu+stiShPB22Eog4piH0fnccccq6h+ZsQeCOoYd6H3W4jBjsUaoON9vhva/Owe9z8HCSi0tD5XajUHA9AJmdnBmHtmo74DtcYZ4oNuOLNzGPd4ihZuCSl5rhf0ds3YaR99tkDHv23ebvgY4eh+0joW7c6O2DvdI7Fu0/doUbcP6+sDVFR5RwIdvlHlq360fWrewx8KjuUb6t3ehbio51u6RjvW7faO58erI8oxxaN6jHrg3lAmH46Yx7bdljHJMXZ0fj47ox/Oj9jH25mTYCmORWya+bd2KSNWeihVgvf0/jVkH4VYKRdP/4/a4vo1gtTgPRvXB5kUfxPxFcu7vQhf1trA7eeqYXSBLV125ccFQY22sljpj7icg+iBFcWnw/CJQfKrp3sCdoEbGB19RJui0+GWUpi0XBEVdfTYHgUNDLt//p5yCDVmB6UDEsENwJYQSzu1LLH7/6h7hykeqKtUVYkDgH5myTwE+04JlkpHLKLh85hBffqYgpOeLqH2lPLg0CEuM3lVk1r+EU1MSpMdsaHWhVZRreZ9HPWKEh+3aAT+CyhPLWMgVEckE8j9iIWhOxMedFEMJ26VmO6rBtJ9vNwGkXBCJyH7L9EyHvy73sJ1DCPQSefW8WuiYa/GxRs7jAFCmNmuHLeMwsd0SjVxzlwgB2WQglgBNr8LUZEfwtyMAD4QD6VmThjEWJsNUV0HWxFK2Hci31WqvzUrsxT+u7KSSdvIpIqMFtkJIE2lv4hvvqBy1IHI/AGIkJ4txrEsyPyJyTrWr63kVYrA+KHW+4xcAGinu61KC1E7NooyARu2shQhTo6cf/DjUThCLJ+x6ieYXG/8e9V5xEzgAw0sWMCFS6qUIJz6YXSSNmmf2+znB3RCVOPBqvDE8biyAKMYn38Xj/Fyke2Bw8oaYnkcZx2MbAPaetiALFyLBstZEl8A2CJVbVigWTE7/1kE4eS0sT0YnkEBxieeiymJ8LRgzExxO66BZcMjGyZkwzwq3w/hFWaNXlILlBYCubGv+6FVQ/lsnia6qF6j2ggFkRcpdDR8pqawiPAVbE+Fo+tfIiFafwbie0qdWJ0HkueOmnC66BuuBMA64AFPDeWDZRkwOK9yOhY8AgCLGS/stZlF4G0oYCw2+iuoH4k6nEUgEdCxwnQSSe8PVfmtClLtHUJOaUDmljpJ5UTlRxuaDZRnLsZpAIC1wxYCJhcQnfqwQUMUTpp40PooQXJ/qIEZUTn9qGmXFVYdRW8iurzLpqdJ2/bo4oELYIbsmmSapO0pyG7L5EVgTlWlDz1I0Clja9qYHJDonAKXKSfd0hxQMGBzxiorHMnGPE7TOHtRIYnwZARicok7uJ2sTm7iMGQk2vxpe0s9w0iOafElVKVxckMYkqZik07gBReAKeKVbLpIeK1A4wk8oVEkFpiDNcpx8eQu1z2k5hMOoZ51HVqPH/TuUE0y7OVlhB1TXlid0qeGinqY/AGCtzESe/Y+dJysT10nQeTf3OOArhJ/aTjBYHDxCEClyutXLPchzhddB6HhQYb/QwnASbiauQ0MMa5CSToycOZaMMRLifLSSI7iXwZEI8F9xpm+5LCAJUT18iGxgQLoSjc7mZ3h6MgkSg89r5FHkkxJRAYFSJOnSe5k9RJy4EXNwQgTESeJk5R5b7x9FkrjkUiJa2N44S2T+V5tUA+yf6InFh8HzUUnbMTl4CeRz5/oLrCT9W8QmQjXen21igi/POH5PiBCWIfkJyAdmMiqR39bDxxhPaV68IFaGnGgym0vBg0mVNa9ZrNkgmNqvexwcdfUfg/5OTxt1A4r2QgiOLzGk1psHBMAMfVByxV7+rMCgdXgBbJaIAOQ9tiAUKcm+14NMxVhuas+MkQDX+T0dkJDwfHH9BPopFPdJR/+j8lHL+PLoeMjeAx9Bj0DHt0Pant0o5OQ4LdxlHRaOXoeL44Qx8/dlfHM+ATZrr49+h/09qmpbhWRDs4Y5FRwCh7MKR+OFkfyHd7R+Rj8/H2o3H8dDo4VR9pTzn9ygTVKf348OR6g9qjHXJXn8c8U8CG7qtrVHHGPnSDkU85EAzjp5jptJ2GuA44Hq/RV86wtFXFRbfwcbsxtB+VTKFUd+vM8NV/Z+AK6rU4AsKzSpcaK41V6YsjGWsdARU/HK+25+CbOqjtSlqwCSJzTcEJ6aRPNXMZE8RymLrSpItDjuyv+ZhJcBWF+scMwCwgBA8desbQkTy8ORweOEfXFSGDBCTquWQK2xD+o6hoNApGin8XEznRA8baKcOAMRHFNKoy4uUaRU1RT1/rDscQ6ssCawUsYiDJrJ2LUY4uNcwsajj6fDShO0asg/A7KlNT5Yrql1foDz5WWqzRPBizhtUgZltBBNmibNWBHXUCCnO1cOXWAHBnmrFwRtq4FPO3NmZD2GpGjQQ7rR1elq5iKW6n1EAyuLUXVbuRwFO4SXjSvtloEZxJ/HjPEnhoz2qegIc6p9OTjQUwpPirspvaQQ7Gdscgt63ZAsLlT8u0QTgCn1ItKNsCWVypzBmZCHofUJhBcsTL8+QTpjCgbBaqDjAmZYt91uRgPRQLOJJJLbIFS+sBz/mq9muXvuxp0DjXKsA90xTSUGFlGXe+DsQANPaqdA06OECDTsC7wQlN/2rnblI92t7eCDBKYadzkeGB7QT1K6ToFn/14E/Ne+AT0+Mz/7TKLkwvP4m81pGnIPxn/3kE8Uu6sxPAn1NPcae7V1lpxrTnXUmysfAre2Y54jo9gayD2OS4Q408d4ChVU2nQOM3Qk8k8NGZ0qL84XFBgwNs0+tMxooVNR0FQFgDp1eZYAVTj2nHCB1XAT8bXjqVT0BDcNPE8PZWX+pxb+zqnHqPZcW7gGCVP5mKOnT8og6d5BdDpzdB8OnP+0YSHjTNjkk7T58pM18A6cW/vQnoLlCqnVqhc6c1Jy6GLVTtOuyNPFWAv/v+wbKMrvr8wT4bZQ0Azpwox0zhd1xaqfl4HYNuu9CPbCt2JYDbV03/RbjxOQUUSGQGu/tiyr3gTlq3b9jbLt059gLs1Kr6m/61kYV/XzKqpoNLH65WzTCW09qoKq1WnCEl8zafF02bCEVFAgSUK3BObvvFLEqFT1psUfYsM4prBJw819Ukj2BUeZv6BdRomYFnjTpDocauTDShWxfTgTbAex2NstVdmeGjtNxoQjXGceqgDLa3ud/NLP9OV/I7fa/YttXS2D2BVXQSLyAZp4aM9rogNPGSdDg5mBY1T8OnX209yfaFlzVB1T2qndzEwdpHAMEULgZqPk6DPFseH+H9p8zTnOn+tUkk7SohLp6gCvQs537z2hWqFbcNSTw0ZsckdxCVU5k3kKTmVWgttY6ewEAxx+fHfOncdOQhp0M5GERVTsAIKUmWGcPMAhmDHTphn80JpEY62hI4GIzgunVt0MuAPNATNk1AIHjQZyUE6oM5Zp1DQIruqGxIGcjCJxANwAQRnUshhGeDBPorgfrfCgyjOvSem2nk5IQz5RnVj1hbYktCB4+arLOnRDOboO0ZfkZ8m0J3UMjO46fkjKIymozsOn6DP+6LxbG0Z8FuQFCi8BfyD107yUUJw/64JdPvGc//DQZxozuIFCDP0GdmURtp/wzsTAIEBH7yIkGAXIYzgjWXtOMmfVbF0A+NM92nQOWsmcrwxyZ0y4bG5IYxEGemsVKZ0ooVBCT5POpIfk4pSK8bKxgWMKW4hY3RrJZgi9j9XAVbIcyfd8Q2/YcJcilAm5A0Ee/ZQ87czQum5LmuZDZFNHIV0ZrLGy3vmsQFAZReLaPwkcoOrhkqtMQJvgALQhsHbCDFsPppJwyztAlbAzYg1nOFsPAAOyQSimonXLYKVcErWemk1RAXTQHM9SICrWZbBjNI3AJ2SCy7My2W+EF4t1qRuAVKYMXEY6VdzO20RXM4A+QFoe5noYc/0G2KSlgHZIVZYdzOKoXMtibiMWmjcOyzPyiAT6R9iEeq3OIZUZc6XlEHpUhxwK6VHVwm2BlxCulbW2bmVrcQ/0EM0kzFZ5cGs5pcRCqAYs46uKkQRasZVbo/CpEGuZyo6PzIhsH65QvLroAKXEczQgLPoACNXGWwfkQNwCKjpFsEorvek55ccop70nyAB0s8Zwr4QSOU12D2OCwYBQZZKzi8W7HB5ojrFeEo0oBgzJ3WX9QfnoB6ZzS1uDrvYHGyHHsvcicSzsIgozP2NxTM79IzMz6ZjFQAsbFLM83wPOaA+BBGylmeGMGhZ1cz/Bt4eqzYgorqo5YbBq5nAWA/0FNsENZ/OaH1nODb/nbPkI9Z5mK7asXrO/mfbVnnNIVQZVwCOkpYAes6lgARs8/YEbOk2eKs67EsJRjDzl9Ie4DdZcwAF1Au0HWrPUbtl/r1Z+cKrjgR6qaNwEhbskNA+4EbZ33TWeSrNmZxUALIgWoquOBFwE6AG2iW01wrP3pNd1PWzA2z4xAZbOS2escvrsJQAG4EVzP62ecMq44CmzqNQwlGTWCUgCoXJmzuRLObPNWduYb6ZzqzwZnjCmHWc8s42TJWzs0Hr1Ea2fms4NiGVGRQAtUSyoyHs4PZ4azg2IqAB62duAT9Z+k7C9nJ7P5zSwYCyINez1OzYRBBgACKsPZ7uzsIgY7PUxuZcbEhc1lhTs86GBluUGFzZwuz7VnBbOhmcGs6NZyvoPnLMV6JACkChNZ74hs1n1m5ugY1nPY4B8z1Zn+RAwuCGwcGcGQAIuAMrP2WescFhZ9QuogAUcQEdKwrttNVhz6HDeHPqF2Uc/yIDg2mwgSHOSABEABo3MWm1IgxHOvWfO4nKKTRwb5NtbY5YjUADpZ07EUlntbYW2dbxEegYizlBFtzOROffoq4jQYu0MOudKKOcyc5Y4KnZv9BSSxsOdBzDo58y2cTnYnOmWcSc9gwNDh2qJ2nOLxYBaGDlPxz8/Y3LO/Mh8c6E53ZofjnS4m20Qfs4RY1sl1VndxW52e5fb9I4uzkDnK7OszWwro3Z8jd5Jz1BHhlDO6VUAMMoTaTmmkOQBCX15IBpuTaTP3z+/mLwFcI1LZt1pFgQX+MpsSVZ5fR5JzPcB19u48e6yyWZRznT1GIRvAc9z/YWz1dn5RT12ehkc3Z2ys+jy9SbSTCSqfpIwjRViAY5KrpXxECidXZIQWI2EmlXDUAGFZ81zm4EUsBS4gHM7cAp1z8+wd7PzxYJEGoXUeq/dnpTAzYijM7skAzSWDAinPSz00AEGcPKzn1n5HP4iBNc6ulX1z71Z3XPKAC3M5nFJQAU7wBeAxAD9s7oALBgXOlLcRmWzWEH05yeAE7nWRAwuAYs9dRbBgXHz13PXmdtohu565us7n63O8WdQs49Z1czqOIhLPqF24+ZuBN9zlrn5mh3uegu0JZ+Ap27nZbcruescqu52W3e7nrHKlqzECBrOSQAGznwlGqKIyNa7qwZk9fbHrjustBkpWhsc2PqIpmMNWdOc96ZzlzgZneXPuZV+s8K57BztVD8HPWIDDSibYG2iYIQdkh2OCdAE255wyw1n0LOklhmwDliPazyIdJLPzYhLM8lgCSzttEcc7yimc8+K5QrhPOlHzOj1WpEE6AOyRblntPPUOemIGRGxDzmHnI3Kab52aCIAHLERXndmgcF1a87p56ZyTXnbaJtecPc7bRJ62DXnBvODeei86N56Yge9QOqqwiCcs7BZ2dz+Ig2gBjj6Kc7t5+Lz3OIm+Bm4jZMLN58rzr9lqvPjeem86V54bzpXnTvOlXD68595x2KifSxvPAoy8Ru95zgumm+NN8sKHkAENg8hQbrntAAmeeCxErYMXEP9BtbZ66ndpNT54jzy+jFzWZ2eIwZO4ABz+dnUX6XOe5c9A555EjZM4HOiufI3ZmZ6D8yLnoEBoufms8V9rCu+Ig1rP6VJes9vhB3zwxgyFBlsF0s6eZfkQQ8Tp3gWOces5z558z3jnvrOZ+faAE680Gz7PnIbP42eD859Z4mz8lnaHOlqxECGz58vz2+EibO9+fzmh252dzyOUZiBN8AM0hyYbCuiGVZ3Ozufr89jnaxy8PntbYJ9JW8/w/efz+/nF/PTECHic6Bi/zy/nd/PE+dKuErYIGzqWA7QTnYh4s+DlJWwdbnzsRQBdOxDPZ+AL3jn3Mq4BdNsCWrP+ITq4sAvg5Tg6hrORALp2IqAunYhYUJdiJHKf52ODb67CetmVcGpz5cttMQK86kC+qIGFwc8W74TjOc0C/yIBmagD51AufYg0334502z1WILy7FueBRh1VWQLmXnraJKBe0C+YF0wLyPn7QTGrgCC8j54bB8znVABOgC4C895wxz99nGmjP2dNcdEAwZksXAqlG/ja0xCpSA0gCZDFinMwqHDe3hUzDsWgstHhrt1faEK97ufLO1h4jBf8FZGuyRd1Zy+WcbpyWC9q+429oHAwYPBxIrrenWw4LiD7+n2gcCBg9sF6lfBo87gvOiPGC6cF8IVoMHXyAzD7HFcB8IELqwXJgvx8vlOXyzix8JWLv2OPBdRfo93GELm6ArpWERZYI6iF44LyD7r4BiyvWY6sF4GD90HUX7YDvxKv0a0VIfLOJ2WEZTQHmyF54Lki7T2X1ygY5ZxZDUL3T7xF2hCsa5fCF/54nvLynAECtB5diI0EL3IXgYOnstiFbqF0IV5t7DQuUwrChUmFD/liAyABXWhfWC6EK4GD0Qr8wuYhcGfYAiFvhNIXy8ObcjMsFqF1F+5t7PgvNhezw/1h8Kwb/ZalHdhdtC/HyyB5fLOfV2+/3nC4WF2Nd9YXVwvVKMCqlR4HcL1YXQOBngEatzDRzrgO4XgYOlfKVC/YA78LyfLvyAXwjeQCIe8GG6ZGmYOiQeLcDuF829qkHukDLVws8eSF24gZt7LguNoMV7iBFwOGMby+WdHn3Ii/uF3aBgzy+WcBcd2hDxF+8L0TWhn2whfKkIcpwAN+LD4Tl8cO0sDVscZE4XI6tl2+Xu4KhhJ3QKogY96z6dQ8fuktzTyC7GTM84P0i/+w03QIfiT5SAhg1hoY2MNkPsKa2nwZS0gcoFZkJJfTdIGN9OFCQ30xtB+ugG/Dte5qoJjuyE5/NcqfideEU87cw9SAOlrOjGaNWuMd7XNhpoMpZOQkSQwYbjI+ZYKjD/P1pBj8DF01dT8fiGxXO5+DGi5pI2+0WDVxOs52XOi7SEdP8NmgEqCI2sE4tmEQNt4NHKSBvoxHSxHOE6VlJANCPDIfRi/iuxC1A+DzBWX4uG48/FXVD4T7P/IsXLYIDHkM0hqf98FRkmv185W221higb4w3tB45DeWGN6LwT8tK53ay2WO1i5mVr+nmmHY5B4TZsAImqknDwSUULAJY5ofqjxEmK8TiS3si5acC69wJToBSh7LoNJcKgH2uUgbbdIvhu+IYyGxttysXWmrvgC8asrZxbtkkDozWbXBb0b5y/OLxTVvxbIyeG1FyQ9LcNWYqWG+hlmH2t6qlBo6q8TUv+bhKk+2ZF9YiDJYV1dEx/jjnBWFBRjYCJwJxfQvMOBb8sNbZ6AcVhBnLbml6MeEcSKmhJCe8e1y4MBn3tsdmZwPpKuOwsPGMW5OOGH+TCi+VB1iDr16IyXI9SlYA6Yg4LFFi5NUlgO1i3XQtQSrdCk+4xgXPjgDjOoAabaRpJOSan7Y5F0dCR/FboByJdj3sfg+CDvuLrv6XBG0BRvja3hIiXJdFQ+przRzCwuCuyAEZHv0l4DeNqEaQGeVywx21xvmpcbE/iyQ0axEiJc/bVA2cnjasKkxmy4iKfo/J9hacF2ZJ0LYAko64yWmjgDHHFOT7vawDHx1ZTlkbfFOr7v3Q4Fu0Dt2fHWkuvVvz49ae2JT0tHElPKzO7QFbQD9D5wrm+OhDvb48Up3vj4GLuvXVJdqU+7R4sjhQ7Z+OzJfUlZlR0Tt4dH/kuNDvQoE8lyZTlB7NO25UcWU/tuyFLo577+PfevRvGYp3plCw7iIArDu7Hc0oHsZpX7uIsnDt+Kbd+wEpzX75FOMHoeHd1+yK+94xnPAolOnQ4CO/2rE37wR2B5AJKY+Mxp8CI72pjbfvpKft+0CZx37IJmkjvnJdd+8cgc0xzCTPfvUQG9+1epP37DpiA/sumKD+wUdwNxGJnGlPh/e2RqBgCqXrSnSjr4mdj+50p0R43SmsY71HeT+6ZMwZT3ynWjsziOz+3qTXP7sOH8/sIsb6O4spkv7Qx3OTOjHdxMeMdyeJFTca/uCmbr+8KZhv78x2jlMMmNb+yJRGxsHf35TPrHa5Mb39+5TOx3B/u7GeH+wcd0f7xx29CSnHZqEOcdx16lx2Z/sAqa9IAv9+47M4wwVNWmchU2v94Y77x2t/tOmcRU1OY90zR/3WYAn/fY2avARaXvpnxKb+mfBO2GYrwZUJ31b434Mf+3GYk6lL/3/GgvhXl4de94yJdRGD6TBMkqJ2yLvtTtz3AOIe8a/BwhdIBEC+A8yzueb0SDJdlEmiUGirI3xdUx6sS2ZJ2UEReTepMugA3inz0oBPAehO9FoW2foBgVyYXDwsYxjTC4ASiMwmYXzNosJYlqLddsmKbePlMfN0atoKbL6MT6AFt1iRJdzwKfhr0jQVOvJVATA1O2joH9zH1F7U4Wy8sBybL507zgx4RKRnzz7kEIV+SS5ECNvcxK7FzA5DbiU1RY9T0CBskBVrPgHWZABAf1mKygGbsNFzfJ3QaARADCsWSADDQeYZ6wza+HJcw61/XwEp38Zf3sAUB6PVoCbUA3ZiOUDYK3Q1uwEclbOu1LwEavAFERvjqxgwihzzDLbl2kwYCgP+wjyo0sF9lyeR5uXcSWqQK/zef2zbxh8QnG2awDHqFHl7SRozTJ9B4ZJbww3I71pkxjLCWIGhmy+9l0pj/uX/MuC+HDy6gYtPL6yjp1GTGPSNaxqyTRc2XG8vNkvI8+Pl3tUskAu8vJ95jy+748T1rNiMSWKgAx+D46qfLvuXWW2raDPy4hE9fIG+XFP3S3m7jbaI/uN3AsC8vcnCD0f3o8sgCU81lG9aNo0cpF7MSFhLEAnX5fry/flwTRq2gCCud5esu03ZwArq0jQCu26QgK+RoyPxsqjLCWLAAU/q9l73L9vHVsv8RCQoYDlxgryuXO43LSNAZJwV45hvBXWkBzVPThWYV5xQELbnP2IFdjy7J07Ar77ayCvm6Oyy7Yh7fF9irYtE95e7cce+wdxuBXMSWoxOkK59lx/LmIkbz1qFfk1XKu1grhhXm/H9v3sK8ME12JdhXEjGTGO0K+C43nmrDjU4viud+CbkK8z9rajV7qZ1t/y5mIx6LpEHyu6PxwdEcbPN3l9dccfItzBuxdOy0hpxs8rBXphfsFd4w/9lmXLmOXssueHMdGWLLzuZg7I2v2QDc8EyFx7wT8QmvOdQUa3o6pNjT7uYSD6NRK54l78NwJDWO6G5c2cAMV2orzqra9HGzxtfeSy9wroH70Iuwfsjfa8V5m1iz7nYXPDlVs6C43krtz9Tiuqld3Nks+4Ur7vBnYPdCDDfbCipUrrBsSpBGvuhK/TSr61Rs8XIOiFAdK6e+6uL8ITxU2Jmf16HygM8OBuXbSuu3uodH8V1EAnkHXSu5HxuK96V3c2cd7cEGwldDK5j5J6DohQkYOQldLkaK0G/oMJXxHUDFfyVJiVxoruJXmYvcOOJK6VoxYr3jhovASONpK4hu3zl0bdDcvhYxlfvcNaPLysrmQvW1OnBCcjD8ryjVfyvhZyJC5Vi/4r6i73CubhetvZyIKPLx59sCuSxOtDepF2nvaEV9RHeZfBCXKUH+RuLDaM4ihzcy5MIpbBu97FSx6Ff5K7uw9p9EWno6DRyq2OdFQRV2zLAOKB9ysBPe3g9oUaN96xI2Qw8204RT7QRrwFGWsrMVveuy8F9AhCSyBScV4g5KF4/tqLkA9g3xt/jcnQ7S+8ER0qviVdoLcoG3bx9fsiIPikPSuSpLatJFCwY7iBlTQafWQYvhqFs24x32XKq+TK0GdvgrAquacXy5cGu5UVYUTPwm7wfRvulV5dt7n7FCX61tNFTQm2phg/bmmGb+GnLZaQxlhyr9TNWgWtO4LcCEdMZ2imAHDdMRPBKIPmdJZ4mImQ1cftqT5t8L5rJo/BSWv6XV3DhTuDUwtDWW4Bu9WsJ9JDqL9PcHcBgHE8kCUuNihLUAGc0intK26GvClJDcDX5hgQafGp4Q1pyngmnTsP9SBwgOX1/jA9kv7JdrUtfs8rpkl6nqBWHuioGf28NeyncnCs0NGhYcV7Kirl39XMu3QAOHGKA8Sr+AC2tGXhsGi5uG8jkXrVy9YLVULfdlU7gWA9QHoHbXFuICOA17OOwL35BKwPXfpeYLuFAjKdEv+QVuzbT3uyLjwAR0JZo6sAc+W57ZCfD+P2ApvpK4DI31p5Fbyw4yVvDNdo5nkTtcgY8ulf2zy8h3HVNSWEXJPWdtmIUFg9d+48Khw3vYV7Xa6KRs1iXlBfLZDgku155aioTtZwQkhcvEq4aV9aRrXLCe2YBsTDduy7nyo7b2CAZeUiqaYvNYB45bTzFMFvAwE6zjaDlukt33aQeWK7OaLBrmTzlBAufvNfaeV/fUfg0iGumNfbLaoW3st0r99C2jlsHjaRPncr2cXG36GNfemvz5YxrrsilbPFyNdiRhOpMZoeFl4UR1ctAZ7KrNHekXBBG6ms5Yceu5ZFa8budWAhit3Z8+R3d0BELMl9ls3xpK8CKhgMQqXCCYDFaBU84PKTUg8ZZ326T5GG4VhRAcSgE3Mxfoa8YV/t+k4S5V2YTogTZXvUgYIUXSWFgYN1kiZ+1BB/OgcB3dtULfsw1zOLxFbQf6XVUxrlQZI5IRidpDnQyNIHdLgwngH8nHQN9wLt4QcUPXYObWMgIIIuUAM3poFLYfcnEuNcXcS+qKwTUXZxZfj9nGfhRQp8ttt5XEQmyBt+kftI/4J3Eb0IrdVA5tZ/IH52P7N/YUYRtwc9iV7BRu5XkI3zFdQQba1whQIqrVMAgWVbCDsMusVmxXw3JipNr0faMSSB1Mro2vjwDja7Z+deQrQAPuA4VfX6WRVy8wACK3yNMJeWwUguDhL6ioN2ZLyp62wkHMCgRv7nfV6Oj1OHYEXsuWh2fYLAiXzgb0CsEyICXH2GKMBdzXbOhBFBunkQ31YBMi8js7ir/bbAw2w2vVl0K5R9JCYQAmV/5AyEY5y9XltbblA33TXrmu466tlwwVHHFuGu4vc5a5R2zFsBCAnwpPbOc1ySB+Q7mOupzUItj5LTjr56qjodMocY66Yvljr6c1ci7Dai467e2VKQr3KmSGwv3zhfIuwl0Y5bAGAsGRakZ27BENsEHUK3jIkpw5MIpO1zEVJpET7OzlcTwJawZGKEoAqJeXq7HvRttWGoumEEvmFBXpV4rr+ugL0H37WR4LV12iAMHrv8OdkDkA5++wiDtLo912NNeCq+VjKH5xro1+4y2bphAuNKAiJP4PCGBUNZGMEuAJ+nEBJAHW2jJk4GZ0Zpsu8vBXP/vTYWSMAARvybCkwUXxY7EdsYXwGKoW4kWFEkgaD16KhkVkqXD+yy+rDurklAfLr3tmpSDr9fT69cWvynlWn7AAi6/o9SS9fIJjL2q+sLddUlq/kgjWAEVB8nP0VG8RgVTXzvmAzAxl699GNbJMibW4krqJSkAJooq0I1AiU3JlfVy75y8aahuXxXPhNdaoWNNe3Fe7NElEQqCuiAK11a8MdXLUkAVt1wPuW2+xiZXUWvIyNB/oWIyCOAhAII4lKSzHv/XdnZoNV76usued6+DUEith2lLhk7hyr67uHOvrt3mm+vlik7GuhNSHW2E1DgB4TWgYLT8H1OqxgdoBbWlO3rQZNI2HfXEBk2+iAa+/V3pNjtrqZHVTCRK4+w0FNxzlc3QIpv3Q3nOUWL1jXY/BdsXzWB9I9/rr9XLUk/9eWdbn675oK798+vH1f+kYP15Ey4MjefJu8EbDZXVwStyQAOK2NkC3Rs/19OLswDtw372D3GtDIwgby8AQGvkDcsgAbG68r01n++ug/1IsuX00qhOYgBCAJ2UG1D+qQuqW0XcNgzNx+FCAkI6MvvX0Wv5iOH65RW68NkhG01rCDf1Db7VY0N+Q3CXLSDdUis/14QUNoK+DE6DcMsF/15sUJ0bgzXUlfRIaoN71q71gWw30Vso/bvAyobh41RcByDebs/cIFUo5/cu+Q5gAmBBNKMFr+JrkTXBLLK69cMnntmkHTCOJgOeG5eJkwk/sXyn2P6B+YEnFx5+l7QBESWv12G9ux1py8EgG4K3DcRNf5tgEb44XhC2Xvu4jcL20rr/RAvA5afvC5ZCNzgQUinuSGvND/tZa/TTD6sk5V37DdQHYMuxkbiYD1h5guu664rawgd70DkpF7IyFG7iNzbqhJS4Ov0Bm3bbjy0uR68XrEVCrs61c5p8Wt0pbwuuhOui65NEOLrgNrtTV7pIXq85F4VoBXX4I4sjfBdaDF9rr73A2RuOEBa66WN+rr1BHeuvq0vR692EsVoY3XudWdkDX7l4SumEfggOY0VCRma5K4Klw+aQ4MiFsngHcfV25rm5XwzXN2doLcxB7yze43xbMvVdT/pwFGkwWKNiE3jEvka60CCqr3oDPhvQwfuG+SN7phIQRt4HKFu7LdV3bQtg5b7hqwmsF7f8NzCb9uXaXigDc5we8135+/zXAOHW+6JG6Agx4bjE3XcueWuRa7MAwHtYirmS3jSvwdbqGznr6Ll7B1ZdfzG7fgCwbbY3OuvAjfCsH4Ueyb9Y3xwu9OBrG7FAwMF6A8U92F3B/YYC167kYGjdLGiqBZa/1WtBfbcDHQ2PMi/CGMieAN8G7/euEkPli4oQzuu3EAIkvCEBam8DfGaEUi1YTRwRHpk2S1+sV4iKEGv65RQa5Cek7g2u7kCWyMt8a/TaCX47PjczUW9OIoNkOEANLvToPwlPqhpUA07p0ZmrE6AkupONb/x5UkLQlD6mb1MlEAb8CZt1yAw8H6ENlyDRGypKsCAbcHv6zMwBtiRVt37cVJhfEBq3O0KZeJOMXJQvo6uqQsPpyD8ILZ0+XcFsJm9XTjVV63LzCSL5eyNcQ8D2oEwDqZWyzdHEH0YOW4/sKs+SoSDZm/aAw2b6OrTVRmEndq7v2Mw1vWqojW0mCuabjN6Wb6OrtGhYTfuKndl8PhyX9Cs0sQBntEZ/GDNMxo4kQNvSgJKwQwZDmgLezptYxuQ/k2vGb/M3doRYOklm9vizVwGgLuZu7SPR1d2QZOb+xLx37Gzf/IMKrKkJDqcjP5RzcwHYvN+4y2OJgjgAt4h1YLYxRl583XZu7pAjCCIyXAb0rWHGXYasyXemKyBbqAn9ZuoIONm4AtyLp1M3SgHtCmrmH4GNKV+1LTG2meYs6Y/02Y15+n9AwYaL0Bbnq66oiC3C1OCLfaNbCp4D0KC3N5vo6u4gFoQIMzg2oNsTx5ha1D5puRbvM3d0hoRUO/uOyYVWOkOTM8mBMbm5QSRzZMYrJFvCzd2QByUQfT4HztsW6Nn2xaksmebtBkiO3xQDdDCWAHzwC4ISsWjzd/m8CELJbnyA8lvbSAqSs0AEpbxhH0Fv8zdqW58APJbkS2HihXvBjY9mqz+bpi355u7pCVY4njD0UWkgPGQTLC0S4F1/RLuojIKuOLG+E/cNagR0oA4BN9Xv8Ff54sjdtU3qDIxx1q2tXVxSbhdnHmHXjdaqPXlkSx3CKLVyytBUpBwyn8bGZFgc5CDgqscvE5bwYrni7PMmVKoWawuxuGDxOVuVHSvkSr525zsAXKjpSrfsbgK7PJ2NLstwKuuz3AtfsHB1g0XK37t2fWblziJ5EzoGYRBtAAbJk9bKrEUZj4yQJ9LXc444CQAR/K2Fp68Jg8+wtFz2sturqLK2DYWlIACo6HbnSKKonXv84qvqMxhAXlNbYV1hEFucASkW7eksBzHQP9CdiNhzglIlNbbnDnM4JSJ62Za3S1Z9rcnW42t4dbpVwBAvurcqOl6txxwOrn5RBaACBRjbRLCpI3nnPPiqV7M+FZ19b43nqsQCBeJ4H2t1mak9nG1u/+cEpBs566cNK384mMrfI3aytxAIgq3eVvr+GI26Kt8Tz6vn5Vvyrd3jjk7NnZ9gcfvIudKPAvGZxttiPH8+gHuXISGr5bFemDnhU24OfNW9YgOQAP/nFV9DxNRxBWt0QIA7nTbBqiC3OEjiC6aSWAucQH+hECGw55HEA7nj+VbmeRxE9bAbER63LcRRrc3c6Gt1LbyW3g1uJrejW+mt/RzgG3LsQgbffsq2t0q4Y4LhrPTrfnW9Wt+Dbja3Z3PQbc7W+sIHtb33nN1v9bdXW7Ot50DXq3l1vtqwEpE+C6Gzjq3W3V7re0AEetynz/VaDGDiqV/oI+t3Gz923VzPPbdDs87QN6z323krOPWcfs6hyr5TS5X0zW0bukIY1N1F+80dAw67QjBsUCHSguXpVJaDo30QEtLAXBBgjXBRUWw2KArct5oN47bl7647M5larGeSbxzDxXPCkPR2/WQWv2hTlJpRbjH0DcSpxG13Mbe23Nigti5JMAr4YAbEJurOinbYLt+IbrvXXA2+K2Vs47t9cYLTQV4Bobfze38ylDbx8z6VupTf5pSxMtDTFBccPIPsWtqmSl7Uj1NHb22j7v+S6oO9mjre3k+PFBvT48gx409vSXjt2LJc5MRLR70jtlH5aOOUcfRQcl19FiUbClPv7u749/u/vj9HbN0UCMfY7edW7YNskrp+OtKdxS+iK5fjlQ7wUvj7e0/tJ21z+t+3E6PiMdTo7Mp1fjmKXNGOWDvWU7UG7ZTj/HJQAM2p864Xt4UFJyJwzJ+XvVhTJK/mlcrwVTW1yvpiVGa9oAdjcVdvUGSVTt0IDVO5PEmE2mENYdNeQFwh5F9TF94Dtl2/jIzAdohShQRNkCBBLS4sSr0igxJPbwYJpGZIgiI1+zXduCkh1JWuUOCI+h3743OWvMO6Wa/ek8MSfHU6lfPG9JV40r3As170rv0vMA1ipgimYzYcBimt8RJOGy7+5Ib4TkWw3Km44112RHmX3oBqJeFaFCdljcFaiLl3TcqfbQNwEM4gsGHuwjyrrzDZ1iGdh0cEGPNvsLg+bu/UD3T9/bzmLma4B81pFDIIQfIiTXtFhiCBxXsn0iYQPNVq4A9MAkBrt27GAKPbvK/YJiLI1Zi5Fj1yrvJTbjGzbuzISE7Ll7uZja3oIzkGhmoVuPP0FUHK+puzm1Ee43IrcSoCEdxI5vu3diucNduIC8nbjBygwzTvkp3DjdKlFgyaqbVuR+XvZc/zZ8Vb/VnNfPOgZ188at1uz9lZZXPm+ekQFb59ZuBmkIgvhedAC/4FwzSThlkcpTudO4kxZ5nz5bBoYcuOCL0tY5dsz79FtAu6uebMoA+ZQAGcUXPbOGW3M5Od1hz8ogF4syADq84JZ5qRYjn70n6aSDc9biNNb75NjzOMzV7M5X50ksBZngUZzxaccDs0LnSrjg5+xzxac84CwLdz8/YEgvhWfJ89uZ+c7lln7XOEiCbO/hd69b5uISLPCqCzc9dRa4AcGs/4gQWe0xDzpWW3QO3bHBAox2SFLiGLzsgAWFDmP1XSu7Z5qREtn+7Ot4jes8Y536z07wf6DDWf7M/IAMfzq6VrLuFnf/87zpaxywO3NhBMxXQ4cA9IYwDF31RBygMN2CPVY87w2DGfPrnflEF5Z5y75F3LLPlRRNsFzpb3zxplmfOdVV0s/oF/ez8F3V0qsOeMc8PiMPKW01uHPPWcNc78yKUwYzMHzuAsAbSeWwaYgclnErvW4gxs+hwx1cKWAtprxkjys/rwqyzmVnBzObOdr+BtN95N7X5B5OSrv52//QGTgaFM1w3NGMZK/VNxciChD8dvk7cPygGHdk93WcMbaQUFrMaQGznb9w1CXRSe5qfZNV06rz3jKM3mVfWyWye0wS+YD2YLopvI3crt5QNmu3PXK67eqgYbtzct9S3i4qk3fgG6/IxTsQEW22KM0CzwX4lwQNnf1RUgiNtVgqTaYXugCL9s4aNmSBLmTl4x3kwzJEwzf9BqL0yIJ42O9/EbCfe2da2f0GvBcVnbiHvIC1UbK/pYZoOI6kX1gOYGzH4TlEjudvwhTBE+FyE1IdvxpA2QpvTu6qDUXph1XzX283d5sYLd2whot3K7u23tuq5ZAEp0V/INjHetf04f7t9Mrwe3yWuB7rXi5tILOANN3HgArQDj29ht8WLivn2rPsrc5a6KGMjbuD3flOSeduARQRSh7kTc/wBsbdoSeu7LVbnBg+Nu+mdhcemZzTbsQAo3OAtBltxo4FLAVFnZABCqC0cE6t+HqrIgxbD4AEvLuiNw3zmm3dbO4Bf2u9o9+rzqgAazO1Nzfu7cw1TzutnNHBM+fVEG0AB9pQjnVABJYAfaWY93crgT3afhhPcm86oAERtTfnEnvg5RKe5Q91x7p3n1RAFPfQADLbiJ7+uwOnvzNAae9piKIbqNQU9uEeww28Udx4JrcwMHuEbeIe/yt4h71zngzu0Pdoe6xt97FHG3NwKF7B3Atw9w8C/D3fOXibfuFusLVBzuK9NYBy3cye6I9yR7w+I8ACKPc3O+o9xJ72jgpABaYh5ub9t7x7jvX1Nvxnfms9sIAgLjj38Xvm4g8e+k94R79L31m4XGBX2lE9+Hqmj39eEUvcYG/496x7q+08nuFcJKe8FrZ2Qhj3mXvCBfNxE099p73T3JDvFPcfc6M9yJuKU3BROoEMlEFwA/NYWIjbyuo7fYa9jt3fQH0dcfbvhdJ25cHTb26UyKbukUFzhaTytnbssNeduHTfFjJzd+TTt2zusVGtenNfqqFG71Bk1buaBvp/oC5ZV12XmSVP0RMt2/cQ45y4e38+hb3d2JZ7t6UEgK3UyuNtv/u9yQ/d7gIwHgBSdDT24s9z97sz3M9valceW8o1Y7MUxXsSGyHewDZyG3G7xAdWumMACsDtQ8qnbkFBK3vtxb16Azd4ET42nm3vOndhW9sV0d765rBY74oAchoGI8RB25R9rU/0caS/Yp8A78p7p93Knu727Ax/vb4yXj0P77sL48fu+JT5fHYdVIxzRALwK6DTm97HMv17IV6eoMOY774AljuqZLo+ElhHz5401oqDgmQuacBNUGL7FXUPGtjeia/1ZcDrpPB/HS7QgTxnc7agPF3o3wuNfdOIlwDuir5Ae8LXknfy8uQOKYBFyQPrFByDR+vQHh7r0KAlY2XNiu2ZvV8HKu9XPdQCOJCCO5l9R0UwCF8YiNzQ+jLvOUBS8AXAGq3jhu6eN1Z7l43a9HJuqT7bSV6H7gj30SHlIo5LlY0yQ5iDnXA3D+3uCqnAL3r8q7GbVGOnsO/L2/+uc0cuSGCaNpK+nV9QbtPgHaJl1co/ej90Fx4w3s6u+csTDvruGn7qD3Oz0rwB3MZb9YTbv4bC46G5dT5XKu5X733tRYvtctHhW6p8W1FmRY8AgGu6HMAQ63Vtv9cpGCxdu+92hAGrlNXAOI7HgLwrACDN+5w14/BHzeQUBUQycrniYHTA1iKbs4minJN4EwqCMN6s6hHRExbrIk327um4HaFEdxyTDA93zWSqvd5ETbawuR8f3NnG+4Ahu5v95uzqWcwU39/eVbFqZOiJ9yqp/uREPaFDh91yAzb3JzRo1f/tqP0KAH1sgJyvjOUHu/zAJtxzMXxEVvLvUbBkon5doEj1/uYHqOjKJANAH35XCFkr3cpgiL09ibn93divdZYAlu/1ZWzqFAjozhwCpe8ID3j7xGcCB7uY377uWuUnBpFl2yvDOYCKXnwm9gDWKDoOIpAcG6TXJwHm0g2D9OA94MJyIG2yojcrAfOqDsB+NrI37iJmc6uCEL/pSb97Kez4bpu2oSN53cl25uzjP3kPvaA9QnvcNVWq+D3RxNs7tUwBlJ55zoTXb3utUPDbqMDwX7hdXXvB/4m4FgCpLkr5R3GGvHMOUfVrSbUr2bXUfvVHfxO9/18f+m/9notJ9eG0GfnF5AYRbrPimdyqlEsjOVdy3ajZAGNeVrss+sKplLTyWRWPH8iqI112RP3KzeWVxebs93ComOZk3FEvqce0m/l99RsUWKfnZb1fWxSeKJ4cuQ4gW3UaLu3iI2VORxIPinmGmyCa7eV/Dx6p3FBu3MNmK6SVxMJ+TzrfKWDc5wbaXhzSSjVe5FTHeTjCqD7EHwgwmQenHArCWOV6XB4qQAe3VLrm7dJgH9V4crKe2kMeje4+w+oHyG7uh7tA887dzSHoHqJsrZAlVcji78sOYHj7DL4VEA87/vne09JH/XEPB68i+B6lnMrpg/3cDWMzBFwy1YLNrwSg0fqiA+JDt71yPrHP9ilA7fcONCwoLg1ianNV3P/sRxVpjLYH4wPv7uNts1+8vCaGRy4P5we/A/8wfZ2x+0LTAlnuq5evB4XHT4GhuX0IfEDewh6s7fCH1YYPgeYQ8XAGA11s1nwAE4utZFXB/XQLozrkBHgeWpIVU9tcaBEKkPfgeOEOkh/xD31lYM3IPwSUBsXpbAeEKDIX2pXwCB4h8xDwSHhIXjYuSGADbN4ROsKP/TVHqUAszB4j93Dr7nLGgeOeQXnp8vQVEnbbdP3W+A4EGPhzWj++3YyPNevDPe8K6M93UPuvXtRpeS5Ixz5LzSnMMOKMdBS/0p3/bjZ70KBDQ8RS6gd1FL8yncVW4Hfm3bfx1TFzu24AGYku03KekvYgAL6w2uoTcOqI55OuuVf5QVRJiO7a6lN3rFZX2cuHCgCHDcbiD7eXh6JuuqRBTa2O7umJA43WIkFmD8vebuy01sYWjKWq+g31PaA9Hr2N8+L4Q9f/uL+AuwF24QrAXjMfq1aCoqW8goiyhBwIJJ1g4C/Pix1VU6M57b98cXgM0R82HhrWqgtkEDnsqNN0ALGBUq5sHvSHThyJQqAmPnXHrTBZJAxCDFtrmBG+JtsRbmU4FT6lsFf6nwocRY9xpPSA+0rTFD2uAfie1+JL2xxYRayC48Gipw2RiaTkyiOc9ArO1qW7CBn/aFNHb0L+EtPC2KaO4SVIVGw+9elrD7+UeIiYRbfxLI3dLF1wNu7N1v7lQ95G4I1oDRPbbi7hZQn5aaaEAoxHv3RU3ZiMDwBS11GoMVKfOvcg9eNfBByhr37DVg7cVeUbmZgGFmtNiNqJYXwwHFS4fxxLsSS00+UvUU6OwHvNBd3Wau3EB9cmks1GeSj7Q7EMTZ5aZVDJTufV4BGn5NMhqD87CRpg/IqGx7P2w65xN1eAPz9cba/NfIR4ZFyKL2pqNGvWNc3TjCzfeYygb+2bqs36oeWQJ/WXmoJliZA9Pq8oG7X70L32uXCgBgUfoj0Yl1P32nAWAu2WaP0ExH8VXOASy9syqfByd6KkCPhyhm8skvVv939wNtretnpVPJObLD15AVgLlt0DI/uFE1kcZHrM3+28zI+aR4sj6xhkl6V37WCwmIBUdBtFk1KZPuR8fUo50l2fdqn31T2DkN5o68d6qNq6LIlO4MdWFaXx509+Er8PgufdFfa4j5gbwK3SG4xVdVKutiapHv0jfTkNA8X7cbqNdaooYA8APZPsIAnQNLwXcTT/L7pNycp05an8VugJpRdxjSKU0i1vQEfXyQmDICqNmnoJJp8m7JTvWHcNm/yj2miFqPTGu+Pd/daID2VH2nl1sVKo8hUGqj+6EN6MBCn1th8rg6jzyEMdc7fQ/ql9R6CSp/YQaPRgeRo9f7bcj0tHzoPaqGSo+UDZmj4rgOaPDqAqo86yfLsA78qXWb2pzIMNR4ajxC4JugbUe1o/d+w8AJtHqtcvUeSiD9R72jzveIaP5K22HdHR/jaLVH08xUpv48r5++iQ24HkxXyN3mtefe929x0h4qY14vXnoR29BD2wbyQ3OBvpDfrDmxYFfeh1TNuT1hw4ZS94HhJXSWZhudJUiPuTxIIbjTqxjxmkQp2xhjwvrrGPgZHsre3wkIgzTH03JfNJmkTl5Qxj/VrkwPWqFLo9serr98Q7zaTpUfRo91zo11fejpGPDgRvgAox75pNeL0fKvMeII/TR/Fjwx2993A4xFI9YG6X11Ibt9XwgfGrWCOdsVYCAFetpK2ZDdozjkN9VxjmPTQfcffPq5H6OKAfoRy2COY90oZSQJNHp9X2BuRBW4G56E+0OJz3EwpUVuKG52tRit/C+SLKU4MEgDTgz7HmXaNCNIPEkPsUZZ/rnQ47quaCcOodCJrNryp3gCvGg+bs4ZyNU7teGGzX0ARxA9jj+rHjDHWKX4zejR4lV0HMnn6/LXJaDa6xUyVNARsgKJ0UQhJEEyjylj2YnaqH1xe88160e/dpyXHdOAYeCo+Vu02j3DH7ZmfgBGh5JKyaHsjHZoeDKdZ4d0py4NpGHM5n+492h8XMxjDzVH5yOF0Zix7BjymOrMpAX0hO5afoEj6x6LCPeYlmDipcINCo5rkwSaGv7A/ua5Bj2kr3E3FgGBI9wS9dyKRDU/3pQvOlW7e56cXzlsqPwsePsP6qNB/JuzwEcevjb49Fx93FxJHqm3j6vXnqpx4MVxT2NejScfbI9fuAlYIXHsGPLUQamwsO9uV9rl0fK2TvTiOPu/P91eF5zGcJu448HfsgmUqhIiDVAefP2IJ6SE9eb7NXhbvmRHsQunCr/Hg79Y3lCECkIDEN+VdghPqU2mVdPu9m0JKAclwGCe848kBBUBE1IHjctCfMxf0J/jG4wn1BPWXTV7lsJ40wxwnllyRsfcE/WR74T+mRwhHJCehRPZfvYTwd+pcZjGtJE+bs+kT8gnqCD//ui3epgoUT6Ing799MAmpBCXx4TwgnttrDCfZE9MJ+rN13VihbmCfFQDSFYtEqF4pqQEAPpNzGJ4+w+onxbgiCOmE89m90Tx+7g79gkzAQDfmRcT/iJ0xP/CfzE+CJ9EA9YnxRPioA/zKBJ7MA24nohPrCHBE9pBpETz4nxUAam4Yk/4J+CTzInlBPoiGb6DiIe8T6UOPEX/CH0k/HgcyTxonm83RcfF8NKxd2D8kngpPdwuXTzhAcOj3/t++PAAyvDxLtBKD2on0pP7ifSzdFx5GEM2iArCOieKE91J54CGPtqwXzb36k/FJ4nAJ0n+JPm22mk/iq5GENwEmpP7mw6k+XNRGTzkLrwXFelhk8TJ7iT1An2ZPbkedDlbOf7CvknpZPiM4CEA7J9m/ce0fRXoMfdk86El3cA0n6C3RceLk/5Z3iADXHxXFUiepk9nJ7KF/snt1piyeOE92eQ+T/fHx5PS2v7k/QJ8BT/8n8VXjyfx7I0wC603gnkpPSCeuk+hJ5yT5f7o5PHCeqxlbJ/eT90n6BPVoui4suwh+T6SLpwXfCuOk9wp+mT1onoIFS7gIk96J7eF8ELwkXu2uqvelvPLyoc0CBPk1HGk+zfp/D3Ant43dCf0U81G5i/dur3FPlKfchca6DRT0SnvXbhoHWRzIgfJTyknlYXwQvZnCCp8IT8KnmCDjWd91fIp7xT7kL7MFMqezE/Mp7KF9jBjdZvKevNDjXeY3GqnkJPGqf74/YwerKzqn5t7NCeXY/bJ7RNzF+9GQ+DZpQfip9qT4puVRPHKehU/Wp8ia36j3lP8wu/hcEp5dT7Kn177N/Gp4Coo6Q04MnyVPuQvPheWp85T6xrisb+yilU+Yi9fANiLg1PWSfXRMfLdA17Gnr1Pk+Xm3vFlcTT2Univn/daH48Op6WT+mngcMIIu+jcux5AT4pH+lPa7AYKlgp7cj3qrl8x5fvYk+Rp9dE+UV4ToBaeSAihp/WT3EL7NP8KfWNeKClot22nvEXzb3ihd2kYeT7cn9xzMKfJk+up6uT7N+qi3E0GBBgDp75T+sn4dPMyfzk9jp/aT76n9VPwKfrk/cYGot9YMftPaaeyQcXC7tA8unu+PhkePCAVC+7T9Mn8YjBfIT/0Lp/mF3FrsSAZX2R0/QJ//aHFReYXbppFmiPp5FV8+n7dPr6elCJAkZrj62OQlPfqfaNeSFk9AyGnw9P+IugcBmC8vTx29t4Bn4WD0/+g70+zYLn1PvCem08TCZunJ6nyDPZIuXBcRp6nT6xrrYXq8O70+QZ/2F5Pl3wXeGeQM8EZ7cF6Nt4jPSGej0/eC7Iz6hnkxP+GfXRMjbbXW1hnujPUGeQhe4Z4nT1an0DPHbEOM/DXdSF+untDPLGfjss+5e6F2Sn2NPcwvsM/BC6GF0ebgYX6yfxhdMZ9cT+hnqXLkVw2CvAZOkzzwV/oX0Qu5M+T5eWF7Jn3IXzb2OhcUZ83T+JnmuLnivBM96Z9yFw0LszPhqfXROf5dly9ZntZPJF3TM+8Z7UzwqJ6t7SyvEM+KZ/q++NdnNcImfmM+UZ+SV1srpD7vmebM9KZ+g+zrkILPqmexM/lfc0+zUriLPrmexheGfZqV7Bn/1P3d67myNfeSz6MLh4Xy+X+lf2Z6TTxWV7kPDYvpSu0Z78z0IV/IXRaev08mq6NT2enzSAF6eis85p5/T3AdqztPRRv1wVZ8iz/5n9YXRX5Ys9BJ/iz8Sb/m2FIeus8pZ/Hy/8LjLPXKfIms0h4HT8AMTQEQpoO08kXdxXKsnvLPawvl8sTZ+VT1Fn9YXE2fms89p9dE9CriDPnGeyRdPC92z1en2a7B2f1MMSp6Mz1tn5fLJ2ePM+DZ/vBx2D6EXLmerQNwi5UzwNnkLPEwmHwdzDZez3sL8a7PGe3k8PZ//o9QZq4jo2fXs/vZ8bT0Dn3ejfnZNJu5Z6i/XdnwHPn2erEvMsdNY0tp37P9GfyRfrC9j8v1nyHPSOfcuPI0xZYxwr6Fj6OeuM/Nve0HOMH/lrAUepVgb0yBpXo737XzTxgkp5itVN/zH9ZBSzLGA/jft41jw1zHX7LLmWWryZzDYoIklANY6yR2IltwQLjrlXira1wgOE6+p1zznrs19Y7lvJ0XoFz8mYWkd2q7lV1y5810KplB3aKP9Jc+FYe5zyqyknXdOu+c8fSsVz0Lnui98YaNWWi581z/OtU1iB431it1zT51zj9vzj1i3lWQjB8K0GMb+ugg1z+FHMzd2EQcrAU3vuXpHHRGGD99bHhHXgJrvMDkmsNNS3STWPuUfRFIDmpNNVWTdEP+I24eW6HLTmwQHqz3dMAHDdzNfIiy/HpmPNAeTmUVTZ6N9EAEwGE6e5wCkO79D1F+wSyM6f4gB6EOYd3x75EPOeeVmWn3rr96mV8vPZQvcdB6EIbz6cEZhb+DFY0JEk6QN3oblXNb/Icc/ATb8/ZQNk5lvQHX3uom9xG83n5pPlef+lVpG+5+03nwE1jOg9CEBfusTzstvL9qu6epSFfbn+/218HgewfDaDVjEIQJ5IR5BJQfYXgGK7TzyAqwNQg3Iio/Z540D7nn/KAlbON8slhKLzyQ7/rXT1GF88x59JT+7qx36Reeo894moGXMEAXP3rQey8+L56IFNlNgAvp0eh891571Zdzl8fPIkeQtcgF7wYLPn5jXvhv4C8f59ALyvnrjXCJubd2b56u+4XwXhi5O0SQOLu+AL2UZ4+cV+eDieFvsVy2joe+LbwiipBScajUBiHy8A5vvCIDQ+jpD8EyJgvhMCpBLk7Spz2gie3PRoOBPsVcIYSISrl3PovvI64e541SmtrxKSCYfDjcyKOBexXs967bj5PrvQue3jxOJXePor0absb1hJSyPd/+Xx8egE+Zi4+N1vn3lmNN2fje5i9JG1p5fAlgJu0QB/gYTK3QwBZbVGuGBvpG78NzF+wSyGCe18/ULcRN/stkN3E+fHC8km7KM12JUIPmYvz489ftFNwKhgHDv/uwv1yp/tk74X8CPOcG65qcE9ptTSbpAPdJuiKJzG6yDycBsU3oRfSAMe58rV9CKmp3WmBrxfh0BaZywGGAa9qLSmu5op0hr6dQ965PuN7fnQ9ox5xToDH10Oebv0+4B24z7mfHwlPR4/Fo56R4KNtKPL92Z8BsFVvt39D+SnWofpRtKU5ft9MjvAqA8fvKsn49AeyPHq0PCz2AHfoxf9W7MX1ZHXP7xi8zx/d67pTp0PbGO3Q++9eOgEIVPnXBMj1CM8++MiWTcIHXrduTCIURmjjHFBh3XiYeFmCpnfU1zcX/Me+YeDhLusjj116QHN4XcxE9f5zfRwIXNmHzJsO4ViHw7Gm/phjl4cfX87BBURHKUbi0cPqfnrWITh68/aIAacPK3QXKOK09n44/BvovfRf9qf9M5t/WRtt+Ay4eXVWkAbnDyquYpbw+xMUhrbLOm+IOQr8GGAqOuY/jH6yeH1ZxPcONQYcYWVGaBd98P9fv3ldcDeErZQyhuXgahOo3nUBiyqcnFPPFfOIrdyh4IrVBWystpycDo/Np9nziZQGqNvjAXY/+kYHgIj+PnL7Jejy1v2Bdj2gtru3LoHvC/8238Jba4uwvWe21R4E0UoG0qXystPFbfw+LUVMJT33JZAcBf/Q9LQBmaIYboLjWsfsY/ux+kNyob4ZNDO76y1/kQRt4+BrBzBzHnGOoCqZs8lUdvNPI5kQD4x/+FVgUMEcthvI7cQ+7dj18Kj2PFMe45VUx5bpHjH9fdOsPwy+Wx6eD+sRoP9hseaAD4ypsN2mXuG3gpe7wM3OGv+XhOsYcz+5lw826qbWhzHtEbpj3Zv1xjiBG3aXmlrgpe0JtOkZaGC6RygbsFaduRFG/EMicriu3ZzWrckXNYHgNmHGLXCNvZQ3+9CG1enB+BNS65GTS5Y4ja0BLfkQHJkvy2guE5W5fdPXhFLWfjCh5R7L/mXoJANAeRuR8DeIraWnnmgfyYwo9nQ9Hx1FHtZ7Kq2aUf8U7aR4fbjpHSxf68PJR80G2z77ovklPdoDOAH6L3JTugKgMOn7fAw9GLwCho5m79vlRusk8HjxpT4ePlJXzQ/jx8WL9FH0KX7IB/y8QO7Rh7PHjYvnvX548Lo6NajVEMn3qUvnFOPpO2M8DLuw77ZJPFOFmO8U7lLtX7pxmVzGCjW1+/xDNbQJcL9fug43LBmINy2sNUuOnam/fql6Edi37reZmpepKdalzEdwEzJ1AEjtGmNyU+CZ/JTkJn3LxpHdUaMNL3375SmxpdImYml2BpepTof2rYAlHfmlzMgdW6uJnlpdVHbWl/fcDaXmVlh2Akmf6U5AUXaXepmqTMHS4I6nHSRkzef24SkF/d6O0X9p477clllNl/ZulxsxJJgd0vk4ksaEh5gKZ76XujFZjuvS8OUxKZj6X7PovpcimblM4ZABUz/0ueTGAy+sO/72Z5ToMuCCnvKaOO58pqGX/Nyp/seFUz+2D53ekSMuQVMoy8tM8X99uSLx31/tRUE3+wOxHGXRBpd/tQ3lLl56ZrzAQJ2Z8DKV+NEhf9ymXgHtqZe3/ehOw/9yHCEZmaLDP/bGZrf+bwkpj2PC1HzmN+iUF7qb3xfd4eyLeMxxH1+BR0kDLWsd1wBL/2H1uPqi3JptOw9rm+yBJz+GsBQs6SLmCYMzwoMA/vJpfbCNLDqT2gg866H7r9xoE/ecfWtx0hUgYStet8mUsbensFOQfinOl3qCIUZXwm6zQ1h75GHoKeoqikrtOariOUm3V4kakEIR6vb2Bnq8/V5bJCxVDFx5fj5zO9aaS0EZvUzTsm3rTjziAAzs2nH3B6QHE5KNgwF5vMUio0ivnl27Jy9U1CmsZqrIgPW3hjdZq/tEt0DAxxuIUOCq9neGcbqFuMkRLjeDP3r87bEWEv7HWES9zkbwID+RlwLWrAHZK58PQBNvwge6L8QAEgSderdMewcZxNngOGg68MFgKHUjyRDuzmP4/V8/88mpcqBotf25mKwglkbV4jhAwhHkWWA9NpugSPAQ5QXhqQNb0V5sMgCoPxQGDhNtd/PLLzpFvSahfgdRzGnGz+oPZKuZBI9c+m6p1puvPhKXzlHBbgLyhYb66wBGtgACQU2t4hcgSPTZKBOe+ZDusszbeuxKd8+bkCQsusRw/DYAoD4c4iPWdYmQJFo60DhuWAenXtEPy71XaGbSpbruOXlpv6dYTkk+BHzrAIWB5tAhcBOSfAHSa1ihW/Avtf2AE8F9kJ3SGu/CQhYN1kCF6Bcw+v5d5frWsUBIvFNdIBR+1eF1+nJQ0MYQPun0Wa8eOBljcx7E0pxWw3SX/BZFm9GJpT+J8AtSK8cCY661Zc/rq/mBuuPyHP87VDAMLwAme4cMhYJiEMZEmtAh9MPZaI8jC60XseveiO3/ODcC5C+NVPnXqmvFBrBhtqGxGNqHj5xfIRgMhuksosb5wK9KuZNi1DecAFMJNJgiNcLi/5KH2N9/CNMPjzBrJNLAA2/avriGPUb4TJkwaaB8TnyLWLJpQjNCYUD/r3+RSwAGjBdQNRqAJr83d043ysZ1ipk16hbnbrlMPb9fDP3FaD4gbnV5KA1+59STphBKNB4+BMPj4kMkb5V5I4KtuB+vGINpXFJhAPBr7F94xUNPjGwqKgZk0LNrXzLVkxcAk+xgKPZwnESuZIpC9ph5vKV5kTlA4eBQ/PtwGv3GTQTdaKVFvJKl1euL0Q3wvgdyzRbH4R9DNrsXmt4hMl5pBvl7fLw/MGUjzOP5d5eMbz64+MLjDV5gXmAUMF1a18X6RbIfXkifDV7mzuGggfoSi3AS/TV5Ph7NX5PzzsOL4cVKMhaxTkPjAqpRhwALrDPiWAidyxumOQnqeGCSp9QxasvnUbZv00yGPzSA2JHKHjfkPk/AFUbzqJaRHVN3XQnIhDX2OL517rdbWZkB3LK5zj7HKqQ3sOGwDZw838/X5rtAxv02oxpTy7YCZ1mV9HktqzhqBbk5cQ9hWzoHXZyv+ZSf5VU3lp8s5Xfii2TH6DRsNouSehI+acUGIYJd6RXMscM6G0CXGLsec+1q3J2BKwPkHnS+JS4I1GdmGCBqCLllUFsMkYbkqQr4sIr6HLjH3qV6i3BrYTfxcF7BQWkCBc92ahBG/lCkiwnxw2M0hL+rjha5h+FIXdOMKzfxhSf18pqM3WbWQVzfa9DnN6Oby4ZX+v5rpeebf6Geb/A+ZZvjzely9/bDZKQ83uZvFzUgG+Z7beyCnyMH4fzfM4wFFFAb1E4F5vMPwSdy4RKhbx83sFvWzeJohQN9eb8i3ysAx6hL2nIWaw6dVHr2TqQwfZOxRoHk4lJ+eTgcniJP32lIkwSAciTYoaI5OEICbsKseT0DGEICCmnraFEQQgBTrjkZxhEl64bj6VZWwAGBwHiVqPchWxgeL0E0oxyG+gEo/cEMFw8GQ6QTLAYHnnI3c39TQtzfwdbXN/jwCoKouSaKV9gC8t6WEa/RZBUDlfiJL8XHuAKvi3DwNLAaJXZkD0YG22KrgeU3JiOn5NJ/fXEylO0IiaM6z5z1b74gJTHhrewoAUyFNb0wk8ni2lGIienzf988EHg2w7jfUZHLBY9utXr+QmtaTfW9IyKLazOKTuHKiPEMNqI+nGL/NoeHpP7dEf3fU/6xPD1UoMdFri9YSVS4TgQczOhRtD8BkN/3kxiDb8gYreAhidN4F8wwS+hCjDeS4eCI5K2gJkxzXjNBf4ougDh/HEuYOS7dktrxjc3IV0YzLkv0pfWqw6t9H4y5r7XLgRf8TdCR/JYFaXlb9QTeyhcyO5rl6wW7i+uSGCxhPB+qoMGofWodLf94rX55yjyzn+LXU7fiKfS+sbz1BBmsvZQu8i0c/tkwo5IS5PozWSo9vdlwU3bJo6TH0e6+LrR++j91H7aP/0fdo9LEsJu+KX479u7f74/7t4LM7Jhe7sXYlDv24Lbfb+Krj9vILelZyyiIhz1Z79zD25eNA9dV+mDXkW7dvr7ex2/vt+l9VZQ34QWjYDKnThWK56e326PNsmao/i3qej41Hn2leHfvtV2yYEgEBAZDvd7Sr29IVBvb11H+Zc97fXmhg+ifb2euUvPr1F4O8Ad8Q755IWQwd7TSU8kcdTK/+3tyPeRakO/sd8ISD0wS79speo89Qd9yLVu3qA3O7fmO+8d+l9bUNn0j9MB+S9bmEFL5O3lItYQa8i39YA3b9niaX8L7fR281Rtm/eJoTqNov4RXqBLI1AHb6Ox35npvSXLdHqdzQHo0vllbhFajO6EKtfV6Pg6hGTOCPwaeYqY6v1Kiau4Gd2+nUvLXAf+2EFhM0BpN4TV9gAfJQbLfsq6n3Ws73KHsItClbAC9t0hO4BmLvmPYIetUMbt4PzVnnzA343v9vert+rl5l38K3EHfGO+dt5xDbN+tIN9ZfZS+QjebL8nSwYjbZfIOemGLFMF2Xkz3RefK7f9l4vyRwQpcvHZekDBCk6bt9SxygYc5eZ4CBN7072ULnrvz7uqg0ld8Hz21hqO3d4GahtyG7OPch0PMvLJeGtfwx8G18p3oAvTHf+u/3x7SDR2RCAvApeIO/ld4/186RqWQ7Zeau+dl6wZICAbsvg+fs1cwmmDUBwQ4rr1Yu/a1uz0O7+13mcndqZAW844aL/d13ylGvXe/2/Sd6W6O93obvKYINu95F5rz5G70BPlyv5u/l263Ly3SFrX3Hevu9VSBlbwYb0rvTZfHSMVd7274n76ZXHZfK2cnd/q79ZHsxjwagmu8EVI4IWFMWmozdY2u/0CWBpzD3+VvMyhcxtvd5pRvyIPrvhXeBu8/d7J74T3uHvo3ege8Np9y7xD3/LvPHfwY84d4inNy12UvjXfbjEXNY4IQ9H6XgShZ66dvN5w7zG1ynvw8Afu/TJ6570ijSPaEvfHo9i94B73gnsbvEPu2e9bd4578t3grvq9o4DuQt+YALz3gfP/Pe+y+C9+a73Xtg3vYveSScnwEt70X16Xvg3e5e/Q98G7zb3uFvHjgXm+q99pT6z3nLvWvfX8+O99W7+KrtFvanQGy9uYYF76qBoXvQitIG+VgDHLxBjZiA+0m7VIrgBY0q4b8Ivn3f/e+1p4QoMAnSPvQffre+B98FSl13mXv1PePu+4jfl7873nPvoYfAe9Kd7y73zlsTv7waYO+he6h76n3jg03MU+MKXR2Pb8VH4NQZ7fqo8i99w7y9HhyTdsmCygkuK7kZIAYAA3QA+gBKYXI74vCr6PVHeto/bMR2j3R3gm7DHede/y97yLeFofiQGhxBuQH0fr73T3hDvTffV+9Cd6RV+X31kv0yvq++YFrvzWl3yAv6C2jtsjt6Gz474uLkc+eWNe0I5i/ZZ0XPmDmfrS9pBKaN8pwclgvxuGv1xchhDW1UJr95BWj+8pd5ELU/31Uvau3VQPrHlxg6f7l8bdLe7+8oF9f7xAP5/vxWekjcBh5gH2g8KvvQA/ZlyUFs8VYF+99TegeIUe7a8s9yt+5mPfWnDY8FMqLs6X78rjRZfAy9Vl5T71v38VXoQAGVF9kQJAPFhL7zEwePVA055mRVSkJbW0fhJVhn7T3hSp+ygBNOevkVF58r52jbkq3orPhWe5W4OD2l70rnGXv671c9rMQLNbt1nbgEMOfECDuZ0HMFV3D261reHW4xZ8QIN53ag/2OA4btu3gbb7a35+xjefz8/dZ0eqsgA6g/u2evM6DmNoPsIgBRVDB8aD6ut7dvTfAS+kwuBb8/twvzbmTn9g/fB8G28prQUVc5nzg+tne227CIJ62Trzm+A+O6eD9UH1hzi63vg/pOc4boCH+cz3Qfag/Uh/WD+CHyNz+wfV1vCqCFIpjZ14PvQfCQ/z9gJD+MHwSkVAAIQ/Qh/rW8prXPzttES4nBYj5D9iH6czvvZxQ+Ht2lD8cHxUPhwf1Q/VYgL870H9zK3wfTQ+NB/q28cH3/zioft291rcMc7p5/PzrwfcQ/NB8aD5KH0MP1AAIw+sh/ds71t1dIu8DEXPw+V52ZTUwkQbvETPrjPrQZsIWh3zwOuA9FJap865qa2olwWjwQkhdc0JQ9yC7CcQvQuXRUGrttWN8gAXX36bQtjfluLxxKg3m8QSYeXIz3Qej11I3lKve+Am/Tth9V1DRhzsPfU3iSioyXmSQFAcubtBORS4zV5WcCORBPrI4ek+suw6Z6ljQCPYHsPJuuuPXHrwx1x+H44fsNiZsDY6/CX4rj6ev3+3zh8911iXjXPK4ehHdj9ZL8aSX2wt0TgKS9EKCpL8AkGkvQ/UgwuGJSgYjHNQvgUYtLteb2DuEkXM6f4BNfUw/oN+3SxbrivZ1uuZIjOqAoUWG73jXB7uy7yxcVe90l3rVCHibUorJJsrZ3TDN7jc3e129Q+4oQ2qP3ojao/FFYCBGJG2qPqTtL7R8GJzdGXdxCGiuNtK7D2Sj8cq/X+4CrcKdT8MCZZXNPDe4EE8Lo+kZErt9GGyqP6N3cA3E/1hJtSivmps9c2CAjR988GpAGb0K7k7ClgqBRUH11/vWU8imA3m8vwxRmvIUbWxHqgB+Hw/MS8eEwONYwC5YPCC/DkKNnEYU+xrOyoJjGhecbzaLqNQ8jtMCJGN2wEN1ISarmYuQDeaq+5N24xoiPc9kp9aAY0oG+GP+gbUpuHwaHDeORaU12wgkqxPAaHDdkJ1j30QfurP0bcZ88FiJdcwHwgIBk51PaWiL5Tzmr3dLOytCn87jnZHKEblfmRQw7GIGo9+uP7tnX7LyiCBRid59kw7tn+4+i4Byu+MQKQAE8fG4+Dx+BRkjlDtzxAXHVuVay2kO0ABlpUpgArv3x94s6LgNi73cfn4+yq0Cu6/ZYgL2DAH7PFgr1x+IJ7NrrJ3eOf6svf6s6zz6P9XvHWHIfeNO8LoNN7qYdiduEfeLe9BLWnb8ERGdubLF6gLZT9lR3svh3uNA8ne6IGyqrhu3zdvRNSt27u9xIPFzY6pezs+SUZgnxZuH9vTGhIu9Vu4J91O2X4Q/pa+M4VTfG7KY67YwWDJPAbZCRkgI6M5xs/RuwJ8AU9oqvdJOvTRxNRUFpBuPr6rruWm0cYDE3Bhqfr8gAVH0wT2VJ+q+7QjyyAYh7x9fMA49Ql+x7gHQ/leK9T1dQ8dds5HB9Rb+kbsAAUIA3u+GgNfv/QbfffWLeySOTCglpq7bj6/z1zKYAbUY+vatACOJSl5xDTW8PmiqfyVJ92AfTbyVwUPXgI+N1q7m9wW/91sCA/hLahsPnGvUyu7qpR9fAvatec10t8d+mKfS0ARwPFu7UkqlPmomaI3cC36d+jjPFPjwkizf0p9RfsKn2UL+Y8IT2+28fYbP2v+bC+PRd5aivLcDyn3qTarIT8Gq/6SmCG/XFyfXg4WAup/mJd/iv/H/j3vveTZn4R5r6OkuBx5Xw/Tden2N3ornV8lg1+4trxSAHTCCnaJafFYE5R+UAKS0Mib0FX26woyXxAEGAAPRkFcLu9XPYSlMSscHQfDRsmELMfz4XarOdP4Dvk9g8+sNum4b4Z+wS4IIxQ/Primv3NvgEwA6YQ+aCfT9ARGCluBnmAfJUvutKRyoGdq7LWsiKf0Tm0cywQhHroNLSV7a1g/RAOMZY2yv37PAAWA5Rx2GAUUi7aS6nvIz+Rx0JTzpLhOPhvGveCgjGIwKCMQotQMDjYBjeCDPsCrhWHX+i1yKn3L5bw8rUZST9i8Q5xo1Def96kCBHw42lVwJy40ZYrKOFwkfcz6iR3zAGN4XyVuCDkz6ce15l6mfu4l9eIqKm4IEPgQS4MbxgBh6k+Dp11RCxQUDE9EMKk0U5bmToGfRNEFZ9PX3Vn2GlmDb6+Gy7OIUYPtwm3ofqeM+9gd8qWfFxC/KdXyORRneS1TiL8UOjbDtAU4xyRy/DmyRtyBLjNfCUG3D+i5YaT91L4TlnZ9eQZU8447z47JDEaEpJhBdnyVMNdMrv7cjcDWSFyw69AjWiVACoVzJdDn3MQF2fK8WFqIBUqK2+8hB9tPs/gVDTUW5CinPnmbTTt1ytswF1n03Fi0OSYRp8OVfteHzrgIN5m7gPCDyWMLcWxgelcQbTvyCrW1fa8vPJ/lBMi9FtAWwIQtFlyU6+ZFWnjnQGCy9uBxCHqWPpQAUCDjHCZwT43kMjxbiC7YtDjWaAzJQMKfmgUCFlGWqwVP29MbJQFhNCHSEmEKefBheZ58zIHsjBGLShy6YkwAg3m39XH0iTiEqOUQ5dBKZtue1rZ5uAQOCoaK0323gqdWd9aaywzP9ACn9nzYCwFozAg6cm+xXn4aMoecr/YOWuajR3n2+hLlzm7OqDfFMvkN4ur0MjHuMU6fHihANtrPx5zpj2vbalV3uADlDRBf8UfE/G694NdGP82fOdTuQe+6j+tH4tGlqNZoR2c864F2n5t7uOkxkBt+EWiOSbX3oVuvtC+xPcd2FUSksYDojCnf0QCvMQnT3DHtfLe+uaA/XBveDYVHgxjI+sAZ9o/QXskbPlovKoOIMCAz7uaQbP6FAspPEo5up61L9HGZS3D/fps+NZxqn573pSPfOWVo1qUC+V+UbvQvYA+yfuX96gH8stibkyBfITfID7FgOYvvUv8y3jlv9V+Mb5bDtKnvYfYR8x9eb8KfDjRblyol5tm110W9uoGTYqj319hH1+mtXl1joKm52rdxAd8Ms7lhbVlUj2XAstfoWxulS1RsxD299MwPQP2OdNgAUu3XFfMDuJ4R8sF3xb7M2t5s48S5m2aFkJbZoWwlsFk+e6535lJvAtxYlvXzfLh5k3u+H2TenptMEBW6DIj6o3Tef0+8t3HroMQ9skysoQTfjsj5qWzG3z+bGs2h5CNLc7H7tGtAAon8JuTnQBwFFEX5tvBas7A9VO+B74YvuEbxi/M9tX97xG84XixfFF2ps/Qm6iLwmVgvP9i+zYc7w67D+xFMuyk1eRgfAl8dh/Y3+avympJ+DqdZ7r+u8GfzFSViti1teoFDPKKOHFyJpuDKPceAKo9vdrSwW4ckoQVv2Iv5mLr/dfbcV8rH6kCYAa/0AbelG/NL+PADOpxJ7hS3SyKKTz6X93D88PsbeehKjL9JjeMviwvry3ckOtT+0IhcrxbvlfeuBu6L/GX3lGytneK/JTeEIA2X9ZHtBbsBfGENs65ia1Z0MjXsy3EMDNZ2nn0NLPqfxbMMV8YxrJjdqX0MjFK+6g/Oc+U7zovsZfMkb3w3Ax7hsBSv5pEGyCFwpETMU75BP8zPzFuwICmPc0X4pH2lfupe6J8RF+5QDVGzRfiq/r+/M2x1XzlPhMr/QAOkQir8xXx5tUx7ppfO7wdEaJiltPsYAinexmvVO61Xyqv4t3UagBV8Er4hG8Kv4lfoq+3w319FxX8dfA9X6TQ7V8yjFYn2av8KN+Vriw108vW94uPtzDGHeFo/p27uj7bJqlvnti5ZPFSeIMg7Ud8b7VZ8neUd9M8lhSefveeE/xuW8TD8rpAOsQLycgjCrKlA8bOAP8b7cAw/KH8qrX+CI40AYfkmML1r6w6bU32telTfgw1W5Haj3XpVIVlQazpCUSck7xMJu2TEq3PDn7gRDoEmIHwnG6ynY2Kd54X6w7hFbfo/BFuCloJLfSWuvLQ0+CEJ5NT39wsYUm4iU+qg2V6euMMuXm47UWA23dpHA7dynx/AbPIDe3do0+LwT6hxushe6dZAju8joFsUE+J26+kl/UGBfU+MYeaQjZBX1/BgHfX22Qdnx12AiC9Zi6Sn4SH4h7L6mKC9YdKH2ttIE9op1ALNwLGIZGYCW8DfYQTKF8Hu5JQEe7i5qIRPDTLnu5pw++hZDf2AfQ18D2/Yn509B/k0g+lsvw675y1Jm6tsppfJSKfr9wD4Xpkoge4spl/s6+mT+l+7i8EWuPP12+j+ABUJNnDpBfBF8xxOD76W8wv33K+SF+RRuefRvP80cUC/X5wwL8LL4dqteMHr7rzT6s9rbGHH5gPJ+7Zu+R+50L4svxLvRAehY0pO4MY3lZn8Oj1tZKCpQfG+hS++sf86/fe9wZ6lh/gSvyAZU+6ZkOr4zL0wHttlnBulN8iB/RHEqhaRQBXIdY9LEdNjwQblH7VA/XN/nsZoH5jHxODgZG9h+EZvz9Z/rzdnD4MGp98VZOV3pvsoAgxJ5Nr6Ygpn0wVu9LcW+sYS2Q7c0/O98iiMVnmS93pYnNsmLzTfwW++tMweLl0a+rrzfSZeCY9SirwN0qQHzf5XG4y/5OpR+9lbr0vhLGNkCJFuUQ3X3zMjwYbJqByd5/zxIbwMjKhuj1UM7v9Lz6XjZAjwaPS+Rx6XzeQPt4bFsfQyOyb/oDmlByi7XW+Ezd16VcnWawGBlVoKX3dXp6W3zdwFbf+dMap8Hl60X7Ov+ITc2/9N8EFFw39tPhoqHr6Et+pQZUV0FvqLvfovB1/3Cfqb9vY7wcFL6Wei8EDohG9vyLvlhvAzVub7UNzdATzfDC+Kt+hl6q395v82PdW+0Vs6Ssa356XjOVw2/Ydatb/c34FvtSbXW+DIA9b/ZwyGAGlPtq+Q3cOr/Oj2GvxaNjYbegMd94TX1h3i9vqa+mpC2ggWyJmvp8c2a/J++5r/o7wWv8ERRa/0QAlr/XbL/KjNAFa/pHEtr7CCTWv3jaWsH3xuNr8hxHThd8bba+buXEPa7X59Hp/lfa+dyY6d9y48Ov1XvYpFQkUscHu1mvVdUi+8LN5hAM2vL5y33GfGs/ZF8DmAC+ua9VBvrabXhJfwzLUcVMYlXcgfxatDaqsyiFQX+KOi/Dg1Ju5tzwPRd5q+9fN490i4lMx7qXSfaXLjIkGT5/I/dJEQA6k/wRcOT99wUgB+lX8EelqCR4JTh/YiNIN1k/UwC2T8wDrzUMqrmmQVJ+G+9eUGzLzBv9xfjd+CXEFaNCmPE7lRNCG8vF9FeoMoicghlM5UM+eiGyB7LUC32A3F7TktEvoriEabgVtF5Ou9GAbtLXvobIofV40oheJmxds0Z5ob45AzyYUFs6NrxPLDhfB+qz+EuuaA8Ua8cs05DFgn/PvDzNxCrCBNEEw8Zt49ujo3yPF3F4bDobIETdy+7lfwtG/HDNvr6XCHd+XLgE6+6gBTr+/1W61A+PXKAt997r4e955WcdTk6+fABOxobBFHr54vxYfC99ekE/CQ+h82bajWX0Ob753X0+pnffjZhI5rjr/ZU0fv/RVJ+/OI/i3GjQ13v/5ob45am8RAHnE5rA3tDhUJQiWt8GH39HGUffezQtBr7AAGgDAfwJBZ72ED82NQKYi+vgX3P6+lwgXIn334Af2/f3+rBEW1YeuL7sJJhWa8zc6tSkGEb+F8dMIReBdI6gIiaotQftMPxWgNXOE15zChXs5U+6YQ7KBFLOvXo9PhprglxUGK51a69NfuDqQ9MBlp/syhzGgixa7APdUMoMdFeQADd6AMYa9V3nEbT9D859QMtM6YQT2Lz77Cn8/v3ekDi+fi9DV6JkmcvkWnbo8QS9NBZrm5CX1b6dqGsF9fA7t9NBt3XfA9FyMhBT/6DfVdyvXhfBurH8PYQR9FPrNr5hYEKAhd42UDLl0qfrq+B6Iiz/VAj6aN+bFPXUV80CDjb2yF1nrW9fOQt8/wcyMcEbxZcP4Hp+hT8nEqK9IOA1U+tHuFdUc1wLPOH8L0+cj/MHFocxFP9MSRjfTD/FzdOX1Y3qavauVBw97dYT654v2eiJm3AN+SY5Py+MKMEXWT3gN9H59OCDgiARXHbe+zc7JZ8GCm1m+HqHWsm/CBd8Py0vodcQj3HgoiPaDbOI9jSJmyaXC12iBkeyIAIGYNfFFlR9pNgjEY99xAKC+duQZLZod/fxdM7ALmO/H3vgceypRuc7FP7Yv636Jh+NlPzw/oK/wns+H5hX0sAfx7uI3Mp/EVvUn1ML/bfiK/zwLIr7nr/EfsibL/Xh4c0U9aW8m3gxHaR+dvQXQDh/M5xco/wBBwp/Kfdm1wO3y+P4puQQcF5DLe9Adzfvq9oiiAEhrC1ymNlv3JGHNO/4hvJ8QkpXzXBU2Fu9vK9W/WFx3E/23B8T/k+POT5CHj+v5Pf1ND9SAJ71/XxZQQk/Tk/I3bjXxLwTUgFQBuWJfoR/pkNkDkAtO+728z94fb3P3/aPj2+Vu84hsZP09QIrv6/fNy9LL8qu6sv0xfj/fiN+bL41L2ov/m2rG+m+gv96sX/j49/vf4eEJd2sfOA1/31rrpJ+L6+Ehso38SfxjDNp+CQ1MhrN6Py1gmIZPGKzKP0SmnyoXpE/X8MYGLFaHCwFcAKVvpTGf6acn4Vb9byMM/1ChhjMbh4HkAWFjCH73EZF/zz/ozrwXHBfZj23D+aPc8P6OxAmI5LAyeOM0ARUOZl2n09X5yDHsYH1AKBCHgRKthEFhLB6C4+a9SgwA8ADS+4FkcADOvttr9IuU6n+n7PRnJP6a1j2NQIQdn7dpXM5x+DyUBF28Ehq+I6LRFIc+kbahv/NYX4F8R88cWbXH6a317S5ffX/NvztO+WYZn6qDVmkMc/aXL/mshH6+aG4VGN4ZnfHD8KS2Vn/3P8dcW3EJ089YwA57gP6Ll/gemXAtgGLPyRgFpvVQaNhvdn6CX72f5+vH7hlJ/9BpTqeRxJ8/rTeNz8Jq4D330fqoNXxGdJKjn57Pywzf5r2k/8ACe77/FdP3HLYSQuAhhh77HINwTmzj1tR+g0x7+YgBvdzoQaQah/cUUfylM4tsPxbZA5uhuT+mtYzQbM8JVgNhs7n8fpi70TqNrZ/RRH9lI8P4Bf7NnLgfyrs1n5W4FFQes/YVva88aB4EX3RG7v6Z/eCEJRb+6/aBNh41+XuhV95d5175cx4MNL06Quu8X/l3y8wEu6hw3WkXiVZnFFwPjU25cR9HejRNlJKPDfl7JAPMoPREfMCx1j/mXNYfIEs7fe01wK93S/TpZ2vrY753zqSR/7WKge/duePHw39MrshtJG+rPcW77mDQrcb3v2i+uBusb+OW4BH1lDPRvON+yl8Rjzr34jAEz1wtfB9+zV+A2J1flyvNpi4gl0L6M13YA5m/kbvjO72cLCOWL2+XfQr8VVdTBTNrmK/+JkNN9+kd/NElf3EbmV/N/2bd/6uA8r/zDA9PQncs988qb73q2P5V+ir+plcyv5mCiK/DV/qncItOkcs1ZHM5rl4dq+CQ/ST21hxK/8V+Cr8VX+Gj1BBzK/AMiyr8FFBGv+ZYDq/zRTur+rV96v2NFEoPw0w/xd3K8Gvy1rhK/pXPUr9DNnSvyFfvNPX6SJg84Eh9Jynn7QvCy/Ne+1X+iv2tfra/ASA0r8eX8eV2NfvNPq7aR19aL5aGHVf4rnhV/Lr9NX/2v5Cr2UvH1+ZaNp1AO32nUQVf9Sv1N9s94Gv3lf86/U1/fe/o/aLz39f3JDCLT1Eke96eD+tfyG/cN/ju8rffev9NfuGwCN+Goo1X9ev0Nf3xDaN/7r/Hfuav9KC1q/UN/2r89X5B4ez7Hb+iN/VT9vK5Rv55fim/kPeHr871vSA5Nfom/Hn6cb+1Fh6B0tfmlPK1/Pzcsl8Zv9Sf4a/jV/Wb9gQF1uRzfrG/hlno338scnqcdgFmoTiJ+1niPMIQAAABrL7/x8RmItAU2C9MKEIgGQ2l2fxG2faIVqBDimPTinmO9Orv0BR9KvH2kr0wnaQ2DOkNaZcOaOEZsNuo4sfzEGXt5dMY8vdSPJBt0+/qL1SjxovBku4o/Gz4Sj4Wj9ovolPWffWS/Z9+tzNg84k+Uu4Yq4sd3LrwrQrs2oeMH0muH4G7v8jG210Vf0q7qI4r7vDXDw/Vfejrmrn1r7hmAOvurO1wD3d38zAQyfyA8/UeaGZxXqwBl7gPgB6FToAed95ZPx33iIhnfdpVRaiO52hu/3/uCWlG+6I17IcaWgfvuOeB4ywBbD779SiZvvdb8aEat9x5PnW/7amuANBdACp18Hy1H+1gnaz2T6qDWhf5AAtk/S3OlE8lJ9evaFKdAQyqtbXlXvymCBPANCUdkDfUFd9/irt0A+/dNZcnsUlIvwJXYRMpOcQFVn7MA2nlYirSF/bMRJF8mCMIX6hEglksi/33+lJ6LwHEBinB4oWj8YFRA26HHRRIB/78GB8Af/gttHxWkAG/AkcFlxoCPhcHNR/Bq+Qj+fmjDrxkuri+r5rNH6RH8KQhxvmi32gOdH+cL0CgAY/hKddFvSrDSovXXWcPMEbpmJutaxZfBNo0nmaAs+u79a05aIAFh/LsuMiPqt4xoOCvyFf3h+1cpBt4r4hK39ISsK+LdPwr9bhwCfjHe8ww3orVujof+B1pybBIAHHFtfr063AwkgjcaHYANRvhJeo0aGev9/Wxiucj8i+mCfrXftDsG5ZQn/f8wpFfr6m7Oehz2z/c2O/frCEn9+yJfx39hOpV+uw1XhveCEtdYkQy4/jY3vBC37AeP6yN0KbtsgMcPwesSraCS4Thb7fw5fI4+2mvxlQKP0Jc3p+F9+uEqoPIeFviXe2KCBsnaqnMDJ7RTR3++6N93qcVxVuJMeyXp+DD+5H+gRpvxRsXgmmPKeaXbsuzTh/yZcP59aCuMUyf6oAIvTz9+fP3vNXFq7Bflyjn4OozaXXRbP9BbEQAEF+oL+nHt60cMFxv38BCGZKVfv/P8Q9mTkj/vqNiRSWDDevfjC/zWcE9+KSq69Fhf3HjFFGMWJIAcZr0tJNsgZPG3O/o79+oLTxeZfKce16O1P6kv4p3yTKsf6AA2WsE2tKExvw/3f0Z1/FcZ7KofsG5/lTA0i8E4YylmHIER/Hx+LdNvoVCY7/tk7VinfiGyNT4f5CM+TfismnRo8Mb9CY5fpsoXxGnFO9ipWJo9WT8HY2QeP789P9vhWFmof3LZ++xOYidcjw3p4jT4NyeEnIFCIEyBlEbFihBL0e5yR39/f7uUj8F/PlAbE/newWL4IvS5/a167565J2i1FbDksJ2C9KaZRbm3KUkZTaJg19f3XYfymT/1HLKFOToh+u+D54xBwz3wfGn+nX8Ofx0Rx3im7O54rHB+42DS/hx/LJvqERpBr307bxYJkEvvATXuc1VQoUOYc3Wr/1xQIX54GkN+nO/rGGp7v536s7dTdt3g2vv0APVz5v4TkXq57R9CONeiGBr6DPfi33iXrZAjoi6Xv5ZpygYLd+QIB3q5KMJV+qf3EPAdD/BMi99yPf9ZKg29JYRKaZwgEuRpEPdCuzr85d84vxN7mN3HpGSg3CKxzFwNe508jbYEugQE8MawS4L0SWdqgCd2QDqomrLoi3qwWdsfTMT+D1diqNQhgrjn/hm5QAJ4xc/fv+/6Gt/rwAPzfvqmdca446TZW9YNRnKk91oN2csL3UgXC+342HDlseZX8Lg+9JQsH4hDE6fY/chqHj96e7mNfSb/q/cMnuDAHDBZd/Xx7539g39vc5YH4v3Dp/qjcBj54CsUerN/Xv2mCDY+8cw/SRNQPxXH0He/CehFYYH3d/eo+ov2ZXs09b0Run1ZyWT3/4T8IHw37h0Hlu/6PXesDvA/Puo7VMa+t38zq53f4pHrv3Znt6t+LwoTLw3L8jiUMA0OIHq4eDxe/zP3Wweb38vK7vf0hPx9/iPrn3/y+s7C2+/wD/n7/5A8/v6FyEnB/9/SWmhp8Cb+3f657Td/zkgKP/13kh3/GXz9d5ebqHcdEYAl/QbzwPbVRC2vWR9Qu88RskPP/J35yGTc/CqqUOD/nH+vtf+F+1y+EH3u/cGvmWDjT/6DylFQ/Y7QfRVPJB9Nf/Tfj7D6Qfy1fC+8cf9QiNzvkz+EX/bLcKD+AECoSDMOj+vwPhnX6Df7nX9IeCQ8NTe74I8NrBosl/Se6Kd/UD1e/oJne7bdg+3v+Tf/u/1SZrAagT3IzmwQC+/nD/Prm8P9uX5gG7OVhuA6LwQLbWNanEzChPr2T/BPoHLhO22IR/n7ffwBaF9zhfSAzhdb6b5rpUQbzmmHAevN0lb4Ru51+HB+K41p/oAjv5VmQ88sTJD8P74QDfM8N6vNGYmDxgHkc+6fvL39Z+692wOvvP3zdHe/cUf5L928N1+coH+aP9of8m95oHocdM4beiMjjtwQP5/86/7/uq79Wo6YIG3b3YwX/uUsi5jbCLzifzRPJCfAA+FdQgDySYIKia3+7ag7++K4xN/y9TkodNVeVf7uD0f7lt3IRuU3ACYeT7wini/3TE/y+9uX+b925/nIbbwfKCHDf9w/+dfhAP3VPoYQuUef98AHss/m3vujp8v8Xv6mT/awdVFdv9weAtJ2K/r1/VY3CJoQL56/6M7vv3Wn/7X/lf5Aa4d/8BrASBtP8rkBJa0G/0d8kK3A1fSUEmMF3qRf3LMiQy8EABX9wubtf3FvGzu/bAnJfzZxyl/8L/0f9Dg01IM3YmGi6+Afv8Hu7+/zb774PwP/vheaGbB/wFpiH/v/x4P8id91H0hPmQNvnq2BWsFU8/0+/yghdPr2wujf7XXxQShw31QfxNgJB6GD0q/iiXu/71HcvX6j9R8N4dguqGxxd/FTbQXe/4gP7N7BA1a/+noHNe56c5v/vj0+sT4v15fiZnwv+pA2QBtkDTL6vuM4v/Q/Vef7BnGGPh3/YXqnf8x+obCHH6hJ8KPqRv+nv7y/znBwv3JhuF38EIQc/41/lD/+wefR+yB8b99+/6Lly6E5f/rhVrPyV/lj/OhuDoTHQdEAMUB9YrRIA6v/1+6O3+ynnUfC6/738LiOpkhVTlS9rv+L/WS/89/2m/73/pv/ff/0BTp9VmqoP/77/tzY8f5g3/vrtzmYE3hOjcf+ZD/8QXcA3f/LgPzMYp/4f3+4bSE+24NV/4w/4V6w0fXv+Tf+JepR9f7/h31fn/g//mWAz/z3nhkPu8Hh//+geuA0XDWr/njF5qdGNZ+/zzuLJAdqeG3/Sh5vz/d/ihDHIeKRtoeGr/2L6zD/lBCZA2N/6X/+7/wyAr7/Zf9t0g3/0Br2//O/+UIMS2L7/7kkZY965R72/71/4L/7CBpdVoz/4JPhz/7gAGS+o+/5v/4t/4gfYvf7rYarKBmwDcsQt4Cr4D/nQgAFC/59f4v/6L/5i/7QAEQjBYf7x+pi/6Hv7KBDKIRt/6hkY//7fq577aXZ6H7bk36fh52/59f4sBqh+q9EasAEX+pZXrb2o7oCKfYl7awcA696ZG7137fC4a35HgS+/Jih66hAsaa8jCX/6kb6yh6Gl5eXqwECKh6Qh7sr7+gD2w4ah6jI5fl4o7Y/l7uS4H47Tx4u9Yf26yHZf25urZ+S5QV6BS4QV4wPbnl4wY47I63466AHGjZEY7wV7rF7QO7QGCRrYWAGsHaIO4Lx7uh7o66AcS03IdP7tCS5f4gx6al4Bh7rChBh4YAohh4e951v4zu4lEB2b5EL5eeqAlqVs608Bga60DRcvbHq4QOi234kNbaaYwAoqhiqaY/Y4hm4mAY4O4p4bN3QsiQ9YQmX7PGy0OzNkjrUp1I5GvalWSuv6EQCW+5AIwxZTVAGT36YUBG4yOOCxZDYnItAEmyibESb/rHNLEkaYpQk+YJMQuBZ0h4kWb445b6LxIDaaznQCptSAwBQ+ZTeAJpDFt5J5S4ACHDZbxCzERWm4ADbKa4kuwu0DQzZqa7R67G75gRYFP4VH4cOKkSx/gjtVjhoaSkR5kQPFbSLhryyCj7KoaSN4F76SkSjwzbpJ6hT00B1axT/CwgaUYhCiSOX7ve7QzYsYZOj4QeAp1KiDTfSTZNY9i7PAGOj4ej6Wni2iBy/7/UQ0B4TxjZRzZNq8X6mm4TB5knSH4wH3ae37po7RR7b27NUrwO76S6Xl6GS4CU6XRbB353l6FmZn26dF5lmbPl62S7iWBodRy3btx51o6DPZdx46h5YlayjbaAHo7aH4wTF7QxZTF7Qw5gV7tF4Do5QPYTx79o5c/pMgFrF4JR5zx4iU5IO47F68KRkw5prbRp7o6RGo6t7bmE6vg4XQzf3QSgECv5weAfI7Ew7XLIiw5gl5JfAiAB9hS1MiKwYjdwlE6agH8v5qwaEqKn6zHo4WwZykZHIDbAg9QCAJYKgEuo5GgE0T5LmwKI5no6aq5BlLWgEBo78Y7hi7lY5bUYKgFjbbwS7EE5Po7hfY145gFazbbL7ZQFbZs5B+Ri+z3OyvGxJUBLawDoR1EDHKovICGn7c475PbwTAALQekQYV4y/ZskBZmI4V57HaK/YEV7K/ZEV4s2D5S5nGaBKZa/aKlY6/Y2tBeHYymJ8eASdRG/ZPGa3kBBHYLbRvGbm/bhHYUlIxHbRHY+1TcV5rDKdS6JHbO/YdJapHYDS6iV5wmY+/ZysASV6Ima5HbSV5ombTS5FHbyV5zS4QAg0ExLS5t74EmZn/REmabS46V6NHZ6V4UmZ7S7JV4hG40mbybTHS4MmbmV5nS5WV4r/YCrBXS52V5ptZCFLrKaOxJ8mZbKYSyDTHbPS6eV6gaxvS4+V5LHZMmLt/Yw8CBV58djBV5SIBKmZ3KbbHbhV6ADggy6imJgy4AAwQy6VmKUmacMBwy4Tjiz/a8sy3HYBlKL/YZV6PHbHgE5V6Yy75V7b/bY4y4y4H/ZhPhlV4NoAVV67QBzgFky4GHQ4qZv5wQnbhmINV60y7RmLNV5wnatV6My5jMwCeApgEpo6sU4U+6b26ogFZo7ogGc3ZNF7X3aB35goZ4gEmAEtPaEgFWS4X26IY7Q7bdPYz4DkgyfRYDF6fl40gGNo66h7No4SHYAoYHzTMgEJR6So7LI4cgHzF7xFaQV4uAEIO5WAHQoAKQH8gFmjaOAHHI6xS68QGuh62jZFFbk9SM8I46JpmKf6DlqAEFDlqCRHY7+LkVTgGg66wpqB+DRD/IjVY7lDmpSf6Dr/RYwB5yDiIQN4rjqyvAxMHDFDILDjZqB+DQWyCt7TlhI95KbkBlNL42IUuaLyAzE64wxz/Z0OTpiRBwCQoZGY6NrZXHxZU5nSz2QFLAAB5R2QEhJQJdZAzRT4B2Ep8zwpH4MXRYIbDdBZQEXlLRQrW4jCB6g3j7T7n/4kaYv+5vqan/7aACNQEKR4eAAH75IABAH6x2qI3hLEA2oiP8Q8yLVvjK5BGlLz75oSTo4CrkzdQCTAG2kSyWI8yLaSpmhAPuJuabjs7ieYeRZjQHBrCFdarky/ECMwRD/jhQCXPCQYCXPCr/jLUDfXgGjCr4BCBA57DQi4uWaPfYCoi8yDZHzfXh+bCsRCDujDXpiqZ9URgJhM7BrK6MbYbpTPqLu7h3LykyqA0CsUQNjYCojZUCEyQTfqPpYmVQBZLUiwf9Tw1QPIgpdz3QYRABVQEhoL0groGDZU5dYj4GDpQYZE6VEoGX7Rm6+4AU0ZjG5ycri8BfDQugHL352EjJtDJGZBi4g/4FJC2wDi3hdhC4BwgjjfB5F4LxVgVYC9SDK8JIAZsxifRhYwhyCB2waOoCu2Z59aJhgAPh3KBsKx9AgUvyx7Ag9QiwGWgGNQbzOZ2wYuSQXn4/qa7D4KLAsyKWxggU6I4aEwGWaZ2IDkwEkmDxua/QCw6zM9Dgo5asBsKwE0SuuZPji2FrioIweLtViMj468IkGaeaaA2gn6Zvqbfr5og5a2avJ7LU5DwbqaQU0aAsTBhqH9xXgBWRZ5sZORjowGujSptDIIiTO5qfTeAC++hQtCWjxk4bYW6h9Aw0S0GheQAtZZThTyGzXZYWbKqlBq0BQvjtGAwHi3CAxwHrqIHwAybCbtZppRZwELQbasAMUDjP6uwH9Br3ghVN70yBm0qM6xlwEgI7zHjZwEH5L7kB5wE11YEgAlk5bk7lk47k5ppQNwHCCKbk63E6WwLfxb6JQSgZrfptVBppTzHhA8YCGDnxghAG5cpnxgThb2jBap7MKR8gYdqY4wbE8CbtZJC6h8SLwE/kZ2k60vhbqwktDnQBw8DFLZsyxuBYckZ4gD3ISDwEHwGvITD8RQgH8GbicYuhSjrbQiL5wG8UBvmqMAb3gh3wEx5SycDLFbD8QOOaJMaCNaQX7UDihiBlP5LwGg1CGT5VC42AAsiCCNaWZ7VC6vKBNC5AIEmWTgIE66BcGBdC7rrjAIGC7jrriTC6H5a+K55UCQIFTC7H5btYQkAor8QH5JH8TD8QHu61MgLwRMOofwH4IEKETURYubCdkYVq4O4q8y7fkDcsDMMrRUS0IE8kDzHgMIHN8ZMIFn1qnNj3pIMSQ5hTvFSH/AuuasOIC0R4AwJUR4+b3aiMWDzQGBhBUAZycpvmri8DwnDPwH7Vb26wLQZuWi9JZh6ygIa62KkQxNE6/uCOP5uWhzCw4IiZZKVE4d9wJwBRQFpcLquDf5JsLZZX5vnAbk6iwClk5MuD3E6nYbewGxm7FkQpF5OODsk6Ek4LwSmtyP4b2IHCF5OIGck5rkA17TXgCgIa+jZaoQUh53I7PLalQA3QY+3ZyY5tADGQy8sYz3bo0i7gD6M4LQxKg745ZSL5V47hXYvo61oZuoakOjdZaVQBk5bysbxfaJvYEFaYIaQXbqr4nfaIXbka45gA1r5Mb5ar4jZ7HLaq0Rucz+7AY06o0RY5Qz8h5NaZ243Abl3aE4SqrB8goOIFBtIEk5eIEa0DqlIcEI0h5BIEtjYhIEYiBhIHgn4u8DGQyhiYi5aUU56M61UDxIH545a77JIG7vbXFa147Z5ZF452QxVVDl44iUqVQA90RRYRxWxoGDjbgwwarIHag4WNYUAA5gC5IHV3b4FbhjbhOQygiFIFGL72K62g7ka4DQAeuKar5KL7yp5D/7Rz41IE0jh1IG0bYKIa+IBrMbNIhtIHqiLz5DqLS+IEW/qWcbYk6FYaNdC/U4pM5CSDdOKwM6bw670h9VjsqZMqYpIAsqYn8ImM5LUCtMRu4IuUQGBK2WBg/wZ9Rg/wnJTKwEFJCNP4VT6t7YaB6S76/2Lmjh3gaZMqucAweLEIZn1qsrZ7gD1YarwIqkRSrBhKp5Q7zsDXvQ277mZTmujsCL4wHafojCB76YYJzwPjsCJtriC+5OnjKBBwniESx8k6fuC7CJD6Zwni+q66dAZriioFIOjsCJD6YjkDKoHKBDDfqacD+ZhWQ66dBVz4kdAyoFqoFmITGoEfuDaoEQeClrimoHyoFECJ+q5p575d78JaSYRiFjeB5UtZ3K7Go6UoG9r7UoHkL4ssB0oFcoEsiwcoGQeIfgC+Y6xj6yoH8oEsyKCoG9frCoHYaY2oHioHmi6v0ZSoFWoFAtaxoEsyL2oHzYb7uA7uDegYpoG7CIZoGtJ7LbyJoGYUAmoF8oFioGpoG6dBKoEFoGSahp8DZoF2oEqoGNdAVoG9RCh0D2tIGoHKBBGoFTNBFoHhmzmuitQFKoGOoGekZ0uIuoGwuJfZaBM7gkBCSBhM4RT5IMRawzIM4ktAogpqwE4mAn7AkoEubBLja+66CKALQbx5A405Cpa/Y4mBQlU7wtS2wSPwCJSRJQSMjAN8remrA64ilSe+7D37ESA++6BgymAS1AGFaD0Ujj36z3791o8O6gAF9f5hCoCpoqR7YIBTXrW/rU+p5tBUr4OSbre4c3LsqY8v4DCxboHs/58/7HmCEM7Cv6gYHLiTAYHg/6A/5KgGy4pRUA2FgSIH3aiRoFXhS1bI2oFdrhgBCoYHuVR+sDmcDgygAtZIwDWoHCVJNPByoHiFDbeYp1akuIH0DcsQWGwCk4I3Y4+6EwAUwDqiTFcY0rZX6zqBbCIE/GCKR4yWCMYH6iZHCAM2I+E5x/7S1DgJ7xQqS/LFVblZZboFJF4zSwMJCGv6ESyGv6q/6jB4IKDCF7zvaBZgroHTcBroHfxYboGF0Ymv4l7bcm7mv7udqjcJru52hC+q7F366YGuZhWdrvojoAaBv63wpJC6RTbeWi/Y4WkgNHjoAgBL59xanObzfa+b6El6j/oKkRc/6Tf4lLBWdpd36c0gmYGd37fC5LbDAIKc0gZ8YuCYj4qZ3ASf6Ma6iGCqVJJfCRYFRB7fFSSwhhv7noHrJTFf5woET37XoFvwDNPysv4T35KaY7IDzoFtkBt4J+dh1374AC+YG4gD+v4TCA41YGcLDlLJwB7zZ8zYzoE2LC6f5O+5FB4VYEEbYxYGo4hEbZUYEiGpQYHVYFVigSk7lE4P36AP7GT7R74QoAYX5tYGrpyoX4jYE/0x9YHoUZjYHb35s3ILP7pSqESwLYGP2r3n4pgiESxpBo0O7c5A7IA9P6X34Q8AWGyY/4iACC/6l/5NdYkTojCByW7BIS9YZHYFEB6voHxoHE0L3agtfrjOBiy6JgLquArHBTwD9ChmGZYaqKd5YOSdUB3ManxjzDCrLLw5ZiYFSYGV1K0/7Q7DF7pb0Czu6zYHg4E2ABF6aj8CSxZLIBW4DgYF+PbQiKKd64ACUGAPP5I4FXwHd/RrZbWXjQzYrVLrAFM7Cyl69yba95hIa5E6MF6ZeK2f6V070M5/pg4XAZ05WESHL4DV7HL5Ww5EnaFuy+EKUOJR9ZHw42N7uL52N6tH4EP5eL5oUCZajvhor6iIYE+0pvmqsGDpZq2wRP8qSIF4gDwnA0eYCzoDIy2WD7ABvFCAsoSKYp0ToSDy4FM5CzlbK4GHuaooTMebSJSG6xBxgo2AFmguKhBS7tViOoD7H59ab1ZJpUoXDiYOwi5YYJhNQBnkB8Ijg7B9xRgdRUCQPd7A04ZSxaRiG4EGzZgwj2+aV8aIzKtKJu4Ek948YHiswjIG07gu4ENZIQdTMYHhmygIa9SxKYGj1DeWjma4WGybtYGbCWl6acIQH6vjhj74F4ZJJxS4HIYEy4HbjCJgLLYFmhCboEuFisYHpSpSIEF4EQaLlQD3IRdQFZvhvmxl4GP2oV4FT/CEICN+IB0zVGZW2I/eYqlhNtQi4H8srS4HbgSsZIwsTbjAPVJZT7rzD9oAjaYKIF04Jj4EJaYWa6hXA14HsqZpnBJyZIYHl4H54HN4F9EBe/pVewm14LQzuvA17QRgKj4Ey8AJaYuz7wxS4bz74GQHL14FL4GN4Er4E6iiVDBpWKjqCPUAmsCeDAnGK34HPGoPCItPpk04Xojgo628RDv4OAAc9oweKWq6JYRnIE19BDv5GMBeAAc9pvGrC75K7AOzRDv4sEo2VBZWJP4EE9p36Sv4H9v6R4ABjBQEEjrL9haHGJwEFl9QIEEW8oQCJv4GiXi1HREYFJfDTYGPmxQb5+HDf6pPhRdYBmBDR2JGPDEEH82ykEEvmr6KoUEH84BmBCsrY4ByoEF7jQg0CL4Gi4F54EXuiL2jTcBZAFqFhVLikQCb4HyNTmQB1AC+W4Mc44IZiEE66iNkANQEgrjj7SDYyoB7uGqH7AOAIJSDgJixCIkIGZ3CkH7tv5OxqLUSqEHNIh8zzeQBXjiTWRJJy0ChZICUsD4IGJ4DtIREv4ES7GEFegKtPTWDTiKB7kCP3LaACgjKSgBLoDXT4jbiyYRGixZIAWebUoCcNDjRCWADvsrpBRDZD75IRgJH8Rm0oPnB28biOKESzr4EVACb4Hc5AVn6iKCbtbuLZAn6lWT6P6XXy/zaQpirMRALbv+YDUayjIZagOcQIoGHr6bqBFZh9AFo3KsMxFDjP/oaXSa34B9QNGx74EjaYuz7GE6M6D5QAEgBliC9k6C4H85D+eD6oEfuCoH6vNBB8Tx4FYVbipgDfoPAFK0C8yBjhTIsDJM6X675KB9EHEBCjoGIoEg4RdWQzQiHhYj77d75Z4H/4GYH7PEAyMImoSxvZ507RxhD6aqmBszirEGQH7rEHQH6k6DHuYt3gWGwESDONzIH4zEFrEFoH4bEERAB6eydGT08bCVINHgPnD+P6HEErEEoH73EGvNCPEGk6A4QAZ2JqGwYsCxsQbYZVYG6Q4OiCPACq/gw8BvmpNEF6CTHEGZ4EPEFnEHqNY9BSgCAYdxrChpDBfEEBCAES6zEH7NBnEGwH44H7okE0YFmxy3EG9EG/EGAtBnEENMIcTjYHbUwDoGR/E4MUDp3hTO5n1qbDj2ITFaCkkEvjiQX5QH4YH5YH45gD7oZEkFIwBweYcoGhVAIkGckGnEHckFmgC1eyOAA0QbokGt4FmxztVgikF2EFnEGunCooQzQLokGbzB0HBg1ZPjgKkFckEZQYRADuex4QDokHOsDJABmxytYEsYHn4FmhBN4E6ij9u7gE7akFikG6kEUEbbQLf8CHix8uLA3IxhAmkExY6S4EN4EWkGX4EiCA8zZH4E4kHkkF4kHikG0JLHuYukGR7I0gBukFskFHEE/EEnEFIkHikEksKdGR4QCQCCdGT6exAkGk2yyciPACmUBQjAkkHRkF3EGxkF/EFnEEJkH3iLn8DcQab4CrewksLokEZkGSyC3Hg5kHfEF5kGIkEFkHxkESKZJkGxWyVkGXcCmUBw1DukG5z6ToFmEHaAAWEHuGpfULtIThz51URIwF3qx8M7qqYZ4GikFoH7mjjFM4wQFRYDj3yrQC2kHTkHqhTgH7LRiBkHoH72kHUkRMTi38C7EE9EF2nC6dBYkFnRgXjhTkGNkH2kGVez0wCXEHAkErrZJJwlE4kYHjyrWrjkYG6ECigCrkG4kEbkGbEEEkHwH78kHUlYsCC1kHYkHHkGKkHikGwH58kHUYECkF8Ub7jhZUqHkGdFD/kE6kGbEFUkFf8ANMJ0kGZZgaQSSqbMkGrni1EHXID9Vg3OAqCB7zZPsggpzQUFZ4EG34Du4hxRXn4WMCJNbokGJMazToemIHhZ/kGTkEAUH2kFFkEtkEpkEGextkGZkGWqD7KxRkGHhb4UFxkH0UHNkElkGvwLlkGvEHpkHtkGsAA1kEcUE0UFrkH5kEUkFNkGJkElkE/WwsUGSyCdkFc5DAYH5YFCNQvkHrkH/EHPEE38CQJzvEHn7jg9aQUEgVBcUGnkGbEHdwJpkHoTggkE3kFNPCnKIEACq/jlM6VVqXcDQkEHuDmViRJaOADV2Y94GNsp94EhLASJxtVD2UHrCgwkH3ag2YHqUHIkFn8BIoTDt5qGyq/icoDnji0UEwUERAA9exSkGCUHoTiykGakGhVCGUFSUH2kHKkFVUILLZqGzqkFD0BykFPjgpUFBkH2kH6kHrigWGxGkHsDT1aCI05mkHcEHL4G8EG+kHYW7+kH5UFvkERAC8KZEKa0kG38BhkEw8CRkHlUHz4aekHmkGBhCWkG1UEljZ1UQNUH/EEhkErP5Y5CukHwBCimhTEFYFD8qh/oRqdDFEFeI4rdy6PyAyxn4FVUEX4E1UGIWKAXBlE7Xmz0EFOxpMEE2ABmBAdcIGVJEEHbUEkEFLhB7UGNIBmBCJgLV4GvIS14FpnBuUF0uIeUGuchyIFpDDZMBHUEktDjhYeNDGoITwEeNA5gDvUEvYGcaYuDDdUFjYHDkHBz4MHSeT7rCi3Hipz6qaDmyAUM6OM6fUEZgAeuLgYGA0H0QA+azI0ElP5Vkw/g5JywTzxXgB0IaKM7xeDPYHe4GOW5kJZb1YTwZiYEtqZv1Y/t5r1aCsxy6xsWADm4u4yH8r/UGPmCH8ptfoUJbujB9GwsyK3XxVHTByq/RitqawNYo/7wNYLqCtqZM0F00FVf4DwTI0GmGYdPpWwGSqqE0F4UDviAsR5vYGWwHeaaN2SmAKteiOxg00HHUFVig8hDBYFSAFIUHcxSOOAJMCnMC9hz5YHvUElE75YGy0FpnA6s7fB5XcizYH5YGk9wgYGwYEFJAi0Eo2Dm0Huyjp4ESUENkHEBAl4E43KOlDqYG9hwzoGm0FNPAzoEW0Eo8p+fyeYGXqaWRSEEFVigzoEdIaM0Ea0FGPAs0EQaIlE6J0Eg4GW0EUUazYF4MbDnC0wGgYGB0FJfDZ0GO0GxrKp0Gh0Hwo6ESwlE750GKgGkoE6wHPQizYGthJJU650FViithJF0Hy0FsKw10Hcn7oUGaQr2ya9UGfwD9UG2NB+kG7VyDu6N7r8wa35L2LrdmpNSCj0FgIDQYE80Fc0FxU4NVYVm5GNa2gEA0EY0Hm+zAYECW7A+ZWxYewB1SQqyQpcJFCJqIEi+71BREKBck49qBSvRADRH/6uYBINYj+5khDgYHZ8Zp2Cea5ZUDxgaBYD40HV4wh1bjVZ8tJpaBtfrl1a93ZiYGDEEd+58FZmwATmz8+hexYJ1Y3cBJ1YOcCPkFp1a5M62MB8tKBnS0z6UCCZXCVvKUCCN4CUCACcI1RSPmDyf6F8q6Y7FS6HfLuXYD1a7lKVfxPfquU6P6bTox+8bJ3TsGKhIB62SNFAvzAZfgEpaxnIRgjCvQQKRuBAmAR5O7UlBAXw3+RL3a/N6lMZl0C/kAB0AbixoWLNkiVqK+W56iBUgIvsCj1AFLhOQ4QeAFA7CMEEgAlLhiMGYUDvOKJUCgpznjKsMFeTAkpRpegH6zKYGMQCqYFB5LqYGa77gT6rBZBkonm6BKZ7KxsWD6GZiNYgJY9ATr4b34BGMEo2Clv7Fv7zVBQkAr04vYE2MGdFDDVBAwoOMGPmBOMHTU5uH7piRcABRYRRkLT0HT0EgxjgjhXRjIoE+E6ooFcqY8gB5051kh1Zic0HzQavUHSYGPmDsaaMaa/UHxMFsWCcaaZ65Uj7gYEcP6Lh5htbHQbgYHFAbBUACNiLQbKBDSi5ogDKADjVCnNQFMHS+pD6Yjmr43aFMEQq6cNaGZJTeCCNgqoFl0CZ/A9xi2DjNMHKBARTi/kC4JbV07iaZ3NgEGap3bAYF9MGKsD4GasACcgaeRQIAZI4FIAZP/owZiESyzMGKsBAkZ2Gr/qY6v6q/hxrhzDi8YF1AA8v5RqBlswTKDa9CPABgBBQHKv2r09C57CBh7JSSLEDL4CxDDDATxHxRIDIbahI4r0FVv6UWD34BINQmb7vADI0HiAHInhUeq3Jgh0Hy0G/6YSAH/6ao8AGf5EZSB06FM644Rf0HLoEJ4GOk4WIHNwHdwEVk7y2zhFhPIQ0gBCCK/IQCyTgYHST5MuDyGwk4Y/7KkEBR0Ex8y/NYuz74tA6EgOyDceAQsFYVZQsHUQCWIHbk6tkDe0FToESYFz9TjkE9H4j+YTaYMYx9ngLUE1A66cbXZbLRhUgJlLikQAFLjhQBrZYcXyzUYKdi+8CEM6J8TrEAfrJ37ATQ5y1ZMOYmWA7Q73qhS2YV/rgYGQ6YTy6ucDVOZKsH90aakaibbFFrqsFaqa9aZy2ZrdLAYHKsFA0bcbbasGGsFBqbt0YibaZ0bU0Y6sHI6Z3aYlthc2aesA2sHOqa2Y78jjcbYj8YpMEo2BGsHxqYj8bfMatCD5YRAObel6MAZmsFaqZLabel6TaZOsEeqYdsYTaYAPoRbaysARsG+qZk6YK2btQIvcaysCzlbaABPwAa46N2Q1RQroGnBQLwQboHJb7vpZgz7IvKksFmIFNwFdwH3E7fiT375N0FU8A2XYMVYNMEaN4BUoc3RJJxh4FyoCUYBpM4+hpMuBlQrjTJyoGr4p0MAQ3obVDzEEd7wHAoKL7yoB137d3KYW7VuiTG7JtCBUSJSQ+jT11x7AKih4J4G5sEZgAboHfpaLsFksHXE6dwEuk6wsE7k7h+a0E40U4Q472QSrU6T7Y7Y75PRy1ZrexmfqxBYniRcowg1aMbQhY7DcAx2ZPST+sFsojgcC/1REUQ+dhbdCXkZ/KBfZKVVLKwZiky9jCr4rdDA42BQ4H/sEdjCAcE+QCicTPYE5sH7BR5sHEkbWZY654lsGLE5bsFlk47sHUsHFqJwj42cJmz4G4CgibgEb0IbXbAP4YXsECkQIbBff5CpYmWKXT5+QAx2a30jWAaseZy1aCqRUgKycCSwo5F7CYFUYwsGApAYsgBlMHLGryWJj7CRJaCMER3YiMEmcCSMHNLhnURGgpgDAogo19BOY5kIj5PjjyDm+hsWCKi7Dxi59QycEo2Ab6amYy5jaRJYOOjIn6LmZqaydcz1aAP4aJ4BQZb1j7dQ7dUAqOKVfroYQ+mCapbqcGXRZ9nSAVBzNTN+KkYHreZ2PzkcHpBIqHDz4BI+qUOAoNDDWxHiQ9vR6gGgcGf2Cr4qmcE+ACQNQwZRVih2YwAcGFQD+cGz5TmPjeIih+bGgDQDz4xIyRAIEBCviAQgHFREUTIPhk4BcGh6cBpdBkxJC+ALpLwKJAq6gRCT6BIS7UZB4wQtJbG07RGD3KBpnBjeK1sHlrZDFaiwECxYEMGwGbqN64vZTGAUNRuhL+F5sE6QCaCcGroELlhqYFwcH3h5w/g8VQ2lRHSAgsGpM60sCFU4GCQ5/JE0EzGBoNYTsF5UBFqYH4b0JZbdAicEo2Dj1a776T7YNq7l9YueLFVaKcFdsS37bpSpb4F/YF8XBekFiIEPUGSYRPUGfwgl8DjPSk9znOK+0G9cEht7WcHUij3sEUcEqHCoIRDoF0ojG1C/Y6DsFz/bVsHs0i1q6gJZlP75ABeU6hrJ9FbtuY0zYMsEm8A8JiVJCFKAskGZ7azkFk+5Vk49FBQ8GrnibkTQbYCEGAcEkKgpL4sEx3METsQoBaME47k7uzRaM7jTLksFDFDQ8Et0iw8G4fyToFE8EKoCJwBI8GPMQ4ky/IEo8HUtho8EWxYw3Rl+bQbajrgcNZV8CgQ4+k5psiBz6OSA6yhKxbiCRrbLZuKctRh2TwaDo0HYMHCNYrwQRgjcVbVGB9li1MzSOTEMGcpJYIbekqNkLR/r+MGaYRTYDMpa11BpVg+dRl1Q1iIBNTDRQBM6E8GbsGiwCI8HEAFssFw8GtfQfsyoESiQZlGiSQb5gCSQaQcz8o4/hwd4Z28HVFi1FgO8Hu8GO7SB2TUEGdcEqYHdcFaMG9cHSYHqMHUVDjqaB8HOIhRiBIL4PPSrpid47z6AuDDdHRY8EF/SFcHytA1mhocYxJaKAC4sY5pD8OLLbYq8HZMCYEbbcG3SxU4EjCK5ECtrBeHhx6D1QCmyCFoEQuBusC1oGfcH5VxW4B+bCHMiScYMsEybBVkGmUBgBBpoF18HCFQDiBz3aoMCrlZghBTlZwZSCsEeuLKvY8sGzUZRqB5lg98FuBAmZTAsT8+gsVhkMriZBGwBT8G6dDh3A98H/QFB4KYoEo2B61Y/GBr8Eq2Bl/hH0TBUitHxCV7zSDL8HKBBZy7yk5FqjTUGsURpoGhM4W8GoU58FZcsH/KyOM6J8Sfg7f0FdcFh8E7k7qYHT0FNNbDlbmX5RnSh+ZYA67KyK9KPPyGa6PPyCxKEA48+wz6qzdgOZQ54gbAbrAZtLhMCQ/A48QZ1ED3sHOABBp6apZ/0Ge8YdUChQD9dAecRqyTvOIBMHwo7fdJ63qTjAsJbjwDpxCmtyr5xj8GLuLgYFycE33xj8GQri0CG2xgXxiGn7LrDlMFgLTEgaOcFLwGIcH+8Ef8GtkDaMFMz5ZXYPEYfsTkwp6042PZ2IGK7jy079lLx6Y9sFHwBfqZum6fqZ37gfXKtA4gCLd4h5CZE/4Q8DAgD3sEr6BkMrLQYYfxTKzzlYfYDEwASEbnQAPXossB/YEDpAZgCWpDmIFSOqPoCncjqT5U9D6IAehgmWI36DVjCQYylZ7BaYOECoADWCFiah2YzUtgWMCDM4MOD1MFE+aXZDeCG4RK1egyTx+CE4gABCHWDBBCFCh4Ig436DWCHvwbiYio8DdkBcBAssDxmAc7AuYBfZBKCG41rCbDrkG7Qbuj5fNDpIQb35p8AlCHiFAZrjlCEEYFAtYs8C96BYI5NtI0wBZCGOUA5CHTkCwGa2W4SHrhaYMsFyoEfD5syaq/iiIZd8HJmJ/WJ3WYI0EQDqsMw0wDU4wToDFAAG/IvYGn0FsuAnyAnQEcpxvQEBhQFpYEtLUCHFkRc1blMHvOLdFJCEGzUZKXZ8FYNwAvy6L75175WkBCbQw1YTU7hMTwPiKoEfuAkniK2AkCHGtIr3S+W4WcGivQnQFdoCRJaNq6QCboq7bcGLhRx3jh5SW0FnVY4OoXVbPEbkjZD6ayhI7CEzuIMCGH55wq7ykExkGe0EFUGbEFbkE7EEIUH3UhJ5TQiH1kEnkGpUHwiHbEEo9i7EHVUTvxzuoYvMRDYBCkFO0DDUFnEEIiHYiFIiEAcSRUEe0HoiFwiFPEFYiE7kF8kFJGBjk6yjKnIDBCG7fpk8FPXxFHTi8F1sED1YBcJX8FhCGbrJq0FGsBRCEuwiBCH+ABsiFDS538GSmJStTr9QpHRTCJHwzAYHb8Ekij8vbekrmX7qywYA4U/qACGBjTACF4A5gCGyjR8xLn+R/ABAFzUVhT1CxNJ2SQRHaqACz7ImiGbERAtyAYBnZTjTJWobVCF0wAWkh+m4sCDtIQDCFdFKu04D7YnwDjGRCgxaIyNCSl8FKFit4GzURVgol8HVIAfD59J64lIIADDJalx4MsGOiGqAAjkAuiHKBB3uDuiFSiHpU7s4GL0b9SBPCFfSIcfYP8CbHxvpR6pAuN5kEBCpyBiHmujBiHD0ShiHCNi3uAeECRiGvNDRiG18irsTbdBDoH1oFwnhJiFJoF0wCpiEciHpiFqcImAb9SAHCEacFzIxl2R1ECXwj6NbDgbQQrcxxcBBjiELg79SCYCH9vYNwDDP6v8GmIHv8HroG3cFCwFY8QD2CzdgFA4PcGbiEdmw10Tl76nCH1OCw1Y0NZyoFXCEYEA3CFrMHJSRT1SiVKRJaP8GqIELVy1pCeNS40EjwZriH82CUwDwPiDqZ4kE2IAxsig1TPXZsRDV2C4CERAA19BjOZMpxsWBECGMq48H59wAQxKFTLDLILTKxkAzjAeECeUBNCG0JCRgA8ib1cQvYH00GG1YM1boSFi0EZm4ALzbGCF1603KASFS0RjOKXT5biEbiG8diaH7lRTC7DaAR80TrzAhWSFv7AApLCGbCHP9BkSEbCHLGpbCHASHcfKliHwPjliFXFR5yCwz7uMEiW61Vb0EgDVYniEXBA9CEGCRriEet5oJZE0E+8RESHASGyQypQABiHVIBFECpAHYp4O35cUBNFagQCFKAccFVkwOeJzeBkVRSAJsSErCEgGx+vCwwCQPRMSHsSGYiBjOaKA47Bw+ADwhRJCHEkbyK5uFSeWTtUKNi4qOK1pD9kjnqj2SGJCE+AC+CFikz+CGQQBiiESiGsgD34BriEcZZaSEIgryfQhXaUHjhSGr0G6NZOWjA0EfUHxSFXYo8zYk8QLUTZAogJajmw41ZxjQPXpOgQuz5X04LUQKZa7A6+IGLvqOSEixYpCEzWh+CCLiF+8EaMEB8Gf8GriGgpxUtAs0SkWZBlI6hBQMQoBjwSGaQCISF91B1ICqHCpQaDPSwCFSgDwCGCFByVj38TYCEASFqjxd8IISFyjgSMHvOLTSHdSGzSHyOwfUFgSH2648H4cICKtauPgA4AfzCgIiYiDAuYzrJLoCASFT+ykSGv9ALrJjObHSH3sGaH4agDS0AyRYyRBk0AyRagIjubyng5kIgmbbekrcAAVOYANAJHz3Ug91wgSHxeAliEqSHENbqSGBK70k4EwBGJAMeLfnbf3R5SGuCF5LhHoAeCEb6ilSGikBuCGbuBwyGErCyeilHyPoAp2iPoAVHwvQH79zdlajXR5SGnxgPsRnxiQsEm8EUsEwsH3E5BJafg7FUFToHE/qjz5SALE46LBSegRpcCIubjgCb4DJy6RoBF4BsyFY14Zy7NXJqejUnaBgDxjAuH5X+gUE66gCIvJ4z7+7DjwDcsTU5QWMHOhz2SH2CFJ4iC7jVlZ2YBPcRy1btEC8gaOMHA8H5pZ79zX+jnkDq1atBy4CHbiEUSEK4BdSFwgq2xhkSGkSEtkomyFTiEECHhSFgSHy8S51aO8TX7gMMA4QDphA3gguyESN68+JO1Z+fpevAVkrtvBfMDPrRBLg28QqvacHSnXhdiSULDLdDwEIJ4AjjA6yFbwR9PBiyE7IAVkoGz7cEDhyEJYBv+i5XRsyFUuZhPhsyH5uAAsAcpjgiIsLBKWj3QZYVb0wD7dAVLC79ycQgkgb4Vbl9bJ4Bk8aFQijyAeCFUsApQQL/QWJRIabEyFYVbLsEVMJwcH14DB6DRQoMkDhSEYW5Fv6uYCPQBeuJSuCWJ7T1bQgA5gAL5L1Qy5gBuQ5RqRHSGTyE19A0MDnSGTyFSkCFqRliwDSHogC54AKxQuM58FDvIDogANwAR3SQgDZMCYgAHyGPLTQgB1MBS4C3QTAfIGQRRnA47isAAwnB6qDqQDmgIuZZXpaFYaTyE8FDmgKCj6PyEnBK7iTuY5O1bdUb9Oaiz5FsHD4C9iQeuJUMB3z4fyFYYAicC4iZgajDU4EiReuI04STiGZCG9SGoyGnTgzyHs1ZwaQctgLyFDpDaCwngAryEPiGV0SycjY8FYnIwgDYPSsOSpVbekr8AD/0HhSHMNaWTg4KFJYCp9zcuI4KHBUiouLWgCKpyxNTXY4EIQAKFnOYFsHwcEZE4G2Al1i1Xg4KEshYoJAf2Z5vT9Q4yrDi1Y8KFAKF3pZlVwq1aSrCCKGDCS0QBeNIkgZjVZXPQt3hv0Eu4xhiG7kCAyHaaaaSFRU5DFC6SFLoAt3gKjThSHtVYu362NCKRzGSGASGmSGBAL+hCbCHWSE2yHKSHViGaQC1iGfwD1iGa4oTJSf04oW68l6PmDMNY13x7p4ehg9SHZCGoKHScJLiG8CEriER8HLmwhXZVgoayHKlZz0EEuCrBaG67ptAviE/oZDSG6hDdyBtLh1qL2SGnxgAhRO4HviBVcKL0ZaKDmXa1cHol5VcH8CFDFYaN7eSFIl5wtb8NaupThKF1SF8CEc8GiwDSuiP5LlcGh0G/cF0VZ/05PlbRZIxU5LQF8gpxKGRU4JKFsuCiSHmug0W4+hh3iH0bDRUSnGDG4ENPKb4rbVSpVZW0A5gDV2bptBeuJbiJE0GFKFF8bFKEdFalKFSI7UVY8iHCNZgLS7KEvVxL0FM7iUU6BI4qk6qubLFaRmSK7i8CSrRw5KEo1ZVKEIyGnxis47oADJ1SCXAWwEfYF9kaJNwrmiZEQEFDoAC0WZ4MB16DGW4tfptyFmIGaMENSFRKF4KxSlDDWZDoFiSHSoHXCFfiAXiHfiAeiHFS4/UGfsCKebPJ5fiBjK5qrRneblLgytRPNTWKFqjyhAr5KE1sHAGbvMGvUEedJ5MGsjj62D20FEqEyzSbBBC+DoqGjCHyoA3CEs8bcYx4qE4ri6rSEqGWSEFpaScFgVKkqE/cHrCjkeLDMHCqHQtgKiG00Fb8E0qFsmB7UREqGYiD/LJRTBxiG+nhdMEcABtiGYUApiHmuj4mRdiGEZQZiHeiHZiGXIztY7wZZSSEWNS5v4zcEpdSZCSAE709DOfSsh6dVaRzJj+7ekz0SHeNo3gJ3kDd6ZKJCwz6TcGum6Fv4mWKem7y8omWKWqELcFlP6ajABqH/CHTLgXVYhU7zcHdxjavydY6hI7JSGPMG2NB5KGCSERqE4jLV0EJ54giGrebD8HKDw7CEt3gXVYnJyJqFDKE6NZXYoBlSBKFExjBKHNCF0lTdkF2SFSfSDUFg0FrbKnxipz7csQZz4JMSDKF1qbDKE1KGM47ZKFlSE+ADJCFUeoYehNNBexbwqEQeAjkBhkSxqHxKEFqGdVYviE5CBoSF5qEtqFjqGIWLTKGh0EpSE4jKEX6AyHsGZkNa3XRobBgNbmniOP770GTk5rkA2aCPQD3QHqHBF7CwiGKeZFCFUnR6pDGEHoThwngZyRtBDgCLCkEwiE0iGNUFbEHbkG/8AUiF50AFCFlMBwnh3qFO0BLkFGUF0iEvqG7EHvqGSUF98EiACCkGoiFkkHAaFPqEfkGfeyrawfqHxiF3uDfqHB0C/qEYiE8kF8kFAaEnqHoTgVCFvvDhSEmMHDm48aZagpy0E1sG4aFaQCuaZEsZHy41m7+7COpao0Sc5JPFjaA43iGRAaTKGicG/YDpQC21ZU9hTSFESFuhj9qrvOIpXDwhiMrKuCBYZBRtK2vpXghZYAZwTCaHi7xJEAgGyKkA3cimsBo7j3yG44wyKGFYaod5PyEOyKFzLfyGmUBXAGeyGUEYlQaAKG3H6LdYl1gh1AQKGyaEwbBrEhLCEnU60bI3cAQGQGaHjs4M4CbqHqIEsm47qF754XABH0H9Y4GMHtCRd4DWSHe6B62xfQHrzDZiIT4DiYi6tLONzzqG/MFL0HEvbixaCohSxbFsyivS2aF70ETk6OaGsxJi0S5XSCP5OJRLiEdyEboFgqFIcHQsHlsFuk46MGhfYG4Ddhh+nZ7URdIEMv7Di6H0FGLSwKG3xYsCZuaEsaH5m7HX4u4wtsEb6ztsFjcFGIDT/ACN6csEMaG/SFsgyjiHIKHZCH/KEGxhWAIISHdaHNCFlDTApxTVb30HqyFYiT7Y4v0FPwCaKFl1ZmgCtQZSSFgqFNdBBaFkqErqH236cyDTIzmKEENbJqHZxYF1DW47LaGWy5GMxTcFzxp5v6zcGdIQhaHHKFYMEHKHf06NcE+S6wMGs47L3Rl2Z5saL1YVObG367CLhgoVcHqlIDyEMabK6ak0HjaFLUAU0HoJ41v7naEAihiwGvh4S8HXaFlhIaN6sMx1KH6cSwkicKFO9Qu1YvyEmq53pbVaHUQC9iTADDWioFA7ADBcaH28QqKH7aEmWCzCGl5rhqFL4YkKj9yHTcGDyGBhruJT0ZbuK7SlbEygDwSV9bDlbrVbvCIQAjpaGpaFwcHpaGU8GUsEtwFocE/2ZM3Qf1TtKHy0FfaELcHAYAM6FbQ7AVZy1YkwLM6FoPAwsT1aFtsGjcHe04Dfo4cFM6E5IBuhTQcG0aCwcER8Ec6GkyG+ABc6GocFU3I5aG+nZpY6d6gena74AD37PKEhm5Rm5PiF/aHxeCejzjSEESG8gaD6auiF0wCcqH4ABI0GM1ZO6F1axZqHrCG+m4qqEu6Fu6GO6G+6EMCE6cZk0D0aHcsFgiFppQB6GDqHDdBrCEMCER6E+6FR6Eu6HnIEdaEVUSU8Fm8FGVAcb7pyRYwA2DbZWTr0Fs/IfiFcVaU4DpCQpjiEjgfpqF3YhMZlcQCWQSHoboE4azU6H4MG56HtCH5IBY0HM4A4IGf2CDwgoI4fiHV6EbbyDPRIKGzmBISGxrKQyFyyEGB4KyEvQYehhhSEjqH5qGkW7AE5Z4w9GB/ADVlalqG0JClihazxwz4/7bTqGz0GzqFsuACSGpMFL0HQtyApbwaC4ZYF4AIJZSSHrbxd4CIJg6UQSpYivaby5OnbqyEh8EQqEVKFRKFkTa/z7LbYkvYmlJSxb+t6CCHhIFu1gxDACxZcj4gpbrKGEaEHaG5iblKEA8FyOYXaH1cGcNYbbyPlYfwaP6EPPRNcHTkB9NgBI70oCXKH+zQg6Hf6EaPRdzRnKHg6HOU5HKGg6GXaHVcHgGF5ZxuhIvU6CqGX6H4iA7KEoGGhrKv2adKHYGF1cGdKE3aHP6FxEav6FpcRyIEkyGh8GRKHBkCtKHy5j46GVcFUGGgGG0GGQ6GwGEMGEw6EFSy04BcGFuFQg9SeAHbKGCq7kGExN77KF4GED1ahaHJIYzjj3aH1KG1SGsGE9cFQqGlkRxSFCSFT6FWyGDaHISHgE4vYGeqHeNrdHSWzYP4aq8EopgdaHDnAnSFWGGXSFYwAEFCWzbVKGikA+CGRCEBSHRCFBSGxCHiiFCh5Y4CQig6hAMNbQNaC+R06GMtAJSCiGEXQxAGFuU6HKG8GGnKH8GG3aECGDKGGQDI06HoJ6BGFDfgxg5a6FqGHh8HsGG5qFgDDLiRgoHOM5y6HpM6dsG4pZdaG96G9SFwySddQjaF30H9AAP0EviFq3S5fAuuBuVCe8a+64NKFpGGQqEZGHJ6GZLAT1bkaEwNai+D0mD46FHaEGNZmqHNISraHaaa3XRu9zXZZL1a8gYTroKgqW0FC6E1q5DGEcGbTIw/aH8q4TwZToEA6HgEDryxHpaTcFUGGwME+U77nZA8EypYg8HfP6wqHjTLaKGqSGaaY/CZcUAnFbaqERO6jaE6IIzcbfcGb8RzGFrqFIHYMsGxySmp5piEzFLEGEMo5hGGP6Z8aY7GH/069KGayFVqadKKAmFxcIqliJ66Tnbby61gIgmEA1C1nb9FYcR5JJzEGHfGFDFaUCB36aNyGYGF/wbciFyGHCNZNIhDoHg8HzQB9sG43raW4fnCQ5A1/JkMok8GoqEpE61MwsJa9obFsEIsEsGFlsHbsH3E4G6GhayJ8EYcTNY60VKS4Jf6ztvBMBKP/IHKyWYIsBLESCGsyPQC8xi4U5h8QnKzw6p0dSzlahQCmfqqvo8cEyKrzQb8cG0/wLQYlLgFUDaDQ6s4UgYcaFscFCsHASHS05kMoFLhwtS5U5kMoqmEwqG4mHlBDywG2xgzkEzk5SKzThAJKyl4Fd0EhJiW4heQZUnTOQT/qJ2mFrUHekEbUEgVD8EGBSHAII7CEiEFG8R0CER6FKi7MCFoYEzhafU4DsRyi5YUykeI20ADiqp06yjL+L4G0Fdy4IsYccQmH5oP7M4GRYZeiEzIB9h7nL7NH6OtZ2H7sgRevR9UgVADzlD2oZBMa0wZBcFiwDtAF+tCh9R9UgmACbdxNzYZ8ZiAB7IDwBY36gg4FBu41sELzbRGhk9Zdw7An4DL6w1Q8qxxUS7wG5EE7174MYwoGX6440DdcDRAAZIBCM5WmEPMBbQHz5CkuY2WQ2ojUEr0QCOYDk2CYkgSRCnUHn0azlbwAB0MBkfhdYglBavzTMcEpDRzALtGwBJwegKdEGtkBvtzeE7iEGzIgncH5YR94HTQHuii8oaC5QuBY5E7wJxVEHiFj5U4RM7U8HJiEsCC+JyR6GYUAjkC+JxCS7UGBF6bXmHWbCbtZD6a+Jz7bq2+4DkEhEDFU6CFiT5Bvmp5cJs9RGPCdfizxhvpha35xUZHcHd0E+kG90HYW6AbSHh4wk6Ik4rwHIk4ocFCpYjYqB4L0mHEka66HWIGC5TtwG/Y5UWFNGG36HNKHUQAugKCKA6IFugB6IEaYBqcG+iFXzSE+CgWHBgDgWE78ilMaXmH96HXWRYY5VVY9AGVFLd06f26Oi441ZYq6r6EU6FVqGG4pr4aTIAJMTHsFDZweMGinQGL7ekp6cG0+aMLQ/7TxERq6H6dga6HsGFtqGsgDFkQmnbZKE5055GEdsHjcF7UQDAHcxxvmG0cy0aDlwEEsbFLagGGMw7FkQ+WHe5y8AB9J5CCJs/JCCIvfQVGilAE/9ydERDiHanLzZxFSa9bYYiC2WG5GEjcH5GHjcEL/B+mbti79m6kkbhz7yIb5YFW0S2dJpWEbYZOm6ZWE8zZpz4+0QUwD1YF14IwYLky4H2YZWHC0Yuz4HJbtH7QaKawFv+QfBDG65VWEbYZADSWwYFSHcsSPyQ80FhbY6wbsrbalSX4brxQAfRg0FnJydWE8zZUaELUTjxxslJeQY1txWApsWDAWDJzDxVg/hRViiu0HagArWFZy78v7c/6Svp46IbWEQYEF0H+2CR4IlE71YE7WGIPxGPDl0GaGbeGB7WEXWFWo6MrbPyjO65uM4J0HByrlFR7WGH8p7iSPWElE6thIooB7WFnN7a/IfaHj4YZcBM3LhWG0BgwAY6WH2waKWE1WERwjYW7pSE+0SVv5JqEEWEGaYA/4V0EkmB9wAzoE9xgl0EW6x2waNdBsKyBJLGIFyWQh4AiE6gIYJWEYiD3KCMkH/6HtVwb/pNGEMmEUWFuk7QqHwsHoTilUGPCH8WEg0CHQF/WGh0ExhTnqaTf7ME702FlMDZUHyswPMAEcSlUEcWFFJwTUGzZDhUpYp5FiHC2HoTgUUEXzh5VzLcDUWEbsE2CE66HkyHZaHxn6smH1j5WMD4iBiCTGcEEcQp4EMUBnf57EHfkBlU4g0DeSE5041EGwqJZT51wGj1BM2EDiEJR4K2H9aLmADmWEtKFMKxs2EFKFfSIcGDSGEkgZYwFQAZpxbnn5SX4Ddz/Ix6NbVT716azeCD2LSwGFBQUUZDZzIcZG7KNZxA8Zb4GJEHeaHJEHyIGpmFM4HabRmN513KKLYc4HWN5vjS4P7Dh584Gz0Re47xwDk1DNbDfeaW0A+KADiBnACuEHVjgsMyl2FTwCZjShVD0ICV2HNbCk2FqUCQiBGH4csHbw6M4EQj5BPClmIlaANH4+nbwj62N6Ij552HXL5eL5LDwk+bUTQoj6WgBYj5VCBwKzTH5HqD4j4viDgApMVIN1SqhaD0TbwHdiDHTb0j6vrJhVBeQApzY4YSZeKMaBm0qkvIZhAE6DAoCntJVaCZcIAr5pEGdJb6P6Xh7xt7EE6dJbDmFo6Ef+a2OKIWDh2H4tCu2E1sHosEywH0F6rxwfw7kP6PbCD14lE6sUQpgTAJAr2wvTZSUTTFigsTEXRT2FvJjrvAwOFsBCKTzKdJmhYlhBwvAMLRuCAIzbrn5u0pG4xdb7+L5aPaBL4/n5/irIOzPn5f+rxL7NZJQr7tyRJaEYcRwOEpeiOqgNsB4P4IfzFkTN+bG35Fw73nYCI5MyagsT1aC/NSPwYfP7MAAzqZcOEtw5aQCRgDgeB5RpcQBJFIB8Ltzh0+jk8x0+j8QAN/KRXDknij1AvDKb2AvxDbxC6ySbKwCKSV4AM3RXoTrEhQrabzRf6F3aGdWGI4Zb76zu441amtKH4G4UHIsTjWHQ2Fr4Z1P5F6Yz4aGGF2OElECI/4Zjj/G4QlBJFxQrZpq6DKDHKHnk7C0at1ZdubgD6X1bfTSWwZj+4/2GKCH0/5nyDlJa34ZlGifCijwHqZCaix6OE+OE704kgZW0CESGQJZJOFGOEwAaZMpDZyJ3bojhDZxUQ4hmHIkYfUGqi6BmFDZx0CEROEpRLEApG2GgIadk5cWHegA8WG3lae2FcNbBUZBfYwPTFWSvzaz14TADRt5G+aycQazbRXwW+Z7EFUUTbcB3UGxwilqLj5Sh8QCEG1eh+mHziAPrbjOJHcRweK5oxRyB7WG0EEOqK7UHkEGXUEXBAYHAlE4rOHk0TnUHrOGUEFLQazlZXzAOHDSEGpVb9SCSEEi/zsqbnn5yEEENg9gBUSHIEFKEG9B6I+AaEHwWFSAFBgD3OE2ACQEKLaD3OE5gAADCzTQQEFoPCdQFkH4dv4ALq9ozsKQW2FlMCt4E22GpcL22EZaFkyFZaFwsE+N4wGEugDcIza2FsmEC6EdmFnOKk2yq/i+W5HoClvLt2G0BQ68DmmFM1BB8StMSqi4uUR0CGyRwbKFBlJ0CFQFBT1Ab6YmmLZSjKi5UySRmFuWZMGGzlab4BvHTokEgkHQuFXzSRvRmOE4WH2mFxfqemGqWGfRj1IELUSpIyPoRfpgQ1YhBBQE67bTXZalvIvNZ4hD0ZxKdAuIF7UQS2HQtZnh4i5Ddk54wxYuFmUErra8uFgvqVEjvACUbZBZqncE8EFhwHo06/IE175gwAyuHwYZyuH2y4KuG8gat74mATLw6NqAJ+zlj63oa5qFYYY6uEChB6uHzwAPKB24Am2G70HbqGxaFck7A2T1k73kHBK4QuFuuEDlYEawy65x372aFhuFrkBZDiRuGtrCNk7ZVxqGy8yD+UbZCJhEouvBWhREWEauFeuFFaAd/C8IBbQGVLhGhTfSRwRCSvoTBDoEFO0D9cJrmHzHjZuFTmF1AAXjavmhzeDJEBLm7vNZC7i2nbeI7N3a2Qy87jCtSLyzgxBviHqoGE/5vLKZoEWBRrfrD8F4kZgiECsGErjpqHVLjKkLfXh/AEpcJwRDWgDADAK2SMnSFiHQta3JwtRCDuFDPQYuE/cEhaH2XYQuFywbdcBrCxy4yBT6xeLCiLBgBv4D8iQDuGKsBU1LU6xf2Hs0iomEhSGlP5UGFDZzvuFL0E/NCn8HmYwV04QuE3TgfEHg9bQuH2ywp2Hd2HabS92HaLKSQLmtYWH6XRa52FQJxT2GwgTTzRpoayuHM8HdUFmuEPmEWuGuchpSHyIY2uFuiwYj73L5414TJa4j4YqACTQXDDLdQvhaVJBqqG3hgfgCQYCnBDwxSCmZZbTrACA+a7CJHiGRJalvKEeFwOEvL7Yj6keHz2G+hZc9o56AnmEgmZJz7pqEVtYzN7FWENqFuBZFTL1+ZXtbrcDiAB0w7NJREcAUdRIURQOELcwxySAVDfRhxyCFQAUODyGLMxh6UwToBuICaDh2GSYgDdVZVkxkIzGeHGDjk57kfzJ16Hgxv1S0BZV9Y4ZTM6ERAiOR42Wbz4pKSH1+bJN6ew7+zS+W6P8HTuHlLhtwAAYBZqHCsEmlILVztQYFA59MjyrTzgoF+J4aGa4oKmEEgAFLgD2bKmFIdaW1we6jfVagQBZoIFxxJEGdjBJiJ+aE7QaVbKvuHFP7omFM44CGGP4ARaH1KFkeESICbfSBaD/CyywYMwANHieeGOdajFyCIHKhZbJy4hbRhwagENeFIBC/ADKeFVqjYdae6yQOHW0DTFhbWTvNawOGYj4Jrw+eFdOFVeENL6bsD/yBwOH+/ylugAJCMOFnMZMzasOEY0ACuxJaFcOHRH4bsDEVrzToAErk2F8OEzqZ0GAtL4/NBgGC6R7z4oHeGW0GQv7MR4H5DneGPh6q0SsR42Eayoab/ojyzbNDEkZ2YFIBAOYEEOFFf7uz7FLaybbQqKKHjRkY5arKAY6eHzQB/A5gi6FQCfeFU8Bg+G3cwUIEC0FKhK3GI0JZyHD+kFFuH/obRH5dmHUha6P6uPR32HU9a0Hw/zYsE4mCKYKxJt7jw7Qn5hWHu0G2YEssFfeGNFJuwFGuEekQaOFRYR4AwC8w/kaCXBLjaqiH5QYOlQaiHnjZK+xnjIilSgDLNjIxXxXjLQuaRJY38CtQaV4BVzLVbb9SCi+ExnBVzLdtAb5D6Obx9gQjBavQ9MDOFB+6Hlc5/1ZiAaaCaHaA5OGDgZIxAvYF0CEbeby+F6EaK+FWzjxZSrniJ6Hq+Ey4Ca+Grnj0gDoOQfUHMga//xlOGFOH0CCh6EYmzh6GShwheEaKYKME814K4CNdB817zSFHCgV0RUH5/iE4CGFdbt1yjZxvI4G2B0H48H4MH71Ra6RwyRDmYI5jQH4I4yFPSHHjaVF4P4ZqyEU2Ez0GcZZayEHbZTlbisGvgDWiogCLBNKiayWOheW4+d4iCE1NaVz5qhL6Y4lyGBTba8S5bzHQBF4C8KHOPZU2G0WEq2FwsELnaFYYYGT3QZVyEEITdIiucDmZxozY6yQCF5SBie2Gj+FOWEk+Z75ydcFs6ER8E/4Km2GJWHvCDy6G5M7CHJFeFtFZkGEGOFheFYiTGOFOOF3qa6E6OOHEPZF6aHZynOFtv6H77kH76Kq/nQH+GEH52wH7r5UGF9Ujv6HKNYSy73xaI4zM+bD1arFYgpb/cGSwIVP4dIaqGGsWHhGHsWG04YuqBuBYQ+EBWGKUBBWETxghWEwZj7cH8gp9qaI+GBOGU0EQuGGv7ySy9KJE0HAox7kFFMEQeDIBF8fyQIDXuESoF3uET4D8iT/uHothC8S98HuBAK3j+YFOIijrioWHW8EevqiKaUXSq3YXi5H56yRx+KGH+6QNakR62E4JJ5yiYgb6wb7uE7MaCeE7CYY3mEdUAhu6ob6Zu7Hu5XzDzv5hE6vh7k2FfGHK6a1cHiGHTwZ9qYjJ7b1bVdy0NY6hC6WZI+GX1a3wZwNa+2Hr7Ba2bn0ESAbtSEHIwUBGxsDfC4s4Rr+HqlJw+6hUCVIi1MhuhKicI+YGmBHBuFFaEOaFck7NUyZuEIsGTwFrTD2yxzk5X5QLk4+wBR3RFIyKiw36H1SF36EZGFUuHk2HyBEpOEOg4EITq/Zl8BavQQGRvBwqdxra7J4y5QDTwEHCKLfRvIZs6y+BFYlb+BGUXSBBEsGF/+Ff8ENswZBERzRZBGN9Kq3Yuyxg2Rzk628HxVgIYTwYSSQaFYJ2EA5QCE1QsWHBBFsWEmQSJFwxZTpJZy5hSBEVcHiGbiAAF8I33wB+ynxKxUQ704QuEybCPwGT8h8WG22HCFQsk6To6XIF6yExEgP0ExNJIxCfOIqvacuLLBHcuJVzJFA6ouJbBGK36GUa1Nb9uFRO4jY6O7REpJFQ6cs4FiTy06rlZxQ7AoZAoDJchBUATVSLCKG2FH8QYx7aFDBgDx4w6OFuBFnfq44H3tzBuGImHI4F5LajkYg4FnwEwzZpMBYBFFeHs7jwI55LZIHZPBGf2CREEeEjREGSLbgj4yLaQj7p2HXZJW6DYP4Dh4TTbD2FIeH52E+daMOHteG6LZ5IBPuG2X7roATRDBEE0+p+hCCeFZdYbh7VuhwOGzLwSDI52a0JAEtaCeH0zzNWIuUSSdZNeEkdaTH6dJZyeGD0TuhCawj0QTZaDqeH+KKYYLVeBR2T9/SIAoX2H3B7Plx72FjAA1/KZeKV9RKMi0OGmzwRUSMhHuFpHOCCeGHJBm4HDcE8XAo8pBMgXHCUDCeEGjN7atBlAD2/b+BZwOE/LyOqjLeFb+b2dwFw7reHZICH+KImFPP4CGYwOFCOEXNC/LyRt6nh7dOE2NS9OF3+Zf7wE+FjsTu0HlwGGuFjOFKvQP+FTfbCCG+OTkwpniR9ywvQEL1J9AHeWFT+GrPabLjI1LOLSwuERKHqGEZGE47Yh1Y0+ZcMT/SJcz4s+YGBCehyfmHl0590SFhFLnYouFa2Gxm4EQ5LiHGW7fdjFPh4wxo1zeQCBWFiPYQBElhGlpD+uHfkCaEExxixCLVWB0+GKMa4WEOmEiuHx5CTOGtejTOHtEHBZIWBJYDxqdLPOFTwDdhHFKKCBGlUS6Z4XOGSph8YGNkDX+7/OEYwBfOFRuCzla/OHusxHOGDABuoHnOEUCGrhGtuHrhHKEEq0Esk4q3jnkifBGf/JfwHWwS9aJdwiIBHvcHEkZghH3gibtaOW5HVbj+EKMGg2HQmEDFZXaFYGFfJYXKGJowF6E3KFrFZdiT6463hE+K4YIFvhE3cGa6G9hy5wG11b9EiXE7phGNKFsGEtKFv2FZGEQuFOZ5BK60KgYFS4GFK2HE7I5gIMUAfhFliwoREtBFNKH/+HtBEZAE26HPhGwIE5HD4RF/wHs6EIREkREDJbTMDMkZfyRBBGURFf8HrJy3hEAIEsiCwREvhHwRHERG8UAfhHvyEcRGoRHNGEhBEYRE0RHFkx60G7kDJ2HXZb6qFvjSxWH5Y7ag6y6FJWEOWHNaH2IGkkZ3hyoBHJOGWWEJSCwuGz+EWWFRz7WWH9B5GRFHuEYmwWRFppRoMFdkTryzokF62G8UBy2G9QDghHNIjyRFk2HMIEk8EhhFq5S7QFD8H4qH7QH+RE4rj4OKk2w0YE+RFrYonUDeQG12Emtw/7bk5ZuSQAmQlHbqS6VHbPSGYgBuSS/GRqgCJREpoZI4SchIb/QCkR18QFNS/JaInbM1TV0wJgA34xWEqoWyYwCGmJ5KHQwYYHDrIHReZ9RADWTrIGl45UOD1MTIhBPaHh3ZKuH174wsTvobv76WNaf76/cDH4bYTS8gZUoCs0GIYAZE7HCGI4zqS5bIFrVZRwKdGRYHY4HYDQB6RGHeG/P6EaYwPRo1weIF3kHfkEIFRSfRDZw5WHaAQD4RICErIEfUEc2EuwiXWEb2weqFnqanRFc2EOwFxo6x5YsQZKWidZTNOzv2GH+ElEBhBGW0EmOH0b6eSyvcQAb5kR7EL7cXwgb7Bhobu4Rm4dnhRuEOsq7u4XoinhFCBFUL4BE7iDBiBEYb5nu60F4mbbADBDREecRUoDYFIvYHwo5qcQhXaMrYyajzWEo2BECFlEo1RGzlaOADxJTNtbwvJNY4URHoREABGyRGXXTWRJa3xTRG9RGcfYboZJ5YLdT6sxppSnIHrob05YfWALdRaqK5iExvb7oaUpSMMC8xEcxGnvbwH55jSH2xIuHw6HI5ATA603TKvaWYJWR6zaE9Q4CCY11Ke7gEgCNTCp4EyiZ75wnGG6KFEKoXGHQTjquGeuHo+F6GgMxHHvafoYmoRciwUxG/+GtBFURFB8TrJzRegcpL7Y4sCZOdJKDLj6EzqGT6FGNbaWHaGFnRjr0GFlwwxC/QA/oYaRFL+HJWHaRHghGLqFOUA94yIYAK9LLrSmIGlkSDpivTQWTB6MH4iAEiTOxGiVKfjIU9b0R48JjlqZ8cGJeFaiTtvAw14zgqjCSj1AlLhjOb5A4O+HZfprHA6YY3+786Fo+Edk5Z4CEAg0Na+oYwwamkA2I4EW5i7i9mhDZwzGGqlatcAgXRz8AbJY+jQQn5QtBrvw9gz3BTgE7sZLswB6/bqS4AhRasYzl6uoZCyHowyUbTaBQbcSRGDRzCoxEyCDS3BDZzMNaWig/REcBFn+5yiaoTYNk5HMrgxHrNaLhE8v4iBEY+7ob4SBHnu5SBGXwbY8ydwAXQZauHYYZRGbsxFHvbdZa54AmATEi4WBT/bjpuHBK5Mpw+uHv1DoYYShCFVgmxHdZaSJZ9ACwtBEBF98G1Fwopi0wSRJYDQAccYSF7PY6uAAgULaUL5wIERIGxE7uFeuG0BbqS4AwDdZYD4DdRFIwA4JEWzZVgreobtcRRo7brY6cbIxhAQ6cRH5BHWxE8RFNSHeKHoJ5Vxyi0F3B7ZDDCxjmM6k6ynIF4JGwCYxJY2y4bxE4SEhzZrRjDH46ZY8JH+y7xyC/y7ghHH6Z9kYDkZYl7DkagqHRt6PxFhWEcfamGESJG4aZIHIMbayJH20Fdk7/xE9k53h5JJzxiHAWFTBGXRYr2ynIGgJGvobcxwvYH5YG6Z5wJHREafCHUihIJFsoGTB580HflzMJEC0Gb1ZjGEfSFJBGjGF8FbvCGyhKc0HrJw9BEdKEnuFCabzWCA8HTkB/hHG8ar/grvyHRF5gZDZwnRFMuCaGY0ZwXRGZ6Zc2FAZ6DREMpRJRHcZSWxFcRFUxHURF2xGzaGVGHREYLVyxEb4VYMpTDMSzaG+iELlRWREhqCPGEO37rqEhREmZSfKB9qZYBHnSS/aFZ+EPUTIpjXZY+JFlHDe57+JGRJahQA7KF2uGNGBXYqYpTIWH3aiqlAyXbwCZl77XyCJJHLRE1JHraFrXSEIB9m48egDwQX35pMBck680G06H7bz0mDghE3B6f+E/GHbGG2Xa7GFhJH7GH5paYkbeU6HeE3B7uRHF1JoZIy4BYBGwJHwJHoq5oBERgKAoS3JEg0CRJbjGG+JFvaEQuFeLgkdCNQFBbKtQFt8ECrh334PwAr8H7UQZpRnuHIACApFviD8hSGJFXzR4P7tk6uN4Fxxs/JTNB/JHncgApHCUEd6BLRGW0FbGGwga78FfQENjb97yzwG0qE82EiABQpG3HjhRGLmYr2w1xGIpF7ZzyoCtQGopG3cjopGsUHXcRqlbx8j4pFB4LI8zmBH3QwRBEzQa40FkgZamF8sGkzBamElLiQYCzgZ5AYxJaFAblQJnxh+FD5kS/zT1JFlMBQpFQxiwpEYFTwpHWi7FuEbNb0pEgrj/JEkdBQpET7bghE/uEleFdKEhaHfuGozAUaa/uG3oJspGZKQEpHG8Zrxze4CZxG0LjNJF11ywPzmPyCcEeuJnJyCcEt3h2Pxd9Y6Ya3SSfVzE8H49DvQGylR2voGxi/nR4mHBVD9sFEmEBwykmEQeAk8GoXI0xHdJHFVYhMF1ABhMHooHfVyKSisRBKA5UJGSREFBG3cF2xGSJTjOBR7D4EyJ8Fg9B3TS0EAGEZmW4suYEqLa4TzY64sYlpE48hmIFM8F2QBp6Ea0DWNQDWRhpEI8HU8EQjA4XIugClGH9DSWlQ8wjuy40mHUJGK2E5pFRKHMmHLbZBkrjY7x4yaKGrBZYVYtrYYcT3dRFaDwySyJAmwAahiEsZDZz3kahsHccbs0obpGLaZGqZx8pbwHIST7ADZeye8Y2Y4dFZ5NCj+D6Y7QBynpHiADnpHGFxbV7g8g68Kn6CC17vObDfBu4KxfDw6HyfgweL6wEQCIQo51/ysEbb0C/v73bCWYJEABVzJdbDJYY20CFQAEmE2robVDTKgkmE4YRkmFI8H8tS7ZwJpFUYxJpGMqacqappEgZILzKrVYysGRA41SBi056mGb8KWsAEZG6mEQeDFxEKsFacq7pGA6aHtjBU7VObUZHI6aasEXkYMZHOsHaqbptB9UYsZGRsF46Y4tQkMZD2yoMHmsHxqaWsFeqZ4xFV762sFeqYOsHpsCcZG+qYSMZusFZ2YiZFYCbD8ZZ2YCOYSUTPsEgiAfoDs2ZSZEmEZbpGcK7yZGbpH7pGE0qxsFYGrSgCEG66ZH90aJsGPY4WqrSgDPY6vY7q2bqAisrbpsEpXajJYhKjtLTdUFJpAljbqWHROHxVjhiQpCjGXbupa02SMxCmvxdWEGBaQGGY0GiKY4qAm3L2wHAYChxFxqF5UBqvbDwA/oYz+EwcErsFwcEt+FeZaSRHU2FWIG02F28T374HWASKFSkBXACWsByoAtkpn4L+Y4VrI1hFOhExZHzsBxZH+hyyoRQZERpF+YDnn5jsEk6HdxhZFDkUS3hFyoEzfoTuF5oEcdBy4x1eEzCFLU5C0E+KGEpH+KGdZRZJE0JHcRG5pH0JGywATg5zL4VaEEiRuNLb2zNqFr6HuxGbUGuxHLZGCW6dFA+xEt0Tw4EBxHDcFBxFaRGr+FVJFhxGzcHWpSRxGPrb22GxxEm0DvJEeJETrp7CH9SCP8GDBHb+FrbLicEn7AvSFMCY5XbwJFrVw3b715RwuHE8FI8ElxQetZtfpaKA5gCorx8tJDZzdKEfwYHNTv1QM4BcpG33br+FSGGb+E18Z9KGprRUGEaN7FSGXXQQ5GgJY/+HZJGZhEYRFEsQmbbPaE2JH32IAsRkJEvo5PRFsWA5WE4ZZZpGUxG45HUxF5pHTZHLm5Yxyrm5ThASy7Oq4WwpORjtvDU+aDgZpsRORiWYJORgO+GwYY6cD2pGMLjZxHB4KtPgpeGFYEcqKVxH3qa3wpQ8EBpG6CE0Na9LhNIjNvqwk4dZ54MDNpHTiLM9boxE45HpGEYRGi2JqSz0N7leCWKSLMSlmGwpQwKIsEyuMQzU7HsFROFR/J4MAxtwqbDXYDfYGhQAIJZMZwB+zYpz4CH28SRPw+E48v4wyIx07OGrgi5b0C2lIAA526HFQ7REaAWHAabO6FrCHnJRpoGJ6F2KGaoHR6FzuHR5G1oGJ6HjAi6E4PXqOtJyIIJSH4MS9oyzlZoNTVDSlvw6cay46xwAJEbu6F/mFp57+JFDlZO5EIJbVKEZ5H09C7ZzNRA19AUwCe5GQxEg+5jAB7jSu+FJ5EqqGyRFAIj38RV5HREbp5F4MB15FToE0ZY19CZCTN5EnxEhu5ucjIvAlEJrSQ15GD5FjhZECh1pTiDLecEZ5H4B4f/CRJamaD/EHcKY3mbAyZtoYM9hACyslJvhC2NCdeHBcEN7oQ4ElEDm3gD5Fb0D09DiXi8bbnyATWH/KHrmGQtYemL8OC95HrECJ4CbnaV4AkoBEZIokDin6dR5jrhpdDtViqNi46KM8zcrArvAkhHSGCA0BcYJeEG/iBv5Fo6BaOFNvowkLVoFUwCniEwiK9KIn1wgiG6hQZqFYFHVLiyREl+B06b6soWpGkBGFpwVKK6dBFhHogAQJE1B4iCED8GRA44FG8sHF+GJ6HRn6azSo2B+QANjZLVwDiggpFn8FqXQ98GhDhkMrVj4UFGWpEXGD78Fn1CVRTzABz8HEFG+8ZTSE8FFvQFkMoFA7O/QtkrSFGI8CyFFkIiKFEWUAL8FgeJWfDjgAFKaUFHn8GmqxQ/SJSSdGHjyHDZH8JH9Zwo2Bw+7XmiKNx4pGZKTCFHd1DLOhrjY8gbbAgrpyqEyPmBKiGU2Cw5EeNa8pG+MFRAZ9gYsgD78IFA7ai4lLgkU5ipFsjgw0hEhJ+fyp3azwFJMGI0F4eKvUHvgD5oJRFHQABpAacaZ5dTxFEjMHlABjMFSaZzganjgx2F8Ii4Gb9MGSaacgaFviMoxU3JobCqFHvQHMFGgOE/QF0KBWFEXGDWpFXujNWIgpgrUAiHSRMQbehkCEUCGrBB0FGu6FT+z6+GRmHWWFZqHdFGPmAb6Z0LY3CEbhCTAD6FAdxHk6FgE5DZyE6HJcC6Z4fJGoZFENRvCHl9YLFHd5EFIh+eGRAaPZGicGgNSReHEtBvZFZ+ERSEGKEDZbKWGRSGCpbk6G9qGjKGXCFloHw9Zw1SCsiexGjqErZHRU4rSGR+F8EAlgrHFGHFHnRGHeHHZHzsD+f4KIDkeiNKD2zxmaG93KbOGvQyl8GnGGXcA/CY6SFn1oZkDnJHYpFzJFRQDrqH9Y6dACj3YfUH+KFqVgfUGdxGuYAyXYv0GOoBpaAYHDaxFqSF6KFLAAnFE6SHLCGJNAExBCpjg5H4NbZAFXYof/qglE6xEuwiQlF/1YZkBrlwfUGE6FyVjTFFLU6j+BYxB+vBPRhSkDStDs1Y1hiOHBiahwt5AlEWTjS0DVwASM514SdNbtAbrcFE5E9JEKMEoS7S0BhYixEYdUBTQ7uCougDPrRr4B+1Y5PjXVweoL9vDw6FA1Y6aGvyEAca9iTqlGOZDm8ReNKapbWJGfJFbcF2JHPqHmxF7Qg28EQFRtfqqlG03JmlGalG3SEagAPSGwnwS676lH3JFylG2lGbgCuABkiEONYtQ5rQ6GlFnObRfDyKFopR5sYa1aqXbZ64fUGuFFP0F8FbWlErFGIJH2lEo9jhY6UEYRlFeuZI6Ggz53pZRlEjnZM3Ql1julEWlG/zbW+DhQHHOK5uzYFrNDBKAavFEuJHINaC0ETND2MHOJHLcEmFFYgBnwb1lFtlEsJHXyB2YBj35WxETZH36E51aAcTD4ZWlJTZFL8AAwB9UjXz5fcB3FET6EbZHFFy0gwx1ZlDQ9UBu8adUCRQ5y1bmX5Vygz9xDZz5MHx9jKBAfTCuIDMYLZySTEDXZaplESF6RiZXPQFepe+pKFiU7gcv51xEm0DHQAhT7Dla+pTRBE0xHblGJlGsjgJ+yz+7AcSNn6cL7zerVUA3lHXyDHlH+lE2lFUYwXlG3uaswwlABxLilsGQ8GdpFGVARCA19ARCCUtx/ARX5GZ5Eg/AQZFK2EZ5Ea5EXAA7IBXDD8myPiExm5Z+GL6GX5E+AC15ETU7k5FlVzb6Fz5HX5FjhYy8EgVFplF2lEhlFt4AkgbfYH0wDV2bUVFoVGdVb+JF7WHQ4HIbhfiBT1Ar5F4MB8VH7NAcVH09D/YTlaHfYGq2AU0ZSACYgDzlBECimFEERFtBGYJbzlDcVaDPRCWH8ABr5EUVGxx52IJK0FYaqLZGbGGS0EuPreaa75BtoJRZFEqxTg5MJHdlGuJHxyD0VHnlHRqEEIRXDCMrYsoGPeyKlTplHBUF1exlkEwCDy5iE+AWJFbWFWo6yQ4plEPJGc0HplHIJEQ0ByDBaOGnlFBVHe57plEjewIoTeVGlh5vFGtqF2YBwCDx1ba6H7FFfFFv070QBxWwwxYUwBkbA7jY0xH6PiIVHvOJ0QBWJFRVGBlEsoFIiEEI79SBnlG2JFBlGmlKAkFKWgbqGk5EgFYEFAyVFR/TyoDWCGMLj+SGjhEyIIeGEhSFfph5Zx/9BtVFyVHW462VG1VEsoGxVFKWhWlFlVFUYzplGVVFIFHFoFIOgfiEoU47AIEQyv77xn6x8FY+JH1RWOLr4b2IFag5/0T16F09ASHoBcJZSSHVH56FgZa5J7oAAqjxnVHHVEXVHqXqppRYUBtCFHVH5IDXxZBKZv0556G3VGApYzbAdCEl6GiOr53whMY8+IdHILBFTQ5HU72KHsSEuv5ClGklEECGiAAfrKaH56Ei2EAqoIvYFJlGJSQRBGg1FGKHN2i/RDDKxXXBqXba6FU8GxpHySGaH7N2hyGzkcCtFHAYIMxhEQIsGwwaTCjL/1wofRnpyc5FEKIFA7G65+ZCV4Bnpx85EM1FkIg2KFHKxbCHkUQ3BDpZHt+EIuG7sHocH2CLccEh1aiK7tVJzxEtJYVix3Y5AwqPUSJn56cRHAKBgE+QHZA6lnbI5ACMYxNLnIHLmw3VEvVEq8RXWSqXRa1EAqEq8SXVGui70E7d+ICMbvVEN6EG1ET1g3+o/E6qiIznCmWGO2HJZER8GyTBo1FQ1F2eiEU6Q1EOKGvZEQuE9sHmoEZXiEyQmjAJjjIFFx2Jl5HR34aEoOHBF4GBhDw1b2YD9ViExjOYxQfTzeCRFBGxgdAGhmA9hH+xi2xHOKFF6Z4BGhwINFJpoFgBCtQG14FEREglHVIALuDl8FxgINFJsQCFLzh4i1oGsgwfUFDe4TqZbVGBqDJ4j1cQ4/4Zm7uFEqg5Qoh7qa1Libf7PeGnBAt5F0pG/JEgriYgBunjUO501Y2tJaBY676kFH7lF2y6XOE+E4SEEnhGLhHnn6apG3OFtOFFaDYRDcxzh5HD6YL7ABJHy0Eb1H+m76jh7lEQeAvh4hqGKoS2dA/+EYFG6dCXaJzuGdFHZqG2dAsRG8UBQpEd8Ee6GXlSQyHhoEKoEeACOsAWMAfp4pIDoAhxa4fD55hH2y7VlFoeCQgj7AChaj3qLlwLAQgu4xeTDANFVSTm+AIoQ4QCvwL6gA6FFgpGfOxKpRRixfQE38Eo8rZDQv1HwPgSSG/ShBAETcQniTEVGpi7mHhgWElED7sSxfrVlZDmDA9Yf1G/SjkxgiRFNQDJJH7WCP1EIqEC0TQPQ1ZFIOjVlbMNHtiF4NLEVFaVGzf64gDdVAkdAM1Yt1FDNAIW6tlEJuHWVF/bhNVCWVESNGNlF2DCjH4olH8JHxKhNVBdlGyNEX0EL5KgEA8iYyNFeOEZm6YSHaNH+KHsNGADIGKFcNHqqEsCDROSKNE9lGHKBXQrmVEKNHYSGWNFnoBjVHBVF2lHuVFhf5eVG74BDDbGMFDm4kaH4aEb2wh8HDJa11FeNEdwGUNYB4rXmDghEYlF5UAzNLw2ERNHIAZfVamME/VZM15LU6YkbQBLrFFUJb+JHYxQFA4noFkIjw6GKtCRA5PwCMohCIAd4CGFF4L4NlHqNHbJGjuE0gDuEDNm6SYQ9FAmNER5HhZR8JH2NHUlTlc7tqbFNFWVFyNH0mCONHRVF2lGTVHFSCdlHiNE6NHOmGoiBRiF4uCVJC1NGb1H7FG0KG2pSmuGVfB90Fg0HIsT1oEIaFpSEjkEsAx4FHOm548w22a+T5XFHrrIMYwe6HtISMGKq+7x5FqqF1NF7NFb0SGoL4YFbRFt0A7NEh1EnNGGZb6JGqqFXNHcNE3NGOeBoVB4FEqUF9hh5UFRUF2kGYiEAaEUiFNFRUiGvkEaUH0iG/8B8kENkgfNHUiF0UHvkHYH6fkFvvD/NGBUGAUGBIJ8kGyTBOBZwaGgeAZXhh+LHqGPqHoTjAWE4mAYtGXqFlMBYaEtYDItGQaGYaFOiFSEBrOiGNEeijzQBjNF3uCaOzeCKLVHqTgKoG1oFYBEoETx6FAWHpyxe5FbME/JEopEgriZJFtaFh6EzuGdFEeuKx6HX1Fb+GicHBCRE8HYVEsh4Q1FO6yiVGVJAYVFq5Fb0CStFIY4QKSoVFHiHg5FUVGlSFkVEg/CApahQwNZoB5GnSQctFQxFL1F5Li9hz+EqYFG3hHaKGZ1G3YGV8HFAC51EvD4kdAF1FYBGj1EdVAxZQiNGc9DfXi8yCKZBRwgd3gwEHB0DHAGF8A3QEREZiMAUtFxoHBrDtrgeo4Xja/uAkWGW2E3uHtrj3uF3SKjEFkQDjEFeBRD/gB1EcsBB1EO/o0NE+UIJ7g/1HDdgfD7MtGHghINENNi5vRqcReTA1MQgNHm+B0MCPmZqAhVgpltEt0QVtFgNEM9jdEDBtEfUF7RE9Y4McZrZEqWHyVRrMC0wSqpFQtZeuGSRRYAHJUCOtL8AB/ADh/ZZr4dBZQ8zVUD0QCdNHlVH2JEoJEM9jX+ith5+6FzNQQiEFq5o6CHCF0+FLNRPNRrCFr1w7tFZqErZiCtGrtFe6GbWSvcQLrKbKgpPTwGQ8zLEwCm4SbwCoKHC+LVBaTKaHhYKdYBkGQaEaUHtUJaUFDsTyJG+uE4YbLEHYkEvtEkiHikGaUHuuaIaFW0CAdGbkFAtG7EH9TYlsDJcL00BqF5szgvtHIaG0iHPEAftEgdFEiFIaEPqEQtH/qE7EFoaFdiSzaR1yJVJHAGbg5HrCiLuIfdI7lHSqE/GAQGbEdFpDCQriKNzkdH8gYyqHCpTQuH3QEg0CHqFVTjfXjIpi7RF+VH7WClVEBlGzVF2lGhVFVVExEjLFESF68RHb1E1sHH1GGWaV5Bn1H7kHKBCX1HYFGx5E5qHodFJ0CYdHRUEZlE7kEUiFrUTgaEckFYdHqdHAtG48ZjejadFE5BvtFnEFFUH8PxGVKfZzMSQZcCwtEmdHikFmdGGdFgtEAtGkiGQdGadGW74ysBfNBrRE2dEnqGAtEAaF8kFjeiB1GJKxtVCUNH+ADUNFQwrVlYs4TbB7pfTGFH2NFYpGBJGGpG/GGHJH/GF7GGRpZwmHuYEoJzmuicNHKqHcNFB5EBXROJHRdGSNFRDhmUwDlE5JFB8TrY4Uw6u5FYiQek4sYDXz6zlFuxHzlH4hBA355vRIqYNNjlNF/lirlHIADrlG/8H5QYFvTkSHYSAQ1EWyF4FG7lGkBEfTBF5xUmFy1YvlHocRToG4byXSH9dG2GGDdGflEH1GYUAHlEKICxcTghH+qHdxhOBaVJD9/4tdGyCHyUAdKx7eqAVHOaFazziBK7dGPXaRVF8dHi6HDlZRiZXlEfJqHdEr/ondGdoHXy4XVziBJGGEdGpAlLHHR0SGYdyRJaziEP4Z/AA+frNdF0SGndEkoy9dEw1Gaby2GGcoAC36zZE8W5rxZbm7yQY7m7pJYfdF+hTqCHr7qrlFM+EA9F+hRA9FrxajdGS4LcZxLZFJ9JJVGqvoXFFIOhpoHmNEB+wMo6RhH3UH7NY5GEYiBg9GzdgHNSlSGgW5DcGWWEgGwPXozxb+bJMqTeQCbzg1lBeLwEyFytF+MYa0q89HDJE+pZ46JvsEwVEg/BKtHTdGbiGzdE7iE10SC9GqlYmbZ95EkjwPKEWxb15GS9FGyG09EUSHj5En+GT5GNggIyG+SFK2GUbhaUw5VFrVZaOFM9FOgQFVFq9F9dEa9HYSD28R2FAIyH4wDlSHBkDytHEkYS9Eg9Hu1EWyFTm5m9GEyFH1x5SEO9FdqFOSFny44z4bNZuSGYGER04fhBmeGxKHQwa7VxQyFUwDOGHCiGuGGiiF9VFCh43r5BdE+hiHnCdtEnFH6VHLREhaFPKF49EnFFv05NsHXMiwoCWXB11TRJHF/wP9Zb6GGpGKBbcVbtjx5SHyyHKpAj6FExiW5DidEAGE3l7IGGI5G4ZaDwJUJbiXgwAYGpEARF/wbqtGGpEORHSegfUGdKHV9EewAJZHKWGMxbyuE1pZTnZZ9CdtHcxaxdHBaHxdEHJEhJEVP7E6HxU6nJHPQhfcBm9H69HdVE+mHBSHJ9Eb+RWREMo7w5Ff6ERBH2cY8GGe2EaXZKVGY0HRGH0GHG6EUNTbLbvYFS0HK0H0W7yVFYgAgqHY5HjZEldEcGHGDyD6EKoDD6FOCFN9EOmgQKSImF99FYmHf07yZGdKFNIghyDpdG1ZFUtFZdGmNEXUxa5F4kL2VHpVGVZFdE56bwzdF1KwDdEmEQStFwVEa0DUP4M8E4gCNpGMkZaCj3Qayy4Ogz/hzcmHayJVzLkFAqvYCmG6AAUPJHnB2pHnJhZxEJeFi5HwX4peFs0C6TjS5EMOSy5FXcBRc4K5HNxH8Qb1q4UWo3ZH32INNGuJET1Y7JEk0FLGGFJH0bCrGGUEDEQbe1HmuiVNEuKEvDijNFIDF1NFB5H5VZLjYTSFTaxu9Gw1EDdEfKFc+F8tJJWa2VSg9K2VTq+KlBbrEDziZUgIeSwpOZ9wCWsDR8z/Ea8hSaZHJqZgkZcbb0ZEfUEVaZYl5asFnXKeDHIBB6sEcZF+DECZHA/I8ZG7OZ8ZFsWBesHS2bptBWsFTXLBDFiAB2sFPUASZHKvYvYElkYyZGZ2Z2qZJDHhDED8bbaZi2ZpDFSaE3yEFHg/yGFYLFdBIj7KaHjjCRZEznDUuGhGFX9GI5GKVFURGQ5H39FhaF3lZTUFSvTbFElDGU9BlDGmUAo8iQKGCWIKaEU/qNPB3yF2OZOjJqaGsADNrQSKGw7g8KE0fKpXxGaHhizDGbVbbzlA5gAvy6IiL3sEmWGj1B21FLsFJZGdyER8GpZHAKF81HkWGZZGd+HklH375hNGTFEkKi9BCVZGdCCbaHUlE4jIo7BwlGFBDrqGDGxdeJp0yhhGgiSmIEeuLshHKmGrA4h+G4CFXUQR+FNWHjpxLjbN3ZDDJAIjuXIWNR5h6L0bekqNaKODG3GLKC5gU4gCJDl4qsGmZE0ZHeDE8kC+DGZDEasFe67MZH5DHI6ZsZEnUbg0bCkgEjHOsHcZFrOZTuYxDGesERDFwAqababXLJDGpDHSWRRprJDHZDFFDF5DE4jEFDGVVo7aZpDGZsE5P7wDFIOgnFHUtH/mH9xEdjQJVFsWBslE/ZH9ZHVq4tFCgECeR4nbTZDAh5Ga1by9zs1b0dElAZAigmAZbQ45NFc1aAlFR3Y3CR0bI0ZZXU5SlGOjLjYASNFbqFJuFDi4H0F7qFXJY6NSZCTjT4nbRSkDWqE6jEnhLmaHR2D8VJGjFvNJmeEulH26FZMQnSEPOCD0QWyFvyJgDIo9I+lF6lHQ5GFwBmjF2aFHQjOBHWjF1DHSBHqlKNDERBHNDGEMFtDGKGFTbQVeHxGESKHajGmaEujGilERNFuQ6GjHrU7GjHiDE1VFONF1VFMVGm8gRkAh5Gh+G+jE4DEbDE7iF4FFgSGwN5/pYV7LnG5IN7rFSgIjS7D0bBhQSQ6b1bbNbZsaGNabtbarqxvkRaNEXpaEVQxWY6OHbSGh+YE0TX7gENzphCWEDVwCgIitaHDlbjOYvtYpObGgCWsCEX7uDHZjJkjFcZHbjFGQhUj7JDFMZG9abojGEjGhDGnUanjHkjGnUYmsFBDG7jG+qZgK7DqiJDEuU6cjFiZFs0ZT+ofpqsjGusE5DHQ6bPjH8ZFcjFBdHsjFDl59jHCCa9WJDjEqiDtwB8jFRZEn9EJjHA6FNDFgGE4MGpjFUgJcyys46bYIZi5bQ419CI6GHDF3pbADAFPK9iToHxeNKm6HpiSrDHrDEg9FbDEEgA7DHtyF7DH5sHDDGFJF+NH81GMmFZZEh5YXDFVJHhNEGiAb9EDGFASFUlFURE5/hENZqSGrqG1JFrXQq5F6FhDNF1iEjNEg/DCjEoDFW+bB5H4SH/iGQCbWGGW9FBFHAjEvmqgjHmDG6a6QjHzTJqfLF9ZXdHV2antL8YDIjGBtaUZEAkZ3jFxqZokZYjGVaZHjF4jEnjHJDFEjH6sGQeLJDEUjE3jGXcj2THRDH0jHU0aMjHiZEsjHGTFJhBsjGKZG5DG/jGxDG0jE+sGQTG4wp5dHQlhXeFxdHOYxYVgnkBXDHdxhUcHDpEO2FIABO2HsWFYTE2OZt+EnDFUsFU3J3CT/6It9EE6GJNEk4gxTE4jJZ9C3DG30i3hHyOG0sDRwEW1FBNHUQCOpF6ZTHDHIcGnDGC1HQGEIIz61H5Aw6tEu4wtTEBcJG1ElnafxZRpqWWEfwaVTGdTHW1EEI5sVb3xZJDB9TFVkwDTHJ8FkBGXYTjTEfVEvVFTTGM+ZdTFq478MbYcqzTGTTEtJZW1H8jg646yRz21GJTGO1HsGHJUQC6z5IBMWH9hHqSQ0WHpTHc6H66F0yFdOEdTFgZYwsS3TGApZG1Eyy6yXYPxbm1HPVEAqELTEb0HtTFPVHnVEbTFLTEm1HI5C48GTqa/xY18QL+Ek2H2WFNaGHZGJZHq6H7TEtKGHTGRZiJ2G5eGghHgeEM4GOL4w+ayOSGqGsSSweG1BwN9DjV5yrTweE4P5YhFlsCMOHIeEzTY71xBtgJ1771wt3BxeGdVZH1ysAbMIFCCLda6UwHJtAtdBVdDJ17OeGCVZEeGOdYIOEE06+YBojYhN4R8BZCKtkApzYvTxFtYDeFYfA0aE/0HVVEzVEk4qMXhzy7QNFvtbF2CchHT2HntZD9RQJwKuwFw56dYwlTMOFywCqYgWACG2x5N5S0T0iKbfRbfRjFbHBYyP7QOEO14kgbbeERI46dJRGioeJYKDChGgsS4KDTWGLUbpiQwOHOuGmuwnwCtdyYj5u14lqgezRmYCMOHTzygsSt+D2hHNOD8I7izbKMQhzEOEHhxL8zHtL7N2BCCIQX7dL7FWRZdYWhG5dbpWGMuzUCBfAqNU7RsBcUBm0pZWE9i5eVhVbI3xZ6dbBVDM6GUhYXDB6QaSdZczGPbAdXA8zGSsSVt7GcQ9rhrHAh4qZQryGA2JJeACKQAqSCf0BVLheADr8xtzFWvh5zFjAA78xzABipTv0AqeJaMB2cTPkCqSQqUpxzFuQDUzFaQBJzEYCjht61eEO7A17Cj+GfzBswCP4BjyD1WI1zGWgDFxDchGMOHT5wLeFEj5V9baIatQZMGrpgKs15D+LnqhT2aQJDNsDupG0hER7BcLrH2jbxBHzEkCCgsRd+BhzH0pjsOGRE4wawB8JQ0B0+h2cQBgIPygteI4tjxQBd6hvQYnwBiciPyCqeHNWIz8GiKDl8TNtby1FwOEHzFvda8zHjgBzzFJB5JjbWABTa7BqBDSTw76y35SLhpqBfIjBf4HnSpZy9EIsBgWjifUDmt5PgS1sATIBTCBYsEjG5MVL5n48zZxbao0RpojfTBnGI2eAIlBV9YWIKFda7h60BK3yHW/rMIETgB1j57US/BYxDR5z4yeGsLHYW71WEUdQJjBnGKgsSmdSoLHbTZ8eFdOE914kCDJ151uDlzGPyBvzFD14WzFvTa9yh4QSgYCCwDKLFl3jw6Fs7gM+by1KSEaljR1L4QI4n+achICsQEuHVH5SLa1H492Gkw4I+b92EYcEXL4z7A4hGj2HtH6e6zaLah14JhHfhE+WGeAH0GHyfgSAAgQCU7hBbTy1LyjJriaZ9CoiD2PYLWGuvRoEEXHDthFmIFS/B7zF8FzchH+WEthFpMDBWGZLEmBQR7Drfz3giQBGKsAKgC29EAr58FBQ0TE1ZBthV4AseGheKxwHKzFz4iHzHyhZwaZBtiNL7fuGBNGuab5aHW5FJz4TFHHaFmqH1qEw0QZz79LF7mBoNGZKQ+aF5eFx3YBaGrmxhG6AOGj/wFugVuhb+ab/x2hE5L4RzFet5FRTxLb2hLpta4LYhN5BthLzEBLbGTDrsAmLETJaBBaa+zD7bzFFJBG+WFM+IneDFWQ3KixH4cj49w6+hF9w5f7weZyxZxXvKshbr16Cvo2cLP2FqeCG/SQ9ZPLGdOG32GvLHU9YhZyXTQExDAHwGRaJH6/LFGP75Bbb14v2F8/yJEHpeFxNFi2HIP6uLFIhEmN5QeEU+zeLEIeFEzEY0AkzG4hFX+a7TE9hHUTG6aHxTG/ZFyYwC1FocGXAF8gqBBZLLFmnJTLEXGAzLGVyIUzEcWJPMTorF5UBBoJ+dgMzFFDjda4tPRj9a0OEXTYSmiMOEazFDeF8rA6cESKHFcZAzGAAYdIZOBHJuEa0A9qA5TFHeEW6auhE9lQ3xZtL7zzFHLGWYHLzEVLYgrHY+ETJa4+FfzbM6Jr16Dg72XRv9ZjFYArHibQ0sGFt4CrHcGrMIHUBEQeHIhE92FRWEjV4EzGYhEIj7EzEj2H5mGEP4X4xhnwLeG6db7ADnzFa+iXzHt15s14LzZZdbb2GWzENtbBrGespZGJ+BZFjwp9bChHLJHwgAKzHLzzN2CtLH12DtLG8hGbKwMYH/0G214qeHSP7ChGvdL3cIP9TOY5J5RspLvYCai7KoJ6i5xyKtSisuhOkTXqw1rH6Qa1rEXpHagByEpVTEHqDEI7+EFvV5xRAaWKrSQK/JxeJMiJ7+LzMAlOY6LL8PxGTjahJcLEQ0pN14h4BKzGlaD02QvYHEaHdrGgmGztFUYzYgBtLoUbKovp1c6ZsBCmqnnibsCGrE9mFdOF32FwrEWrFSL7GP4d6yk+FmP40sE7YFrJGWYwurE4rE0YioyQv2xkEKlELeLQVIyerFy4yIeEjlKkzF1zYhVhjvAbyFuCCIN4aNCgbGbFi3woE/45oHL+6mnbBZL4/73uCE/4wbEeuEMzbq2QvYFxAZ6+GDFG9FEmLaPmAO+EYbGycHO+HrtH+eHUCG2iAheF0oxpNEnbT2jFj5FMrFaLHXtaOABhL7Xd6aCHrN7Hkz+aHo8ZMqINDAQNiILhwdZPN4okCBjKn9aAjSHtb2Ii9OLR8icDEFLjZhwpeEXQarzRu4oZeGVKZ3cDZeGIzG+aFzLFwdRLIDghGo5ECGEdDGZZQ2CIhuEWjGMv6xjFjPT6pG9LGGGZ3lbnQCabFd6jSbG3lY1By7URMrHMDyOqiEhZb+b3ogbLFSrGeoB+Lb1db5L5jeH9/THzYcOG30AezEAiqNzFRzG1L7gDEGbEgJbWYi3DEDpDyDGmq5Oy4B+zKDHNgDNIiabGKrGWjG7qHKrEFgz+BY32FauE9OHU9YRXyNLYJ2HTLGiKAKbH1AD43L9hFgIhzk4lBFu8HZawhKCe8GlbG94Y5hEyKqy0TTNELMGHJQl0TlhFXr5iuH08FFDjjAhiMAUMFNLFOlIYZaCoL3OEeSJqjE22B1aH+4K9bGI1EuFEUdEFWBKpSzaQjbFsWBJlF/yGUEZ44Sd2ZTSGW14MFEiVpVzKZMo5pC+Y5NIjyEhVgo9bG55FTbFSqEMdF6GAy6FDbG7bH9bGRGAL+T8Q72+GiEYSOgIHxSLTaNJf9Sh1IdBL5OHvSJ7bH7ABJlGVCSUWKvhA2BKA+I08xnNTf0j2yKmBJUgafbFYSa6oKJyQF+FlQbudJZ8jesBM8yWYKHQbudIHgDSwDw6HzbE9xgkZGBoH6jgAmjX8Kj8ZCTERAC316ZLHOrGozHuLFQeHurHDyKOzRfrH4rGEzHerFErG+rGoj4FmEX4xCZbaETFbHxVghjF2RiEYgDWQpw5BrH5rFyUY+frnoCZLHG06ZLHwdZ/wYUq7444CF7tIZATCEl5RrEXDAxrEniSRmjORHlwGJZLEVr5ACy7FdfTgsSuO4z8izWjS4j3ByyRiz3bIuZspKPUq8nYxGYsVTgfC6yIuNAA+HkFH5AaouG19bhE6sSayA53sCjEAynZuFBqXTGRFUTFwcF1TGZaEMTGIuHXTEyXa5hFJDCp+IuNDC7GdmgAzF1bYHH7tcg646FaECeGUGAybAbITFLY7iQIUAK7HFLZaP5Ir46P4nrFgrEgn732FE+FD9Q2rFFBYOcLNhFgBGthGH8K47FPrFOL4vrGohGJZKqNDfrE52GErFDh7+LF+rFj2GdRznK5eQbcxKUpTlpFI0A+WBKxhUrEZhG65EABFI5RhK4M7EYnBqfKN7Euyyj+H8mxHcQKz6jNQ0NZyrEONAZLFpMDi04FhHWLG/zaT2ER7DeeHqLE8hHYbCD1447FT7FQBFwMS2aBCiiGLFayIR7HlwEO7G1hECYRGDL9wh4wx/xApbHehEXh5ZEFKYFqThIzFaQAosFt7hGCKxbHZ7H0uK57EVLEdhFnAGgCC9k4MUCMNFweBjNFwng1TH0+GjaGUKb0IbMBFsWBxJH0aZWo6F5LghHgHElqaTf5akYMKBViFglEcbBEKqMlGvJGfDG1NbETGpNExxFvREdKHPDHibCwoA44xXPyCTEdJx0lEElEcGb6KGtqEklHlMF6DE8hI+egrm5JIhIpbARGVzSDTaBw6jaFrDHpspkTFn4bI0Q3xbzlBokpUJYAgGk8S1wpey5bbI+nJKoZxjGwlF8TFraHwlHnExqDEloG7CJsiAFbGaEqI4HTJzQioLhHcWgyvBFQrQiqgVHh3ALFEBUG2dH2kFVtHyWzksAUtFf1GoUbgUF7ixjFLy/LgdGbEFwNGvwJRWypkFWGEvD7dcBQjCQBJWHGfNHcUE2HEACB2HFyUEEcTZuFw1CwkjTNETrqzNFIqZoiG6dGGHFqAirRzmuimHHoUHBJRd2JLNHO5RIdFPqG2HGb4D2HHMUG+HHOHHXhzb4EH0hBHHYW7tbGvtHedFnEHJHGtkHpHEcAD+HHtZHmugYYF1z4qAB47Gd2FozHdh50USYzHLSTYzHN1xl7HfuK/rHIj4krF1eHecFYYGtLGbLokeFdOGMrGoLEn5HoThYYF3MTP6gQOHFwDChGjeEezE5LG8eGz2Hp7ECeHqgT6LH1+Yz2F/xCMOFJlZreHLBbCyhMN4164izYvzZehH1+anzHWIT4iBBeBjHH2zH+BzChFrbJHOCJ8ZDzZBzEkCCrBZ6dYczGRMQLeFqLFVCAn04jaDSeHxyAZrHOxLBwFlZBjLHODDfHFZrE5LHKxD9HGdJZteFMrEAFjJ14G8IcHEoZFpTH1TEZTG5uBFrH9eEfTY77FK7B1OHfAANOHn9Gg6FrUQwAaPwbHKEF4qkka2t6icEwAZhOH5TavJ6nBTlwF9B4Kg6BvadIGLHGlaBiBYreG2hHmzFhzECuzwbjMRIlqYYCiQsTtBJSFzAnEz2FSwSgsRnJAY7wBw53F73ZHtaH+JEsVQ19CSlQECGCbHvDG18gibF6cAepFhd5peHMwBmbHvIhybHZbG37FEgqKbHrEKqrGqbExGER3AVeH20EzeG9aDRH7WhE915+zG8cB4hFDpy45agsSOzFbHGvGymkBh7HQHEf2GbqZzH62nFuhE7H68cDizGRoBFdQJjDNz5wcRtz7zrGdz7R8Ch9RLzSloyfvCoLFzHFuOwfxgLQ6tBxZGJvvD+WGU+EbnD2YE0+GeH7EVZbCRDP4vpbOYGBupJF5voR8rDqdZOhFunEenHF4r2LGVw6zeEj14XDBQ3A5LG0cC5rF7TYThyyhFmoGRyJuwoMcBKzagrGpbE+hHpbEDw4ExB8HyG1gExD4+HmrGrYqXrGIrGpH40sFu6D72HsCI1HGoP6p2EvrFmjQw0CtHGLmbtHH4P4BLFWnEwl5V9a/QLoSTQJAF5ROzEAOF0hHxrGVQArAYVJSJBGqGEZZEInGDyh7tYprCS7HaWTprH1tFjBY3cq9HF8nHOnH+2FrRFonEuAC6IFC2xYnGcrhfTB/+g5EZfhGI5FfnECE4RWH+JEknEunEq0EUnHFLbpjjUnFuLZ7UT1+YTdb4hbvxBReI5y43nFPBbBnGTMDyhawXGCIEwXFIArFwH4OFpnGgX6TCr9LhYuB+a4lEC2wEUOH8P7fuJbeGCLGW0HOhHicZYLGYqH+ipdL76rGSP63KhppRIhbyzyuTIjlJ8HyIOHfzGUXHs2EgXH8shFnGPdbyI7FWStnFGrGnrHgrFfzbVxCwrGE+HwrGvtStU7DnFf9YCjEMtF1/q3YEFtFON4YJHo+HkLhCNH1cSE5AIYZutHjxHhq7aXGwtYGE7flG1tH6srltEwNGesoI9ibwQewZeuKtVBDZHSDHtNGFfAtJF8tGk9Hb+HIsSN5EoIiEoLO9Hi9GEDGG0DUP588EnGDZz7Q2Qaz7s8E2xE3+4B7JdH6AuAPI4bbS54HVUH+pjemFuGG+mGCsEiEFPoATPQzgZSnGsi5M8zUCEfODnPDX1GWOgPQBHFGV9H99FVkxXDLcVbhTEFKFkVYb+FJjE/hFCxY59ECGHrlZNsGcHHLiG05HtBHX5Kt8DVaCqNhZ1FKhK1bJgJhJricGDxOJiGiRdrkOy3YHdXFp8C9XGUCr9XF0tHpZhViERiGKUDDNEfDFSTHoxGPmCsTFzNTWKGOMQMJGS5gYsQDwT1GY1ICqNEDNEBVHekpEIKYEYOXGlNFNCDBY5S9HXSJzdH15DicEECEi+EbFHGDFayKv9B3XHmY5XXFw1FgEZ2wIU8RgEZVUITsTY9GrABXF4AjHR/oFA715BjOIYxHPFGSF651aJWbN2it9KD3Y5jTkA5Bkq5hESZI5SE0JSZLG6UR24ZWvhNbGHYaFSE+0QKZatbHLvSyDgeyxXMSeUgR8ICchqdIP4ZHXGTdF2NEFdF4BAg9FoCF3DgFA7nXG8di03G/QAECHkzTPXEecSXT5M3EIVGh0hs3EM3GSACc3EECFfpYh1YGMGciSrBZzZ7NmFlJHH4YfXEkR7H4bfXF7zQJnHOKFIHFAyGQQB6xEEwD7NRY7HOKFBiECBL9xGAQ4jlFDy405Ed7G5JEKMHKdIPdGyoTSUDOnGt6bCsBuMRv6pRdFoFJi8CuqEv8ag/COVgFQ52IyPJxsCHLGr/XGGDHy9yXNKI9HUihmyGj5HzSEH5KfdFmyEg3GPmBgSF3F7N3aQ3GpXEpWYwjFWGDlv4wmArAbTMzacQ+3EPCYaCH2IRgEZEKHS3GV0Sy3FrEQ2naC376MG4CHDRSXICi3FRYTi3EEI5i3EU8TkzSB3F+hSVar03HJ3E13ENmzcxz4lFnGG6xHzwShoDRk5VZyK3IlEBZ1E5dGVlKsi4l+JGGrg5GGVFEChIkZL9FkqFD3F4MDK0GvJ7ENG3uEaVFkNE+2K1MzrygJi5pXb1Y4Iiw0FweIGc6Ed+GC1HrRGJuHRjFrwGRWJ7jR+ghL3GPnZGE5r3E73GOIEb3G0rFU3Lb3Hqf72aF73Fu2JAIhcxRH3EyY6dsRabG73G41F0WFuk7X3HmjFv3Gg4HXcSJSRAAxP3Er3HviCRjF70EX3Fu7Fb3EgPHbqF33F/3GXQDIPSAPFPnYd0Sv3Hn3Hv3Gb3FocFf3FRjHIPG/3EVGiN4CFOTwPEn3GQPG33EoPGX3G5uAEPE/3HtmF/3E4GDab64iyoDzFdEtXFB8TVbYKY763EtGEyRH+JG/RKxkBlG7dFQbyG2PLJpT+wjZI6cPG0BHogC2PIvlFUr5H07JKa82R4PEWE6bdwLVyRYh8PGCPEjjC82SeoANga97TaA68KFzdBm8TF4LnWE3I6gYHAJj8YDOoLHWHh0FweBJqC6PEaPFm0HcdGGPFQIAfgBotR8wBcdFI2GaGZqIDMkRi3Kt9wmXq9xiUCqKIjf36kPE0S5yka7ZxCSpYeE4CE4eGfwhAEZtZGlZrd/p1UZ91FWX77BaoWKHBZBEYujbwTbvixsFArY6dJJZgzAeG6UF664LMDJI6AHZugFyw4EUaYZ4mlLa9Gbe7QWInebieHbeaigAKeFBWR7RgbyHJpQKeFNaL8PHzb6yVGmBSyPFwVbaKJX5S82QtkgcPHlPFXb5OqSyPFpb5ZvwlPHQ7B5YEmPFNPA3WGCv6e2SnWH2QT6PHmaZpk7ogDNUyjPFsXCmPG2PGTPFWiBWPEjxgbjBJrhuPFn3EzwAePHZ3hePFToE+PFCIFxXFDnCBPEFNFhGBfpIUpb7FGWJGYXRoUZG0YrwTqhbg9aHMh9NJYdJI2zOPHpKprPE33EUS6bPFVUTbPEB+y7PGxXHrUHwnCHPGVDAOPGRlgQGRhPH5PEUFE33x5PEwB4WPGFPGdBaveacL7gvEAYHhPE3PF665BEYcEKYZ6c7Y5VbNT7tWSq7LJPEWFDg9ZpPHMw6Bo49g4CY530Y5PGGtGt5EyjAewDgiJqPFujDGEDBvSA0TrygXQCYgDIPTasCYgCFOR1ECYgD4TQMoBkxQkZS2ID1kh4lBaLhqlDUMDaeC3PBcxTacBHRgacbr+R8NRo1DHigciRqeh1Y4IPH3Rjd5EwRCyvF1ECZoA0OTaeCnGTLPGvoCrPGyYEbPFIPFbPE2cbePGKSq+PFncFyyj/PHlHHwPimHEUpGk/pUpGGxG1xGr1ENKgzdJJ7g/DEy5RJ7g5gBaEqeobgE6NxHeuCfYLMVwSKqibLSxIPQBa4TEdQy4IcLJl4Ce/gflEHbEXCB0ti9EKRsx2vg7rI3cLuFC2ECwaL94IRxyjbFRvGwKiLqRmZC48JroJDpBn7I8XFu2HcpGe2GeFE9gbai6CpFqi7jgaipEcgZzgYsJaFAY7UyG05CxZ5FGjMEDMHjMFZFFAAbGFww5HHHT7kBNvHpFEtvGZFGEQBFFFnAAlFE4Ig1RFt1HeO7jKCTq4rKwkdGBBGUqFBgDdEiIU5smBl2ZjvHssG0BT5ME6sgkdHu4KcaZDKbTvHScFHwyzvAQGa59QHnSYVR6GDW0482HAiG6dA0HHcpaceiYERNUqu+EBeG8sEOZSx6FxER5pFyBJe3HMxSvvFj5HoUGWLAmERZzH1oGukjFWEw0EOyDFq5uBCVq7f2ro1Qr8EJ/g6FE4mFbFKda4cqJ4GZ9vGFFGWADFFHkA79SB4uHTBGuRFHa5C4EzJHYpE9vGdjAIfFZFE5P7BfwxgHyRFDSAm14AHEUZx+MYDhFCuGvCQBz5ZSQumH904/PEemHxXGMQA9VGHuCgQApXFrbJu4JOY5UQ4n7Csi4b7DMi7ahxLUAsVQR4Is9E68IfVRTiHZAaiVRTiH7xgrZjoWBu7RfRi6jA+cDIvAeJDgyQ8cj7x6p6hVJE+Y4wCLRmGQX5JrhMFyFOE1O4GIHqfGwqExZj3IRmBFWRHVXFEuG7CIKwFQ/Tx8By4FTkha4H15A38CdGRq4G7ubRvSK4EHiwHuaMea64Exf764Fm4F1uHB0A/7CUCCm4FPjjm4FAEYR4HW4HAji24ELEHZqwk4bgkGGeBNEF8zbHnH0TE02FwsFfwYgg5++zYlTd4EYk4xbaHYaG36z0Ss6FO7ER8FGLRSvSd0DRnRXGz/IoWRZ+fx9GZ4HYWIpTGbfwqFRanayPUr74raC4u5i3ay2KZ3Xa8woCuxzIbIaLLGadRYkfozGbDebrRbmbTm9iFGZhFRj7ET1ETjgVGaqJbzHRQgpSdYsOAnJSYtiE4CWRRwSqmCE23I4J7UJ5cJ5NSACbiEIAibgBKQdjLULh9zi1Nh4Li91jjCj1Nhj0Hd1hNSBMLjt1j6+QhBKw8in1j3izj1iVA6qlBDjiQraYthu/rzwDtqYEkacRbdFKg66uIY1kGK+4P8gmT5LirW+6sAZdjA91BQ4iNGJ2T5YqwXD6z8aWEAg/QvCSCob1RYI/EcoYbbwQjzZYZUiCqlBk0Ao/GO66qlCIJg4/F14HkhISIAZ/qpkYutCkbS9QyV5R1QrjpE+6Df3Tj7F8iK7NKfJb3gjdBxM/HwiR0xEUlgg/BsRbSJHZ9b7ODmPakurzXKokauEagmRkKyVgi6CKK8EzERXjBKQZapRi/EAxwxRh8PxYKSRz5CyHyLQSPwZHJK/Fw/glEQq4oNZEHbaRH7NQYU/r3UhTqTMpIioavXCpcJIlKYsD0gAKoYOa7sgARySm/FW/GL2gyoY5/hyoY6URnCSKobvU66gwGiJFbF0BHVFhlbHIQBaNDSlGOOTAbb5VYmEQuXRzj67haJSQDMTnPzenwmKAcADlpLnPz5FA8G4L2QSMQo9DjSEja6csrRQAUbJp8ER3D2l5MAFzi72SopipUb5y4xth791BeMaQYboRTnf5ug6uvp+g59ECOy6y8TwCyIb7k05wb7afbUE5peZ+QyPe5SdBVdCuq79lD0AEeq5tcRR/GEfTs2Qimh3gY4soe4x6YYGqEcDSh/zyryOrTL5yH/AJ8wH/TRDAm/Gl+DJUTWYZ0BD68Al/Ghe6V/FbFaxEYRCBX/6bi72SoSRZCg7sgD7iQRfq9M5er7TK6AKryjqVs6j8amYyj/FcsQEjznNBEsRYIab/FZd5EB5qSq4tjFyoN8LXyrRvo2wBudh6oadKr2F5GoZWdCtl5ZNgVIEFYZtB7gkbD/oSIY0YGxUavmyV2YoxG1oY6caelRKejz3FDTZUeGcUGQ1YWxbkA5IJE5obqOTV8rdSglCxyOweUBFoaw0EekGO/GYsAuoJnr7du5IvqjypvCqHsB9u51UHWuFK0hPJZQRgiEDP/w17AFoZsqwEAkOyDVWHEAmL2hJP6aSAEDbhSpQioz/rvfE0Akn2bWpbNPBWE4ooCKy4mZBXbDpWFcAkDUFqWGo8Q8Al4JQB2KUAn0irQiqkiqrqhJz6yAkEWErLjSeGKAn+DTKAlLyo+Bq7Co8WA2xJgaDP/xO7BndzStDFTCmESqHIAAKOT5asZgwBE0QxfZcfZJ5ZaiTOAl9obhsZY4AwQK5qTPygyJaOAkTPRNoYxvZwFZuAmBAmLoaboZY4AEjxBBxToZSIaasYEJGgPLuAmjobAcZoNS1obz5IJAkCxFcgaRAmUlzJqTPyg9NwoUDZAltu4817FTBKYJ0QA8zZIOB+RAW/H0MF2vGIpF6GgXfiJn5pIFxCyyYbimy5pb+gHh5ZeoZag43xZaRgQiavNbb2w9REgGwf77WNZvoZxAl9AlmxHfoYawYlBK/oZqpEaXH2RhzKGd4AWED/ADLUAIAlvlJezSFpZNRFzMx/3EF1Y8MCNdBq0AF4BwFDQgD8JQk4aWEBaAlsuA8zYVbQw0RW0B6AkCS78AmqAmCAkp/EaAkM/64UHh4BHAmiuGHYb9vAw0TADAXAl8An2SpUAn56An0BBdA7Am9AB70BUJifbDSJQk4Zk0DekpFAkXuYuz6z/S6gBmd4W/Ftk6TAm1xG8+AmAQ6XHwBDRt7IYYmsCoYbaJGNhGqI4KJG+h7YcYP/G+j5P/E7/G2Oov/H7SrFCq63KpurSe4EglB57b/GjyoeiZUgl8L4aB5XAkhh6hoGfhKSlyH/ATji8T71NQ4Kj4gnKx40B7MgmdDDGAlfGCVs4/4Ano5ZFBqeiC34EgmLv7eX5fAnXAk3/qhe7UgkV94c960gmGAkCAm7CLztgnN5yFZxyD3CbQiqq/rWK6H/HUB5MgmyglBVAcFrqglCAmhkY/4DdIg8YgmjFtfqKgk6rhacqoog27pgG5ed6X3Qr/EDwDKt5hh4jzKR8G4RG66CmCzEQ5wSoMoY1kFxjQg/EVWwioZpnBKkY6/GtQZvXZi2AwSEQJJIhxVYaCobsciG/FubCpcKZ4BN65q/EioYRvjtiBKFjvzQi5YiuFSvTmpIY/Hma7IJYu/oNAl+NjUi4mAZr/Gy8Sg9BoDTzSDB/GmvoDBRCQANgkMiDdNTP7ZrEQDYAno54/TtAZSgms94qgmkSqlSr3YEKgl8glGgmjyqbZTo95CQCnYaKgnY945LjwgDH1hgmAKR59glkgkBSr2F4QQZMFwuglSL7/wgTRHeMbJmFfcCXswuXTWSQCQCm1gg6h3NaVAySkRpgmsgn8tZ7iSsy5UgQmO5cbanF7uIaBpSfiq0q7AkbWjqh76NJHWjqYBz4kYTkbYvym36Evw0Fx/kYE/HVYZiNBOoLJtAo7LsTCjiYQWQiCReQb33TewF/JaL0Y9glKR68gn2l5R54CgkoboqR5hcZTglZ/EbfrSyoXLq5/Et/FWdBDuboqpx0jLDYpiq854siwpCjKAFtj45DQsv5UviTgkfYb2gnP7jii6q7psm4tj4rl6mUZ0Qk5wYI/GXYbI5DY+iTM5YMikv4Ggk+fqZCSCi7on4A4ZBlLA4Z7VaV4EpPhnoxyFaKglA1bvfEBv50BA+sTffHjYZjka8hTosSqHjrgksOyScYvP5Ln7EiTE4ZgkEu7C4eHYW7NEGKoYnEaLcDuaZTwBdjBvuJHwDIB5zka42Gcv41TYDogqfrARaNeYWIaFwryS4S+z9fEYfodXCw5zYfpHmqdfGwpDECCLazDfHN2iKgCWAbtKpNSDzuC395RngOWAnFBUFp8Y6cXhOcEEVKbfoUFa1gBj6xIgHr271I4RR6NI4NF6AY5YgEB36SL4mz5H26aQGv46n26GVbwY7h34kgH2FaipTvl6UgEYY4P27jI7fl6TI7KU6ZjL2RiKQFgoaaE6gV7m9bgV4GQHqQHmAEXQ4gO70Y7tQl6QHhraIV7OAGDQnmS5uAEoV6d2xMRYu75NT6N4L/fFxcjKm5K0iR4K4FpWY5pdB2vqxEYdKzGn64FqrqhVdAU+CSOIqHAohx/7CMGhwaav95P96j1Sm+7JDaswGHYYTYa4IBcwHmDHIQQmAYRABBcaZCS28SyEo/YZ0v5Xx5D8R8R4Jjin6CqEbb/EVKoNGrRvq4lAdEYBDCV2bIQlEL64FqVKq4aCzLh1+6vQlmAZvgYX94an5hfpWj5Mb5poKq7rOgkl7bFtRAwn5KpjpqiFp4dCnYaIwlKgbLL4PIHUa6MIaNdB0T6vQE27p1oGsYa274ygnAwnZWp7QkHl4cIT4fqWZpK1p5upAfpUMAp1IBHDgtSzO5kkLxsqUfpHaw4fpeQmTIZfGzPOz7V5865x2YXEjj0ENIZvGD7CSv94sI77KLzgYYsTGn70I77KIua7hkYUwBkwkzK6PIEQwi2OYV3L9WHhsZE0QNMINewRACDACunD/gbDhRMb6ed64F7TIGUT65ODwuZGwmGwYewYUQj15DGwkDoYewmuwl8rZTL4mF5cLbZuRWdroKpfoHNIiZXCWwmgKSmMbw26Rx6Fc75W7k86Qc7k27Qc4BLZIe7o26187k87Pga5UaN85C/IBwHTO7Vc5RxB2aBB8pYEjtBJD84q1iscpM0gXiwlwmLW7lD52SC1ti4C61wmscouxDn7DVwmLW4lwmNwnlwkNwntwmmIA7c6CxCGwZ1c7KuB/oLMtjGZjLc4ks6nj7jc7jJA0ADxEDwADnixg87ls4V5zLYKxs4MYJes4bc4Wu5Ke7jwkcu5Q86UAAAfKDwlhEDoc5zwn0C6hs7UC7eu7bVi7M6Ke7n7CUADds6DwlkADSC7tBJYc4faScMqXc4zwlTwnzwlXM64+YAfKLwkS87wUIqc5Ds4Su6bwnniz6u4bwmXc6bMokc7/M6AImCxBHqqGMCdoDQAAXwnYs550rEu5B24Su78C5TwlfO6scovwkqD7es5vwmLwnYSbfwmwIl/M5nwlROq/wnwAA9wmDc43s5gIl7wmSs5FwDQADDwkq1i/wnDyirwmfwngKbls5NsBoIlxs4oImLwnL87wULYIljwnLYJ4IlDwlnwn0Ilnc5B25bO6/wn7c6B24I85RAnbM5au4txBUC650q8c7SIkbSbXYKaD63M5y27xD41nItD7C26yInu24gC5y26vM5qIk1nJ7M7XYKqImK26ZirSIkKIkmIkaIkdirYWg2c5mwkRwm1MZRwn6jiMaxjM6xwljM7tl4JwnBe5aqEDO7fsqpwlOInpwnVs7jO5N865io8/FVc4VABKuBmu61tgbJitcq4+YuxDlFKJBrvj5yRL7M4qOhDs7D2DfJrWD4XwllW4Ds6HW63c7ZxBK1itxBLwmbO53s6Kc6vW4As5mxAys7niz12ArD7ls4Tc5ccC4+ZECCvW62KTAs4T6SVIn2VoFIkuxA1nJEs6NaRzO7C864+bKigFInO4hHqoke60c63wjbVie/B50qWu650o0C7w4Y8s4nO5ke5MKZbxCBRiubr1IkiC7GIDrQLmxDdpJ9s7LIkaC7a87BIl0AD3s4FwkJEAjc7OxDYc67s5ZEBTwlZEDwAKrInK867Il50r7IlHInZ845855wm7s4GxBh25qxLskRVfHDJSSkRKvjsWr1fG3foS+wjIZBRbCwmhRY84bhRbWEDzIbbcJi4YqX4vUrIaKxRa6JxUpAwYJnaxyxAhQl8C7IaLUfpPFZpRaSwneIhjWZIAZRrJ/7ADMTDdCewkroaycTbCHVtiL+6LuCfMFKm4AHSG4ohSwmiASpJlywN+AmAY+rCoiCgYSA7x5sYFAaP/F4+6h+asQAT6qOcTO0AUFaQ7i6/6TKq//EconI96VfoQAkqpE2PABAlRYRWNatexqcQogmdFCCGDogkBTi4gm/xHauFYgkYYaiaiwS4Yn7Suj4QmiO40kBZRw6CQFJCLIShe7MomEgk0B6eprZkbHLYzXh+X4hF5CR5cw7cgZb/FcDZoZq7fp3gbLDa13riO4CBHM17BBI5f6zGw4YF8T6wL50x4lB7rVK1GbzBHxWYPXY/D4ttyRgl0ExBwztNa6NJ3F59EDFfoU0a/iGVWyO677EaT5Gllil+BjCEHu7ppZixZuRaNYb13BYIYJomp0gT3gAj6t8CRFAD0EkA5D0EnYFpGrRr5ponuGr4R5s0A8v65b7RiCFh70yjofEhPQ5z4E2BfcDCxglomzFZEBBLoDAk5zroJtg0AmPGh1wjNVKsehdrHR8h+IbcvKdolOejlolU1Y/oGSap//GDf7Fka3r6D0FWdrzN7uXqBE6kMjN4Fh+xconqQB3r6kNC9omiGqj0GLokKkC7okrEB8uoJtiz/pMsqMib6UEmWRN75iS6HcBrEQHXSQpiN77tGAES63h4vAETtYEFyHpEjeY64ag+YeNa6tZ5om7CSCXALg7vuZ+O4YU657SxO56PikPRwabYR57AH3EaScYu/G5rQv8HG+EV7LDebphBFdRXG7piQAYlph5oeH2uFXYqXpF6EaOoD6/G1zDpiR9EBZomlfru6BBonB66x65FCJLFD3caHwYogBm66k6wbyGjeESgByR6YWF11RiqCkJGpeYyoaSRS5sYyJZiomhoYhPQWgYMYneihvECDJHdrF29KbSwoz5ZCw1MQ18QyITHIGauwJeaHNiQYbXoYIgmIpFs9ALFaw1JQgbysYGURQgIqYkTAn9tHo+G5wQNpbDUFfxH976a0wZSxJXChHE974NbiBdQvAHW1xsYl0BCCIo9ZE7ojEWGOHHfQnqomgH5+TaGoksuasom51YqAgyR5wZTconmQl6okjCJjpr3o5uon6jhK7Ar3qZOxQ9ZL6S6Qk/Ql8WKR2EFwbcXhEolHuAkonxMj4+JpYnO4AZYk7bhK0aGomlvJORh3MYDwCNdBhcYFYklC6kO7stbgiIE0QzODhYnhX6G/5AGpSx7YcY+YlKglEB6NYm7arqZBD27Ix7hAYtYl0YbGomsZrEb7HLb2ACvIFTbQXQnan5Fi4xoklfp0LYob5FdIrbCBX4iZ69YlR54/BqQh7Sx5cx4C/5hZwlbxZeZ44QJ1ItG61fF+wphRaWLCfUrOEClF4naxNfEciAYfqvUq3ayoollOxqS5M0Re34sQFcU55Qne34FQlT45FQlB35QY6lQkn26wY4s+4so5VQn9I49F54QF1QnoY6DF4aAGiHayQG69ZLoAdQnG9bfObdQkeraqQEWh7Oh7rPYLPZc/qQ4mjQnU7aQPbww6wO5bF6mQGhDY22YI/FG76CoYOi5tNQM563BCi67ZHFjYabvHDDbtAZ9EC2onMAGd2EcmTeWq38hEf6XcjdWLLDZoypZu7UlShoGDT7f/7zNIUjwzIpVfGdGYZSzebDDGZ+wqfIkUfrWKbjtw/IlfGxCfr1aBXYkafrdZLQa7QcDcOy1NZYYnoN7BJLg3HkeZZh5R3HWDGN9K5omP77UYk46K5tRfgD+tEPMD2RjgyJ6Qr3AGVuEpcIlfGCiSxnJg+6klZQwnHYFSX7zTp1+404mGglyFZu4lCQnRb45X4aJi04kbbbO4nQiKkrpGB5yCD3CaFn7aW78f5OQl1xBvoodiYq1rcwkp1LC4nsWo/ImHYkzay9Rb9Ra/kgS+wdfE2Ka0fpy4nPdwK4mUoaADYpOTDxi+4IzgYKT4eYmMi4R74+ADOAAlMF6hjkBYYnCszFa+69FFxoh/7ChXI38LIDyqi4RCx/7C4hxTf63qDai7ioK/ojsxgL4yhVBGwEQCIcICWT7ai6A+LleifRjEvCmwFX8JYWoWLHjiSZ75KMgZ5K+LBYIYoSQx66Wsglh63hgaKB8Yk2PCPyQhobaUJCYlwaYiYlkUhiYkoAnoeGdVYuUS6A5444A0ayYlBYDyYnPSGKYm0ZZuYmqYmGYn2vGqI5yokyaHKomAJEocSdBFaYn5gYxKEawZ6Ylwgkv4mS2Fv2FIYa51wYgl/8Qf1CAJHx8AgmKmYm2YmIH5ZR6VxD5HGPqFuIAIEl3h4ExBpmTUOYNomDiBFh4G4lO+YFij1VQhLDSNDWfSfwiEuEsfE+mFsfHCEEzOGB+wSsHBNLfNRcfH6BK0/LvgDnODxbzmJHThbt8o3IDgiLypCvIA5f5MhCD2QGyi7XgmAQqtgzhZcElYdIrTw5pALha0F4R66AoAW7z2CDYEn4iTNomU6jb4ky3SrhAccSkEk6ijQQmD4HyVDRiavNY3xZhTj6sA/oSvsAGbD4uHbpLck5PDRqUFvtG977FAD976wVzZEEcGC5kEQaHedHWEkDHiGLCwVzjcBZTHMl6e4k0glcDY7YBXBDM4l9aZPlIZsFJrhxEQDwD8AF7DYcIQy4ke5omIC2KTsWrXYlzQlO4IbpyYomfRhD7RkD7zkbdFJjVrioJkonkYQ05xCfZ0kpGokaB4FVoSr5PUb5EnQe79O5iD5Oe6zaQ0Ik+oFwMr0oFD+KBb6lElb2KVAogdQ0Ea0cAr6AjCJtEnEUS0cDiqG/v4XjFEIRZwmdXJS2bKjh2PpmcH2MYKC44mE4fovIlaKZ7Yme2oteaFwrGHwS+xZRbKNo95FCtZlaAnYmCggwzq/UrLGavUqxRZlxCqXgJRbNOAZa7JRYy4nKxiVRYZRYo0pMiAq6CE4nG465QZkYnVNazoHxxiI/GkhD/laZgkYviRvjmui5gkhG715CWZLvnjdtBI+7Le6Xvqw1y/XiklbBomn2I/7K51aOoDX7jHsDphB8145jSCwBixbfD6srBl3gozHkeY/+aQeEznFRWHABac4Hl7EU7GV7F/rGdHGHgi1FCSIYESS/HEhz6AR5HuAFzFhCQhxQ/FTdHTAk4mwyJgC9HGvHGteEjlLesBLYbLWxfw4NaDngTKhEACgMnFDpxMnGTHEWhYSLGeRJCbS6QS9HGO15VCBwUAwOHvBZ+k4ezEb+YIIyBBbGzyg4an2LU/KAugamybfTT17dmEqzbtnEXh54+HQoxwHwBhFM9Zsk4Z7Ec9YIklUYkb4lE/GDnFz/awGg9zAdIGaF5cN4gkmJolCoagEABfpsPaYeD356ukkOt4wD5sPZ8lyyNzuklXy68uB0Yax2bSUAmAblYnX94NO4FYaxu5YdqrZZk7zJDYBU4jtqDPRHSgkoDCdqVWoMdopQ7IT4kdpRr7SdrBqDjboD6HSNjJu4/FontrRNjeU57tr5knQlrPNp2SYiAZ+knK8JPdE+SYT/oBwlMCRWn6tSCPvbeSF5knmJbPe74Qk9Kyl1iMr5t1idwCj5GsYap64hUA5pDL2IXwB6CSknHRTYXHD5QB6CSrNZtfqhknj/4bfr/u47d4YMiCokdEYTkl9FL5gYg/EBYbAWg6CQzkmiX7KgkEb6IDprOpdYkWiYjJCfiodIaknE7kk5waVQFdzSOjLaVHca6fioXkksonET5TDr6Ma4Fj5mLs65NEpMaC8LELgZmAZXklZXA3knGPCfbIhkm0Ybje5li5xRCRkk/Fqcon15Ys65OTG7e6WoHIDHQQFgoaRvRW0B/giLdEc8BNbg6OGDxGuIZpoEWOGTmIkxR9q5HwCoUkK0DoUlpdF/vFp8C/whq2J4ziZ0DWMCpcLIUmXuj7wZ+AHF/69YmVu585bT9oODB4EFkQBI2xt2YODAXe7W8huE5Mb5vkndklNEroupvu6iJ6dknt/GIBCd/GqgBNEr+wlnLYNkkyUneq4SWK0O5hBLEjYMO47e67VEnf4lEEcegEbY3e4PWCEUFevEhxT4Uk2iC0UmnCCAoGaq5fe4rEiDkmnYazklR54fe6vkmdIbDnDHklSpDbkmT7a9YlDa4sUk0Dpn/E+omOUkHBinkkU55BYDbzG85D4kiJ7bpUqUDbywqXAYAoFB1xCfpVfEkUIp1KfcoWABeex9iblcC8wmqkTuZJlF5yXyNfHPGyoolLYpSKzZhaJP6du6wG5KAliTrQig2xLvGKYsa5UnYkG5haa4rjokWEnPtG3oknhYiGjo5TbonXqYkA73r6lTbiTopKTmURUrRT9yFbEZBHVBEYnC1BF6h5YlZpVg4ggS8YeIYUEmJXFUEnzIg0EnDVgz4mfwDioImiCzUlROA68KhgAZ2ZzDTL5bg7GvW5AhIzgp4cCDZTYxQbmiaICCoLpEKUpa59RbUm4hqeoCt/6KpatMTC5ClQwAyL4jTfIAghLESBIyTpvQzha+7gAyKcbQ7zS2Qyn9APUmbsrEwD98KfUk3Un+4J3UmrPYaOwz4rptCgS54tbEjY5f4uPGLwrRvok4oeomOkR864Km5Ox5WKJ8ByFBSpyTxVgIzZy+5U4mL0Zr4mFolIEl1EoDi4GvhLokkA7Du5tUn3cpcAFxNB4H7Ml4UwB+4kbfpk0kMTrCKz1oHOj5IP7Cw5KSGTomtUkOSasTpUTojtrfpIiEnGQAoAokoC0cA2tLOMZB8r0eQrOzVhY6fQC0mMayi0lEIC0xAMUawjKJDhKcRz2xmIGsfHjhFw0BGlQeqiyhI4Da9egg/Ta8TjSz1oGej4Yv62kTE0m0cz5KCrombyZc0kU0k2f4CGDFFoUYYREktorQPpVfGdrAp1KwIZ3kIp1IsQjpNAleaVebnUSYn4ALZjzyDJSSkTrQZd0KxUke4y8IIp1J7kDnXjrJSSkQotzvOhYcCSkRSAChLi9iYZSz/s4M9gp1JxvbPIEp1K+hIpDhE9DR0ke4xVULqKYe4wlyEu0ke4zNXYp1LitJEsBQ6gZSxleadGQp1ImACNUTWRYZSzdGb5tQp1Jgfq+UK1iYe4y3QIp1LZs5hXiW8CFebnQAPkIuj4e4zyUYp1Iaw54lA50kZSyl84GsA1fHLIDuRYhG5J6HIjbTEnLIDcxiSkQerB1kCdoZbqwe4wz6g+zYe4y8AAqur40ltAAxv6fgAVeYi5YO2xWMC8wke4yaAAJUkZSxAg5RXAp1JKUimCGz0n70lIgAe4zRLiSkToAA70TR4lP0nXg42ABX0ki5ZaQBnbgVADUmYe4yLDTh0kXLgp1IvMg5ECpioZSxGIYKEBkUkZSy54AIiIGIYORarh46IYZSwNwCj8DGBp0+JBxAe4zcADr0ki5avcCj8BwMki5aVQC14j19pDSwCOinOb1ebDwDj0ki5YRMyjMYp1IUtL9wCKAAp1JAXZTkyZ0lD/EZSoZSzYrCzGzQ5ou8DH+gdwAN0ki5Z7mEdwA7YkZSwf0YdwBh7gi5ZUMCzGwIUlDSxIADlcC90kZSzykTQwAB0kZSztN4wwB9GYe4xVcAp1KcQBcywwy5P0nsoGcb4p1L6g4F4CsYrmn6mLEe4zzLY1eYzEkFRa6wqKNrgRYu4gXYlfrS3axPFZ4foafrG+C4Ew+Gy4ol/HT15B0RZaQAnTSLUR+MnfqCXTTlcABMxeMmCqbcxHKuIPXqoMiMcqIACnsynsxTl5u/HFBEe/EVbHlBEmKAbJiseiEmZKPSlQYpMj4on3eKc4Aypg0PwbJhEURVfRweLEwGfRgzXjmhjpIhYSAIUBO9ClhZHqgvQnOc7as6LkkTsgAAlM2Z0BCIGCcgARoQ1Ny6/7dcio24Tj4lW71vrMaDvjYQpSgUlfF7YIBBe4YCgnQYBEk9xhFG5lS6xEYkwlNW6+IlZwn+Ikhe4BP71naEJaTECQwmU86j0Dec5N86DEkRc6rMn4mQFOZ0L4X85au76u7ULotfobMqZsA7MpP554whrDJyxAYc48s4CWjDIlgwLfoq1c5kc650rKuB0s7LIkqOhXO7bM5JLC4+ZmIAfM5Twmwu4is6vW50AAlIllty8u4GLrHc4nO6wronO5hcDvMmnO7IsnWD60xDQ4ZJLA/MlAu6DODxs7niy4C5LVioslYEjYslEsleu7oslXSoHImIu4uxDQACscAXiwS240snOECSc4WxB3M4WxCoIkKawT6Rgs7dc50ACWu62EBHqotxAls6Gs44u5laArO6ccB8u7w4anO6jIk/MnXwkBYBlVrD2C7O4js4oMp6D70C7VImzImakoWc4tOC0ABEbSM4SakRfO7ZxDfM5tc58276sn1IkRImoe4scBIs6Tc7osnDygWu59s4/c5Tj64+azER0s5scDUAA+xC3by1c4SIntBJyxDjInQABw86vW5w84BaDPkK4+YBaB+ZDNc6BskuskTJD14Qku6zETYc6Dj47M4qsng1jls7GZieu5uKT8In/Iruu5tSazwlRxBvj5Ms6scAWc6M1jf85Ic5osmNMqSIlK1jskSR87Zl56D5gs63s49855wnvSaAsnRe7KuCmICcs7vj4VIlNsmUC5isl+ZBtskbO4TxD8IlD2Aoe4su7/M5Uu4kADIjb/OzLYIAu7O8511IQyq9sn/OySD6dYLku4Ws5w86FCxNsDniyM0jMc4kslECDtsnYskFIkAsm3M6EskBYB4skw85wsl0AAIsl0ABhcBkqpkqpK1gcc7ke4wsmscBYEh2snKu7LIkLIokslzor/86/wnYWi8u4gsl/oJvj7DsmRxDPW5fsmtIny9rZl7Ssn/iDrM4EInLYK/c5LslbW54u4txB1c4ku6LM712B9smTc4scCPQJes4oIqvwktsnwABAslltwYcmDc7OxD/M5Au7skTrZiS86hs5fMktxCK87UADZskts65smi84SC6eXDeu5AomeD7w86vW5AC4oIr8Im5xDGc7aiqpsnSs63skbc4/c7yc5tc68ckBskA2Dhsm9InFwnRsmN6ResknO7Pc6dYL+sm97Lcckyclc9qgu6U1rUABKc6FeB50occ6toicslTW7Nc4rD7J85lxAKD41nI9AzmsnPO7RslUsk2u66sk6skPO7Gc6jc6gu66e5XSrKck0ACxImcu7ds4ts7qsnss5pxBgC6dYJ1c6Hc7FxCRyh4snn2CnM5Kc7DsllxAEbJXIlPM4txDucnfsm9smM0h9s4nO7cskzc5Hc70sl0smUAAMsmosnrslQCpYsmss7mu5bsmHc7g1i7sktImpED6+Tm8rkThrRHy9BrDJM0hPM7Ic6iHyqc4V5zHM6ccDVcks86Z4R+s5+s5sSqe24DRZWs42s4985is5RInmaAM85D85lRgus6Bs6WD7qckdck+s4jcnzmgBs5UroT85L87Dcm3s6Rs5rO5Y+ycLoz85x86Iu6ic6wInGZgI85BIkZ87z86BRgLc4w84O86KclVSZ7cnIs5LVj7M49AzWslHqoTc7Is6scm5xCoADIs7Nc5VSZ9865xDEc4nck0bj7clEs5Xcl1c65xA7c4Nwme85/oK0ABWc7KD4Yc4zihYEhSc7ULo4c75ECb4CdAw7wmYc5RsmvW7kc7yc75EAys72u7bwmw86kc64c7w8mtc4ys4kO7Nc6Bs7VwmN6Qiu697JDs72Vq9wkjsl+27Z87FsIM86su4jslmwDvSagmwEcm08nfspcc712Cds4jskFcmZMqzkr+oEbJhRqAt1BrDLkwLmaDxEBM852EBlRg8Rons4zD4S1iXaRhEBRD7os5dclPMpdckziizW6UC6JBqUc4Gskns5W84YBjgKZOs7GD46u6hs52u4scDC8ndc4jcpLViDIn5cl1s7NxAfM6Z8jxs7Kc5osnssnWD7AsmIC5au7ssl+2428mes7DM5XO58u5Yc6jc5UcqIC7u8nW8mRyidwliABRxA03ypECEc6mIDEc6MC6wrr14SwrrWs4Twnn7DYc4ZD714TX87FxAxs7QckR8nWD5kABO85BzAUImcWYrD44AA3wmbj4Fc4F4DJMCTEQoe7Cc5Yc6Re7feBoe714SGs4rsmZe7mu5ic43c6C1qQIkV5zxEA7c67ImwYCcC7Ss6M0hxzpcc5fj4S1ils4nwnO4i085lRil8l+24Rs4Cs4bhzPW7bj67cm0cCs8kQCLs8n+mr5EBRqDV1BrDKzESNMqWu59LQ8c7GICdAATmiss5y86QslYqQEs7n2BYc4H8lbxATsmM0h4smLM6zkrWs5Cu40cCXc52smNs7Hck0ABQcmC1ob8nP8mIcmBRhMs7C2DQAA4s7FxDAIn9c700hmwCXcl1c4M8n/87sc5RxA4Nrn2DtzoTwkYs7/Oxnj6ou5Qcm9snOxArD72cmnj4f8nGICJ87/OwEhaO85wokRD7I8lPwlBslT87785Js5RD5lxDHc4AfLu87tclT859874NrQ4a987D860AAf84/c40bhesmHc6ku4DRbcs70qSIs67skXs4iC5Ds5IC6wckyu4YCnQkQz8mQeIVXwc8kUWiJwm8hRrRHtFAPMksslQWjq84DcmoImtog787T86Js4+s5d84xD6L84XW6hs4ECkzclhEDr85us54CkS86786NclJs5SSJB8rHcnOu4rj63c6Ms4fclkCnxEA3cmHO7WCkPcmO87Rs5b87qcncyons6UCkmCmJ85lW5OxD3wlQCpOs6p2ZGu5scBke6HO72Ck8skhCkXs5RClTj7/M72cmc26CxCp2buu4hCmJCkJCmCxB4wIQ84JECi2430J385x86P848e68Ro5ClUcmwrqHibZCkX85sSp385O87KuBf87lClnc7CCnfKoWxBiCnLUaKnwPMnlFKK+wLckjclsSomCkkO6neDtClNcntiq6Cnks5KuAe860ABdwllxCnIlh84Tski86HiaCxATCkM8nR85FwCH874smzCkdipc87TCle86B85zCki86LCkw87LClPMqrCnQkS7CmVsDzClUABYUI085yxAe875EADwm7wm3c7rQJhCkbImvsl4s5rM7KiicMo8Roku7sc5vClx84985fO6b8nws5Ws74qSx85sSoeCnq84x84bCkQyrB86deaHClPMriC7lAaxzoAikq86W851Clx9Bz8kyxoL8kYNwrEBBImAeji87VED7s6Yikrj5LskXs7LO62ECgu7ss7sc52EDLYJhcDkcnasnu27u8lb86HO73skvLqGwb6u7YMr8IkfcmfM5YEjUC4k9oMYIA2DLc7Fs6mc40CmnM63M6JIkfcmL0oq1gvwmie650rHSr7M6Gs5Zmr/O7Re53854slnc7kc5FsJPO5ROpJcm+8kBsnzwkrj6Yinds7VEA4C58u712CXc6UABxD7R85t8kwIlyxDR85ns4KclfW4ou7zO4bO6nj7zO6min2inzClyxA7c7mimmciGinksnHckFIlWik2imWilmikOinWil2in2s5uinEinminWikt8knW7R8k4u7Kc7ein+ikWimIu7bj4Bim2ikJinBimxilOinhikPQLg25RilGikximOikmilyxB+imJilLM7OinCs6hikOikpilhinzO7zRBj4Loik4+zULoWu4xs6GwZbO4MYL0C7HO4sC5S84ziios5c9pUC4MYKPwk8sn9W7g6j14RRD5RxCkAC3W6mchYUJ9RIvLq284q1jQ4bJIk9wmXc5MKbuu5BskbwmBRgdc5cInvSY7j58dzc27xEAzUKO865xAzULOu6PO7Ein/iArD6fM6csnPW4jc5b8m2KTH84oroYc4sckkc6R84bwkHInN8lBByscBWCkm84GCm4+aGs4Scne8403xO86dAzks7WEBRD7zmj+ClRImJCk8sn7wmp2aFUDce6CxA4imeikdir2cnNdo7imK+yPO4cskRCnRClhCk4NpmID0Ini87L1pJCkXs5QSmus5RD7ZxBhcBfilRsn9W77c4IinBqAC3rUkrz8nesASCktjhRqATEB5sYkwmlvIRAAJv4Ld6LMljO6yD4zO7XinNxDTimHxDLc7NIlRimLik8snLilzwlbO5PikbilLianeDbim7ikqXY7inrUjHslPMrHim4IlfCkzijrimXimTimrLAgcmP85gIl3in/iBACmp2aH85jayLsmetiACkps60A4+Ik8SlzM6yCmLwnscCDCkS8kGxDQSkqXZMc4gcke/wdirtBKeXA585/oJOckSC43wktc7wUL0u5rcmqil0c48RrniwCu6gIkAT7nj4Ds5+Sn8c4Uu5+s5eZKgSnPinuu6QSmCxDQSnASlwSmRCkM8lxCka8mCxAMc6PclPMoNc5Gcm5SkYSkXs5YSkh8nXO6r4RISlJCnxCmvwnxECASkwSkH85RAn7M6RxBDs4h8luClfj6Xs5eCkz85BD49SmqCm6CnKCmEClGCmCckmCmJs5dwnZxAXs4qe4GxB9EDzmhQ84vwnIUDNs6YikM0h+25KuCTwlHqqCC4bSkZClXSq9c4lIkfj49wkD85zSnNs4nc4rSnqikqD4RSl9s65xAk8nrSk0C5CC6Dc6iC53SmCc7XilSC4POyLYLJe47ilQWgps6OjJwMqiCl0Sky7RFcmtjjh4DoikBYAw85mCk4Slnj4yu6ISkxCm2kIdW40u7HSr/iDSimsskS85Ds79c4+ckXixM84/O7u8kKax50phcDLlpnO5g85fMn4ylrin7j7SC5MKYEhYbM4AIlHqq0ckqsl/O4Xiydsm0ykkABrM4qOhLiYTwmIC5oSn2clBCmpCkvilF8mscDv85QWioSkwInoSlcykXs7ASn+Cn7j7gSkcylcymFUC8ykxs7XO5OcmSylhCmp2bHj6MikUIkyInPkJkylwcmhImys6aylc9rqu6Ke7GCmpEBd87bwlyylISnBCkYSkmSkZ85j86IC5+ZAbc7Ke6C1pBD7mCqC1ooe5ROrOylM8luylomSXaT12A7c5Hcmyyk2ymC1r+yn12AOylROpOylM8laimuyme8kq1goe6C1qIikxMAUWh0SlRqDS0DoimdeYoe5OSllxDou6syloC5pD6gu6Jin5im0ACSwByxAeim9D7zCkJilFilyxBXj6d84FymZynGimc84lyklinAimPO6UACKsnZympil886cYrlykNylWD52in2impikEC7gKaNykzD4hilGD6VinSymAejHj5QCn9yngIlpinpin0CnR86yyn9ymOik5ymVikxynIil8Mqoil0xhJykG8712AS8mVyn/iBFyk1ynZyl1ykFylPMoTyklyktylyxA4NoWxB9ymdymjcpTynFillymzyle8lWD4Lym5ynR87LynzmiNClRqCIJjoinkADHM7D2BNsAy874fpEbTPCn/M7AKlhcDSIkzIngKnJIkHM4ZD7Su5hcnHcmwKmLc5mIB0AB2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yiuADNYQdioMYJ50o+SmAehK1jYWiA6k8s79c4h8lyKnOu5+ZBOsm5Imi6nvM5PMpHqoCc6c6lqallW5Fwnsc41nLCs5S6nNdqK6lVak+SkqOiuu4qOhI6mc6ma6mMcmq6ny6kxymV5i3MkwR5rDIG87Ne5nM5lVrFxCTc77O4EbKpECASn3qAXnLlAY7M7SC4W6k9wnlFKs84UIkx8l7rE7c5SqkJe6PO7lwm6ImMcluASb4CC6nXYIgC4Qskbc5SwD2u6yyn6c7nO5SwBuARSwA4NqHiYh6kJe4h84ce6BRhRs44NrgKZ0ylUcrMaSwcluASG6k3Mn+Pom6nbMlWe7sSlSv7YcZcSklc5sG5g3LZwmVc5+IkVc4BIlt84185HqozUIXiwvM4XixPamzwlau67wnBs4SC7P8kQ87YikXj7Cs6L0r/ymDc57rGZ8hcIlUcq7wni85Lsl3j4Eu66Inau4R8kUs6eu4A6nQsl8ymbMrYSbMikbimdACzc6es4Fc7YMpGu6+s5LVh/oJt6miIk8snsc6NMqdAAPM7aalae78InTikSC6Su6zIkyc7MsllVposkNc4rO5bj5g6lkCloIlzwmMilqakR6loRKhhx4yk9wmpSkHwICsmdIloyn9qkIC50yltohHM7wSlPM5K1hcc4qIkNc6wwL9wnSu4kc7ds5Nikkc4+slu850ACWSml6lLMmlc6HMmN6khe4N6mnCA5wnrDK+8klClz87hD78IkGCm7ckbM5SwCWcnmslHCkK6kbc6MIl/cn/OzWs7SykZyknilIGn18kFImOD7x6k8ikoe5fSnrwaRxpF6noji5xAl6mauYyD416mHtjq+FRc6Vc59UZGx7O6TkGnKGlN6lFe5k87WEBd8msu4ccDa85Tskrqkh24mGmAil4rajcoG87fW6i86RxBfsqXc67qkW8llaAK4Q+ckMc5z87HSpCe74s4fM5LakNVoW8kC26ls6RxCdkI7Iniynke7ssnj8kq1hhGkJED+ykRGlBzDks5Ec6b87O8l4rZs254rblD7O8ls25s27AinYSaVsCcLoCu5OxA98mVsCwrqNs60cDwULSjofM68RrecneclzCnformaBS86AskTW7KwI5GkIC65GkP84fc4faScLqtCnS8l5GmN6TjJCWSlqGqCxBB+RTAGUgDC1GlgnBypP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oQOACbMrt2nNWl5OnbDBzOkUWm1mmMSkD0Tb4BYunoOkQk64unE2nrOkEukTGnsWnEulFWlkc49Wk9wmls5XM5yslg2k5CmrhL1wmxumnM7m2lxulVOlc9rDyhxvRgC45umHWn/iBNOlPMoxmkNOlV8m5umfmk9WkGGmK2kQ87LlpEs5Ds4xumrhIxukF8lFWlau51c6HWnQukDc49OlQun/OmrhIQGk9WkQGnr2kdukjOkumjlukJImVum/Okjulm852skNOkQ86Gs6rhJm85XM4FukQ87bGnQmlNOl/OkDc6rhKtumsFRMaCTOnIuko2memnd2n3OmU2nULpV2mQ2kWumkOms2l3mmnOmUOmXulVWnXunZOkyjjc1ouulqanfmTXOmeuleIDeulC5pP57wiR80Dfyly6lEc4tOC6Il0CkfnqwGkVan5EAVULQs6dckumi2inKuBlRgTql9cmZ872Cm0cCgelts6oek7c6dAzLO7nymzwnm8lwckCskXW5PM7aKl0qntSlOD6NylX85Eel/inYenKilgIl8dzgIky87K85OxCoGnDSjj85oIl2s4mCn+s7RD5uClTcmselJs6i25fimNikzwmtohUyn0e6USl4u4FImiemnCmwem4alNxCGMANwlEakdwlOD7Sc4T6QdwkVwmkql1wlj6lqekuxA+6lcu75yl3wk2u68c6cMr7cllRggu6HsnCGmou7bj77c4vKmvW4S8lMenP8lGSky84Fc4qInbM7/MlcImgImHO7YGky85H8mH6keelROpfMnq84vwksc77c4Mu4wIn6SnLYKn84JqmcekeCnL87hs6qCmw84Wu4gekUqliemJekxymtW6NCm+uk3+5PcS2ql7s7Hs5Hs4uqlUakNVrns6cak3s5Fel3s4584aqlPs4vs55ellRgt8l4u7uqkkCng6hVOlgwJ6c5RmlHwmzimuu4Eu6tekBYAxGkGCkYs7PW5fMl1sl4C48imPQJJ87DyjwymEIlAu4Wc7QclFwmZiojCkHmI88l5wnos65ek5emLKmoqlns46u6Xs7renFekFellenPs4GqmVenvs7pClLM7I8mJKnbVjwsmW852aBrM6Q8lBKnkSmeu4FInQilJ855KnLO4/ilK85/ilJSlkSlQilnO7Qu5q85eZIKKnAylZ866ckzSmzaTUABoskS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OkWZm5JkD0TpiAlZlFJllZmtUQypi1VwB67lpmCZlAxk497K+pcsStZmbeq45aBZC+ZndiD+Znq563YbPgaCplRZmn87rWkxZlRZm1+nmaCJZnZZn7Rnoe51Zk0ZnGZl0ZkZJkqZnZpltZaFZkD0R7qKhJmOJlbZku/qfCYVZnxVhVZmvJmuZkKGmfGlN2lyZl/GmNZnJpnyZktZkp+rtZm8+pXZmOFjdZm3ZkIwmRZmDZlVOkjZlkJmU2kaSkfc5/oK1+lwIk5ZkoylU5kU5nss55ZkcmlYZlrZlSPRaZl0Wk6ZmF2k6xkMxkkZkTO4HhnhWnms4iu6Hc5lW6rhI185Cu7ds7vej5EAlInPW6gIkZ86dCmRhkuan/c654Akc4ismK5k+xDUu7kBms852slwwTdcm2u67O6Thnh84y8m97KhImxxm1tjK5mXizAsknc4nM57KlH8nTzp0s7vehwcnIC69slO5nc872VoJun2cnCu7K5kcc4WMyWKl/oK/c4zhm/mmq+lYc7veidIm986h5m9cnnCqHc7024RIkp87K5mB24EpA/MkDs76GkbSk/Mlaplm5lys4J5lJRllaBcc7Zl4GGlgRkp86S5lMKZ825iSl826RDoE+mtCkBslss5e5kYcmtCknO7askaSm+EB/M49KmscoO5kku4uqnFs4+5mRDqzikYCmfKnQ8le5kku5whlw+ly6lMKZ7+nXwmjc4O5kCal0inbGmG85bc5CsmGD6RsrA9gEcm0cCnj6dIm7M5VImwqkYOaneA65kAs5scDCs4SinlGkrCnwqmsu4+al1c4O5kTqkns7n5kTsnXwkcanBxnlFLK5nDJorD4Lc5RIk7M69sndAw65ksqneSkRamf5nACmXKkaD7XO7ewrb5l15meqkZmpnj57CmTIk8BneckO5mfM7Osk985kmkrCl4u6SJBlVozih35lvO5mIB4s44boX5lvM4w848c465llwlePz/ynAs6gFl5GnuGm4Fk/Km8c5kFmTCmgu6AJlSbI65ky86N5nnqn0FmLZkYslK6lHmo65lw85OxBH8k/mmi8l5GlZ87hEArO5sc465n1almxBYc5CFmRsnACmMc4hsni5m5unOD5XImMikn8lx5nw4YKmlLsnSemB26uBnjc5827veiou7rpkss7aFld5ncs7GalS6nlFIO5lAsnZslacnqKny9rHImy+lOxnb5n/O5Mum2FmG5lvpmuWnXwkGqnm5mqu5AZnerLPW7rc6lilgInm5nMFkaakL5l4u6DOAJIkjs51c6+FmRP4S86q5kSanSenFs7fW7m5kbwnEImNxDXM60cDuqkbM4n8mS5lAsl7pkZFlEFme8msqmoIn64SL5mtpmLGk/c6jc6dSl9s7SInSekO5kQCl+cmUs5dc5l5m0snC87YMoCu5x5kvc4DenscCtClairIc50emQFkWc7quw9FnSeniFmbMpz5n2cm4C6S5n9yn1ulWD4a8l7CmMc7NxDCJl4ckS5kfO7nYgLFnTBkrCmMc78UrmaAoMpb5lQFncBnIynjW7iFk0CnXinvMl8C6AFlUu7AFkscBEFmganAs4Jumz5nds5x5kku6c27f8kwFlCBl1c6msmCxDzFmvM4EpC2D6jIl48nAClwckBYBqBlgs6LM7veiCem2KQH6m4s7tGk1wn3M7finusmqanveh8c5bdQwGnwlnAClZmrC5nlFKWJnmZnZJkkCAweKlxAORExzibZm6ZmHZm85lo5nBZmnOmC5kvKndYJc9pZqlYc6rhKou6awoUlnZ+lUlk6snkcnkc7jW7zukoMq+anMlm1tiS5k1zob8n/878xmICkTsn0C6HxChplv5nm5kM85826Eu7NOnjc6TSlIKmn5nDyhFwlGpkqcnFCwClnqFkj8nTRnlukqll0llPsmi5malnasnalmeRKrhI7amoe76lmRygZZmgsm5uk0snNYQ6ilmlmrhJOelyu7GlkYemdoCIymNul6anfimUlm5umzc5SKm1Ilaln5Gk4KkmlkfsmGs7K5kelkSs77M45a4+ll/87cc6TSmS5knc4Fxn5wnkBnnFk+lmPMkss5DSiL5mzc6RxDsc6MilvcmbMrKu5AclbW5AlnskTZl7AslNxCdXByakTsmzc5Dwo8u75Urulmys58qls6mrhJklmpIlullolmL5qYlmrlrs9yBy7s5klplaxlc5lTxm6xmZwlzxlNZl2umkllCBnQalulnallelm6lntirzuk6c7mFlTlkXizZsn3skTln1lkFc5fimLlnDlk6llYc5Nlls8m1EBYlltllitYdln42mlpndlkHZm9lk1s5Eln1Zl/RmklkoMrLqmtSnulkYc5+cnjlkMlniRkDc4P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O7Hc7mu5Gik7wn9smDIn6KmYcmUSl4sm1+kYGm3c7Z6m225cIl2smsumUsmzwkaskvRk4u4gcnPW6EikOKnPwmHsmUslM86iVms85kinm8kWu5AInpslGu7mu54smJKkjClRAkRGlQWh0AAUImjwmMu43SnGc76emws7Lc4GemXizpxnuqlJ+nFln9W4SinwAA6c7Gc6U5lg87usk7dknO4vM6rdnzilndlscneu7tsnlwnkAAXM7UJk3s6IskpBmbqmfdmkInHyn9wmcYqwGlsu7rSn6ekQ86ys74ikvdl/oKNBknO5HqrYSYH+kbSY6c4ndnlwnUImndk/dloC5pxm3wjwelLdmNemyil9ileSksGnsu5U5lM0gbVr/85sqlgIkKinHinXwmEiknO5b8mNs4zSl5CxgInYqnfM46c6MIk2cnuVnBekAqnLdl4FnvGrkimIImzdnau7ss4Cc5Yc5Hqo2c5wMopemDtkataNmkc5mHlljtnc5nEZl6xkZe6bMqnj74C7VIlMqnU8mDFlEInS8kZRisu4y87kAAm84ZFmq9mUVl7wka9kzig6c6QdnrGkK9n69mjslq9mAT6jcoSu6N6R+ekq9mG9nq9kG8l7wmK9nzdlxGmq8mzc49AwW9my+n7Knfj40en1ankADlAb/O6LImO9mO9mAT7G9k3O5/Cnm9mh9lW9nfj6k847M729le9kx9mUVlDmkK9mLW6nCk1ylOhkK85wikeWlK87Aim7Ckd7JEmkQik59kd7L+KnR84F9lFKlpKkGxBPCkV9mVKkB85a85DmngimC84l9k5Knl9kl9mV9k+JnElm0ZkMplXJlKZlA5krylkVqoinwiT1XhpdnOJm8VmU2k084LhnN9mgim59lq8719nm86OWlN9nZ9kz9ml9lR87z9k+87RKkJ85uKnV9nT9kN9m2Wl59nr9nO9lL9kF9mt9mH9lrmkIilse4BsmLW4kO6qFkkAD69lXIlkKkG8mus4tak1nJB9k8c739lau6P9mAT5Fxrw85/CnZxAXiwf9nYckR5nMs71llRs5PM769mPaljmnhEB0ymaem7c639moqmADn0C77Inf9kYCk/9lB8mjBnYWiIDlf9nfj5oDk586neA8e4BslYDk4FmAT4yC4g+lB8ky87YWjIjYY9nwemp9nZBkXixBWlodmYZkG2bhVkoinLUb4KzDtn2CJrJmxVldJmbymCxAeKkn9niC4fim19nFKm79kL9mz9n+84gil79lC1ipKliADJymqxA19nt9l19mSDliDmF9mTD6iDkb9mn9nKDkb9mV9nEe43O6rSad850247M7e9lO9mN9nx9l29k9IlJ9lq9lh9mOWk4s548kuxAkO6e9l0mTJ9m+9lgOlMu4WNlv9mN6TGDnWDlgOlsu40ilV9lRxAXenR9lWDmx9nSDk29kP5mJ9lODnBDkp9k2Dlp9mus4ODnusmRDkG9khDkkYpa9mUe669kO9lRDkuDmMakm9m3bzyC7vBnzxkhZlWgq99mtWleumqZkZsAsDmrylsDmcoB7kAS9mdllhJnS9k9lk85ly9l+bieZxyxAUIni6LockGKnSul8OnZKl8OltojQABytnmCmr1mOKkFKksNkG8403zzvoEBmdea7ICRKnBKniOn+XwWKkTDn9DnXYD2Kk4tnBKm1KnVxBK84IHwPj43bHtDkYBBB8peKndDmpZS9DmTDkDDn91kI6TDDnrDmjDmTDni2l9DlTDkdDmlKnSJC3DnHWlaKlLDkNskrDlDDk1Km+KkIHx2aDbDmd9nnll/Zk99m5OloZlMDnZJkVDmD9lVDlVLAcDmc5kNDnHllNDmye6+HwqOjX6mZZwqOjQhl8c5zDl9LSLslBHzB9n6u7vynKX7X6l4jlmIBojmxZwaSlaKkzIpdDm5wqkKnIIrHSnIIrmKlO4jIIp1Vmkjk2KluHymICdACOHydAyLVh3ogWxBJKlGKl3oheRmIjk9xm1hn9YT0JlIHBpllojkP5nuxA95nvyln8mOKns8lM0isjns8klsnEjlYbjJKnkjlzDnO4jcyrOZzKuA0jkajl0jmIHwajkELpzooWKlgkouxBsjmgHzxakrDkvKnrDnfDlplm/Dlplm9xkVWkFDl7JkoZmMpklDkfullDkD9md+pD9mkvTQjlS9npdky9l3BkzZmhABzZmY9ysiJM0B8RIFcjSmkw5wijlRXxQqnojkBOAvW5YjlhZw4jlJjm+1kEjnX9wyRnvym+smvO5qjkBOAFhnDShb5xSC79ojehnfDkFhmy6LJKnXYCdAxmjm+1mcjlS5k8jn0jmJjmtDmCjn9oh9LTIjkuHyojm5jmoHy+Cl4jncjnrDns8n4jn9jlEjn9jlMjnvlkSjkMjkFjm5wo0jm5wp6jkv9xM8mOHwjjl1VlmIBmjnKX6cjlcs7Wjm8jmYjktjkqOgOjks2kDlmVJmXJnAjl99kejngjlejmQjnuBR/EDj9k/BlNxCNynkymSu7pBnoSmgGkf5mTdkOdnYc5NxCNwktwnKek75nKc5X9kT6TQs5xSkA1hmIBH8klImSs7kc72s67s6VynMu5GSnxhnUdk03zdRnT6lqik0CkmekXizQhkISAfM6EylUcovFm0el6Klc9o6qod85B24PM6cYqIek4NoEpCtcqISky8nbVizETi86mcgys7Silnc5xelSBlQ1lCek3Ai7wkcc7N8lO+miVmOCnbylKuAJe7KD5fik3enaKne87885tKlvenx85Pek6KlbimKinkimOikUsm7wk/ikjc7EymYIk0CnjJA0Ckgcm4GmSpk/6mX6lgImKe6bM7rin8xlQClkyliSmy6mcskbhwjc7GTlBWlHMmgjl13o5JmVDlRqDQ6R6ZlxVkrMmkGn4mTN6nusk+cl4snUsk2ikndlYEhfO5oskCInksmzinlAaFSmKClRelxBkz86X+nLBlbBm9ilJs76CkND4selRTmhTkkO6msmUC5qilhhnksmQGmzik+TnMtjWinU6mE8kL6mes4wIkZTnusld87yCl5ymus7SynIekK8muu5aipkqlqamhhwYskt8mfc6ralairDdnYGlOxCzikDwmrwm2EAaCnsGmJs4tilAu5NqkT6S95mYIl09n88nDSiL6lJcnPkJFwmAC66InvMkbc5TemccCeikrdmHsllwlUrpTemiakRalSanYiq1tgLTnvs5zskGTlscDX6mp+l4u4rj4ts7C860c7Tim4IlKSlYGnkc6eu6b8k0bj7TkvileBn14QSik3dkWekNc49immc7PdnDJpkqmmik4+nyjlwek6e5X9lrIkss63M6ou7Mc6MC7LTmpSkCGmUsm9tmQeKi9msDlRqDhDb2TldJlSOhy87Qhn0u5Mim7O786lmelGs5YjnKimtClKSn6u4Yzk+s4eCmkzljOkzc5Cqkku4kznrZhPilskRUTl6TnvGqXiljanu8mvslAWkGLrOsm8+ni87szl8u41ektzoGLq8s72cmKJm3c6K5mscDgGlUzncc4D8mukri84Szmsu52D4izmXwm9AwkIkXwnK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";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.7.8";function _interopNamespace(A){if(A&&A.__esModule)return A;var e=Object.create(null);return A&&Object.keys(A).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(A,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return A[t]}})}})),e.default=A,Object.freeze(e)}var React__namespace=_interopNamespace(React);let random=A=>crypto.getRandomValues(new Uint8Array(A)),customRandom=(A,e,t)=>{let i=(2<{let s="";for(;;){let e=t(n),r=n;for(;r--;)if(s+=A[e[r]&i]||"",s.length===a)return s}}},customAlphabet=(A,e=21)=>customRandom(A,e,random);function JSON_parse(A){return JSON.parse(A.replaceAll("[","["))}const isDarwin=/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),CTRL_OR_CMD=isDarwin?"metaKey":"ctrlKey",nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/\+|\/|~|=|%|\(|\)|{|}|,|&|\.|\$|!|\?|;|\[|]|\^|#|\*|<|>|&|@|\||\\|"|:|\s/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",LOCAL_PROTOCOL="md://",VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}',DARK_BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}',FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="disk",DISK_ICON='',PNG_ICON_NAME="save-png",PNG_ICON='',SVG_ICON_NAME="save-svg",SVG_ICON='',EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzString={exports:{}};function splitFolderAndFilename(A){const e=A.lastIndexOf("/"),t=-1==e?A:A.substring(e+1);return{folderpath:obsidian.normalizePath(A.substring(0,e)),filename:t,basename:t.replace(/\.[^/.]+$/,"")}}function download(A,e,t){const i=document.createElement("a");i.setAttribute("href",(A?`${A},`:"")+e),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function getIMGPathFromExcalidrawFile(A,e){const t=A.endsWith(".excalidraw")?".excalidraw":".md";return A.substring(0,A.lastIndexOf(t))+e}function getNewUniqueFilepath(A,e,t){let i=obsidian.normalizePath(`${t}/${e}`),n=A.getAbstractFileByPath(i),a=0;const s=e.endsWith(".excalidraw.md")?".excalidraw.md":e.slice(e.lastIndexOf("."));for(;n;)i=obsidian.normalizePath(`${t}/${e.slice(0,e.lastIndexOf(s))}_${a}${s}`),a++,n=A.getAbstractFileByPath(i);return i}function getDrawingFilename(A){return A.drawingFilenamePrefix+(""!==A.drawingFilenameDateTime?window.moment().format(A.drawingFilenameDateTime):"")+(A.compatibilityMode?".excalidraw":A.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(A,e){return(e.drawingEmbedPrefixWithFilename?A:"")+e.drawingFilnameEmbedPostfix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}async function checkAndCreateFolder(A,e){e=obsidian.normalizePath(e);const t=A.getAbstractFileByPathInsensitive(e);t&&t instanceof obsidian.TFolder||(t&&t instanceof obsidian.TFile&&new obsidian.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await A.createFolder(e))}function getIMGFilename(A,e){return`${A.substring(0,A.lastIndexOf("."))}.${e}`}!function(A){var e=function(){var A=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(A,e){if(!i[A]){i[A]={};for(var t=0;t>>8,t[2*i+1]=s%256}return t},decompressFromUint8Array:function(e){if(null==e)return a.decompress(e);for(var t=new Array(e.length/2),i=0,n=t.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,g),g++),delete r[c]}else for(n=s[c],i=0;i>=1;0==--d&&(d=Math.pow(2,g),g++),s[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(r,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,g),g++),delete r[c]}else for(n=s[c],i=0;i>=1;0==--d&&(d=Math.pow(2,g),g++)}for(n=2,i=0;i>=1;for(;;){if(w<<=1,p==e-1){u.push(t(w));break}p++}return u.join("")},decompress:function(A){return null==A?"":""==A?null:a._decompress(A.length,32768,(function(e){return A.charCodeAt(e)}))},_decompress:function(e,t,i){var n,a,s,r,o,l,c,d=[],h=4,g=4,u=3,w="",p=[],B={val:i(0),position:t,index:1};for(n=0;n<3;n+=1)d[n]=n;for(s=0,o=Math.pow(2,2),l=1;l!=o;)r=B.val&B.position,B.position>>=1,0==B.position&&(B.position=t,B.val=i(B.index++)),s|=(r>0?1:0)*l,l<<=1;switch(s){case 0:for(s=0,o=Math.pow(2,8),l=1;l!=o;)r=B.val&B.position,B.position>>=1,0==B.position&&(B.position=t,B.val=i(B.index++)),s|=(r>0?1:0)*l,l<<=1;c=A(s);break;case 1:for(s=0,o=Math.pow(2,16),l=1;l!=o;)r=B.val&B.position,B.position>>=1,0==B.position&&(B.position=t,B.val=i(B.index++)),s|=(r>0?1:0)*l,l<<=1;c=A(s);break;case 2:return""}for(d[3]=c,a=c,p.push(c);;){if(B.index>e)return"";for(s=0,o=Math.pow(2,u),l=1;l!=o;)r=B.val&B.position,B.position>>=1,0==B.position&&(B.position=t,B.val=i(B.index++)),s|=(r>0?1:0)*l,l<<=1;switch(c=s){case 0:for(s=0,o=Math.pow(2,8),l=1;l!=o;)r=B.val&B.position,B.position>>=1,0==B.position&&(B.position=t,B.val=i(B.index++)),s|=(r>0?1:0)*l,l<<=1;d[g++]=A(s),c=g-1,h--;break;case 1:for(s=0,o=Math.pow(2,16),l=1;l!=o;)r=B.val&B.position,B.position>>=1,0==B.position&&(B.position=t,B.val=i(B.index++)),s|=(r>0?1:0)*l,l<<=1;d[g++]=A(s),c=g-1,h--;break;case 2:return p.join("")}if(0==h&&(h=Math.pow(2,u),u++),d[c])w=d[c];else{if(c!==g)return null;w=a+a.charAt(0)}p.push(w),d[g++]=a+w.charAt(0),a=w,0==--h&&(h=Math.pow(2,u),u++)}}};return a}();null!=A&&(A.exports=e)}(lzString);const{exportToSvg:exportToSvg,exportToBlob:exportToBlob}=excalidrawLib;let versionUpdateChecked=!1;const checkExcalidrawVersion=async A=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const A=async()=>JSON.parse(await obsidian.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),e=(await A()).map((A=>({version:A.tag_name,published:new Date(A.published_at)}))).filter((A=>A.version.match(/^\d+\.\d+\.\d+$/))).sort(((A,e)=>e.published-A.published))[0].version;e>PLUGIN_VERSION&&new obsidian.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${e}`)}catch(A){errorlog({where:"Utils/checkExcalidrawVersion",error:A})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapText(A,e,t=!1,i=0){if(!e)return A;let n="";if(t){for(const t of A.split("\n")){const A=t.match(new RegExp(`(.){1,${e}}`,"g"));n+=A?`${A.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${e}})(\\s+|$\\n?)|([^\\s]{1,${e+i}})(\\s+|$\\n?)?`,"gm"),s=A.matchAll(a);let r;for(;!(r=s.next()).done;){n+=r.value[1]?r.value[1].trimEnd():r.value[3].trimEnd();const A=(r.value[2]?r.value[2].split("\n").length-1:0)+(r.value[4]?r.value[4].split("\n").length-1:0);n+="\n".repeat(A),0===A&&(n+="\n")}return n.replace(/\n$/,"")}const rotate=(A,e,t,i,n)=>[(A-t)*Math.cos(n)-(e-i)*Math.sin(n)+t,(A-t)*Math.sin(n)+(e-i)*Math.cos(n)+i],rotatedDimensions=A=>{if(0===A.angle)return[A.x,A.y,A.width,A.height];const e=A.x+A.width/2,t=A.y+A.height/2,[i,n]=rotate(A.x,A.y,e,t,A.angle),[a,s]=rotate(A.x+A.width,A.y+A.height,e,t,A.angle);return[i{const r=1/t.value;return{x:(A-i)*r-a,y:(e-n)*r-s}},getDataURL=async(A,e)=>new Promise(((t,i)=>{const n=new FileReader;n.onload=()=>{const A=n.result;t(A)},n.onerror=A=>i(A),n.readAsDataURL(new Blob([new Uint8Array(A)],{type:e}))})),getFontDataURL=async(A,e,t,i)=>{let n="",a="",s="";const r=A.metadataCache.getFirstLinkpathDest(e,t);if(r){const e=await A.vault.readBinary(r),t=r.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:r.basename,s=await getDataURL(e,t),n=` @font-face {font-family: "${a}";src: url("${s}") format("${"ttf"===r.extension?"truetype":r.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:s}},svgToBase64=A=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(A.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=A=>{if(!A)return null;const e=A.matchAll(/base64,(.*)/g).next(),t=window.atob(e.value[1]),i=t.length,n=new Uint8Array(i);for(let A=0;A{var i;try{return await exportToSvg({elements:A.elements,appState:Object.assign({exportBackground:e.withBackground,exportWithDarkMode:!!e.withTheme&&"light"!=(null===(i=A.appState)||void 0===i?void 0:i.theme)},A.appState),files:A.files,exportPadding:t})}catch(A){return null}},getPNG=async(A,e,t=1)=>{var i;try{return await exportToBlob({elements:A.elements,appState:Object.assign({exportBackground:e.withBackground,exportWithDarkMode:!!e.withTheme&&"light"!=(null===(i=A.appState)||void 0===i?void 0:i.theme)},A.appState),files:A.files,mimeType:"image/png",getDimensions:(A,e)=>({width:A*t,height:e*t,scale:t})})}catch(A){return errorlog({where:"Utils.getPNG",error:A}),null}},getQuickImagePreview=async(A,e,t)=>{if(!A.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(e,t),n=A.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian.TFile?"png"===t?await A.app.vault.readBinary(n):await A.app.vault.read(n):null},embedFontsInSVG=(A,e)=>{const t=null!=A.querySelector("text[font-family^='Virgil']"),i=null!=A.querySelector("text[font-family^='Cascadia']"),n=null!=A.querySelector("text[font-family^='LocalFont']"),a=A.querySelector("defs");return a&&(i||t||n)&&(a.innerHTML=``),A},getImageSize=async A=>new Promise(((e,t)=>{const i=new Image;i.onload=()=>e({height:i.naturalHeight,width:i.naturalWidth}),i.onerror=t,i.src=A})),scaleLoadedImage=(A,e)=>{let t=!1;if(!e||!A)return{dirty:t,scene:A};for(const i of e){const[e,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;return A.elements.filter((A=>"image"===A.type&&A.fileId===i.id)).forEach((A=>{const[i,s]=[A.width,A.height];if(a!=i/s){t=!0;const a=Math.sqrt(i*s*n/e),r=Math.sqrt(i*s*e/n);A.height=a,A.width=r,A.y+=(s-a)/2,A.x+=(i-r)/2}})),{dirty:t,scene:A}}},setLeftHandedMode=A=>{const e=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;if(!i)return;if(e.has(i))return;e.add(i);const n=i.createElement("style");n.id="excalidraw-letf-handed",n.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const a=i.getElementById(n.id);a&&i.head.removeChild(a),A&&i.head.appendChild(n)}))},getLinkParts=(A,e)=>{var t;const i=A.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:A,path:e&&""===i[1]?e.path:i[1],isBlockRef:"^"===i[2],ref:null===(t=i[3])||void 0===t?void 0:t.replaceAll(REG_BLOCK_REF_CLEAN,""),width:i[4]?parseInt(i[4]):void 0,height:i[5]?parseInt(i[5]):void 0}},compress=A=>lzString.exports.compressToBase64(A).replace(/(.{64})/g,"$1\n\n"),decompress=A=>lzString.exports.decompressFromBase64(A.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(A,e,t)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return t.frontmatter["excalidraw-export-dark"]?"dark":"light"}return A.settings.exportWithTheme?t:"light"},hasExportBackground=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!t.frontmatter["excalidraw-export-transparent"]}return A.settings.exportWithBackground},getSVGPadding=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-svgpadding"]){const A=parseInt(t.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(A))return A}}return A.settings.exportPaddingSVG},getPNGScale=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-pngscale"]){const A=parseFloat(t.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(A)&&A>0)return A}}return A.settings.pngExportScale},errorlog=A=>{console.error(Object.assign({plugin:"Excalidraw"},A))},sleep$1=async A=>new Promise((e=>setTimeout(e,A))),log=console.log.bind(window.console);console.log.bind(window.console);const getParentOfClass=(A,e)=>{var t;let i=A.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(e);)i=i.parentElement;return(null===(t=null==i?void 0:i.classList)||void 0===t?void 0:t.contains(e))?i:null},getNewOrAdjacentLeaf=(A,e)=>{var t,i;if(A.settings.openInMainWorkspace){let i=app.workspace.getMostRecentLeaf();return i&&i!==e&&(null===(t=i.view)||void 0===t?void 0:t.containerEl.ownerDocument)===document||(i=null,app.workspace.iterateAllLeaves((A=>{var t,n,a;!i&&(null===(t=A.view)||void 0===t?void 0:t.navigation)&&(null===(a=null===(n=A.view)||void 0===n?void 0:n.containerEl)||void 0===a?void 0:a.ownerDocument)===document&&e!==A&&(i=A)})),i||(e.view.navigation=!1,i=app.workspace.getLeaf(!1),e.view.navigation=!0)),A.settings.openInAdjacentPane||"empty"===i.view.getViewType()?i:app.workspace.createLeafBySplit(i)}if(A.settings.openInAdjacentPane){if(e.view.containerEl.ownerDocument!==document){const A=new Set;return app.workspace.iterateAllLeaves((t=>{t!==e&&t.view.navigation&&t.view.containerEl.ownerDocument===e.view.containerEl.ownerDocument&&A.add(t)})),0===A.size?app.workspace.getLeaf(!0):Array.from(A)[0]}if((null===(i=e.view)||void 0===i?void 0:i.containerEl)&&null!==getParentOfClass(e.view.containerEl,"popover")){const t=new Set;return app.workspace.iterateAllLeaves((A=>{A!==e&&e.containerEl.parentElement===A.containerEl.parentElement&&t.add(A)})),0===t.size?A.app.workspace.createLeafBySplit(e):Array.from(t)[0]}e.view.navigation=!1;const t=app.workspace.getLeaf(!1);return e.view.navigation=!0,t}return A.app.workspace.createLeafBySplit(e)},getAttachmentsFolderAndFilePath=async(A,e,t)=>{let i=A.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const A=`${splitFolderAndFilename(e).folderpath}/`;i=obsidian.normalizePath(A+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(A.vault,i),{folder:i,filepath:obsidian.normalizePath(""===i?t:`${i}/${t}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark");var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install this script",UPDATE_SCRIPT:"An update is available - Click to install",CHECKING_SCRIPT:"Checking if a newer version is available - Click to reinstall now",UNABLETOCHECK_SCRIPT:"Update check was unsuccessful - Click to reinstall now",UPTODATE_SCRIPT:"Script is installed and up to date - Click to reinstall now",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"New Excalidraw drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open an existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open an existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Transclude (embed) a drawing",TRANSCLUDE_MOST_RECENT:"Transclude (embed) the most recently edited drawing",NEW_IN_NEW_PANE:"Create a new drawing - IN A NEW PANE",NEW_IN_ACTIVE_PANE:"Create a new drawing - IN THE CURRENT ACTIVE PANE",NEW_IN_POPOUT_WINDOW:"Create a new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create a new drawing - IN A NEW PANE - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create a new drawing - IN A POPOUT WINDOW - and embedd into active document",EXPORT_SVG:"Save as SVG next to the current file",EXPORT_PNG:"Save as PNG next to the current file",TOGGLE_LOCK:"Toggle Text Element edit RAW/PREVIEW",DELETE_FILE:"Delete selected Image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:"Copy markdown link for selected element to clipboard",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image from vault",INSERT_MD:"Insert markdown file from vault",INSERT_LATEX:"Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!})",ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",SAVE_AS_PNG:"Save as PNG into Vault (CTRL/CMD+CLICK to export)",SAVE_AS_SVG:"Save as SVG into Vault (CTRL/CMD+CLICK to export)",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a an ImageElement, or select a TextElement that contains an internal or external link.\nSHIFT CLICK this button to open the link in a new pane.\nCTRL/CMD CLICK the Image or TextElement on the canvas has the same effect!",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"File does not exist. Hold down ALT (or ALT+SHIFT) and CLICK link button to create a new file.",FORCE_SAVE:"Force-save to update transclusions in adjacent panes.\n(Check autosave settings in plugin settings.)",RAW:"Change to PREVIEW mode (only effects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only effects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'. ON: Use Excalidraw folder; OFF: use attachments folder defined in Obsidian settings",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and it's name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be effected by the setting until you open them and save them. ",AUTOSAVE_NAME:"Enable Autosave",AUTOSAVE_DESC:"Automatically save the active drawing, in case there are changes, every 15, 30 seconds, or 1, 2, 3, 4, or 5 minute. Save normally happens when you close Excalidraw or Obsidian, or move focus to another pane. I created this feature with mobile phones and tablets in mind, where 'swiping out Obsidian to close it' led to some data loss.",AUTOSAVE_INTERVAL_NAME:"Interval for autosave",AUTOSAVE_INTERVAL_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document? ON: Yes, OFF: Not",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Effects filename only when embedding into a markdown document. This is text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files. Toggle ON = filename ends with .excalidraw.md, Toggle OFF = filename ends with .md",DISPLAY_HEAD:"Display",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not effect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode. ",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes. ",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal,view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:"CTRL/CMD + CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].",ADJACENT_PANE_NAME:"Open in adjacent pane",ADJACENT_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing adjacent pane, and try to open the link there. Excalidraw will look for the adjacent pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.",MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. ",LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',HOVERPREVIEW_NAME:"Hover preview without CTRL/CMD key",HOVERPREVIEW_DESC:"Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the CTRL/CMD key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the CTRL/CMD key while hovering the link.",LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:"CTRL/CMD + CLICK on text with [[links]] or [](links) to open them",LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can set manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images CTRL(Shift on Mac) drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This effects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:"The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (CTRL+SHIFT+i) and type in the following command: \"ExcalidrawAutomate.mostRecentMarkdownSVG\". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: \"excalidraw-css: css_file_in_vault|css-snippet\".",EMBED_HEAD:"Embed & Export",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"The default is to display drawings as SVG images in the markdown preview. Turning this feature off, the markdown preview will display the drawing as an embedded PNG image.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed SVG or PNG as Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_SVG_PADDING_NAME:"SVG Padding",EXPORT_SVG_PADDING_DESC:"The padding (in pixels) around the exported SVG image. If you have curved lines close to the edge of the image they might get cropped during SVG export. You can increase this value to avoid cropping.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name.",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not effect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Forth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",SELECT_FILE:"Select a file then press enter.",NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"发现可用更新 - 点击安装",CHECKING_SCRIPT:"检查脚本更新 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"已安装最新脚本 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图(Excalidraw 模式)",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图(在新面板)",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图(在当前面板)",TRANSCLUDE:"插入(嵌入)绘图到当前文档",TRANSCLUDE_MOST_RECENT:"插入(嵌入)最近编辑的绘图到当前文档",NEW_IN_NEW_PANE:"新建绘图(在新面板)",NEW_IN_ACTIVE_PANE:"新建绘图(在当前面板)",NEW_IN_NEW_PANE_EMBED:"新建绘图(在新面板),并插入(嵌入)到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图(在当前面板),并插入(嵌入)到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",TOGGLE_LOCK:"切换文本元素的原文/预览模式",DELETE_FILE:"删除所选的图像或以图像形式嵌入的 Markdown 文档(包括其源文件)",INSERT_LINK_TO_ELEMENT:"复制所选元素(以链接形式)",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入(链接)文件到当前绘图",INSERT_IMAGE:"插入(以图像形式嵌入)图像到当前绘图",INSERT_MD:"插入(以图像形式嵌入) Markdown 文档到当前绘图",INSERT_LATEX:"插入 LaTeX 公式",ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的最新发行版本说明",TRAY_MODE:"切换绘图工具属性页的面板(Panel)/托盘(Tray)模式",SEARCH:"搜索文本",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 自动化脚本",OPEN_AS_MD:"打开为 Markdown 文件(Markdown 模式)",SAVE_AS_PNG:"导出 PNG 到当前目录(按住 CTRL/CMD 设定导出路径)",SAVE_AS_SVG:"导出 SVG 到当前目录(按住 CTRL/CMD 设定导出路径)",OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。\n按住 SHIFT 并点击此按钮可在新面板中打开链接。\n您也可以直接在画布中按住 CTRL/CMD 并点击图形或文本元素来打开链接。",TEXT_ELEMENT_EMPTY:"未选中图形或文本元素,或者元素不包含有效的链接([[链接|别名]] 或 [别名](链接))",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"文件不存在。按住 ALT(或 ALT + SHIFT)并点击链接来创建新文件。",FORCE_SAVE:"立刻保存该绘图,并更新其他嵌入了该绘图的面板。\n(详见插件设置中的定期保存选项)",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件以兼容模式打开。转换为新格式以获得完整的插件功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图,并插入(嵌入)到当前文档”之类命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。 关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_NAME:"定期保存",AUTOSAVE_DESC:"定期保存当前绘图。此功能专为移动设备设计 —— 在桌面端,当您关闭 Excalidraw 或 Obsidian,或者移动焦点到其他面板的时候,软件是会自动保存的;但是在手机或平板上通过滑动手势退出 Obsidian 时,可能无法顺利触发自动保存。因此我添加了定期保存功能作为弥补。",AUTOSAVE_INTERVAL_NAME:"定期保存的时间间隔",AUTOSAVE_INTERVAL_DESC:"每隔多长时间执行一次保存。如果当前绘图没有发生改变,将不会进行定期保存。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"当前设置下,新绘图的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图”命令创建的绘图的文件名形如:",FILENAME_PREFIX_NAME:"文件名前缀",FILENAME_PREFIX_DESC:"文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图”命令创建的绘图的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"若开启此项,则在命令面板中执行“新建绘图,并插入(嵌入)到当前文档”之类命令时,创建的绘图文件名将以当前文档名作为开头。",FILENAME_POSTFIX_NAME:"“新建绘图”命令创建的绘图的文件名后缀",FILENAME_POSTFIX_DESC:"介于文件名前缀和文件名日期之间的文本。仅对“新建绘图”命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名日期",FILENAME_DATE_DESC:"文件名的最后一部分",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名;关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只影响托盘模式下,绘图工具属性页的位置。若开启此项,则托盘处于右侧。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,当前活动的 Excalidraw 面板的主题会随之改变。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式,禅模式,或者阅读模式。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",ZOOM_TO_FIT_NAME:"自动缩放以适应面板调整",ZOOM_TO_FIT_DESC:"调整面板大小时,自适应地缩放画布",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 嵌入到绘图中的文档(Transclusion)",LINKS_DESC:"按住 CTRL/CMD 并点击包含 [[链接]] 的文本元素可以打开其中的链接。如果所选文本元素包含多个 [[有效的 Obsidian 链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开 URL 链接。
链接的源文件被重命名时,绘图中相应的 [[链接]] 也会同步更新。若您不愿绘图中的链接文本因此而变化,可用 [[链接|别名]] 来使用别名。",ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开链接。如果找不到,再在新面板中打开链接。",LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览模式时,在链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"URL 的前缀",URL_PREFIX_DESC:'预览模式下,如果文本元素包含 URL 链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',HOVERPREVIEW_NAME:"鼠标悬停预览链接",HOVERPREVIEW_DESC:"开启:鼠标悬停在 [[链接]] 上即可预览。
关闭:鼠标悬停在 [[链接]] 上,并且按住 CTRL/CMD 时进行预览。",LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:"按住 CTRL/CMD 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接",LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"嵌入文档(Translusion)的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"嵌入文档(Translusion)的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"嵌入文档(Translusion)的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[Markdown 文档]] 的形式将文档嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:"您可以将 Markdown 文档以图像(而非链接)的形式嵌入到绘图中,方法是按住 CTRL/CMD 并从文件管理器中把文档拖入绘图,或者使用命令面板里的相关命令。",MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 图像的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 图像的高度取决于文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_PREVIEW_SVG_NAME:"在 Markdown 阅读视图下显示 SVG 格式的预览图",EMBED_PREVIEW_SVG_DESC:"Obsidian 的 Markdown 阅读视图默认会将嵌入的绘图显示为 SVG 格式的预览图。若关闭此项,则显示为 PNG 格式。",PREVIEW_MATCH_OBSIDIAN_NAME:"预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,的预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时的预览图。
您可为嵌入到文档中的某个绘图单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”之类命令时,要嵌入绘图文件,还是嵌入其 PNG 或 SVG 副本。
如果您想在该下拉框中选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 格式副本”或“自动导出 SVG 格式副本”开关。若您选择了嵌入 PNG 或 SVG 副本,当绘图缺少对应的 PNG 或 SVG 副本时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 该选项不会帮您自动生成 PNG/SVG 副本,而只会引用已经存在的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_SVG_PADDING_NAME:"导出 SVG 图像的边距",EXPORT_SVG_PADDING_DESC:"导出的 PNG 图像的空白边距(像素)。增加该值,可以避免在导出 SVG 图像时,过于靠近画布边缘的图形被裁掉。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 .SVG 和 .PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 格式副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 格式副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。",EXPORT_PNG_NAME:"自动导出 PNG 格式副本",EXPORT_PNG_DESC:"和“自动导出 SVG 格式副本”类似,但是导出格式为 *.PNG。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 格式副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"保持同一绘图的新旧格式文件内容一致",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启 Field Suggester",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",SELECT_FILE:"选择一个文件后按回车。",NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian.moment.locale()];function t(A){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian.moment.locale()}),locale&&locale[A]||en[A]}var html2canvas$1={exports:{}}; +const EXCALIDRAW_PACKAGES = "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e6Gu4zs4Lj6Qs6ie5hSnxEAmc4JECGu6d84LM6M0ijc4Ds5FM5FwDXW5Jc4NvyiT5lRjET7B24ws4jM6+hzvW5yz4dim0cAeilwSnzmjZwEbJhRqDV1CaDKzES6Mr6u59LRDs7GICdAAqc4YCnTuZ0ADzmhmwAlM7n2CGSmuM5bxAO86M0h38mqM7wSn3M4cu40cCOc6FClKz6Tc7HClFe4NSnTSkzkqBRhtM7C2DQAAFM7FxD1YkSc700gdSnDilrCmOio5CkZ4kuEZOikuxD0SkjCmss4Oco0ADHCkFCnOxBoT40AAscAqSkNSnI86COxUs6vc7d4metjzmiET4685JikG85os4/j5lxDWc7FWbfc6Jinlim9illRi78q887C860ABe878c40biyCki0q+ECuCk5M7exCNQKCu6Sc6CxAm4mh27/iDD2DJClCu73SnQkQlSlG8IwXzlSkUWhE4mG57XOgrEAVABGezrZhgymfM7jj6toi687S86os4As5c85/j5K87XW5limC84fSka85fM55YmS86syn5imos7FiK+SZ9ikWu7JClOc6tM6bSkvc5jinrO7CylTimvc7ws7FikpSm2s7lin5inI85VW4c8pJSbd8pvM5FWYau5scDYe78z5Ws5XSk825Y84Gyn8z42u5ayk2s5FWbGynC26CxBmymCxDuQJxc4JEAS25i0L284Tc4T6RZs43Ag+85Oyk8mp5iYOymW87pDqAc5vc7KuBuykOirOyk4ykwKoWxD4yl7ZhF/Ykyk9c7YtzNzrRimh4n5il4O6neAxylAs7pDp+CmVilKuA/c60ADmYllxA2/zLc4g87bSnjc55iaCxCQ85u86yz4c4lG8738nFykO84FynQkSVylOCnjc7lylJc61yn5ykc4mFyl/c7w851yllyk3M5jc60AA/c75EC2YnRYlOc4MQL8z6h4lKuDfYmMe52chH0pThozO69s7Tynrc48877O6NSnJM53M54qR5ykpyl226Xc7tyn7c67c64T65ymbyme0mI84CAbyRqrym6CmI87Byn6jjwSlhynVEJgkAVAAYBhTc7VEDZM6AeiQ4mNYn8z4TO62ECfO7dM69s52EDVYnminzW4L8msu5qSna87rO4B4nUu7wCmqu4j0rOCnDimWMpYEjzYk485fNwA2D2Ynks53s7AykWM4zs7D2D9Yk2c6oKkFYkce4i0rpSo0u4xilBLpH0p+e6Ac538l2c41s4/MKnO4ECqmikqSnKCm+YlnCnvynVEC584su712DHs5IClCSkWc6fO6BRifW4gWxzO5yz4Su5cKnPM48KnPM5yxBgu5Tc7CKndykmc7CKmmcgsKl5SpsKkiKm8KmcKlWs4cKndymcKkCKnvynKKmCKliKl8KkxSnnW5uYnp84f8mSKlKKlcKmKKmi0oqKmaKmqKmiKl8KlyKlqM6mKmZymSQJbW66KlIu6yKk8KmcKkKKnOKnKKndynxCkaz6WKkaKn8KlyxDzRCHvqRykWxClzq8CkIs578lWu5TW65CnmSnjs6tc7NYRfixrdrdYluc4RoKwCnDW7g6j14Q/j5RxCkABKuDg85z84VACyRJWLqPc4q1i78qTj6WYnHs4NSY2u4J4lhYmBRiCc79YmjM7yz5Jtx827xEBkUKvc65xBkUIWu4nO7vyn/iBoT6WMpQCnvW7QT5NSm2KQm86RLq5s7OCmAc5C8rp85rClFWZG86scBCymw84Is784lrdp0AAbc4ec60Sko87VM7WEA/j4vSmqykc4lmymwCmxYlFWaFUCMe6CxAPykyKme0lXSmMSmNKnYtwnO6QCmwCmzM6Gyk2s4uEZmIBbYlTc7LspBM5nKmWymCxCFUCfM4/j7ZxBhcDzKkFs7DW6LKnLKlnylx9B4ymISnesCEyngh4TEDXsYjonMvIRADsb4BK4F8m5LJUeSMs55KnNxAFKmHxD2YkuxDfymwCmGu5lKm0imjYnVKm9Kmi0rxianeANKlNKnBnaNKnrUh0ADtKlTc6dKm5ik9KkTM6NSmoqlyxDwADDKm5s6binjKkx4nRSmcwk0CmM0ietjpM65xAYs4EAaIqntW5kynSLots7VM7pykGxAHKnBnZHs578mDOCOiq5CkDKm90riil/O7bO6is6WkKku5BimUKkts5Thr1inOs76qkyz4i4mqqmjs54u6nM7yYlbKlcqk2u57KkfKmHKnxEDHKkmymnKlsc5vM42s5ts7Tin5Mqcc5nO43Kn6ynDymCxAPKkIT5ps6r4TnKnmym/M6FYnxEBrKl2qlz86cwk0u6RxCh24IT6yykQs65inS84As6vj4Kylos4Viksyl686pykOs5S853s7Rimos7mYnZxA2s4Se4GxB9EDzmhuc4FYnIUDss6PykM0jB25KuDuYlC8rN85D862ykiili250AA2z4cs7lqm/inVEDss42c61qnUKkDYn1ilB4m5xDdqkNqm187NqlSc6N84Tqnjs4DKmT85MOy0YJke6NKlQWgYs6fDIEmqjEpgqky7ReimtjjLtGoSlQ858ylPKmaz5Cu5vKn8z5jEI9W5Eu7pSr/iD4Kna863KlPM5zO4Ds4Sc6tc4PO5qSloayi0phcDGloLKlTW7T8kfqnVKlKz5T84NSZUs46M41YljKluCkGClPO5xKl3qlgakkABaM4qOjxiZuYkFs7XKlXSkaynvKncqleSmscBA26a84LynGymmymGykbKnZYnPKk7KmIanIamfKmHinwam0qmEalGyl+qnFxx5SrLYkfYmykL/qkpCm1tjYCkySlxKkFM7pSlZqmpEBc86RYlps6HqnvW7Hqk2s6PYlY85i84Fs5qYn4SmXaT12Cvj5QRIBYlKSkECrCs6yan12DCs4q1gKan12Amc69ikIs5TO5SamiamG+pFe4ECraanyalnClyalKSmKalialUADAqkW8kW/AXRpISlvYYkynTubCs5hEBfSm0ACwu5wanp84rj48KnyKmaKmSwAsqnOan6Klcs6fO68KlqM66z7xEAZynSKkAT4qKmuak2KlA84nO6UABECm+alCKl8Klqz5LqnGSk4257j6eKleKmxamF85+SZRal8T4GKlrj6aKmfKmAejxakZanJakOcrsKk5alcKmzKnJ857j5yKlualcKmmakXylgqnH8TXyk2anPspBalealsKkpanhaksqlJanRamlalpalGeyFal0T7ZalMT6aKnlalealVakuKmaKm1allSn1anC4IkynkABmM7D2BNsDzc52NbEbTKijRYmram6KnvYme4mban7j5dSm+Yk86RCSmCu6Aeg/8mHamFSntqluYnbamOM7n2AOs6Hak7akLamDCkYBht85VW5thYzc6Lakh87qu4FM68koLs67anbam7Ylmc6Xam9Sn3amcu6ie6A6kaz6Hannan2M7ET4Q6koKm9Sna877akOcpg6l1OZ2YnrO5I6k2EB+M72M5BSkQ6l7am+EDQ6nYu5g6kinI2ED+KkpUSzalxc5yxA7ynwAD84kAin5MoAqlO4h2aAJXxwT66SneYmN6Tac6mimtxC3c7LKlaM6mIAzkKeM51s7WEBcu4s6maz4Uaxts78yl9YlM6kLKk06n/c4vs4U2F2aDce4K84U6l8T4RXz86m06nnc7ByhzKkGM7M6nc6ls6mI84c6m/Klq6knyli6ms6mA84c8pF7q66mK6kS6lI85S6l/pJk6ly6mOirU6kXO7LKnPSn8ymM6nCSn86ma6kJXza6lO6kf8mrc4u6mG6nC6nW6mm6nw84vs4n0Bq0Akymr4QLqllRg5s6Cu4PO6Xs75ECWYnO4i/akfj7kAB6JqAc7m4lVqnzmit873s62KSKAClYnIUDOs678o56mms6DCn00hNM5Rs6ic7scDVM4qOhXKlqymayk+qk2s73KlFxBHs7ds4vO7FalDs42/z9s6Ps7T5pXs4Ts6rj7Oc5nj5goqvilJ6mFYnjCnCCl6Jrg1iM0gZ84L8mBqmzByRxCdM51s5DM76exK1gxToR84ISBkCnMildM71vq/invW4PO6M0gA1jFxCcc4r8kjAz8c7R4m14lH0qrc4rSkZ4n9dq6Klnj6JaKmSkXalzO5ywrDvxGilT6lYbKaSlTYlM0g3s5toiGu68Cn/8kZ84Lj7yqkjClNxCdADR+Ci0rsc4WNZC8rzs43s4JSb7CkJSZ186GM4xYkns7ZCn/iB+inZM6lYmL6miUon6niilDM6+EDsc60cBAKnLO6AehbYl/O7KijnKmic5ic6jM52EBoT5+CmCxAkGl0qQ4GnOinrZj+M7C2CRyhz6llM5IClnO6h6n9qnQ26af4Z8ngh5BdAh6lhc6xqnh6mralECD+M4ms4x6nzO63KmCu5MT6J6l+JpNM4EpCNqm/MI0u62KRfNyKGm0xCKADoIrCmrJCl56k5ik4Gk3SlF6nYnrYGml6kkADl6kbimBqn00ghqnYan8z4/c7T6lBik3j7QT5N6mcKkt6l9s456nj87hM4Z6lSQK96luc7ou7984gu5pxAMCmNM6Ze5H0qj6l38m+EDDvx76miLYz6kq1hUilBCkiil24nL6l1s6r6muClb6lBKnr6nb6mNQJOc7pM4H6nC7ISSliBJvW4X6nn6krSnuYniYK4Slrdq36k185oazrZhGimWu5nj5Nvr7ClscBT6meM5js5f6kQCk/6mPs5txClM7GIA/8lO4kKqnzc7HooNqmQGmwikUFI186wGlhMrl86/im9j7zO7GIBZ6kvqlAWT5M7T8naz7BM4qOh4Gm4Gn6Gn0Gl4xHYGmcu6H6kDs5DM4eKQes5tM57CkkGmp4kMGniinBM5Cs6sGm/M78GlnO6cGmeinqXb3dZ2UAkyk6GkGxBXKl/O6e4ncs4sz72s5FWZzYlhECDADUu7bGm9SkOs5RxCNQKrGnZxDHGnQykQu7/Gl7srCT52s6vGlkCl2s4b2x4u5wu7X2wECq+SbQKmC84f8lAGlBqm+4mHxCwyk/M73O7aCkJYnqoIr8kWu7N85UilNxBSc7scC/M6FM5xqnd8qPc4jAwzc7JCl78nj8ntqnB24uCnnO6bCmM4RFqkSinrUhWu7t4lbCm+Gm+4nrUggKmns5yz5FKm9SmzESi0p2EBtikiim3KmuYl5M6biq78ofCn7O4JEAy87yml3amKYkDc7J4mVM5nc5UikXO78mkrj6Ds432x0u6DAxcwLDc44SnO4iFCk5qmZ4l38kZs4BYBB4kuxBts4Vs65s4YClniniikPimlzq9W47Cm3in5MqnimLs6lzqLM79W4JrqZ8ha84FYkKqmN6QqM4+4lO4kVCmhmnEOhDW4Tj5bs4B4kN2DyCkNSZcmmFeDDvw/M5U1I3Ah4u6es5BzCRYmt6mfVxC25B4mP6luc5Su57c59s65UoFCmMYr5GqVmk0bgYT4+4mP6nFmm/O6IT7Mu7u4lC8qou5ziltmlI84dbHcGn3dax0Szam3O5tM45mmxc66ClOM4mKm8ClgClpYls4kBil5SoIu5fNyS7It6kHClzmlkAAZFTyilK1jAikLmlLSm8prv6n6QK0YJlYl9Clw4kh87PO6Oz5EGkOcrmYIjAyRyiBRgZFTQT4Eqlyz6Gz6XmmGz6BmmrCr1ingu4i4k4KmAGnyikWM7YWhc6m2M7Ls61thgClNM6yGkECrHs5pM5CSl0VojAx3mlWs7AGnSz4az6uABTM75MoRoKi0rOs7Lmkn6nrmkDM4Sc6vYm8pp0AB+ZBcinzO4inLm4kuqn6VqOz6GM6KYm9s5cnLEWn/O5C8opSlEWknmkIWkTClEWkXmnwWlgimvtKUWlEWmmamV5h98net6aDKrc6/MLmYIKik+M5Kc6/YkLClrKn3qBunICAYGM5T86WM51YkUFJRs7LYn6SkgGkmc7YGnBe4nO7Q4lPylSwBuASb4CvYniYJh869CkBYlSwAmu5qakb8mAu69s5SwAuEZ5iZqWnBe7g850e6BRhws4uEZ+SZxKnLspIFrJCluAQsWm98l4PrsWnK2YFYZwqlD74Iqmoe61c5N8kl8l04nF8mnCADO6sQBHW7ymlkUJfizuM5fixTmneYkKu5ran/M5/O7TSlxc73ynaz5cs5O0qLalkmmLamuABbSmRKnQT77CmjYnmaBe4kKu45Gk2Sk1M52u5kAAKe6S4mZKlH0obibgKm1KmdABwu6/M5084j0oau4y85LVjqoJhWmrM6SQIISBUs5C8qdADOM60mlye6o87Wc5cnL8u4FWkmKlfqnou6WqnGYkdYlQKmDYk+YlgCluASLKkGc4Ds52u62M6WYnWqlcwK3O7m4mKik1KlSu7/qltoiviknKnTM7r8kDs4Gc6cc5mQI2YmCu6Vs486lfc6LKl78mVs6Zynhe4iqkMs6+WmBWml8mCz404lBWlaDIqSmeyny85227OCkcykdik6M5SwA3s6+hzgakqWmKYkqWm6c4Ee49ynhqkjAxqamOYlK1iGu6Qs4uc6vj6Anrg2kmamMz6UGBkxrOWnoji5xCuWnV8mUe7IqkvWmoc5vWnpUZDJ7O6QBWkk2l04nUe6Vc7WEBJSnUu4ccCh4mCOxcs40e4uUqA26h4nXW60cDs2ls2kTc6RxBFsrHs6NGmCSllaAK4SKilts7y87pSpis7FM7eM5VmkcVqCSnC26Us6RxDIkLImkiu5a85Qinbs5gu4q1ia2kJED4Sna2lBzDVM7ls6q2kKak827y2n0ur6ylymlNsDCe5yxAbiaVsDNzo2z5OxApSn5Mo8mqss60cCWkLzDreM41imDGmkSn5MrP8nmaCzc4Kmlgoo1QL22lJ84O2nu85eM6zERi0IKikKin5CmN6TjJBCqmHRqCxC++SqgGUgDqIlQ/rdcr3DTQqlqMYeWmLf5VD5PWk5e43ykUFKwqoAml6c7m4l8CnQT5YSm6inOM52annc52al227gu6M0iAmnds4bGkzc63KkF2mlM5B4lq267Kli85H0p7c7P6kT6TN2l0VpNvpKc5RxDnWlNvpa+QMc437rcLprHqtF5aWaL6CAtq37pT2kv6Rk2msYQ3iS52nIqnUe4su5t2nZM5B4kzc6JWnimloT7xCn9SmqWkKc5F2k72mCmbEWlJLC3KnTM5NvqkABizrc86B87imnrO792nySlt2lg86d2mRYnd2mOipt2mS4m9Sm92lD2nGu7H2kdmmCz7tbIz2nAOlL2mY2k98mbqk3Gkp/pxUQ1XhJ2mbiBlmFjcZp2nKKhuWmG+5Z2lfG6nh6r2nBqDr2lX2kAmmrc61Sm72nNxD72lzO6H2k9ykAOlcwKn2m9s4LWkX2lOSlt2k32kRil32kou6cu61Sl/Ck4Onbylv2muAA+xCf2mD2lP2lf2m92mfKlt2lj2nFfKgOkmXLCOnArEcgDL2nCqneWlr2kGs6t2lNvpcwKSWkUOll2mEu4V2lWYnIkKb2kl2kQmmms4l2mzM4Y6nX2lv2kN2ll2k/inUOl6c6F2nt2lvc632kcOk92lf2k8OmD2l8OmmOmCOnU4kT2lxnpuaqyT7ngkjF4/TpqjqL2lUzEjCLgOk0coH1xdmnQOljn5gLbGiAp2myAZIOkcr4oOk2EZoOlSO6NjaYOm0rgpe5dKkrc7u87Oz5js4ce5JOkO2mIu6ethkADpOm2z4ORwkAAealls6SwCW2nI84Ds45Ol4SmGu4/c5lOmpSnlhKts7ZOljs62z6pOnyz60SnVECfKkOOkKCZOOmeOmuOmoMgdOkN7rT2lgOkrolSOlYOkpe6As6OYlBzDZM7Hj4LCkL8lhYkq4m7c6xmmaM6jOmTGk/M69Sn285LOmGSkLKlS7JEABTj72qlxc7TOnXWk7twL8kjOkBmnzW7q24JrpuYkEu5WOmzj6TOkgWkJ6kBmlwT4BmltOm9wBGJRRfKiOlyT7iOm+Okp1r+OlbqlvTIdSDBOlqgEIOlUBThOmxIiROmwqnSp4YOmDOnxOlRe6HOlS7LjOmVs77OnaikzOnkClLj7zOkBmm/QZwukrOlXOl7soLOmbOmnOmCMLwul7Ok/2lQulSGk9W5bOnQWliSnXOmhM5wuliT6g2lS7J3OlS7IPOkvOnngkMungrHd3oSOmROkDj552lKu66aT1OnlOmwYCVOncunVOljs5EAB1OnJOmpSmpOlhECtOn52nY85VOkS1iGu48e7SukFs6VsBCunyuliunF84POnuOmrHpMCpdOmz2nparwjqaulWsGXJ7L2mrql+OmQOlchSaAmgHy/OnJ2n/OlAIGIiDp2nAul8wbwqk2J5xOmMs5uAQ0Gz0dBUs5+XKOOlz2mT2l6unIc49Ol37peOliOk+Onoc7igCYc6OKbYc4r2ngunOunq7xKADdM56inwtzmaDwtxOM7LO5sGjEADQ6lZdgUFLsOBWQSlM5rClJunUhCVsB5umToDsmlazq1tiZunZulgnr2M6YNrpEAeRp6ikMzqVumUrDlhKFUCms6KADDyiJuk1umF2nxWJ5aKQ6lazpC1jxumVQCqQAECrcmrsOAeRqBQrcmqOFxJulH6rJ7ypunGM6YNoZumZzrA15G4m5uljs4FunSz6lukjun5Mp3LTjulWvrgACNumAs7NukMzxhYmUs45M4jukHOm9ukeunRMhPOkiOkXumBumGumpwbGukQqlmums0BwOmhOmIOkcyq2ukE2kgukOuk/G5OunXM4uukms6b4DuunvWl+ukL2launqum6unzMpdOnM8JBunggqhumN8YDOl0c6Re4qsTe7wVumhMymrDDulVaJQRLfYDVumUs6Yem1tiNul7srNulrnzjunAyk0biuukYBC2M7/unQyndum1tjNuntulcDhdoCh25DyCbunlaKpumbanpummrBZumBQpH6quYmRxCYNp5ukeRp1ukN7g0FT9unpEBQRJDunzunZDwTukbuk1uk4enbunDyjsekbumcencekYBA1OljGIBQArukMzprun5ulKen5um1tgWQDTulsemZum7IDZulcemLumSem1tj0ulXumHtiPOlmBj9Okpy4QOn3umBOndCQWunwOkj4k2unIOnvun2umeWmOumRuk/ulD7yyellaBnunaukZXpgemVCogelAek+uneOnsbjQele8BhunbDBwek1c7SOlt2ALKndumrnzIel586Geloek5ulxukqenlhKToCsekoemrunoelaembul5ukWQBFul0enyeniekmelxulO0p1umSem1emVuluumH6lcDjsc5iellukYemFbzcek7txZdiSen8el1ekeSkqsTXYBNM4ZelVelKemqelbumToD6ekFekaelFek24glem6enqekcellM5YelrpxmelNenC7ItemoeniemjumdenjukyekWek2emXumHenXunvOk7ZrKl6wiSKQhPulWun8kkcglV8lS0TuWmguk52k+enWbgumh3oj+ensbjj2leunOOl9OkmXKgenz2kReknenBumRkExemwekRunwek5e4qsTjs6YNpkelpel7sojenGekremqekyen/ul7GmbeltemaeljunSemTullekbekVemGemjem5ukNemYNrFekCelqen5elVW6FekSem7enBkrE+m7emk+kDemZzrDemZzqZenVekkenlhIyemToC38qVumzumZek7elGelY+mlemLelGemKemmemTumTelpemzunbenrukren5unlhIHenR3Y6jjWekK+mvOk+OliG498lvTKpqxXemuekgQBvun3emoOmPelH1bfukpe6z8nl6m5KnmaDl6lhelfemdOn6unY4lReks/Ihukg+lOKbxemE2lDOlRe5fmnZM7dYZlM4SSkWM41ukHc5UADVM72qkHc4eYnLCme+nvW5Mu6B87IkKNQKbun5YnxCmcem3O7hqm2ECAmki0o1ukFYmUs5/mkECpaM7VEDCSJJfJMulK+k2+ksumnel/ZrnemcoANujOenPukAumvunuel6+lROkG+mxOnPemsQByc7ss6z8lm+kBaDQamBel/eneungekz2kd+nfekBukq+l2+lPAoO+mV7Kg+mSOng+mJelMs7u+kns6cene+nJ+mHulxc7++kJEBb2mx+kh+nGekMSlr+nVECR+mp+mJWlms7B+lWYnY84mu5J+njulb+kyal/mmZ+nZ+lCOmWemMumX+nMulvOlq+l+OlvTIgjBl+nXel36q6+kwqmeenZ2mG+n1+kqsQcu5azpTpzPGlZdhw+lzunGeljelLum1tiFunsentemy+naelbukWQDjJDyeks+mI+ns+kTelH6p1s7o+lFemY+nYemTukM+lVumS+nC+kLulxumgBlqemoBkzelU+lSemHumqemwBmABmBnRVemIBm1tgc+koBlbemQBkYBl7sqZeg0FSBem5+lMumQemsukE2nsunj+m/ukUFL/ukBemAelW+m9Ol9+luOnheld+lgOlaWYE/LJVpKoQOABhMpdOkYc6O+nhulGukfOkmulEymwiTb4BP+na+m3ekZ2kPemfukiP5G+msQBrdrmaAxumWYmUs6rWmxumUs7287GhJ7spNM7Nul2BnGenmBnz+kmBk0e7GhLkAByel7unGlrLCn5Mq6OnLClBSnPHTzW6W857ulRs6buneBnYGkR86mBnGhLVs5CekVAAyamSc7NunH+mSc7x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WVRCAagbQQNp+G2XlakJ5HIAEfrYAAEHJubrdcNsAACao4CNrcOWksqR+t0A2iEbTsNuhG0fDa7ytgH8qKqfCNohG2AAAQ3vB61suaDhpYI2rEbTiNvR438ubAAAMRPw9ab+ttnW/HjR+VuB62hdbyRtMrm+XyeV1qM63gABAAAFV1P9baeNv5W8DmWX1py62AAANcaB63A9bwAAgAAGUXAAAE53gABbOtgAADTXPutQvGwEAE0NsAAAE4ya5sAAAk44AAF+agHrfINtc62MjbAAAL6OrdatbVrLsqHrbyNoUG3qjbcut+YGohAEKNpFG2ijag3NXn0wAADg1gAAD3HwAABw2iCrf0woeZS2ja43N7lSnomYAAAflyzrQV1sS62AAAIyfAACAAAQScS625dauwNro290bV6NvAACAAAShcR60u2q/75fPW8AAJiNul611sreetY3WwAAD6d4AAQAABdz/I2xLrYAAAhGgLrYAAAaa9frbnxo5ACAABBzt962j9b+etEo24O1UQgCLG3gABY+tgAAE5brBttbEosbWhVreYWceTAAABeOAAAIOuZXVtjbaht9Q2gFhUyNsAAAKLeAADbG04VaOQAfY2gcba2Nq7G3bubh+NgIARXrb4NsAAAULQRVpC0kejbKutgAAFB7wAA0o2xrrURVtAJJnuaiEAIXWwAADgt4AAQAACKjiXWwAADqL8Q2/QbSPYs2qWo4qKKtpEG0OqUmuvgdU+VaOQARg2wAABCzRnW7Xre+5o5ADV9bautnI23PrfxBtSG1Ndbaut9fWmDlV+Nokg0ztZPxtV3WjirZd4tAm17dbEv1NgswbrbV1om61oeaJ55sE2urrU11ve636QaOQA/vWqXFYAABA1wAADXj4AADvreAAAAm165qOQAs/WqgbUl1qkG0QjbCJtdHmjkAJcNty60+CbxwpMo28AAMF1sAAClTRH1srG0VDbfHVgAAa6bTut7ua5thR4NoUG2KVa2EpgAADXnAAACouAAACOe860+daIRtcXW33rYAABMOssbTeHMAACqa/b1vpnkbkS2BtgAAGMG1KtSk24AAOpNvAADPjbXxt9QmohAIAABUuwAAC5NOlWwAACJjgAAGY7HcZI/W/nreXmux62wDbwAAgAAC9mNJtCG6wEALP1t8G3gAB7Jt4zqgYbcMNvWG2S9b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0JdbAAABOuJdaiFt4AAOLrV8tri61LjbkxtgAAECbAAALp0gLbKutgAADPbzBtZY29E9UQgD062ozaSetmfWwAAA+j2Y2zubU7NuK62AABazuAW0OABQRtTnWzPrZYNr9W1Ljbautya21NbZCtrpq3FrbwAALfW8AAHWttC62QrbwAAlk2hvrU7NsAADJjTN1obW0OVrAAAgMsvyhPOtgAAFiXaut+4296bYAAGea0NbeAAEAAAqzYAABQ+8AAMWtpqG0jdakxtR/Ww6bZ0tu0W2XLaq0N2vyRdbcutqLW3gABAAACG2V9aFs5yY2wAADBNIw27vrdGNpsm2doajnILp+MNbZ2Ftv4AXrar1tJY2xObaVNusG2TobRwtgIAQUbY11pt63gABGut2a2g9baF1skW0+bTj1tp62zKSaGNpfW2drbSptA62jYlUDPJ3llQbbwAA8a21Prd31sAAAxa7Z1uTm3gABXetnPW5MbXd1pI5r3Tbt1t0ycgRmYhttjW1xrbUNt4AAQAAA4TpY2p2bf71p5G0JLbAAAFOMjTb8NtFc27XqbR7DI20UbbqNtWG2pEbZn1qM62AAAASYhG3+9bkxt1G28xbcRtp/llbeQ+tpL622VbQqtqVW1CbbwAAgAAAZ7IetIG2qRbWxtuiABSbaoRtmfWoBbaWNpAW1ybbFNtZY2gYmaTJKQ20obb0NtmG2p2bThtrw20EbbKZtRG2ySLdktqA202TaC1t4AAfsbYAAAie4DbaBtu+PBGba41tcG29ZTQLVqwakbRTQxttXWwAALT1gAAZcmgNtiw25TbULnO0VlwTa7ut4W21tbSmttqG3d9aUutvg20MbZ+tp0w1XKbrJVfL04LbUBttc606rb7NtoG2vYJWptvAACXrbu+tma280bQoNus3mKA4yNtIC2ldbd31v+W0kDbwAAmW2o/rVytsHPUdVVqttSXW6pbcYNt5W0xbbi1tyi2utbTqto9G2ejbhNtpY23LrfZKoMW2x9ajFtbi25MbY1Nty639RbbhFkG29TbdGNpC61ljapot0yspDbUVtvAACAAApOqVW2udbS1tsW21NbcDNtFW1ljaNiZPEi9l6epts8W2irbGut/PWvcbaHNrUm3JjaG+tgAAGearBt0qmu6GdP6pilWz+r6utkvWhkbcmNsAAA/PfQtqYW0q1aHx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8liZJtVI8bhLrol1ioq2DxsAADf/oAABt4lzM0jxoUutpxHAAAp+aAABod0AACEVk0dbZG2HymrGNgAAI2NGTrRLG1jjY9xsAAASFqTDoh42AABquRNc3fnWOjrgAAHIzWONmh1wAAJdGTZ1tec+UUu/OsHMaHLrzl11y67xGY5AAGXXAAA3HI7nXj5zGk8ohAIAACo5S3jXhdavnN28aEhUkV1oyeW1mcBACAABKf0PY3wnXETrQW1jkAIAAD5TFVjSldaROudaHbGNYIm2I64AAEW/DKTZm9qpOuFXWMpNxh1ocTT5dYLsuAgBbzrgAARPjAAAfykSyaS+NKwmtU641dcr41tXXW7Lru+QAAICpxV1rMg9lxp6usQ5qNDrA11hHExodcy41dXW57LRCAQAAE+6gAAReUxLrQZe1u1a7vkAADl8u0dcAADwFtepsAADeWSltd5amAAAsHUAABU5gYdaoU2AABVeUAACeGYYZqaYl38apV9jwU7Q6y2daZOunXWgLrgAAE2tAAAIJocnXAAAaEZQXWjuNj3Gpk6yPxtM42wXXTua9J176TWKJpCAsrsTrrrth11s63ddYRY3GHWnrrMpmm7QwLLofU0ksa7Drqkuxk6z4dfZOtbl602NPh15Q6wIJpg5WMnWJINSN1rsqxeXsBAC43X6gL3h1+I65OVY5ADeHX/DrTh1hI680MYSuvpXWpcVabGwAAM+BCEmypjSjdbAr1o3WOcZqF176TSzdasdUeUGOQAgAAduDbGNpnGyy621db/IOAABnRUAAC3qW5GecuuTnWmtrHIAQAAFt2Vh17pTcYdeHE0x5rMrrX66pK62pVrhus03XPalgAAHeDAAAqso6VaOhNUXGzn/XVdfLzWAAASk0AAAAqcZVofU2AAAtBXG+1w3XYrrov+lq68KdcAAB10YAABLtSEY4CAApE2AAB5HRr0OMqbWON2l12/M4AAFFbf26zpdcym0dVVAAAoZ4B3X8QLevkwAAAAJLhmyO66HdYKcV5XWSnFgAAUDtajrg9Smo67AntmusIianDNoZ1tETYAADsPYq69ZVaIQCAABN+JFOtp3XAAALqahXW7DrdbGw864AAHozQAAGQqwqmwAAOd+gAAW79PKr44U3464AAFWbdU64LdeFuuzh7sozRBhoiWd3dfVOvSia+7rEsmuLTXYdcAADj8aHxu+4sZUHu7raF13464AAAlTKU62ydcg1NlRnAQAUF1wAAHAqnx1/6666JsAACksT6Jt22uNVWBKp3d1xk6/6JsAAC+bjXdYO2va/Ju7rxN1wI60EdYC032F5uUjHIAbu65lxsAABj2qSdbFE1xrngqpPHGwAAATyk11jE658deMOufHWEWN7915NjYAABKjDk6yXdZoU2AABnFUAAAC7r2LKZOuAABYc0AACFSg2dcAAAxKj2Jse42AABfhO7uuAABv6NsY3DibpxNn1Bh6vWhdcXE1EXWqTrtjG0064edcAAANziLxqZOvEPXDzrgAAZ4MW7rrd1wAAOgqD4mlok3DXvi1O/ibhTrgAAXeiqTrgAAMMjAAAa26HnXAAAEoqVMa7TrqbGwAABUKTJ1oi63WxvAACHnXC7rnD1jCTYAACDNQAADnmLD1/CTXadaIuscnXAAAV8qAAAAdPFus4XWGzrmh14664AAENlXiTVdtdaAXd3WqTr4N14C6+BdbTOvAln7Fd3d1mC6049fguunXWkILpd1qk6wqdd13WhXXVJNNpm4w68edd+uu13WVHrXD15EkySWY5AD3XWMbrgAAHnlAAAcnIlSbCTrR11yk67XdcbutWCbGTrs51wAAPQqgnGroTXYdcAAAyut9JsAAD5SrKJq4esvbWBozjQktx6zE9YEE3snX+TrCN1tUs8ihjcetOGbAAA2fIsnWphJ/11wAAFzq+zGutjYAAGDtF664Vxv2OuVSaypN+d11664VxqSetWSaReNK917Dy1/dfG+1l3XhTrad1wAAAbyTJ12C63WxoWeuF3XhVNJd1wAABJy1t1zh66NGfWevuPWILrNR17zI6FddOuu7PXQhLb9VohAO/dcAAClKdoZsAADeGYSdbK0ChXX8WNgAAMm862Nc51xc64A9cAACBnoJxuhuuA7WsoLTy0kqTYAAHpTPCTavdcGes2iaioL3d1wAAEvG30mjG63WxsAADv0YAAFgvLe6/LJsAACr0eddbB2unkT2TrM91utjdjJsAACCioAAA7opk64idb8OvDtLqNNoDe/xDVC9e+k1hiTYXrgAAU+iwxJG51wAAA3RCT1uu68vdaZOs2ibodrp5E1l636JKPutvlnfhLWYk7u64AAD34iWTcYdfeevaca0HrDZ1+F6w+ppWE1oXXAAArhnVMbAAAbnoPqaUXr4L14by/dBaIQAL3X0Lr4F1qby8WJOcuuGCLoXrGN1877bbJrxW2AABH4Jdk3beWOQAgAAWksXjrF6c2E668hqjOtQwWiEA5cmwAAGZyhp1hytQSxv8EWxXXOPJvZ1re6/hJoYU2aHWmTrgAAU90zdNK11m0zYAAEADN7y989cXY2AAB+pRpuvyvX9HrEsmwAAGymgAAU3MS5NgAAM8jAAA5caAAAUbyZOuAABk+O+k1H1SfDr2h1pk64E9YMOvdyaVhN/d1wmrYAAEMrQAAHVupzV+ImXYdasOtLnX/DTLGczQ6xlJsCevLyaxvVgT16na0tWuFU3WHW7DrHJ1uF64AAEhjQAAPLygAAAnyNzrst1wAAHbxL11/0TfsdcAAB0qRydflk2AAA1o0AAC/RuO9a/k0gsbAAA34rqnXAAAWJqhXWQWN4AAJd61YdfVOuI8bVjrdO1rd6/K9aPescnXDbrs51wAAH7mgAAAH1+oZThm2djXFpsPOuAAB9OWlE3/8ahONzl1oN64AABnlTd67QpsAACy8iSxqTesGHX3XraflohAP+9ZeuuDvXulNgAAM3i53r//Guq67EdYC12DvWjuNO0Cl668YeZOzmG3WTbrW1J69eVu9caY1b3WQZN+716D62h9cjXCA7dPjwSb1w2653Hs/esjvXQDzzYspN64AADK/QAAPrmtZmpeC4edZo+vDvX/pJSb1gJTX4ppSU2AABo+UROscnW430I71xcpkm9cAADAMRXddO5r+nXUrrHO1jkACO9f+kmfvXy5NNN1oT69KoBE+u0exP3rUF107moAABfUrW6+QFcBACAABp03kuuznWOPrdH1wgAIx9ZY+snHWzazUH1mD6/B9Zw+tgJ70OrqH17Q82NWfgusgsaOTrKUkjD68x8v/43eHWOTrR71//jdYdbMCsoNTnLrwqmuq60ydYPet6ABaPrpMk5y63u9cMAAqfXkAA0H14d6/xIvletbvX/+NBh1lYTZCdb911bvX0rrJLGjG66M9Yveu+fXF2NVh1wAAH3R2X1gQTTJ9Yq4utC1Zrrh51kuTYAAEfdZZ61q9a86v4mTHPr3x4FL6wixuQ+udHnaPr0ys//jYypqxY3OXWOTr8r1wAAP4JgAAWUVV3rj0lwEALR9dH2n/8aseNmh1jE64y9ZqOtMnWjDrku1mrq4pIu7uvfnXAAAIRnYXXMpVdh1uUTdi9bAZPPvW4tNgAAXB0UXrVJ1xpjYAAB34+b66KpusOvGHWMHrgAAN0UenrRh1ruTTappBk2AABsuV+etPfL8ZLCrEwAAOIJxh1wAAED616m+F64d9amKNSvXZXr1TG5NTWSebu3maPWgfrqF1uV68vdYcABwvWAfr6u13NSWndevusyyWFEFJd14U64AAAIEiLjUzdYDevacbAAARHKuib1SdgAAMj0ReNG51wAAGPRzz1pk64AAExUwAAPfRupOya61YJrHU2AAAbuSZOuAABvn0AAD7fqdzUAAD7sYAACo4wFC0z9ZvU2AAAKGLvU22nXHrrYBmmn68iJsAAD2BhydePOt2HXhxNJUm4U6xidcJOtWCaafrgAAUqNMNNp3NOtjZo9Zl+u2HW5frhj14VTfhJsA03v3WB3rgAAYADAAAimFCcamfrbZ1g3a991Zp+vNcbufrEr1rXq3C9e8OvyvWFDrgAmyX68Ydfyy37qyNfrZu1jkALL9aHE0e9WhEpCz1z964AAACEuF69d9eY02W8bjDrhhmypjUydZ402nc1AAAcHILPXFzrT91qJw9SnsAADUSoAAFGjf06w4ABpesCPWhONwD10B6+/dYcAC/HXAAAXdG9nXAAAA3KbPWcHrVJ1g360b9cAABYrvTdYFeuW/XxXrb717u6xpdfM02vMmMTpWT1qw6y7dbfCtEIBAAAy35MfXe/rkwJkls0IlNFesu3XkLrgAAbfjrxNKf1p3a1b9td3xWXX7rrjV1wAAJt+Cz14VTYudaZOuCcbAAA7Eb39WOGJfD1wR66dzVy02HnWrBN8f1wAAPxGWn1pk60K9Y5OuAAAxeUPOuAABc+UAABsjp+9asE12nW27rQnGuw624ADheskmboHr8v1lrTYAAFmVYw6+H9e3+sOABmNNjP1wAALNyz/10AG0ydcAAASTn+zR441t3Xk/r6rJohAAixqpesJZTx/rzt1j3a/0+Zp+te7WLVJdJ1u06xFTqpOuUnWkbr7J1rk69ydf/41b3X/rrv6FtG61zdfsI1WXX+7rWUVohAEjdf0ev4PXGrr04mtNk0spMZOsVvWQrz9l+wgG7YdbpOvHnWND5OP1sw62KJo6ivPmRsbrOoJ8dpYAACCzWc62fdZcM0e/XUdZ40VjC6Thdct+uAAAtZUAABF2tfet1uubvWs+93X13V650easE2PcbJjrA4m3QG05dYG+vDfWV3rrQ1sBTfMddtevdDWOQAVgN9fg+dzUAADGFsntdd3z/vX0H1R71lXTXVdZ8uvEdnZmpdV1ot64E9fIFixHWM2NwJ1l66zsdax7W53XAAAd6lBXWtlVRCAQAAHR6gAASqUnAbpyql668hye+evAnXAAAHCqAAARNO57VBvWO/tgAAa/1AAA7sZzvXAAA6EpqHWsBDXql7D67VdcCBt/s0vAb6SB1L69eJr0ACxHXagbh9chIG2qCsAABjkcodYN7U03X/+NgAAIATAAAKXoMKaReNC3102K33QppuumHWLDrEXZohAD1deAABjXXq9rjVuuNs0j9fsOt9qWOqqs112K671btOuuMcbAAAD54jIHtONy+m8rswq3O3+u76a3OT8dR8NRYcDYsSVbA3lI1h3NQAANNy9qqn864AAAF1V282PDOPOt7nWXrrZwNpf7bBdYuBsDPqrgbgAAWb8Qnr4F1jk64AAEroy3jYz9a6E2ZcbrvrgnGwAACgJSGlrlJYcDYeU3SibNDrHymjk670df1Otb3Xpfrn71uq65Nddzuv8abAAAhdp1fWwLrzGl/fTZ8eFhBvwg3EQbyIN1EGwhJqZ+tWCaim5s11wAABXGgAAfz1Jfrs517k69KJqcM2AAAp5UPOv2qrDzr4V1n864AAE2vJk6y9ddoU1MnXGrrcINhEG9nGe0M29HX7VVeb1oj65M9aZOty4WL/tY+14YzaGddRBt/A2wLrNJ1pX6x4Zp+uvgXW6QbHT1gE2f/xuaevh/XLeNVgmoi66dzSE43Q3W7UDsD5hVibndbxBuGPXxHrgAAeb9LeNAb17EG4AAA4LOtjVYJtzuuAABpOUqY0DvXxHrgAAUDT8HrpL6tKTYAAHVlPluXWxq3uut3XAAA+TbbsaMHr5x1sC60ydcAAB38oAAE5TPX6/llsAABksemJpv+sl3WSpNdd1u562y9Z8SuKg3AAAzsrTsaMWNh51ya60sZtgutUnXAAArgmAAAq/WSSs1AB8Xr0omwAAIPRHJ1vXk4dzUAAAwAfpxvdBscnWjrrlvGnB65+9ZKk21yaePrtp1oTjT09cZ+tmg3WWtSZE3664AAHnrE564YZpwesi8bbjNJcmpk61sDb1BuAABtb00OvgmajuNp11tUG1ZJoS02f9mPLtcL15y6/TdctU1EfXYLr//G+961AprX2tEIASTNcWmjYTRDxqLeunXXJrrtoN2a6y9ddzuvwvW0TrVgmnuTZNdZF40vXXMQboZ1vEG7OdYfU2eHXc7rp116G62IOZl0sWqTYLrv4N5TPYAACIY6CGws9fV0sVj7rQAtd1vEG4A9dzuvOg262NnP1yf6/ddfyM1Wg2w3rcL1rd60fVKeuvO6XhNV9t1+r657pd4IscgADnrp3NGo6/eDeMM1h6XjzrRF1wAAOOJgnGpk6wX9bAescnXrvrw4m8465kdcOEnivW67rJUm6UTYAAEHI3MG6VDISymnc0RbrmR1tiG+/daZOvqA2hmjS9U1j67lfOGBvqYGlIbDWU5szScdciz31PX/x9HIAbE6/PpdkeuH1zAAAZ9HRnW2frgAAQujJfrRMawAANwGxkNg8lbADbxd1bvW1zrPL55FZdOztgBsCQ3hONY8J0Y60/pZoxVAXXfrrkiaho64ndc5SOTXX77rVjGx+6xWlcmutUnXyiLRPc7TjX4dZy8n33Xgjr9aVxoixKsuaIt4sa2Trk11tNjWKJvvhNpaS6TrW81zEhe+Ss0hs6vWnLrx11gA64CAEAAAODqOlYeMkX3W86NJUN9DnSVDYB1WAAAivw4f2AABInzqhsQ6rAAA1L5NQ2a6NgAAXZDmobVk+wAANrp7UN7dK31DaDjWAAAldIwRPtQ3AAA/34XpXxobNJxwAAAfmgAAGqtJobn8ZwAACN5jd2wAAJpWLJx9QrSZZvrfMcgASobehWkqG6vRrqht2WbGobVAZ1qG32+c6hseWaiEAvUNoRa31DdcK3DQ3b6NY0N+d8xyAHGhufYHZobj0N5oy0tDe/o2rQ24n9gAARbzdAjJUNz3VXVDeSK2HQ30itx0NyqzadDcfd0XQ28udfUN2PVcNDawY13Q3P3z40NnDZc9DdDONLQ3yGNq0NtJFWeSipwNI57Sp1fIRvJax1VUYY08ca9f1eMNwAAGjqZQN3jZcihgpE2yMbic9O71h9TbIxtsY2WHXzGNgAAa1c5rrHv6hw60dxuORmOcb0DV//GnDiYM9fZhvxMbHp5nMN3midzDac43IhnQVrgAAAP0eONIMmwAACY6FymiApaYxuMOuNMbsjrEsNp3A7LDcaY08cbFYbMSZhKySLDaO42Sw2LlNFP0wAAFRKtR17mzY5xsAADEVqHdfgnOAAB1TUE40mw3JbNgAAMW8F1NgAAeQzWONceBgY6w7DcPpkHMarYbYoZ22G4AABvtdSGzngdthtbMbAAAuRbolbAAAZ9rgsbCX9Bv0wAANphWzGh5TYAAGB49+6x8poW92Rw2Y4bgAAeNd44bR4p4WlbbDbXY3/nXtKLxlm7FjTz1oJY2AABYHUAABS+WLOsAABRCeSxvdhsl57AAAzUkysahqJgAAZHUZWN4PugE64AABY1ZWdc5xubhs586d2N7cNvH3aDxsAAC0Gf7DcAAADTrKitrhuAAA9vI3wMwnWW4bRoZwEAPixsAADR6mV9YDdn4sb7uabPu/R64AAHplFwzZNdZphtMnXAAAlk5r3XW1rOdkwAAMQJ5nGjXjSDJsAACu8qvDdSe2FPXGYbgAAc0UhxN5J1pMiYAADW0h/60JxsAAAwDBfDdsOvXw3AAAsAyrw2WTrOXkjD67zRMAAApVqZdcROuAABgcxF40MKbxTrN/1uu60H9f/41osbAAAcgnLw3vpNhJ1q+G0OJqZOupsa/4bgAAMPlulNObG1kG4AAB8/QAADF+lnGwAAPTxsp19y4zblZQBtPw2rzrCQqBzjYTDffhvanX80Ti7GwAAFZ+i8NqBlYAAG+0wAAGaBC8N6j2a6dc9htMI2rUzQHGwiy6BjMBABpnXQojofGpv3YAAEGlX063sVKDhuBnXvUzgIAN9jSGdaIQARnX9jrgAAFbk1zVgAAHz14zrJJSwAAAbpYHGouGxBYpJY2nc1dEbuYZzRG8hxsMRud5WKKpoiNnM62nRaRikMI3M4bRHGwAALuhgAAZQjyzrtiNrsMwIpIsevbsaXEbOlljqqgAjcY42AABGL3A2uqF6twzjMNg5jS7Da3otEIBGYbYliwmG2rDd2uNWvzzGNS51kGU4AAB4NwAAPD74AAADmlOda1/PoYmd3rlvGveG0Cxp3TPPmQHON2nGwAAPZKf7NDS1btdcAAC+KoxxqZOvacbAAAgypobWDzraWkpZ634jfQKsUI25BUVCN3gPWqdcAADTXtvDcAAAl/oAABFfFLjXldZ6Rv9I2HejN6awEAJNdZyRtMnXAAAKsq7A2SuNgAAewzZ2Nn7GrOG5UXpQBs1I3AAA1Xp1F7AAAefprI3Tua8F1sjaxWJOQuuAABIeO+k1rI38M1gAAeAdAAAvZFrI2zGLRyNxmG1NxuWtXbw3TEbkxesHjSSxoAU0FB7nkb2R1kV7Ujxu0RuPI2ImLXyNkxG8XDY4uutC0keN+iNni66DxpBRv8XXfDlYHG5DjcJdcX/Msi6eONR3GmFGxlifVuNQo2seNgAASXiXMz8KNtFG2nEcAAD0qoAAADoqO6wFmfPhOTwzQv9Gwe5WyzWVt8uugVaaszGqUvphQFteR6lpXXxIzIW1ySMxm9rC2vsr6eAL41UjaZawMeZXV7aH4trB2h+b/UltYxxN0gztIzw9i3SM5eNv0jNy4nstrG08hSXSndf9E0RI3J2LZkZ7B1bmcsK2sIOXitrdkZ4nQ8QTP/e2VbXZzlTkZ7m60gYdcjNLDHTeZMt1suGTmDNUq2GOX/IzlUGx3Gd1taPYV1VbTKtDy5ySvR7daG2u8VWRtr0d1hDOUiuZzD0v5q8w9021irybNteJXPgQzyVzyX2wAAAgMgAAHgIGy64AAQAAGbRmGm8AAMGjfAADOcau7rObGwAAPnKTJ1uJG4AAEQGBZ6/hxoyk3CqbpUbgAAIxVAAAUhqMw3AAAc6plPXSN9HBZkJqWKueCq0p/7MqrmEMsqq41Xp22v4QytDDSZE5zjYAACI1T966vDcAABxqoAAD1/+mG4AAGQVBtG+I9cLRttUG7Iz2PmyAlTC8Y8JO1faWwL9X2ytIxdtYnRubb6jFdEzqlx6wcQe8evLfaNeFc7luN4wwDqiXmvbW5IZwHlz7a3vtZ7jM/bWJnVm9B/7a8tHqSFVA7X1o925Z0Cw2WjZi8s5Y63hL0e17Rq2V5fh2ugdLzYZZ0e077ddHrR2up1bIoZR0ZgqWSdGYdevzEqEWtoRMg+qS6jcLjM3Rn9dz0Gu8JG7YdbiRueVmaj13b15yw3gfphjNp7mMvVeO1iD6/MSt3XnM7Xofjf0Z2CS9sSpTe2yfWmj9EW1634+7WcgT387XU29Wx+oXazU5YQq3L1nTj9G0VvWSY/WcuP07HnTgrex5jkADGjfmRuAAAEDPORuZSrc0bth1u5jSqxsAABmqhydY940AcbAAATqriPWOMbZT1uXa8tHsZ+0jIW/oZUamt4mWD9cYYkQ/WVhNFd1sAzYAAEAM6pjTg9cAABD8oAAHF3QAACiqxh1jk61AjbxjPSo3ZUbIu24HeQ8puvBuZo3zeNcSNoBG4jxolk2AAB8OUAAAjFgs9cAACgajUjY5OuAAAyOUAAAocjGjfjRupw33kL8nev4mcTGfnCV/kzjdrcJK636zKSsri2u1bhUL1DUi3a5Khf7J2byWJnVvfVvv6y7tfxQX8xmlmpXqe53a6E1LFQUDrH4qZ7u1uS857tcljMS97vdrHlR3ta0enpV2v+7XJlL1oZvwjeenpVjMX1ajzd6sZojC5HtbbZPR7XHyZGjp59PZ7EtfT0J7WpMLSe1k9kw1jf3DW2xmwYru15tOMyUjP2O3OxmVUtue1neJQXtdFis9/aZ4zvsZrUFQKNdFGutIH/H1EsZs7Y3G2Yb2uWcmHYza+m5va8cDZTjO+cmEWtA8M4/7QnGdVdPd7WEyNve1zN0/3tYHp3ZxnOM979R0uM4XGd9v1T7X3vDC+1ouM1WgdIaO3Y2rsbkme+HwxzpZLSWXg3xWpxWivp863GeUz1fRrrBzCTR9TPefVaW0WQIzVo1Pg5wVrfqldP2t3ErrllF+1mo41ftaJfPBUy7Wp2AOg8lQvGYchunkqx4THkNq8laWEZsjO5EXt4zOsa9Ayz/tYYB2gFT9MbbhM4+M36+dranAHWJiLjsaq+M7y0cg60qSHbqZAgO6A6/B1uQRMGSHkOtS2et+M1AGfMRkbZ7o416B1n+M5tDaI620BGcDrR2evA68Blco62gJniDr8NMgwHWQdaMB0Y/qqDrmNMx7PRYDvY62cgAXs9z/dbjrdoGb461G2yMEzTgOrBMy4DpwTOuIrmMrD757jK4zTOkpWCHWyEzIh1zmmWl9LqRkZ2ynN4mSKhM4wkGfrHPJnGSvpeMNgmGzxxuJhvqHWKYbuh1ohAIAAHAdbeGygDZphuAAAR70AACw6nTDf0xvMw3WYbM06nmGyB0Y5AD/8aZ2sgz1wAAEyKqbGgI64wxqpuvWe7/+N6JVQWGwnjaTxuLIrI8bBLGwWG/TdYcOuMMbAAA/D6grXkjrksNu3A8rDYVhtO4GSWNgAAHtNGmNACm6JG8p+cBAAiw2/pNKR16JG3rDYNhsHtbjYbpsN5la0wxp440Vw22tl1sN+mG10dcOY0az7ejrgAAf7trmNXsNn2GxKGf7xu943Ned0nskOGxbZsjhsLe7h4b4LG/ExQHDc8Rv6PzjjrecN/FjaYjcLz0lw3AAAx753bL7jrlcNmOzaDxsAACLdi4UoBOs9w3W4bgJ1q/G3j7oHhuX43ZUVw8Nh/G+V+YNanSsazXrcAGmeG3PDcK6MLw3bONNa17X5IAAFGFGmG9vDZxOscgAJnreJ1i0MxyAEKetESah8bE1FtJqYJxsrxuYI3oCbTJ16Am4AAHGYwAAJmmQCNxX61ZJqsE2AAAOeOZOsz0qAEbGv1uN9EAjfFOt4E2mTrACNmU62TReQBs8cbqR5eQ2sceS/PvAACAAA7W1oRu6nXnzIi7GwAANfaxZqkGTYAABogs064AAB6PI9jSexrPY3XKHr2NV5iqRG+09rfY3Ww3AAAH5HyI2OQAEZ16Qm2uar4Rt+0XAQAliNyxyWBxsAAAuCnojcguv+VTkONmhN7FQxhxssRt95XAQAgAAPp9CONXA2xxG3O/vcRvsqGfEb/iNjn8xyAFY42AABLfVkY2AABxk1yBuqF6hONleN4PG85ZcnhW93jOzr1+VpMifQjcJhsSGpIkb0SNu9FWBjbHOtpI3pzrHIAfMG+5JumRs/0WiEA4eN/Ky85xsAACYVu5xugKtNI36kbuWkxpG7YTbt/NTC7pytnMNhLKQUjfaRsdI2+kbAyNsETaUTZGRsDezpkb751xgqxyAHmRv7HWgWNyyN76TegTfWRurWXpd1GyNlomzsjYQus4Rm1MTFYklom7ijdsY13I3d6pcfsi5Gy0TbMYvQE2BibQxN0oGRyAB+RtnlKiEARcNgBTRsJoKD1Fw3sjrSxNsoPUXDY0JubF6i4buhNiIqzhPOBRtpnX4irwVU55G2mdc9iNg8bpLr4l1i17UjxvOJs8sqMeNoPG2S6+ijeaKuXDTlLrDxNyZix1VUAABFVoAADTIglG2sxb/K1WMbjxNeBN4y66TDsFusmub5kbAcNt4m42dYAAva/J5kbBzG8Emz5dZ1IN/E3/LraRNgAY1SjY5ABW8axibUV12bNQwynRJtxXWRIzXvG8D6zncagq2ZXX8SbuV1sETYAAEDfDKTfiTeuxnB6aCWN9N1yq61cHsIRt7w3A9NJfGzpG4yTcr42sk3OrrRCAQAAGnJvV1rRUxyAEy42ck3BrrGwm7km+29tGusCk26Fzk11wAAD5uc11ley0QgHUJuAAAQa0AAC1vnhJrH42AAB9VS2uuyeS9rrKANo669vDf1KsWVSaYbjMN1s69vDf/40oA3XrrGyNj6619dbH41hny5jZKwAU7moAAEjtQAALsR2JNoG6yK5JcJsGk2t4bbJ1//jVYJvuusoA2Vcz8ku5L7XDdeCJtyo2OQAq8N+m6wAja3L2AAAz5VTY2AAAuh0JhuAABxJxg5V4E2JINeBNiLjXjdZImnJk3+yr+AUxzjbnjYLxuk3XAQAjnGnDidmTcLxskh6PeN6V1/j61LirjxvR/WwybYFeuPG1GTY5xlHI2uHLRCAIITYLddZJt/kHAAAO6khCa3IzLhNyImxsMZvOXZlzAAATsbmMbFbr18NlW66HxqxqllCbDHLD6m1FTSWTc9qWyMbAAAdaoG3WjbrfM8whG+XmvjRtW3Xbbr9kFiyqZOTexJui/7OkbKwm6ZG0AjcAAAO0e7ddhAtEIAKRNgAAIvDAAAqnq+3WQ7rt+ZwAAF+2N5N9vQxyAEAAAQOkSZoJRspcXAQAmCmsfjS+TYJRtJ3WwRNqd19O65Wqf1huwJ6pSbCImxETS4ZrRE2Yib5trD+hwAAJgJHuNoBG5XdfN40SGpVnraaNgtG4ttcBAAxo3OkbzZNwPTZGJuW2scrmVnLuoUjCmx0jawptxaboCb7GN3gk0QgBjRsDE3XRNK91gBGyq9a22vwAK/pNnx1qim+6Jp5euFfaWrlxX2ujG13dbwJuX3WWTrFwqHCm6V9oQR0xo3HONCeNosm4NQdZ5VdZSY0bH919Am9/dd2uUjo2eONgAAZoVJrr27GmBG0kOZaADsQ2EspgAALnlkHrmD17B6zGjcAABhbgMTeu+vXw2SHrY6N8LfRuMYGJuLibCYbRsNj3G9Q9ej+tMnXjKbjd14VTXgjcLRuMEy0o9v4mnJGx7jaEeuAABpkIkeuVMbK8bf7NQAAPpWceNpk64ETcAABMCVixo5OuN3XMRNbImpHhQ8prUev6/XAAAmq5xo2GHrgVNsKmxFTYsxvtk2LkbDZ1iHjfJjfzBvSia62NnmNynhQLXosqkxo3K8b911lomygDaMM1b8WV2JMaNsuTeVTbQJurI34LrVVN8/i1IJNgptAI2PcbjtVlUw+bxsJhuqSaUAbSz1lom9pjZQpsRPWSILnUe6J64TDb/hunc1drrhJ11Am2gTbrY14E2AEb7kmxu6yLxumpv7Mb0CbQmNt8s4nQc4pt1U2AEbiBN7p6+3Va2pstPW2nrLRs+BG9ATbrY1yia67rEpNv1TYAAAdXa9Ta9dampsTPWpnrci26Sm+N9ugpvwU2xmNx51gam1FTYyk1cPW56DK7Ejomw1Tf1hveZH9DNET1v7awirsBABgPXAAArsl6GaoybZWgfFjXmxrrY0xE3pkbk11r8TT89YyW2lCWG6pQL1wAAC/G5BN0y628xunhvgvXT0bnFN6F63GTbrY2AABpqIRet/Sb5ZNkMmh1yVtHo5AAAI2YEbKrGs6mxLJtrk1MnXsZNgAALh1AAAH9pRk3BGrKAisl69Xvpyx0xo3oXrYYkkmm/ddbDEkAI2ReNgAAeVVXON7L1psBZYTOc41TPX0SqrFN0ry2tBazEkxo3GSb9N18vDeAAC0psSvXSabUr1uTG5TTchk0gyb8jNdFNhHa+3vooptd3WjkbYxN/xq76ZtphtKVriab8ZNl9G0QgHKU2PcazXrmUs0160ZWsAABGVrXDZteu342/wFAcNwdXYETf6hn4k3i1p2JNzjydKJr3hu4I2hONG8Ntwm3jVvl8m/iahONi7GwAAEdKJZNpzG8zTf/42BE3rYbgRNnAm/m9dKhlRk2GFNsjG4t6/3DfFOuTGQy3rLZN7oRTW9cAABnJnW9ZO9mKb7wibAuOqPxVa/Jphs9U266bDMe1STYPDdZ8svtzAAAp0G9vWGYbth1jk66TTasE1LvXAAAz2buSaR3rp+N0d64AAD+7QAAFTxM71i+6xDTa/k3Dw3AAAUybp02HONO714eGxApsAADY/y9deHpsr03EFNsGNwHqUvTacxvD020EbgRNjk6+ldbH435g3A9NTH1p96y+9cAABlctKJqjpu2Mag3rVgmo667adce42AABNtMXptoI2UAb+JN2vHRyAE/pvj03oPrvkq//jYQjd/ps3VmxvrgAAZ9jAAA1IEQ02PPrMUBjz62oFea+tX03lybuH1zE9U19drlkYfWkGbTH1+hG0LDeLatEIAIvrO8s6UTTx9f0+uoo2FIbWEqksm6PTYS+ujx7pRN+EmuNG/x9ZLJsb02ngoqn1hL66PtOlE1lyapPrw8N0Km9eJunJuYY2CGbZYi6UTbQppLJscnXxvrUMkthm/BxpLJudSbA85JDNyhm6Z9fAABEM2/FNJDNhSG2bWYAZujvWwONsDNwd675KrQRuEI303rfim0eGzztakCva/JHPrG0U6UTfBdcAAAUycPDY3pvufXBIDXgAG2k9KJsc41b03pRNx9Ni5TQ4eb5ekuE3hVNhCNpk6+YzYeU18M3VpJ0omnd67IxsRBtxvp4vr/EipzG0vTf/43inWVhN5jNsUTX7rrCZtZfW4ybr11w+mzvTeRU2AAB+qIruvXfXOab0TN4TdVKTbRJsNU2Rdrcn10j65lJONJuc3X8WNT918jG2N9YS+tWM38vlXX1rFjTTDacxtDfXh6bo318b6wgUkm+s0w3JrryRNkLTfxpv1hvnfXFvrmHBxSRfRjdnY1MY3MpVjMNuUTQzTd2+svvXpRNgAAdDVIZNHuNxpjcapvO+sWMb6br0cNr4TUydeA+toxnwTzBO2wEAJdTcAAD0yYAABKojk61MzcB+srCajkbimN0H61Qbpqxmd02pXrRyNsAG5JTcAABeNlLTf2ZuQybdMbYzGpCm+wCcBAD3XW4kbHuNzH63ZTZqRsYnX4LrYomvXayTGbeZu7M3AAA4EHXfWe1NAhNtWS5Y2Yx0ke42y5NLP10czSFpsAAAgyWKJrMZOAgAx1NgAARAUPcbgAATmi71NgAAVTCwDN2mNqpG9UjevhslSbMCbSv13Zm1hpo1+ud02lnrNSNkqTYY9dr+v903jfrgAAO0MLfraLNq36/bJbAiW0hX6YoxRMuGGcwAGRZsBY20EppNNj3G0dxuKBsoE3AAAUFGOca8YbGtNp3qxgAG9+su9WiEANSN6+GwlpolQsqrGEgTHIAKBG8H9dJpsGg2QZNgAAd1jpkb3zN6pG7P9Zphlsxmckbyp1nu/WA9cAACips5xt0M2AAAVk39Os1I2mTrtpNikTYAAHIDBGm/xxrruvos2mTr2tNt96zGjaCE1GU2hxNHf1jmMw+FefMiImackbcWNwEAO5TdyRuxoWDu90RN2Im9pxpyRvIXWuGbsrN5LG/P9c9xv3XXGSbVl1wAAGa+gAAJmtpkbTJ1/OG4AAEMY3cG6WhfSxtEIAI2bHuN07moAAHbTBZ68Czf3JtHk2mTrjJNm/6ws9YgBv+U2AqbhCN+66zUjbrY00Ka0pNEbNv6TUs9cIRsks2MTrkj1izjbmzct43qXXRxNHJ1lzG8xprRZvSia8Ebw7N7TjeGTZBk3m8bYAb1Gmyi/cgDdQBsJCpWzriNN7TjYeTfdutZY3+nzuzNnAG2ZpLjxv03XAAANh6AAB8jwip0e43oCbq8NqMm9KJuaevwI33QbVZNwrG9cXOPZtPs37CNY91yy62XTYYBvBk2XDNUZNvFG1+zfYBvPmQb2bZdNuUE0spI9xv3XXoCbx7NpZ64IDe042AAABZXVjOJk2JAbFSG6P6zGjbwJsa02NQTtOstIaxyAEAACNqbijY2E2AABeEKzhtMTKl6bOgNmpm7bTbj2sbkSrBNlV1y+G919dqZv1M2h6blgN5/G7YDcBABi6baVLHDErm6xX9s/pvuA2GObCw1whG94DZWGskdnCEbsjGjKTYXTYeU0EsbgAAAJ1wAAPphxum/2G55jctJUSk2LBNN1NtkTd0psPU1S03d+9gAAYeUFuNHrNwAAFVRcBmxVLYCABSBuo1GGVKQ31qTm2XTaeVUx02d4lENNwAACdueQNwAAPgJ89N8oG1hyUNuuEI2xOb+LGvjm55jd3Sk9/bjxN14m1zm+5zcPrm6c21QVnxNg3tZldfpuuj436Yb1TGgUayWTfpus0w34ObkwNjkANyTZmBuck314bTJ1qqm/KNdbjNp3WIkbywNohAFKTexJu9W6jDNGRN1V07sDYK5tLqWFW5gAAZj1JObccVtLSdKfPK5sWJKWibBXNrLwy0TYC5vrpbP2NPINx4G91gueBu+I2XrrNXNpf7R9TYapv1c2EyNLT13rm6sjd05v/8aNzNEf1iAzeCDahBuzxXZsL0169DAg8ptkY29HXSQb7BNv6Tex9cIRuTXWwKb/GmwAAJfaql1pk69iTdR7MJGzyub83Nxbm0iDeW5ud030WbVgmtSEzSDcAADHeu5JpZBvsg3OQbVvGlrmy9dfD+stc362bgemo7m/HDdu5NdZTxQb9qq0mm9nTZlBtCkFNztCvZhViWBTaG5t/SaPcbWBNyvG0fVPH40tE2rSbtuCsPswIpNG5sR/WrBN131wImyaDdRpv0TXctLCrElomzaDcAADJvg6De25tk03cObR9U3Tm1zdbQSnyyawKbdbGzum4Y9cAAC5dtuxuBZuJg33JNwqm2BG/llvK5toI2uGbN/1pzG5epsAADs+n4psMeuAAAhGzHBsVxmy7pYFN/MG6adenY2HnWljN9VN1ZGx7jalJvuSblTr/F2wAABHGgAAKGsOTrAJswAAIQ+s5NtBG9pzbrutpSbuwbOD12UTf2DZ4+tMnXTQbAMJwEAJODfN40tE2jDNc4NwAABbOHSNpcG74jfNZvSibAAAl96yMa62NQCNwk68Kzat5uGGai2bL2N9A48K1NJpsuE2jwbIMm/Qzd7zfexuAgBrwbt4NmmG6dzXdJuSPXJSbth14AAGBTZgRt1sa1TrB5N//G1YJuFU09yaLBNqbGlomz+DbApvuk33JNgAAWSMpXrYFN6Cm099e3hugQ2xL5UKV7rCy0TfW5vgU2CZrgIAQAAPiGgAAXGiEIbWhx8AAMhDdr5sbc3Ceb7H1jS69H9f7huAABpQyPqlek3iIbUgkrcm7kzcBxt4eT/qbjVNsZjfnTZS5t0Q2s79A8ZhWa4CAGpZvVI3JrrprNqmjeAAEe42VSb1KbCQqT1m9pTe9Ztd3XfWbxlN3MzQkKikhtMnXAAAH26tk2COb+x187moAAAOvOSG/llIUhsRwqlIb1yylSG75TLUhsbkroCbdmS9eGxgDrjxvDmaxzNs5mvfSzOZushslI2c5rgIAJem+Hjaf2voU2j+bgQmmyG2PCe9hvo42pBJKAN7cmwe1smusd43HzNWZNvPG/njcjE2avmxVpnMNnLyYM9Y6pt7wmsBbBeNuKGx+zoShvoGXJrrceN2im/jjaIQA1k2sobt4698lUTjaucnrw3Uubx81yh/UQgBKhvZ0byobp8Zta2ZVDZkkPVQ3QDrgAAUF8GobogtiHVYypq6htcFbAAAs6FSC374z3UN6QW9ulcUFtDQ2MET0gtwAAAW+F6VjQWzSccAADDeVoLc/jPaC3G7tgAADSs1obVayjaG1aQq2hthGWuBbP6V0QWwdDZsFvD3bJBbfb52QW2dDY5AAKC2hFrigt66G0hlaIQDqC37obgIADQW59gd0Ft+c6DBb39G4wW19DZ+hsWLXPs9ogtgGG5ELehwMcgAHBblVmpwW2DDcUFt5c6khbBuNjkANDDa6kPeC3P3zGgtnDZQELdqK0GC3yGNxgtqjZVrbCH0R7aIYLo4TSWMgJpTTEtzmYRRIo5QtmTgHeBVMszIXhedM26UXVMcyrXEWQOyBtu68UgLXiB0LaqSBTnJZXCulsDwBF+MnEAAg+AQika/WKeoN6imahR52EXlU7W5YIpKfDSDejudxuHsrC9e/0cUlGZDE1YVUQodz1FRUFxll6mCd7RR+AJ8ADwWBptEkEBpQA7Bovi0KwpOthB1yRkXAv1ANuAT9aJsRHGFvs8AThbDCwVZUOyGNH+jF8Q99xRKwSecVTwEQiDpCR2oJgsKVgsBl9iwpqTfgTFg9JFU6zA1yncRgwbR6ZoX6gN2gPBZERAC15Qr34C8WMKMF4MHWJDSbjq/gTqWV4AhkmOw4SWORZKqH+OX2lNhwh2FuDGBm4sOItjOLArVBJqhzC5OrI2Q0TcACH7RyGDTYVajc7UY9bcNTvRuGQ7C3sD6niErtCUPVNq/zf6Bp8KQAMakkKtpXvoAIqxORbGMscRCGlAGoopwwSWpIumUeiyIMmPMDE4WRqCA+NQHmIIT0CqCxzC4dyYEG41bRKSmL9ign4xPhbWGUAEMWyQGD7BkZIhJgim2DUW1nXkFChw4ERppz4dKNQIptmAqjavpg1ACJgVvHF1VEEUhNe4bPkrU4TJPGdsjsgiXOEdhbG7mLqqO0UF+CycSZ7joPUgOI8sRRRvgAhFJLoAKZAD3YPZih0QrLcA3iEnwt6/oB1VAG9Chrh+BUs89EAcJvBEv4CQewqgABHsdrck+bCsYiEccOPYRXDUd2EmLdRQiNUQuWMx8mPOwoIwissBsC0bLZwnJAlLMUBR4sAqMEApaYLNYoClW8vIbAHVFhNyN6AHSiJ5LWTUzbBISFamnJNwgAVQFyNwjmJWxb+HsPzTIcbilNyti2IpaPYtu1fYfPXgMrbNYWgKoUxC8wky4Gp5yti28xMY4t36YnS4nsvJNIQuxb688YngJ3QABXl3o5ehwAo9esWwjSiR5JmTV9Li7mwQakif0jHFvJtYixbg1JPX6IlQDcxi+JFKkgjCMEFpEVuWslru5B7oNFMSYUeXSsVNeyMjVZyqd7hQ14tVyUF4zK4F4Bpm4toKAtKoiM5Ju6AHzgWhiW8W8FLSZURD0BfbsQEtutrK2LdiloNC3WhZ3DxGgNJBLZbFubclApaDWVYLGi6u0IjHuYVfJaDWVLFwFvhVvFukgQLlwYVxG5qcWLd3wxiRieigYKmCoCnH+lrxCpzJfbsCbifZOZR/l05JmhQuUYMftOtzLrEXqQKxlxRviLEtnmimxLYP4iwC4u9MUWEKTLDH7Vwlt8S2uqEySBcxqdxwQnjBnF1MGqfKmFMLJ7oALgxPgBjSCB4seTzLeLZbaxyS3uyDDbFxSWynolvFsuS0u7wShYQj/AxLZZUKuQYMGqn0hHCamJLa+NSjcl85KfPJC7uEVhTwILkEEHzyRBBfEEhwfEK7juVEI/Cfe5ZSomgPWA9hI9gsB6P3AOLvOiUHwHpNiZCB6Z8mMqTKQPSvkyEIBKB6+I2d4+o/Ji+PqtSYL8J2769sTA8ePOgKF8BtUJIpAUIAHIGOAlxW45i5odNEcIKFJnrNFtmt1Aeo1yAKEel8iD2px7IAMboRxoK59JUlGCNi/F0JyxZUtnW+FhhJ5Nqr+ju4okCiGuPHgGN3nFBYYvZE3BsIOYMl7BYdgJYVDLiWVKNrHJuIGnzSE3Rr3o2ZJcoSP1LbPfQKyUsqUIHlHwOGF3VSnSl4kwyYh4WOXiidtGGiTeIhNxAaVuOWMJuIGrxLr7hkEMu9JMx6MrZg3pJnt40Ta3ReIeGuZtSAyrroFjKKmleJ03K2+RGRKq2Yve6o7CPQcAuhXl5rx3l40KRRFVdCsneUdmoU2EWoKGA8Eq8AfsFOVr/oVYlaCo4gEivY8QY7j/i3XKqW92MdhKVBkkYIKME/WgQfUc3wGCzT9WDex4IZbXW4JkIEgRixiAAAZH8ARP6WQjMY8DICqbiAG6ShkGTcQFjGT+pTupgssg9i8A/moe+n6luzQpLCAK0twqWsNIXiwocaxpaA2MtxKMNzgk3EDyjVEEwTMti8LEXgE3EAfaQepaX+8TcQJ3+SC6BVfiXBC6DS2dcIJ4TbrCkLIHyI7VRQWW5J4TlRK+bAx6aAgYthevGeVOfwZvVp6anC9JwcdwvXnprXG1vMcS9NARekdsiWlrCL0njaWuOdaWhHxXgYgOolo9oB5OBPiu29ST4rUFU5YCSV1Fb9EbLeeGoaL1nwCsE1bRepCbQo3qhuInYiJL8RtxOhRgHvguuEICggo0VflHfAS22iEjAisCJk+P4aPrgX+5RaUlVziNExcq6vBoTs2A/gYysChNbY3ApsvEFkLVYF+/UyCIXhOFIwUzuB9XU/9g5W0GGW67zVR4BDXUNDssfxHZADifDUcIFB5394o/6ao8ibphSojJ6FuTCX+8JxAlEGnI/wciE0GYQXQIWDPHgDsoD7fkKGAv6uBY6nS/hn/RbXgPZbPGaFueB7Lb1uKgHxYuIDf6VX8IwvAmEDQGRdQALCwNt0CGMUc4KIkA4WChhYqCEG4ICqgzkNF84Y/+FDUNJJXi1MIlD5JhQk+QIL8m4IH1MLpxYPZb/nBXaYsPFiPlthcFaQQBXeNEaiyHU1CCsbETLekC2V7OmLcTegz8YYZSAHst3SovVFQYYCvy28GAVAhFh2h7LeggIZABJK8gLAPuWy0YTxKAFb1fyCHjQSSvEGpFsUqSeEP1KTJtDw099LVyYDplBPAC/1saBW5pxTujPydhEFb9XBJWwn9EUWJyUFBZQgCiAIvOh2LGEsigwBumAcCt/cvKlbLamzTHkMS86DREGGgcREIVu6YRoYaJuxChW8AIs6mw6MVTqIaBga8lKQrZdPhTB1Xi8LCtgPkmdLawIqqi2Xaa7YNF+qvGxWpOgwklGT8CAFVEkgR0H53JFDVwbie4Gbk/OoBUUAqH9VpFbYe5d9kveDQJIzTGB5GCe24ThfHOhhRlt6p4nukeOEJXgIjxIP4hc0VI8ApPJbiSIe1GXPytW49FbPoGAlLEABjZ/QZ5IBZblY4aFqPwKgV4CLAFTeUxWBfwDHyNhT/zsMTmWAZeBAoEoxUXh2CtURJYQRuBXQAON/kFiqSwgLcC06JdOW8QNCSFw6AEc/wFqmAxgozQGt+LOqZ7qQSCBcHYPxDTI/wp4FFuAa5BIv9JQMGkVjksArcCSKOTZeJJ4TZABfOJWQiSAQSl6EJ+j1uLZf55Vxqv4LKRA4QHgfBzy2ioEq2lcfgIVCER3RRBoZsMFvEDESseYgDGBKkxz5bXQwHyABnbX6VtQcFwuCBXeGTkOtwHqKSabE75bl3IdFfA9BhmwwO8RaBK1WmeVgG80VjZRICwEICX4BGbDGgLBEkKlrhk8AgDBNIYDNhn0ioSwZuq6wMMO44hcYBTAgFNRJPCpoBM/whIdElkS2YB8Yg1J8SaiNXLfOVv+OJ1iAKCtuwkH/sG4ygSHRgiE9yt/jAGndirIj845a/aXyiCdaqaAAGDEHm5+acCJOXdUEHhU9PqkK2N4aF+WbBW2sTjXDH/OkSKoI8gDUbF0fAmixG419cghPl5RikydCIVsqlgTCQArFYSMKQrbhuqdy166AfhgNBW2QrZwRDTJi+9knU2XvWJwreEsjcK3KFbS25W6LLA4SxVthN75/yAGlYniFDIlbJrL+QToSObwClW+N+UesxwzjQlgJHhc54MjhlOgBwMFqqge5gHQ/ESgAsmCoDhvzMimMWoW9LJGaZoGR1PIa1CJQ4/AapWHGAAAZduMGCtwkaumNgjZQK8Bf28/zEHqimqARYWBvHR4aAsugZTQIITilGlQXQm+gZIYoLAEAAA=";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.7.19";function _interopNamespace(A){if(A&&A.__esModule)return A;var e=Object.create(null);return A&&Object.keys(A).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(A,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return A[t]}})}})),e.default=A,Object.freeze(e)}var React__namespace=_interopNamespace(React);let random=A=>crypto.getRandomValues(new Uint8Array(A)),customRandom=(A,e,t)=>{let i=(2<{let r="";for(;;){let e=t(n),s=n;for(;s--;)if(r+=A[e[s]&i]||"",r.length===a)return r}}},customAlphabet=(A,e=21)=>customRandom(A,e,random);function JSON_parse(A){return JSON.parse(A.replaceAll("[","["))}const isDarwin=/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),CTRL_OR_CMD=isDarwin?"metaKey":"ctrlKey",nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",LOCAL_PROTOCOL="md://",VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}',DARK_BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}',FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="disk",DISK_ICON='',PNG_ICON_NAME="save-png",PNG_ICON='',SVG_ICON_NAME="save-svg",SVG_ICON='',EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzString={exports:{}};function splitFolderAndFilename(A){const e=A.lastIndexOf("/"),t=-1==e?A:A.substring(e+1);return{folderpath:obsidian.normalizePath(A.substring(0,e)),filename:t,basename:t.replace(/\.[^/.]+$/,"")}}function download(A,e,t){const i=document.createElement("a");i.setAttribute("href",(A?`${A},`:"")+e),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function getIMGFilename(A,e){return`${A.substring(0,A.lastIndexOf("."))}.${e}`}function getNewUniqueFilepath(A,e,t){let i=obsidian.normalizePath(`${t}/${e}`),n=A.getAbstractFileByPath(i),a=0;const r=e.endsWith(".excalidraw.md")?".excalidraw.md":e.slice(e.lastIndexOf("."));for(;n;)i=obsidian.normalizePath(`${t}/${e.slice(0,e.lastIndexOf(r))}_${a}${r}`),a++,n=A.getAbstractFileByPath(i);return i}function getDrawingFilename(A){return A.drawingFilenamePrefix+(""!==A.drawingFilenameDateTime?window.moment().format(A.drawingFilenameDateTime):"")+(A.compatibilityMode?".excalidraw":A.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(A,e){return(e.drawingEmbedPrefixWithFilename?A:"")+e.drawingFilnameEmbedPostfix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}async function checkAndCreateFolder(A){const e=app.vault;A=obsidian.normalizePath(A);const t=e.getAbstractFileByPathInsensitive(A);t&&t instanceof obsidian.TFolder||(t&&t instanceof obsidian.TFile&&new obsidian.Notice(`The folder cannot be created because it already exists as a file: ${A}.`),await e.createFolder(A))}!function(A){var e=function(){var A=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(A,e){if(!i[A]){i[A]={};for(var t=0;t>>8,t[2*i+1]=r%256}return t},decompressFromUint8Array:function(e){if(null==e)return a.decompress(e);for(var t=new Array(e.length/2),i=0,n=t.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,g),g++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,g),g++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,g),g++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,g),g++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,w==e-1){u.push(t(p));break}w++}return u.join("")},decompress:function(A){return null==A?"":""==A?null:a._decompress(A.length,32768,(function(e){return A.charCodeAt(e)}))},_decompress:function(e,t,i){var n,a,r,s,o,l,c,d=[],h=4,g=4,u=3,p="",w=[],m={val:i(0),position:t,index:1};for(n=0;n<3;n+=1)d[n]=n;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=A(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=A(r);break;case 2:return""}for(d[3]=c,a=c,w.push(c);;){if(m.index>e)return"";for(r=0,o=Math.pow(2,u),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[g++]=A(r),c=g-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[g++]=A(r),c=g-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,u),u++),d[c])p=d[c];else{if(c!==g)return null;p=a+a.charAt(0)}w.push(p),d[g++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,u),u++)}}};return a}();null!=A&&(A.exports=e)}(lzString);const{exportToSvg:exportToSvg,exportToBlob:exportToBlob}=excalidrawLib;let versionUpdateChecked=!1;const checkExcalidrawVersion=async A=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const A=async()=>JSON.parse(await obsidian.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),e=(await A()).map((A=>({version:A.tag_name,published:new Date(A.published_at)}))).filter((A=>A.version.match(/^\d+\.\d+\.\d+$/))).sort(((A,e)=>e.published-A.published))[0].version;isVersionNewerThanOther(e,PLUGIN_VERSION)&&new obsidian.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${e}`)}catch(A){errorlog({where:"Utils/checkExcalidrawVersion",error:A})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapText(A,e,t=!1,i=0){if(!e)return A;let n="";if(t){for(const t of A.split("\n")){const A=t.match(new RegExp(`(.){1,${e}}`,"g"));n+=A?`${A.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${e}})(\\s+|$\\n?)|([^\\s]{1,${e+i}})(\\s+|$\\n?)?`,"gm"),r=A.matchAll(a);let s;for(;!(s=r.next()).done;){n+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const A=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);n+="\n".repeat(A),0===A&&(n+="\n")}return n.replace(/\n$/,"")}const rotate=(A,e,t,i,n)=>[(A-t)*Math.cos(n)-(e-i)*Math.sin(n)+t,(A-t)*Math.sin(n)+(e-i)*Math.cos(n)+i],rotatedDimensions=A=>{if(0===A.angle)return[A.x,A.y,A.width,A.height];const e=A.x+A.width/2,t=A.y+A.height/2,[i,n]=rotate(A.x,A.y,e,t,A.angle),[a,r]=rotate(A.x+A.width,A.y+A.height,e,t,A.angle);return[i{const s=1/t.value;return{x:(A-i)*s-a,y:(e-n)*s-r}},getDataURL=async(A,e)=>new Promise(((t,i)=>{const n=new FileReader;n.onload=()=>{const A=n.result;t(A)},n.onerror=A=>i(A),n.readAsDataURL(new Blob([new Uint8Array(A)],{type:e}))})),getFontDataURL=async(A,e,t,i)=>{let n="",a="",r="";const s=A.metadataCache.getFirstLinkpathDest(e,t);if(s){const e=await A.vault.readBinary(s),t=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:s.basename,r=await getDataURL(e,t),n=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:r}},svgToBase64=A=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(A.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=A=>{if(!A)return null;const e=A.matchAll(/base64,(.*)/g).next(),t=window.atob(e.value[1]),i=t.length,n=new Uint8Array(i);for(let A=0;A{var i;try{return await exportToSvg({elements:A.elements,appState:Object.assign({exportBackground:e.withBackground,exportWithDarkMode:!!e.withTheme&&"light"!=(null===(i=A.appState)||void 0===i?void 0:i.theme)},A.appState),files:A.files,exportPadding:t})}catch(A){return null}},getPNG=async(A,e,t,i=1)=>{var n;try{return await exportToBlob({elements:A.elements,appState:Object.assign({exportBackground:e.withBackground,exportWithDarkMode:!!e.withTheme&&"light"!=(null===(n=A.appState)||void 0===n?void 0:n.theme)},A.appState),files:A.files,exportPadding:t,mimeType:"image/png",getDimensions:(A,e)=>({width:A*i,height:e*i,scale:i})})}catch(A){return errorlog({where:"Utils.getPNG",error:A}),null}},getQuickImagePreview=async(A,e,t)=>{if(!A.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(e,t),n=A.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian.TFile?"png"===t?await A.app.vault.readBinary(n):await A.app.vault.read(n):null},embedFontsInSVG=(A,e)=>{const t=null!=A.querySelector("text[font-family^='Virgil']"),i=null!=A.querySelector("text[font-family^='Cascadia']"),n=null!=A.querySelector("text[font-family^='LocalFont']"),a=A.querySelector("defs");return a&&(i||t||n)&&(a.innerHTML=``),A},getImageSize=async A=>new Promise(((e,t)=>{const i=new Image;i.onload=()=>e({height:i.naturalHeight,width:i.naturalWidth}),i.onerror=t,i.src=A})),scaleLoadedImage=(A,e)=>{let t=!1;if(!e||!A)return{dirty:t,scene:A};for(const i of e){const[e,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;return A.elements.filter((A=>"image"===A.type&&A.fileId===i.id)).forEach((A=>{const[i,r]=[A.width,A.height];if(a!=i/r){t=!0;const a=Math.sqrt(i*r*n/e),s=Math.sqrt(i*r*e/n);A.height=a,A.width=s,A.y+=(r-a)/2,A.x+=(i-s)/2}})),{dirty:t,scene:A}}},setDocLeftHandedMode=(A,e)=>{const t=e.createElement("style");t.id="excalidraw-left-handed",t.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=e.getElementById(t.id);i&&e.head.removeChild(i),A&&e.head.appendChild(t)},setLeftHandedMode=A=>{const e=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;i&&(e.has(i)||(e.add(i),setDocLeftHandedMode(A,i)))}))},getLinkParts=(A,e)=>{var t;const i=A.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:A,path:e&&""===i[1]?e.path:i[1],isBlockRef:"^"===i[2],ref:null===(t=i[3])||void 0===t?void 0:t.replaceAll(REG_BLOCK_REF_CLEAN,""),width:i[4]?parseInt(i[4]):void 0,height:i[5]?parseInt(i[5]):void 0}},compress=A=>lzString.exports.compressToBase64(A).replace(/(.{64})/g,"$1\n\n"),decompress=A=>lzString.exports.decompressFromBase64(A.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(A,e,t)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return t.frontmatter["excalidraw-export-dark"]?"dark":"light"}return A.settings.exportWithTheme?t:"light"},hasExportBackground=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!t.frontmatter["excalidraw-export-transparent"]}return A.settings.exportWithBackground},getExportPadding=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if(!(null==t?void 0:t.frontmatter))return A.settings.exportPaddingSVG;if(null!=t.frontmatter["excalidraw-export-padding"]){const A=parseInt(t.frontmatter["excalidraw-export-padding"]);if(!isNaN(A))return A}if(null!=t.frontmatter["excalidraw-export-svgpadding"]){const A=parseInt(t.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(A))return A}}return A.settings.exportPaddingSVG},getPNGScale=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-pngscale"]){const A=parseFloat(t.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(A)&&A>0)return A}}return A.settings.pngExportScale},isVersionNewerThanOther=(A,e)=>{const t=A.match(/(\d*)\.(\d*)\.(\d*)/),i=e.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(t&&4===t.length&&i&&4===i.length&&!(isNaN(parseInt(t[1]))||isNaN(parseInt(t[2]))||isNaN(parseInt(t[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(t[1])>parseInt(i[1])||parseInt(t[1])>=parseInt(i[1])&&parseInt(t[2])>parseInt(i[2])||parseInt(t[1])>=parseInt(i[1])&&parseInt(t[2])>=parseInt(i[2])&&parseInt(t[3])>parseInt(i[3])))},getEmbeddedFilenameParts=A=>{const e=null==A?void 0:A.match(/([^#\^]*)((#\^)(group=|area=)?([^\|]*)|(#)(group=|area=)?([^\^\|]*))(.*)/);return e?{filepath:e[1],hasBlockref:Boolean(e[3]),hasGroupref:"group="===e[4]||"group="===e[7],hasArearef:"area="===e[4]||"area="===e[7],blockref:e[5],hasSectionref:Boolean(e[6]),sectionref:e[8],linkpartReference:e[2],linkpartAlias:e[9]}:{filepath:A,hasBlockref:!1,hasGroupref:!1,hasArearef:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},errorlog=A=>{console.error(Object.assign({plugin:"Excalidraw"},A))},sleep$1=async A=>new Promise((e=>setTimeout(e,A))),log=console.log.bind(window.console);console.log.bind(window.console);const getParentOfClass=(A,e)=>{var t;let i=A.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(e);)i=i.parentElement;return(null===(t=null==i?void 0:i.classList)||void 0===t?void 0:t.contains(e))?i:null},getNewOrAdjacentLeaf=(A,e)=>{const t=e.id,i=app.workspace.getLayout(),n=A=>A.children.filter((A=>"leaf"!==A.type)).map((A=>n(A))).flat().concat(A.children.filter((A=>"leaf"===A.type)).map((A=>A.id))),a=n(i.main),r=i.main&&a.contains(t)?"main":i.floating&&n(i.floating).contains(t)?"popout":i.left&&n(i.left).contains(t)?"left":i.right&&n(i.right).contains(t)?"right":"hover",s=()=>{var A;let t=app.workspace.getMostRecentLeaf();return t&&t!==e&&(null===(A=t.view)||void 0===A?void 0:A.containerEl.ownerDocument)===document||(t=null,a.forEach((A=>{var i;const n=app.workspace.getLeafById(A);!t&&(null===(i=n.view)||void 0===i?void 0:i.navigation)&&e!==n&&(t=n)}))),t};if(A.settings.openInMainWorkspace||["main","left","right"].contains(r)){if(!A.settings.openInAdjacentPane){if("main"===r)return app.workspace.createLeafBySplit(e);const A=s();return A?"empty"===A.view.getViewType()?A:app.workspace.createLeafBySplit(A):app.workspace.getLeaf(!0)}const t=s();return null!=t?t:app.workspace.getLeaf(!0)}if(!A.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(e);if("hover"===r){const t=new Set;return app.workspace.iterateAllLeaves((A=>{A!==e&&e.containerEl.parentElement===A.containerEl.parentElement&&t.add(A)})),0===t.size?A.app.workspace.createLeafBySplit(e):Array.from(t)[0]}if("popout"===r){const A=new Set;return app.workspace.iterateAllLeaves((t=>{t!==e&&t.view.navigation&&t.view.containerEl.ownerDocument===e.view.containerEl.ownerDocument&&A.add(t)})),0===A.size?app.workspace.createLeafBySplit(e):Array.from(A)[0]}return A.app.workspace.createLeafBySplit(e)},getAttachmentsFolderAndFilePath=async(A,e,t)=>{let i=A.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const A=`${splitFolderAndFilename(e).folderpath}/`;i=obsidian.normalizePath(A+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(i),{folder:i,filepath:obsidian.normalizePath(""===i?t:`${i}/${t}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark");var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install this script",UPDATE_SCRIPT:"An update is available - Click to install",CHECKING_SCRIPT:"Checking if a newer version is available - Click to reinstall now",UNABLETOCHECK_SCRIPT:"Update check was unsuccessful - Click to reinstall now",UPTODATE_SCRIPT:"Script is installed and up to date - Click to reinstall now",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"New Excalidraw drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open an existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open an existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Transclude (embed) a drawing",TRANSCLUDE_MOST_RECENT:"Transclude (embed) the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create a new drawing - IN A NEW PANE",NEW_IN_ACTIVE_PANE:"Create a new drawing - IN THE CURRENT ACTIVE PANE",NEW_IN_POPOUT_WINDOW:"Create a new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create a new drawing - IN A NEW PANE - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create a new drawing - IN A POPOUT WINDOW - and embed into active document",EXPORT_SVG:"Save as SVG next to the current file",EXPORT_PNG:"Save as PNG next to the current file",TOGGLE_LOCK:"Toggle Text Element edit RAW/PREVIEW",DELETE_FILE:"Delete selected Image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:"Copy markdown link for selected element to clipboard. CTRL/CMD+Click to copy group link. SHIFT+click to copy an area link.",INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image from vault",INSERT_MD:"Insert markdown file from vault",INSERT_LATEX:"Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!})",ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",SAVE_AS_PNG:"Save as PNG into Vault (CTRL/CMD+CLICK to export)",SAVE_AS_SVG:"Save as SVG into Vault (CTRL/CMD+CLICK to export)",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a an ImageElement, or select a TextElement that contains an internal or external link.\nSHIFT CLICK this button to open the link in a new pane.\nCTRL/CMD CLICK the Image or TextElement on the canvas has the same effect!",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"File does not exist. Hold down ALT (or ALT+SHIFT) and CLICK link button to create a new file.",FORCE_SAVE:"Force-save to update transclusions in adjacent panes.\n(Check autosave settings in plugin settings.)",RAW:"Change to PREVIEW mode (only effects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only effects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is avaiable.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and it's name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be effected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_NAME:"Enable Autosave",AUTOSAVE_DESC:"Automatically save the active drawing, in case there are changes, every 15, 30 seconds, or 1, 2, 3, 4, or 5 minute. Save normally happens when you close Excalidraw or Obsidian, or move focus to another pane. I created this feature with mobile phones and tablets in mind, where 'swiping out Obsidian to close it' led to some data loss.",AUTOSAVE_INTERVAL_NAME:"Interval for autosave",AUTOSAVE_INTERVAL_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Effects filename only when embedding into a markdown document. This is text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not effect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF:Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not effected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal,view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:"CTRL/CMD + CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].",ADJACENT_PANE_NAME:"Open in adjacent pane",ADJACENT_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing adjacent pane, and try to open the link there. Excalidraw will look for the adjacent pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.",MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. ",LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',HOVERPREVIEW_NAME:"Hover preview without CTRL/CMD key",HOVERPREVIEW_DESC:"Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the CTRL/CMD key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the CTRL/CMD key while hovering the link.",LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:"CTRL/CMD + CLICK on text with [[links]] or [](links) to open them",LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can set manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images CTRL(Shift on Mac) drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This effects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:"The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (CTRL+SHIFT+i) and type in the following command: \"ExcalidrawAutomate.mostRecentMarkdownSVG\". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: \"excalidraw-css: css_file_in_vault|css-snippet\".",EMBED_HEAD:"Embed & Export",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"Toggle ON: Embed drawing as an SVG image into the markdown preview.
Toggle OFF: Embedd drawing as a PNG image. Note, that some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed SVG or PNG as Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not effect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Forth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",SELECT_FILE:"Select a file then press enter.",NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"发现可用更新 - 点击安装",CHECKING_SCRIPT:"检查脚本更新 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"已安装最新脚本 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图(Excalidraw 模式)",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图(在新面板)",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图(在当前面板)",TRANSCLUDE:"插入(嵌入)绘图到当前文档",TRANSCLUDE_MOST_RECENT:"插入(嵌入)最近编辑的绘图到当前文档",NEW_IN_NEW_PANE:"新建绘图(在新面板)",NEW_IN_ACTIVE_PANE:"新建绘图(在当前面板)",NEW_IN_NEW_PANE_EMBED:"新建绘图(在新面板),并插入(嵌入)到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图(在当前面板),并插入(嵌入)到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",TOGGLE_LOCK:"切换文本元素的原文/预览模式",DELETE_FILE:"删除所选的图像或以图像形式嵌入的 Markdown 文档(包括其源文件)",INSERT_LINK_TO_ELEMENT:"复制所选元素(以链接形式)",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入(链接)文件到当前绘图",INSERT_IMAGE:"插入(以图像形式嵌入)图像到当前绘图",INSERT_MD:"插入(以图像形式嵌入) Markdown 文档到当前绘图",INSERT_LATEX:"插入 LaTeX 公式",ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的最新发行版本说明",TRAY_MODE:"切换绘图工具属性页的面板(Panel)/托盘(Tray)模式",SEARCH:"搜索文本",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 自动化脚本",OPEN_AS_MD:"打开为 Markdown 文件(Markdown 模式)",SAVE_AS_PNG:"导出 PNG 到当前目录(按住 CTRL/CMD 设定导出路径)",SAVE_AS_SVG:"导出 SVG 到当前目录(按住 CTRL/CMD 设定导出路径)",OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。\n按住 SHIFT 并点击此按钮可在新面板中打开链接。\n您也可以直接在画布中按住 CTRL/CMD 并点击图形或文本元素来打开链接。",TEXT_ELEMENT_EMPTY:"未选中图形或文本元素,或者元素不包含有效的链接([[链接|别名]] 或 [别名](链接))",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"文件不存在。按住 ALT(或 ALT + SHIFT)并点击链接来创建新文件。",FORCE_SAVE:"立刻保存该绘图,并更新其他嵌入了该绘图的面板。\n(详见插件设置中的定期保存选项)",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件以兼容模式打开。转换为新格式以获得完整的插件功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图,并插入(嵌入)到当前文档”之类命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。 关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_NAME:"定期保存",AUTOSAVE_DESC:"定期保存当前绘图。此功能专为移动设备设计 —— 在桌面端,当您关闭 Excalidraw 或 Obsidian,或者移动焦点到其他面板的时候,软件是会自动保存的;但是在手机或平板上通过滑动手势退出 Obsidian 时,可能无法顺利触发自动保存。因此我添加了定期保存功能作为弥补。",AUTOSAVE_INTERVAL_NAME:"定期保存的时间间隔",AUTOSAVE_INTERVAL_DESC:"每隔多长时间执行一次保存。如果当前绘图没有发生改变,将不会进行定期保存。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"当前设置下,新绘图的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图”命令创建的绘图的文件名形如:",FILENAME_PREFIX_NAME:"文件名前缀",FILENAME_PREFIX_DESC:"文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图”命令创建的绘图的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"若开启此项,则在命令面板中执行“新建绘图,并插入(嵌入)到当前文档”之类命令时,创建的绘图文件名将以当前文档名作为开头。",FILENAME_POSTFIX_NAME:"“新建绘图”命令创建的绘图的文件名后缀",FILENAME_POSTFIX_DESC:"介于文件名前缀和文件名日期之间的文本。仅对“新建绘图”命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名日期",FILENAME_DATE_DESC:"文件名的最后一部分",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名;关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只影响托盘模式下,绘图工具属性页的位置。若开启此项,则托盘处于右侧。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,当前活动的 Excalidraw 面板的主题会随之改变。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式,禅模式,或者阅读模式。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",ZOOM_TO_FIT_NAME:"自动缩放以适应面板调整",ZOOM_TO_FIT_DESC:"调整面板大小时,自适应地缩放画布",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 嵌入到绘图中的文档(Transclusion)",LINKS_DESC:"按住 CTRL/CMD 并点击包含 [[链接]] 的文本元素可以打开其中的链接。如果所选文本元素包含多个 [[有效的 Obsidian 链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开 URL 链接。
链接的源文件被重命名时,绘图中相应的 [[链接]] 也会同步更新。若您不愿绘图中的链接文本因此而变化,可用 [[链接|别名]] 来使用别名。",ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开链接。如果找不到,再在新面板中打开链接。",LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览模式时,在链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"URL 的前缀",URL_PREFIX_DESC:'预览模式下,如果文本元素包含 URL 链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 Frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',HOVERPREVIEW_NAME:"鼠标悬停预览链接",HOVERPREVIEW_DESC:"开启:鼠标悬停在 [[链接]] 上即可预览。
关闭:鼠标悬停在 [[链接]] 上,并且按住 CTRL/CMD 时进行预览。",LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:"按住 CTRL/CMD 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接",LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"嵌入文档(Translusion)的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"嵌入文档(Translusion)的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"嵌入文档(Translusion)的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[Markdown 文档]] 的形式将文档嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:"您可以将 Markdown 文档以图像(而非链接)的形式嵌入到绘图中,方法是按住 CTRL/CMD 并从文件管理器中把文档拖入绘图,或者使用命令面板里的相关命令。",MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 图像的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 图像的高度取决于文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 Frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_PREVIEW_SVG_NAME:"在 Markdown 阅读视图下显示 SVG 格式的预览图",EMBED_PREVIEW_SVG_DESC:"Obsidian 的 Markdown 阅读视图默认会将嵌入的绘图显示为 SVG 格式的预览图。若关闭此项,则显示为 PNG 格式。",PREVIEW_MATCH_OBSIDIAN_NAME:"预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,的预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时的预览图。
您可为嵌入到文档中的某个绘图单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”之类命令时,要嵌入绘图文件,还是嵌入其 PNG 或 SVG 副本。
如果您想在该下拉框中选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 格式副本”或“自动导出 SVG 格式副本”开关。若您选择了嵌入 PNG 或 SVG 副本,当绘图缺少对应的 PNG 或 SVG 副本时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 该选项不会帮您自动生成 PNG/SVG 副本,而只会引用已经存在的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_SVG_PADDING_NAME:"导出 SVG 图像的边距",EXPORT_SVG_PADDING_DESC:"导出的 PNG 图像的空白边距(像素)。增加该值,可以避免在导出 SVG 图像时,过于靠近画布边缘的图形被裁掉。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 .SVG 和 .PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 格式副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 格式副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。",EXPORT_PNG_NAME:"自动导出 PNG 格式副本",EXPORT_PNG_DESC:"和“自动导出 SVG 格式副本”类似,但是导出格式为 *.PNG。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 格式副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"保持同一绘图的新旧格式文件内容一致",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启 Field Suggester",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",SELECT_FILE:"选择一个文件后按回车。",NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian.moment.locale()];function t$d(A){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian.moment.locale()}),locale&&locale[A]||en[A]}var html2canvas$1={exports:{}}; /*! * html2canvas 1.4.0 * Copyright (c) 2022 Niklas von Hertzen @@ -19,6 +19,6 @@ const EXCALIDRAW_PACKAGES = "PQKhAIAEBsEsGMCmA7Azo8AlRBDeAXcANwEYB2AOgAYKAmAKHAg OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,i=arguments.length;t0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&t>10),s%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),w=10,p=13,B=15,m=17,f=18,E=19,C=20,F=21,v=22,y=24,Q=25,b=26,U=27,x=28,I=30,S=32,T=33,L=34,M=35,H=37,D=38,k=39,N=40,O=42,R=[9001,65288],P="×",V="÷",K=function(A){var e,t,i,n=function(A){var e,t,i,n,a,s=.75*A.length,r=A.length,o=0;"="===A[A.length-1]&&(s--,"="===A[A.length-2]&&s--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(s):new Array(s),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(A),a=Array.isArray(n)?function(A){for(var e=A.length,t=[],i=0;i0;){var s=i[--a];if(Array.isArray(A)?-1!==A.indexOf(s):A===s)for(var r=t;r<=i.length;){var o;if((o=i[++r])===e)return!0;if(o!==w)break}if(s!==w)break}return!1},q=function(A,e){for(var t=A;t>=0;){var i=e[t];if(i!==w)return i;t--}return 0},_=function(A,e,t,i,n){if(0===t[i])return P;var a=i-1;if(Array.isArray(n)&&!0===n[a])return P;var s=a-1,r=a+1,o=e[a],l=s>=0?e[s]:0,c=e[r];if(2===o&&3===c)return P;if(-1!==W.indexOf(o))return"!";if(-1!==W.indexOf(c))return P;if(-1!==X.indexOf(c))return P;if(8===q(a,e))return V;if(11===K.get(A[a]))return P;if((o===S||o===T)&&11===K.get(A[r]))return P;if(7===o||7===c)return P;if(9===o)return P;if(-1===[w,p,B].indexOf(o)&&9===c)return P;if(-1!==[m,f,E,y,x].indexOf(c))return P;if(q(a,e)===v)return P;if(Z(23,v,a,e))return P;if(Z([m,f],F,a,e))return P;if(Z(12,12,a,e))return P;if(o===w)return V;if(23===o||23===c)return P;if(16===c||16===o)return V;if(-1!==[p,B,F].indexOf(c)||14===o)return P;if(36===l&&-1!==j.indexOf(o))return P;if(o===x&&36===c)return P;if(c===C)return P;if(-1!==G.indexOf(c)&&o===Q||-1!==G.indexOf(o)&&c===Q)return P;if(o===U&&-1!==[H,S,T].indexOf(c)||-1!==[H,S,T].indexOf(o)&&c===b)return P;if(-1!==G.indexOf(o)&&-1!==z.indexOf(c)||-1!==z.indexOf(o)&&-1!==G.indexOf(c))return P;if(-1!==[U,b].indexOf(o)&&(c===Q||-1!==[v,B].indexOf(c)&&e[r+1]===Q)||-1!==[v,B].indexOf(o)&&c===Q||o===Q&&-1!==[Q,x,y].indexOf(c))return P;if(-1!==[Q,x,y,m,f].indexOf(c))for(var d=a;d>=0;){if((h=e[d])===Q)return P;if(-1===[x,y].indexOf(h))break;d--}if(-1!==[U,b].indexOf(c))for(d=-1!==[m,f].indexOf(o)?s:a;d>=0;){var h;if((h=e[d])===Q)return P;if(-1===[x,y].indexOf(h))break;d--}if(D===o&&-1!==[D,k,L,M].indexOf(c)||-1!==[k,L].indexOf(o)&&-1!==[k,N].indexOf(c)||-1!==[N,M].indexOf(o)&&c===N)return P;if(-1!==J.indexOf(o)&&-1!==[C,b].indexOf(c)||-1!==J.indexOf(c)&&o===U)return P;if(-1!==G.indexOf(o)&&-1!==G.indexOf(c))return P;if(o===y&&-1!==G.indexOf(c))return P;if(-1!==G.concat(Q).indexOf(o)&&c===v&&-1===R.indexOf(A[r])||-1!==G.concat(Q).indexOf(c)&&o===f)return P;if(41===o&&41===c){for(var g=t[a],u=1;g>0&&41===e[--g];)u++;if(u%2!=0)return P}return o===S&&c===T?P:V},$=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],i=[],n=[];return A.forEach((function(A,a){var s=K.get(A);if(s>50?(n.push(!0),s-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return i.push(a),t.push(16);if(4===s||11===s){if(0===a)return i.push(a),t.push(I);var r=t[a-1];return-1===Y.indexOf(r)?(i.push(i[a-1]),t.push(r)):(i.push(a),t.push(I))}return i.push(a),31===s?t.push("strict"===e?F:H):s===O||29===s?t.push(I):43===s?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(H):t.push(I):void t.push(s)})),[i,t,n]}(A,e.lineBreak),i=t[0],n=t[1],a=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[Q,I,O].indexOf(A)?H:A})));var s="keep-all"===e.wordBreak?a.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[i,n,s]},AA=function(){function A(A,e,t,i){this.codePoints=A,this.required="!"===e,this.start=t,this.end=i}return A.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),eA=45,tA=43,iA=-1,nA=function(A){return A>=48&&A<=57},aA=function(A){return nA(A)||A>=65&&A<=70||A>=97&&A<=102},sA=function(A){return 10===A||9===A||32===A},rA=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},oA=function(A){return rA(A)||nA(A)||A===eA},lA=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},cA=function(A,e){return 92===A&&10!==e},dA=function(A,e,t){return A===eA?rA(e)||cA(e,t):!!rA(A)||!(92!==A||!cA(A,e))},hA=function(A,e,t){return A===tA||A===eA?!!nA(e)||46===e&&nA(t):nA(46===A?e:A)},gA=function(A){var e=0,t=1;A[e]!==tA&&A[e]!==eA||(A[e]===eA&&(t=-1),e++);for(var i=[];nA(A[e]);)i.push(A[e++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===A[e]&&e++;for(var a=[];nA(A[e]);)a.push(A[e++]);var s=a.length,r=s?parseInt(l.apply(void 0,a),10):0;69!==A[e]&&101!==A[e]||e++;var o=1;A[e]!==tA&&A[e]!==eA||(A[e]===eA&&(o=-1),e++);for(var c=[];nA(A[e]);)c.push(A[e++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return t*(n+r*Math.pow(10,-s))*Math.pow(10,o*d)},uA={type:2},wA={type:3},pA={type:4},BA={type:13},mA={type:8},fA={type:21},EA={type:9},CA={type:10},FA={type:11},vA={type:12},yA={type:14},QA={type:23},bA={type:1},UA={type:25},xA={type:24},IA={type:26},SA={type:27},TA={type:28},LA={type:29},MA={type:31},HA={type:32},DA=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(o(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==HA;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),i=this.peekCodePoint(2);if(oA(e)||cA(t,i)){var n=dA(e,t,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),BA;break;case 39:return this.consumeStringToken(39);case 40:return uA;case 41:return wA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),yA;break;case tA:if(hA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return pA;case eA:var a=A,s=this.peekCodePoint(0),r=this.peekCodePoint(1);if(hA(a,s,r))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(dA(a,s,r))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(s===eA&&62===r)return this.consumeCodePoint(),this.consumeCodePoint(),xA;break;case 46:if(hA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===iA)return this.consumeToken()}break;case 58:return IA;case 59:return SA;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===eA&&this.peekCodePoint(2)===eA)return this.consumeCodePoint(),this.consumeCodePoint(),UA;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(dA(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return TA;case 92:if(cA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return LA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),mA;break;case 123:return FA;case 125:return vA;case 117:case 85:var g=this.peekCodePoint(0),u=this.peekCodePoint(1);return g!==tA||!aA(u)&&63!==u||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),EA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),fA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),CA;break;case iA:return HA}return sA(A)?(this.consumeWhiteSpace(),MA):nA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):rA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:l(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();aA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(l.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(l.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var i=parseInt(l.apply(void 0,A),16);if(this.peekCodePoint(0)===eA&&aA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];aA(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===iA)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===iA||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),QA)}for(;;){var i=this.consumeCodePoint();if(i===iA||41===i)return{type:22,value:l.apply(void 0,A)};if(sA(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===iA||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,A)}):(this.consumeBadUrlRemnants(),QA);if(34===i||39===i||40===i||lA(i))return this.consumeBadUrlRemnants(),QA;if(92===i){if(!cA(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),QA;A.push(this.consumeEscapedCodePoint())}else A.push(i)}},A.prototype.consumeWhiteSpace=function(){for(;sA(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===iA)return;cA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=l.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var i=this._value[t];if(i===iA||void 0===i||i===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===i)return this._value.splice(0,t),bA;if(92===i){var n=this._value[t+1];n!==iA&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):cA(i,n)&&(e+=this.consumeStringSlice(t),e+=l(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==tA&&t!==eA||A.push(this.consumeCodePoint());nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===t&&nA(i))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((i===tA||i===eA)&&nA(n)||nA(i)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[gA(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return dA(i,n,a)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(aA(A)){for(var e=l(A);aA(this.peekCodePoint(0))&&e.length<6;)e+=l(this.consumeCodePoint());sA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===iA?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(oA(e))A+=l(e);else{if(!cA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=l(this.consumeEscapedCodePoint())}}},A}(),kA=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new DA;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||XA(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?HA:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),NA=function(A){return 15===A.type},OA=function(A){return 17===A.type},RA=function(A){return 20===A.type},PA=function(A){return 0===A.type},VA=function(A,e){return RA(A)&&A.value===e},KA=function(A){return 31!==A.type},GA=function(A){return 31!==A.type&&4!==A.type},WA=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},XA=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},zA=function(A){return 17===A.type||15===A.type},YA=function(A){return 16===A.type||zA(A)},JA=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},jA={type:17,number:0,flags:4},ZA={type:16,number:50,flags:4},qA={type:16,number:100,flags:4},_A=function(A,e,t){var i=A[0],n=A[1];return[$A(i,e),$A(void 0!==n?n:i,t)]},$A=function(A,e){if(16===A.type)return A.number/100*e;if(NA(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},Ae="grad",ee="turn",te=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case Ae:return Math.PI/200*e.number;case"rad":return e.number;case ee:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},ie=function(A){return 15===A.type&&("deg"===A.unit||A.unit===Ae||"rad"===A.unit||A.unit===ee)},ne=function(A){switch(A.filter(RA).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[jA,jA];case"to top":case"bottom":return ae(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[jA,qA];case"to right":case"left":return ae(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[qA,qA];case"to bottom":case"top":return ae(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[qA,jA];case"to left":case"right":return ae(270)}return 0},ae=function(A){return Math.PI*A/180},se=function(A,e){if(18===e.type){var t=ue[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var i=e.value.substring(0,1),n=e.value.substring(1,2),a=e.value.substring(2,3);return le(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===e.value.length){i=e.value.substring(0,1),n=e.value.substring(1,2),a=e.value.substring(2,3);var s=e.value.substring(3,4);return le(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(s+s,16)/255)}if(6===e.value.length)return i=e.value.substring(0,2),n=e.value.substring(2,4),a=e.value.substring(4,6),le(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===e.value.length)return i=e.value.substring(0,2),n=e.value.substring(2,4),a=e.value.substring(4,6),s=e.value.substring(6,8),le(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(s,16)/255)}if(20===e.type){var r=pe[e.value.toUpperCase()];if(void 0!==r)return r}return pe.TRANSPARENT},re=function(A){return 0==(255&A)},oe=function(A){var e=255&A,t=255&A>>8,i=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+i+","+t+","+e/255+")":"rgb("+n+","+i+","+t+")"},le=function(A,e,t,i){return(A<<24|e<<16|t<<8|Math.round(255*i)<<0)>>>0},ce=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},de=function(A,e){var t=e.filter(GA);if(3===t.length){var i=t.map(ce),n=i[0],a=i[1],s=i[2];return le(n,a,s,1)}if(4===t.length){var r=t.map(ce),o=(n=r[0],a=r[1],s=r[2],r[3]);return le(n,a,s,o)}return 0};function he(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var ge=function(A,e){var t=e.filter(GA),i=t[0],n=t[1],a=t[2],s=t[3],r=(17===i.type?ae(i.number):te(A,i))/(2*Math.PI),o=YA(n)?n.number/100:0,l=YA(a)?a.number/100:0,c=void 0!==s&&YA(s)?$A(s,1):1;if(0===o)return le(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,g=he(h,d,r+1/3),u=he(h,d,r),w=he(h,d,r-1/3);return le(255*g,255*u,255*w,c)},ue={hsl:ge,hsla:ge,rgb:de,rgba:de},we=function(A,e){return se(A,kA.create(e).parseComponentValue())},pe={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Be={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(RA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},me={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fe=function(A,e){var t=se(A,e[0]),i=e[1];return i&&YA(i)?{color:t,stop:i}:{color:t,stop:null}},Ee=function(A,e){var t=A[0],i=A[A.length-1];null===t.stop&&(t.stop=jA),null===i.stop&&(i.stop=qA);for(var n=[],a=0,s=0;sa?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(s=0;sA.optimumDistance)?{optimumCorner:e,optimumDistance:r}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},ye=function(A,e){var t=ae(180),i=[];return WA(e).forEach((function(e,n){if(0===n){var a=e[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(t=ne(e));if(ie(a))return void(t=(te(A,a)+ae(270))%ae(360))}var s=fe(A,e);i.push(s)})),{angle:t,stops:i,type:1}},Qe="closest-side",be="farthest-side",Ue="closest-corner",xe="farthest-corner",Ie="circle",Se="ellipse",Te="cover",Le="contain",Me=function(A,e){var t=0,i=3,n=[],a=[];return WA(e).forEach((function(e,s){var r=!0;if(0===s?r=e.reduce((function(A,e){if(RA(e))switch(e.value){case"center":return a.push(ZA),!1;case"top":case"left":return a.push(jA),!1;case"right":case"bottom":return a.push(qA),!1}else if(YA(e)||zA(e))return a.push(e),!1;return A}),r):1===s&&(r=e.reduce((function(A,e){if(RA(e))switch(e.value){case Ie:return t=0,!1;case Se:return t=1,!1;case Le:case Qe:return i=0,!1;case be:return i=1,!1;case Ue:return i=2,!1;case Te:case xe:return i=3,!1}else if(zA(e)||YA(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),r)),r){var o=fe(A,e);n.push(o)}})),{size:i,shape:t,stops:n,position:a,type:2}},He=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var i=ke[e.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return i(A,e.values)}throw new Error("Unsupported image type "+e.type)};var De,ke={"linear-gradient":function(A,e){var t=ae(180),i=[];return WA(e).forEach((function(e,n){if(0===n){var a=e[0];if(20===a.type&&"to"===a.value)return void(t=ne(e));if(ie(a))return void(t=te(A,a))}var s=fe(A,e);i.push(s)})),{angle:t,stops:i,type:1}},"-moz-linear-gradient":ye,"-ms-linear-gradient":ye,"-o-linear-gradient":ye,"-webkit-linear-gradient":ye,"radial-gradient":function(A,e){var t=0,i=3,n=[],a=[];return WA(e).forEach((function(e,s){var r=!0;if(0===s){var o=!1;r=e.reduce((function(A,e){if(o)if(RA(e))switch(e.value){case"center":return a.push(ZA),A;case"top":case"left":return a.push(jA),A;case"right":case"bottom":return a.push(qA),A}else(YA(e)||zA(e))&&a.push(e);else if(RA(e))switch(e.value){case Ie:return t=0,!1;case Se:return t=1,!1;case"at":return o=!0,!1;case Qe:return i=0,!1;case Te:case be:return i=1,!1;case Le:case Ue:return i=2,!1;case xe:return i=3,!1}else if(zA(e)||YA(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),r)}if(r){var l=fe(A,e);n.push(l)}})),{size:i,shape:t,stops:n,position:a,type:2}},"-moz-radial-gradient":Me,"-ms-radial-gradient":Me,"-o-radial-gradient":Me,"-webkit-radial-gradient":Me,"-webkit-gradient":function(A,e){var t=ae(180),i=[],n=1;return WA(e).forEach((function(e,t){var a=e[0];if(0===t){if(RA(a)&&"linear"===a.value)return void(n=1);if(RA(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var s=se(A,a.values[0]);i.push({stop:jA,color:s})}else if("to"===a.name)s=se(A,a.values[0]),i.push({stop:qA,color:s});else if("color-stop"===a.name){var r=a.values.filter(GA);if(2===r.length){s=se(A,r[1]);var o=r[0];OA(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:s})}}})),1===n?{angle:(t+ae(180))%ae(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},Ne={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return GA(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!ke[A.name])}(A)})).map((function(e){return He(A,e)}))}},Oe={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(RA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Re={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return WA(e).map((function(A){return A.filter(YA)})).map(JA)}},Pe={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return WA(e).map((function(A){return A.filter(RA).map((function(A){return A.value})).join(" ")})).map(Ve)}},Ve=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(De||(De={}));var Ke,Ge={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return WA(e).map((function(A){return A.filter(We)}))}},We=function(A){return RA(A)||YA(A)},Xe=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},ze=Xe("top"),Ye=Xe("right"),Je=Xe("bottom"),je=Xe("left"),Ze=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return JA(e.filter(YA))}}},qe=Ze("top-left"),_e=Ze("top-right"),$e=Ze("bottom-right"),At=Ze("bottom-left"),et=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tt=et("top"),it=et("right"),nt=et("bottom"),at=et("left"),st=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:0}}},rt=st("top"),ot=st("right"),lt=st("bottom"),ct=st("left"),dt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ht={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},gt={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(RA).reduce((function(A,e){return A|ut(e.value)}),0)}},ut=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},wt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},pt={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(Ke||(Ke={}));var Bt,mt={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?Ke.STRICT:Ke.NORMAL}},ft={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=function(A,e){return RA(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:YA(A)?$A(A,e):e},Ct={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:He(A,e)}},Ft={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},vt={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},yt=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},Qt=yt("top"),bt=yt("right"),Ut=yt("bottom"),xt=yt("left"),It={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(RA).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},St={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Tt=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},Lt=Tt("top"),Mt=Tt("right"),Ht=Tt("bottom"),Dt=Tt("left"),kt={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},Nt={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Ot={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&VA(e[0],"none")?[]:WA(e).map((function(e){for(var t={color:pe.TRANSPARENT,offsetX:jA,offsetY:jA,blur:jA},i=0,n=0;n1?1:0],this.overflowWrap=Bi(A,St,e.overflowWrap),this.paddingTop=Bi(A,Lt,e.paddingTop),this.paddingRight=Bi(A,Mt,e.paddingRight),this.paddingBottom=Bi(A,Ht,e.paddingBottom),this.paddingLeft=Bi(A,Dt,e.paddingLeft),this.paintOrder=Bi(A,di,e.paintOrder),this.position=Bi(A,Nt,e.position),this.textAlign=Bi(A,kt,e.textAlign),this.textDecorationColor=Bi(A,Zt,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=Bi(A,qt,null!==(i=e.textDecorationLine)&&void 0!==i?i:e.textDecoration),this.textShadow=Bi(A,Ot,e.textShadow),this.textTransform=Bi(A,Rt,e.textTransform),this.transform=Bi(A,Pt,e.transform),this.transformOrigin=Bi(A,Wt,e.transformOrigin),this.visibility=Bi(A,Xt,e.visibility),this.webkitTextStrokeColor=Bi(A,hi,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=Bi(A,gi,e.webkitTextStrokeWidth),this.wordBreak=Bi(A,zt,e.wordBreak),this.zIndex=Bi(A,Yt,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return re(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ii(this.display,4)||ii(this.display,33554432)||ii(this.display,268435456)||ii(this.display,536870912)||ii(this.display,67108864)||ii(this.display,134217728)},A}(),wi=function(A,e){this.content=Bi(A,ni,e.content),this.quotes=Bi(A,oi,e.quotes)},pi=function(A,e){this.counterIncrement=Bi(A,ai,e.counterIncrement),this.counterReset=Bi(A,si,e.counterReset)},Bi=function(A,e,t){var i=new DA,n=null!=t?t.toString():e.initialValue;i.write(n);var a=new kA(i.read());switch(e.type){case 2:var s=a.parseComponentValue();return e.parse(A,RA(s)?s.value:e.initialValue);case 0:return e.parse(A,a.parseComponentValue());case 1:return e.parse(A,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(e.format){case"angle":return te(A,a.parseComponentValue());case"color":return se(A,a.parseComponentValue());case"image":return He(A,a.parseComponentValue());case"length":var r=a.parseComponentValue();return zA(r)?r:jA;case"length-percentage":var o=a.parseComponentValue();return YA(o)?o:jA;case"time":return Jt.parse(A,a.parseComponentValue())}}},mi=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},fi=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,mi(e,3),this.styles=new ui(A,window.getComputedStyle(e,null)),yn(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=r(this.context,e),mi(e,4)&&(this.flags|=16)},Ei="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ci="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Fi=0;Fi=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),Qi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bi="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Ui=0;Ui>10),s%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},Hi=function(A,e){var t,i,n,a=function(A){var e,t,i,n,a,s=.75*A.length,r=A.length,o=0;"="===A[A.length-1]&&(s--,"="===A[A.length-2]&&s--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(s):new Array(s),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(A),s=Array.isArray(a)?function(A){for(var e=A.length,t=[],i=0;i=55296&&n<=56319&&t=t)return{done:!0,value:null};for(var A=Di;is.x||n.y>s.y;return s=n,0===e||r}));return A.body.removeChild(e),r}(document);return Object.defineProperty(Ki,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),i=t.getContext("2d");if(!i)return!1;e.src="data:image/svg+xml,";try{i.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Ki,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var i=e.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,t,t);var n=new Image,a=e.toDataURL();n.src=a;var s=Pi(t,t,0,0,n);return i.fillStyle="red",i.fillRect(0,0,t,t),Vi(s).then((function(e){i.drawImage(e,0,0);var n=i.getImageData(0,0,t,t).data;i.fillStyle="red",i.fillRect(0,0,t,t);var s=A.createElement("div");return s.style.backgroundImage="url("+a+")",s.style.height="100px",Ri(n)?Vi(Pi(t,t,0,0,s)):Promise.reject(!1)})).then((function(A){return i.drawImage(A,0,0),Ri(i.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Ki,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Ki,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Ki,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Ki,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Ki,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},Gi=function(A,e){this.text=A,this.bounds=e},Wi=function(A,e){var t=e.ownerDocument;if(t){var i=t.createElement("html2canvaswrapper");i.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(i,e);var a=r(A,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return s.EMPTY},Xi=function(A,e,t){var i=A.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},zi=function(A){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=Oi(A),i=[];!(e=t.next()).done;)e.value&&i.push(e.value.slice());return i}(A)},Yi=function(A,e){return 0!==e.letterSpacing?zi(A):function(A,e){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return ji(A,e)}(A,e)},Ji=[32,160,4961,65792,65793,4153,4241],ji=function(A,e){for(var t,i=function(A,e){var t=o(A),i=$(t,e),n=i[0],a=i[1],s=i[2],r=t.length,l=0,c=0;return{next:function(){if(c>=r)return{done:!0,value:null};for(var A=P;c0)if(Ki.SUPPORT_RANGE_BOUNDS){var n=Xi(i,r,e.length).getClientRects();if(n.length>1){var o=zi(e),l=0;o.forEach((function(e){a.push(new Gi(e,s.fromDOMRectList(A,Xi(i,l+r,e.length).getClientRects()))),l+=e.length}))}else a.push(new Gi(e,s.fromDOMRectList(A,n)))}else{var c=i.splitText(e.length);a.push(new Gi(e,Wi(A,i))),i=c}else Ki.SUPPORT_RANGE_BOUNDS||(i=i.splitText(e.length));r+=e.length})),a}(A,this.text,t,e)},qi=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(_i,$i);case 2:return A.toUpperCase();default:return A}},_i=/(^|\s|:|-|\(|\))([a-z])/g,$i=function(A,e,t){return A.length>0?e+t.toUpperCase():A},An=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.src=t.currentSrc||t.src,i.intrinsicWidth=t.naturalWidth,i.intrinsicHeight=t.naturalHeight,i.context.cache.addImage(i.src),i}return e(t,A),t}(fi),en=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.canvas=t,i.intrinsicWidth=t.width,i.intrinsicHeight=t.height,i}return e(t,A),t}(fi),tn=function(A){function t(e,t){var i=A.call(this,e,t)||this,n=new XMLSerializer,a=r(e,t);return t.setAttribute("width",a.width+"px"),t.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),i.intrinsicWidth=t.width.baseVal.value,i.intrinsicHeight=t.height.baseVal.value,i.context.cache.addImage(i.svg),i}return e(t,A),t}(fi),nn=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.value=t.value,i}return e(t,A),t}(fi),an=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.start=t.start,i.reversed="boolean"==typeof t.reversed&&!0===t.reversed,i}return e(t,A),t}(fi),sn=[{type:15,flags:0,unit:"px",number:3}],rn=[{type:16,flags:0,number:50}],on="checkbox",ln="radio",cn="password",dn=707406591,hn=function(A){function t(e,t){var i,n,a,r=A.call(this,e,t)||this;switch(r.type=t.type.toLowerCase(),r.checked=t.checked,r.value=0===(a=(n=t).type===cn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,r.type!==on&&r.type!==ln||(r.styles.backgroundColor=3739148031,r.styles.borderTopColor=r.styles.borderRightColor=r.styles.borderBottomColor=r.styles.borderLeftColor=2779096575,r.styles.borderTopWidth=r.styles.borderRightWidth=r.styles.borderBottomWidth=r.styles.borderLeftWidth=1,r.styles.borderTopStyle=r.styles.borderRightStyle=r.styles.borderBottomStyle=r.styles.borderLeftStyle=1,r.styles.backgroundClip=[0],r.styles.backgroundOrigin=[0],r.bounds=(i=r.bounds).width>i.height?new s(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)t.textNodes.push(new Zi(A,n,t.styles));else if(vn(n))if(Nn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return Bn(A,e,t,i)}));else{var s=mn(A,n);s.styles.isVisible()&&(En(n,s,i)?s.flags|=4:Cn(s.styles)&&(s.flags|=2),-1!==pn.indexOf(n.tagName)&&(s.flags|=8),t.elements.push(s),n.slot,n.shadowRoot?Bn(A,n.shadowRoot,s,i):Dn(n)||In(n)||kn(n)||Bn(A,n,s,i))}},mn=function(A,e){return Ln(e)?new An(A,e):Tn(e)?new en(A,e):In(e)?new tn(A,e):bn(e)?new nn(A,e):Un(e)?new an(A,e):xn(e)?new hn(A,e):kn(e)?new gn(A,e):Dn(e)?new un(A,e):Mn(e)?new wn(A,e):new fi(A,e)},fn=function(A,e){var t=mn(A,e);return t.flags|=4,Bn(A,e,t,t),t},En=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Sn(A)&&t.styles.isTransparent()},Cn=function(A){return A.isPositioned()||A.isFloating()},Fn=function(A){return A.nodeType===Node.TEXT_NODE},vn=function(A){return A.nodeType===Node.ELEMENT_NODE},yn=function(A){return vn(A)&&void 0!==A.style&&!Qn(A)},Qn=function(A){return"object"==typeof A.className},bn=function(A){return"LI"===A.tagName},Un=function(A){return"OL"===A.tagName},xn=function(A){return"INPUT"===A.tagName},In=function(A){return"svg"===A.tagName},Sn=function(A){return"BODY"===A.tagName},Tn=function(A){return"CANVAS"===A.tagName},Ln=function(A){return"IMG"===A.tagName},Mn=function(A){return"IFRAME"===A.tagName},Hn=function(A){return"STYLE"===A.tagName},Dn=function(A){return"TEXTAREA"===A.tagName},kn=function(A){return"SELECT"===A.tagName},Nn=function(A){return"SLOT"===A.tagName},On=function(A){return A.tagName.indexOf("-")>0},Rn=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){return this.counters[A]||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,i=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var a=[];return n&&i.forEach((function(A){var t=e.counters[A.counter];a.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),a},A}(),Pn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Vn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Kn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Gn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Wn=function(A,e,t,i,n,a){return At?$n(A,n,a.length>0):i.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=i.values[n];return e}),"")+a},Xn=function(A,e,t,i){var n="";do{t||A--,n=i(A)+n,A/=e}while(A*e>=e);return n},zn=function(A,e,t,i,n){var a=t-e+1;return(A<0?"-":"")+(Xn(Math.abs(A),a,i,(function(A){return l(Math.floor(A%a)+e)}))+n)},Yn=function(A,e,t){void 0===t&&(t=". ");var i=e.length;return Xn(Math.abs(A),i,!1,(function(A){return e[Math.floor(A%i)]}))+t},Jn=function(A,e,t,i,n,a){if(A<-9999||A>9999)return $n(A,4,n.length>0);var s=Math.abs(A),r=n;if(0===s)return e[0]+r;for(var o=0;s>0&&o<=4;o++){var l=s%10;0===l&&ii(a,1)&&""!==r?r=e[l]+r:l>1||1===l&&0===o||1===l&&1===o&&ii(a,2)||1===l&&1===o&&ii(a,4)&&A>100||1===l&&o>1&&ii(a,8)?r=e[l]+(o>0?t[o-1]:"")+r:1===l&&o>0&&(r=t[o-1]+r),s=Math.floor(s/10)}return(A<0?i:"")+r},jn="十百千萬",Zn="拾佰仟萬",qn="マイナス",_n="마이너스",$n=function(A,e,t){var i=t?". ":"",n=t?"、":"",a=t?", ":"",s=t?" ":"";switch(e){case 0:return"•"+s;case 1:return"◦"+s;case 2:return"◾"+s;case 5:var r=zn(A,48,57,!0,i);return r.length<4?"0"+r:r;case 4:return Yn(A,"〇一二三四五六七八九",n);case 6:return Wn(A,1,3999,Pn,3,i).toLowerCase();case 7:return Wn(A,1,3999,Pn,3,i);case 8:return zn(A,945,969,!1,i);case 9:return zn(A,97,122,!1,i);case 10:return zn(A,65,90,!1,i);case 11:return zn(A,1632,1641,!0,i);case 12:case 49:return Wn(A,1,9999,Vn,3,i);case 35:return Wn(A,1,9999,Vn,3,i).toLowerCase();case 13:return zn(A,2534,2543,!0,i);case 14:case 30:return zn(A,6112,6121,!0,i);case 15:return Yn(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Yn(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return Jn(A,"零一二三四五六七八九",jn,"負",n,14);case 47:return Jn(A,"零壹貳參肆伍陸柒捌玖",Zn,"負",n,15);case 42:return Jn(A,"零一二三四五六七八九",jn,"负",n,14);case 41:return Jn(A,"零壹贰叁肆伍陆柒捌玖",Zn,"负",n,15);case 26:return Jn(A,"〇一二三四五六七八九","十百千万",qn,n,0);case 25:return Jn(A,"零壱弐参四伍六七八九","拾百千万",qn,n,7);case 31:return Jn(A,"영일이삼사오육칠팔구","십백천만",_n,a,7);case 33:return Jn(A,"零一二三四五六七八九","十百千萬",_n,a,0);case 32:return Jn(A,"零壹貳參四五六七八九","拾百千",_n,a,7);case 18:return zn(A,2406,2415,!0,i);case 20:return Wn(A,1,19999,Gn,3,i);case 21:return zn(A,2790,2799,!0,i);case 22:return zn(A,2662,2671,!0,i);case 22:return Wn(A,1,10999,Kn,3,i);case 23:return Yn(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Yn(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return zn(A,3302,3311,!0,i);case 28:return Yn(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Yn(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return zn(A,3792,3801,!0,i);case 37:return zn(A,6160,6169,!0,i);case 38:return zn(A,4160,4169,!0,i);case 39:return zn(A,2918,2927,!0,i);case 40:return zn(A,1776,1785,!0,i);case 43:return zn(A,3046,3055,!0,i);case 44:return zn(A,3174,3183,!0,i);case 45:return zn(A,3664,3673,!0,i);case 46:return zn(A,3872,3881,!0,i);default:return zn(A,48,57,!0,i)}},Aa="data-html2canvas-ignore",ea=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Rn,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,a=ia(A,e);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var s=A.defaultView.pageXOffset,r=A.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=sa(a).then((function(){return i(t,void 0,void 0,(function(){var A,t;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(da),o&&(o.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===e.top&&o.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-e.left,o.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,aa(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(l,t)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(la(document.doctype)+""),ca(this.referenceElement.ownerDocument,s,r),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},A.prototype.createElementClone=function(A){if(mi(A,2),Tn(A))return this.createCanvasClone(A);if(Hn(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Ln(e)&&(Ln(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),On(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return oa(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),i=A.cloneNode(!1);return i.textContent=t,i}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var i=A.cloneNode(!1);try{i.width=A.width,i.height=A.height;var n=A.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,A.width,A.height),0,0);else{var s=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(s){var r=s.getContextAttributes();!1===(null==r?void 0:r.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}a.drawImage(A,0,0)}return i}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return i},A.prototype.appendChildNode=function(A,e,t){vn(e)&&("SCRIPT"===e.tagName||e.hasAttribute(Aa)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&vn(e)&&Hn(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneNode=function(A,e){var t=this;if(Fn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var i=A.ownerDocument.defaultView;if(i&&vn(A)&&(yn(A)||Qn(A))){var n=this.createElementClone(A);n.style.transitionProperty="none";var a=i.getComputedStyle(A),s=i.getComputedStyle(A,":before"),r=i.getComputedStyle(A,":after");this.referenceElement===A&&yn(n)&&(this.clonedReferenceElement=n),Sn(n)&&wa(n);var o=this.counters.parse(new pi(this.context,a)),l=this.resolvePseudoContent(A,n,s,xi.BEFORE);On(A)&&(e=!0);for(var c=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;c;c=c.nextSibling)if(vn(c)&&Nn(c)&&"function"==typeof c.assignedNodes){var d=c.assignedNodes();d.length&&d.forEach((function(A){return t.appendChildNode(n,A,e)}))}else this.appendChildNode(n,c,e);l&&n.insertBefore(l,n.firstChild);var h=this.resolvePseudoContent(A,n,r,xi.AFTER);return h&&n.appendChild(h),this.counters.pop(o),(a&&(this.options.copyStyles||Qn(A))&&!Mn(A)||e)&&oa(a,n),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([n,A.scrollLeft,A.scrollTop]),(Dn(A)||kn(A))&&(Dn(n)||kn(n))&&(n.value=A.value),n}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,i){var n=this;if(t){var a=t.content,s=e.ownerDocument;if(s&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==t.display){this.counters.parse(new pi(this.context,t));var r=new wi(this.context,t),o=s.createElement("html2canvaspseudoelement");oa(t,o),r.content.forEach((function(e){if(0===e.type)o.appendChild(s.createTextNode(e.value));else if(22===e.type){var t=s.createElement("img");t.src=e.value,t.style.opacity="1",o.appendChild(t)}else if(18===e.type){if("attr"===e.name){var i=e.values.filter(RA);i.length&&o.appendChild(s.createTextNode(A.getAttribute(i[0].value)||""))}else if("counter"===e.name){var a=e.values.filter(GA),l=a[0],c=a[1];if(l&&RA(l)){var d=n.counters.getCounterValue(l.value),h=c&&RA(c)?vt.parse(n.context,c.value):3;o.appendChild(s.createTextNode($n(d,h,!1)))}}else if("counters"===e.name){var g=e.values.filter(GA),u=(l=g[0],g[1]);if(c=g[2],l&&RA(l)){var w=n.counters.getCounterValues(l.value),p=c&&RA(c)?vt.parse(n.context,c.value):3,B=u&&0===u.type?u.value:"",m=w.map((function(A){return $n(A,p,!1)})).join(B);o.appendChild(s.createTextNode(m))}}}else if(20===e.type)switch(e.value){case"open-quote":o.appendChild(s.createTextNode(li(r.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(s.createTextNode(li(r.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(s.createTextNode(e.value))}})),o.className=ha+" "+ga;var l=i===xi.BEFORE?" "+ha:" "+ga;return Qn(e)?e.className.baseValue+=l:e.className+=l,o}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(xi||(xi={}));var ta,ia=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(Aa,"true"),A.body.appendChild(t),t},na=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},aa=function(A){return Promise.all([].slice.call(A.images,0).map(na))},sa=function(A){return new Promise((function(e,t){var i=A.contentWindow;if(!i)return t("No window assigned for iframe");var n=i.document;i.onload=A.onload=function(){i.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},ra=["all","d","content"],oa=function(A,e){for(var t=A.length-1;t>=0;t--){var i=A.item(t);-1===ra.indexOf(i)&&e.style.setProperty(i,A.getPropertyValue(i))}return e},la=function(A){var e="";return A&&(e+=""),e},ca=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},da=function(A){var e=A[0],t=A[1],i=A[2];e.scrollLeft=t,e.scrollTop=i},ha="___html2canvas___pseudoelement_before",ga="___html2canvas___pseudoelement_after",ua='{\n content: "" !important;\n display: none !important;\n}',wa=function(A){pa(A,"."+ha+":before"+ua+"\n ."+ga+":after"+ua)},pa=function(A,e){var t=A.ownerDocument;if(t){var i=t.createElement("style");i.textContent=e,A.appendChild(i)}},Ba=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),ma=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:Qa(A)||Fa(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return i(this,void 0,void 0,(function(){var e,t,i,a,s=this;return n(this,(function(n){switch(n.label){case 0:return e=Ba.isSameOrigin(A),t=!va(A)&&!0===this._options.useCORS&&Ki.SUPPORT_CORS_IMAGES&&!e,i=!va(A)&&!e&&!Qa(A)&&"string"==typeof this._options.proxy&&Ki.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||va(A)||Qa(A)||i||t?(a=A,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var i=new Image;i.onload=function(){return A(i)},i.onerror=e,(ya(a)||t)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return A(i)}),500),s._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+s._options.imageTimeout+"ms) loading image")}),s._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var i=A.substring(0,256);return new Promise((function(n,a){var s=Ki.SUPPORT_RESPONSE_TYPE?"blob":"text",r=new XMLHttpRequest;r.onload=function(){if(200===r.status)if("text"===s)n(r.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return a(A)}),!1),A.readAsDataURL(r.response)}else a("Failed to proxy resource "+i+" with status code "+r.status)},r.onerror=a;var o=t.indexOf("?")>-1?"&":"?";if(r.open("GET",""+t+o+"url="+encodeURIComponent(A)+"&responseType="+s),"text"!==s&&r instanceof XMLHttpRequest&&(r.responseType=s),e._options.imageTimeout){var l=e._options.imageTimeout;r.timeout=l,r.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}r.send()}))},A}(),fa=/^data:image\/svg\+xml/i,Ea=/^data:image\/.*;base64,/i,Ca=/^data:image\/.*/i,Fa=function(A){return Ki.SUPPORT_SVG_DRAWING||!ba(A)},va=function(A){return Ca.test(A)},ya=function(A){return Ea.test(A)},Qa=function(A){return"blob"===A.substr(0,4)},ba=function(A){return"svg"===A.substr(-3).toLowerCase()||fa.test(A)},Ua=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),xa=function(A,e,t){return new Ua(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ia=function(){function A(A,e,t,i){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=i}return A.prototype.subdivide=function(e,t){var i=xa(this.start,this.startControl,e),n=xa(this.startControl,this.endControl,e),a=xa(this.endControl,this.end,e),s=xa(i,n,e),r=xa(n,a,e),o=xa(s,r,e);return t?new A(this.start,i,s,o):new A(o,r,a,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Sa=function(A){return 1===A.type},Ta=function(A){var e=A.styles,t=A.bounds,i=_A(e.borderTopLeftRadius,t.width,t.height),n=i[0],a=i[1],s=_A(e.borderTopRightRadius,t.width,t.height),r=s[0],o=s[1],l=_A(e.borderBottomRightRadius,t.width,t.height),c=l[0],d=l[1],h=_A(e.borderBottomLeftRadius,t.width,t.height),g=h[0],u=h[1],w=[];w.push((n+r)/t.width),w.push((g+c)/t.width),w.push((a+u)/t.height),w.push((o+d)/t.height);var p=Math.max.apply(Math,w);p>1&&(n/=p,a/=p,r/=p,o/=p,c/=p,d/=p,g/=p,u/=p);var B=t.width-r,m=t.height-d,f=t.width-c,E=t.height-u,C=e.borderTopWidth,F=e.borderRightWidth,v=e.borderBottomWidth,y=e.borderLeftWidth,Q=$A(e.paddingTop,A.bounds.width),b=$A(e.paddingRight,A.bounds.width),U=$A(e.paddingBottom,A.bounds.width),x=$A(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?La(t.left+y/3,t.top+C/3,n-y/3,a-C/3,ta.TOP_LEFT):new Ua(t.left+y/3,t.top+C/3),this.topRightBorderDoubleOuterBox=n>0||a>0?La(t.left+B,t.top+C/3,r-F/3,o-C/3,ta.TOP_RIGHT):new Ua(t.left+t.width-F/3,t.top+C/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?La(t.left+f,t.top+m,c-F/3,d-v/3,ta.BOTTOM_RIGHT):new Ua(t.left+t.width-F/3,t.top+t.height-v/3),this.bottomLeftBorderDoubleOuterBox=g>0||u>0?La(t.left+y/3,t.top+E,g-y/3,u-v/3,ta.BOTTOM_LEFT):new Ua(t.left+y/3,t.top+t.height-v/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?La(t.left+2*y/3,t.top+2*C/3,n-2*y/3,a-2*C/3,ta.TOP_LEFT):new Ua(t.left+2*y/3,t.top+2*C/3),this.topRightBorderDoubleInnerBox=n>0||a>0?La(t.left+B,t.top+2*C/3,r-2*F/3,o-2*C/3,ta.TOP_RIGHT):new Ua(t.left+t.width-2*F/3,t.top+2*C/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?La(t.left+f,t.top+m,c-2*F/3,d-2*v/3,ta.BOTTOM_RIGHT):new Ua(t.left+t.width-2*F/3,t.top+t.height-2*v/3),this.bottomLeftBorderDoubleInnerBox=g>0||u>0?La(t.left+2*y/3,t.top+E,g-2*y/3,u-2*v/3,ta.BOTTOM_LEFT):new Ua(t.left+2*y/3,t.top+t.height-2*v/3),this.topLeftBorderStroke=n>0||a>0?La(t.left+y/2,t.top+C/2,n-y/2,a-C/2,ta.TOP_LEFT):new Ua(t.left+y/2,t.top+C/2),this.topRightBorderStroke=n>0||a>0?La(t.left+B,t.top+C/2,r-F/2,o-C/2,ta.TOP_RIGHT):new Ua(t.left+t.width-F/2,t.top+C/2),this.bottomRightBorderStroke=c>0||d>0?La(t.left+f,t.top+m,c-F/2,d-v/2,ta.BOTTOM_RIGHT):new Ua(t.left+t.width-F/2,t.top+t.height-v/2),this.bottomLeftBorderStroke=g>0||u>0?La(t.left+y/2,t.top+E,g-y/2,u-v/2,ta.BOTTOM_LEFT):new Ua(t.left+y/2,t.top+t.height-v/2),this.topLeftBorderBox=n>0||a>0?La(t.left,t.top,n,a,ta.TOP_LEFT):new Ua(t.left,t.top),this.topRightBorderBox=r>0||o>0?La(t.left+B,t.top,r,o,ta.TOP_RIGHT):new Ua(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||d>0?La(t.left+f,t.top+m,c,d,ta.BOTTOM_RIGHT):new Ua(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=g>0||u>0?La(t.left,t.top+E,g,u,ta.BOTTOM_LEFT):new Ua(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||a>0?La(t.left+y,t.top+C,Math.max(0,n-y),Math.max(0,a-C),ta.TOP_LEFT):new Ua(t.left+y,t.top+C),this.topRightPaddingBox=r>0||o>0?La(t.left+Math.min(B,t.width-F),t.top+C,B>t.width+F?0:Math.max(0,r-F),Math.max(0,o-C),ta.TOP_RIGHT):new Ua(t.left+t.width-F,t.top+C),this.bottomRightPaddingBox=c>0||d>0?La(t.left+Math.min(f,t.width-y),t.top+Math.min(m,t.height-v),Math.max(0,c-F),Math.max(0,d-v),ta.BOTTOM_RIGHT):new Ua(t.left+t.width-F,t.top+t.height-v),this.bottomLeftPaddingBox=g>0||u>0?La(t.left+y,t.top+Math.min(E,t.height-v),Math.max(0,g-y),Math.max(0,u-v),ta.BOTTOM_LEFT):new Ua(t.left+y,t.top+t.height-v),this.topLeftContentBox=n>0||a>0?La(t.left+y+x,t.top+C+Q,Math.max(0,n-(y+x)),Math.max(0,a-(C+Q)),ta.TOP_LEFT):new Ua(t.left+y+x,t.top+C+Q),this.topRightContentBox=r>0||o>0?La(t.left+Math.min(B,t.width+y+x),t.top+C+Q,B>t.width+y+x?0:r-y+x,o-(C+Q),ta.TOP_RIGHT):new Ua(t.left+t.width-(F+b),t.top+C+Q),this.bottomRightContentBox=c>0||d>0?La(t.left+Math.min(f,t.width-(y+x)),t.top+Math.min(m,t.height+C+Q),Math.max(0,c-(F+b)),d-(v+U),ta.BOTTOM_RIGHT):new Ua(t.left+t.width-(F+b),t.top+t.height-(v+U)),this.bottomLeftContentBox=g>0||u>0?La(t.left+y+x,t.top+E,Math.max(0,g-(y+x)),u-(v+U),ta.BOTTOM_LEFT):new Ua(t.left+y+x,t.top+t.height-(v+U))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(ta||(ta={}));var La=function(A,e,t,i,n){var a=(Math.sqrt(2)-1)/3*4,s=t*a,r=i*a,o=A+t,l=e+i;switch(n){case ta.TOP_LEFT:return new Ia(new Ua(A,l),new Ua(A,l-r),new Ua(o-s,e),new Ua(o,e));case ta.TOP_RIGHT:return new Ia(new Ua(A,e),new Ua(A+s,e),new Ua(o,l-r),new Ua(o,l));case ta.BOTTOM_RIGHT:return new Ia(new Ua(o,e),new Ua(o,e+r),new Ua(A+s,l),new Ua(A,l));case ta.BOTTOM_LEFT:default:return new Ia(new Ua(o,l),new Ua(o-s,l),new Ua(A,e+r),new Ua(A,e))}},Ma=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},Ha=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Da=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},ka=function(A,e){this.path=A,this.target=e,this.type=1},Na=function(A){this.opacity=A,this.type=2,this.target=6},Oa=function(A){return 1===A.type},Ra=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Pa=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Va=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new Ta(this.container),this.container.styles.opacity<1&&this.effects.push(new Na(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Da(t,i,n))}if(0!==this.container.styles.overflowX){var a=Ma(this.curves),s=Ha(this.curves);Ra(a,s)?this.effects.push(new ka(a,6)):(this.effects.push(new ka(a,2)),this.effects.push(new ka(s,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,i=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!Oa(A)}));if(e||0!==t.container.styles.position||!t.parent){if(i.unshift.apply(i,n),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var a=Ma(t.curves),s=Ha(t.curves);Ra(a,s)||i.unshift(new ka(s,6))}}else i.unshift.apply(i,n);t=t.parent}return i.filter((function(e){return ii(e.target,A)}))},A}(),Ka=function(A,e,t,i){A.container.elements.forEach((function(n){var a=ii(n.flags,4),s=ii(n.flags,2),r=new Va(n,A);ii(n.styles.display,2048)&&i.push(r);var o=ii(n.flags,8)?[]:i;if(a||s){var l=a||n.styles.isPositioned()?t:e,c=new Pa(r);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(A,e){return d>A.element.container.styles.zIndex.order?(h=e,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var g=0;l.positiveZIndex.some((function(A,e){return d>=A.element.container.styles.zIndex.order?(g=e+1,!1):g>0})),l.positiveZIndex.splice(g,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Ka(r,c,a?c:t,o)}else n.styles.isInlineLevel()?e.inlineLevel.push(r):e.nonInlineLevel.push(r),Ka(r,e,t,o);ii(n.flags,8)&&Ga(n,o)}))},Ga=function(A,e){for(var t=A instanceof an?A.start:1,i=A instanceof an&&A.reversed,n=0;n0&&A.intrinsicHeight>0){var i=Ja(A),n=Ha(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return i(this,void 0,void 0,(function(){var e,i,a,r,o,l,c,d,h,g,u,w,p,B,m,f,E,C;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,i=A.curves,a=e.styles,r=0,o=e.textNodes,n.label=1;case 1:return r0&&y>0&&(m=i.ctx.createPattern(w,"repeat"),i.renderRepeat(E,m,b,U))):function(A){return 2===A.type}(t)&&(f=ja(A,e,[null,null,null]),E=f[0],C=f[1],F=f[2],v=f[3],y=f[4],Q=0===t.position.length?[ZA]:t.position,b=$A(Q[0],v),U=$A(Q[Q.length-1],y),x=function(A,e,t,i,n){var a=0,s=0;switch(A.size){case 0:0===A.shape?a=s=Math.min(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-n)):1===A.shape&&(a=Math.min(Math.abs(e),Math.abs(e-i)),s=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)a=s=Math.min(Fe(e,t),Fe(e,t-n),Fe(e-i,t),Fe(e-i,t-n));else if(1===A.shape){var r=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-i)),o=ve(i,n,e,t,!0),l=o[0],c=o[1];s=r*(a=Fe(l-e,(c-t)/r))}break;case 1:0===A.shape?a=s=Math.max(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-n)):1===A.shape&&(a=Math.max(Math.abs(e),Math.abs(e-i)),s=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)a=s=Math.max(Fe(e,t),Fe(e,t-n),Fe(e-i,t),Fe(e-i,t-n));else if(1===A.shape){r=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-i));var d=ve(i,n,e,t,!1);l=d[0],c=d[1],s=r*(a=Fe(l-e,(c-t)/r))}}return Array.isArray(A.size)&&(a=$A(A.size[0],i),s=2===A.size.length?$A(A.size[1],n):a),[a,s]}(t,b,U,v,y),I=x[0],S=x[1],I>0&&S>0&&(T=i.ctx.createRadialGradient(C+b,F+U,0,C+b,F+U,I),Ee(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,oe(A.color))})),i.path(E),i.ctx.fillStyle=T,I!==S?(L=A.bounds.left+.5*A.bounds.width,M=A.bounds.top+.5*A.bounds.height,D=1/(H=S/I),i.ctx.save(),i.ctx.translate(L,M),i.ctx.transform(1,0,0,H,0,0),i.ctx.translate(-L,-M),i.ctx.fillRect(C,D*(F-M)+M,v,y*D),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},i=this,a=0,s=A.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,s,A.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,s,A.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,s,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,s,A.curves)];case 10:n.sent(),n.label=11;case 11:s++,n.label=12;case 12:return r++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,a,s){return i(this,void 0,void 0,(function(){var i,r,o,l,c,d,h,g,u,w,p,B,m,f,E,C;return n(this,(function(n){return this.ctx.save(),i=function(A,e){switch(e){case 0:return Xa(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return Xa(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return Xa(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return Xa(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(a,t),r=Wa(a,t),2===s&&(this.path(r),this.ctx.clip()),Sa(r[0])?(o=r[0].start.x,l=r[0].start.y):(o=r[0].x,l=r[0].y),Sa(r[1])?(c=r[1].end.x,d=r[1].end.y):(c=r[1].x,d=r[1].y),h=0===t||2===t?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===s?this.formatPath(i):this.formatPath(r.slice(0,2)),g=e<3?3*e:2*e,u=e<3?2*e:e,3===s&&(g=e,u=e),w=!0,h<=2*g?w=!1:h<=2*g+u?(g*=p=h/(2*g+u),u*=p):(B=Math.floor((h+u)/(g+u)),m=(h-B*g)/(B-1),u=(f=(h-(B+1)*g)/B)<=0||Math.abs(u-m){const a=await tex2dataURL(A,n);if(a){const A=[];A.push({mimeType:a.mimeType,id:e,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1}),i(A,t)}};async function tex2dataURL(A,e){let t=0;for(;!e.mathjax&&!e.mathjaxLoaderFinished&&t<10;)await sleep$1(100),t++;e.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(A,e)}catch(t){await sleep$1(100);try{return await mathjaxSVG(A,e)}catch(t){await sleep$1(100);try{return await mathjaxSVG(A,e)}catch(t){return e.mathjax?new obsidian.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(A)}}}}async function mathjaxSVG(A,e){const t=e.mathjax.tex2svg(A,{display:!0,scale:4}).querySelector("svg");if(t){const A=svgToBase64(t.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:A,created:Date.now(),size:await getImageSize(A)}}return null}async function mathjaxImage2html(A){const e=document.body.createDiv();e.style.display="table";const t=window.MathJax.tex2chtml(A,{display:!0,scale:4});t.style.margin="3px",t.style.color="black";const i=t.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),e.appendChild(t),window.MathJax.typeset();const n=await html2canvas(e,{backgroundColor:null});return document.body.removeChild(e),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)";class EmbeddedFile{constructor(A,e,t){this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.plugin=A,this.resetImage(e,t)}resetImage(A,e){this.imgInverted=this.img="",this.mtime=0,this.linkParts=getLinkParts(e),this.hostPath=A,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=this.plugin.app.metadataCache.getFirstLinkpathDest(this.linkParts.path,A),this.file||0==this.attemptCounter++&&new obsidian.Notice(`Excalidraw Warning: could not find image file: ${e}`,5e3)):new obsidian.Notice(`Excalidraw Error\nIncorrect embedded filename: ${e}`)}fileChanged(){return this.file||(this.file=this.plugin.app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1)}setImage(A,e,t,i,n){if(this.file){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.file.stat.mtime,this.size=t,this.mimeType=e,i&&n){case!0:this.imgInverted=A;break;case!1:this.img=A}this.isSVGwithBitmap=n}}isLoaded(A){return this.file||(this.file=this.plugin.app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?!this.fileChanged()&&(this.isSVGwithBitmap&&A?""!==this.imgInverted:""!==this.img):(this.attemptCounter++,!0)}getImage(A){return this.file?A&&this.isSVGwithBitmap?this.imgInverted:this.img:""}}class EmbeddedFilesLoader{constructor(A,e){this.terminate=!1,this.plugin=A,this.isDark=e,this.uid=nanoid()}async getObsidianImage(A,e){if(!this.plugin||!A)return null;const t=A instanceof EmbeddedFile?A.file:A,i=A instanceof EmbeddedFile?A.linkParts:{original:t.path,path:t.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight};let n=!1;const a=this.plugin.app,s=this.plugin.isExcalidrawFile(t);if(!IMAGE_TYPES.contains(t.extension)&&!s&&"md"!==t.extension)return null;const r=await a.vault.readBinary(t),o=s?await(async A=>{const i=hasExportTheme(this.plugin,t)?getExportTheme(this.plugin,t,"light"):void 0,a={withBackground:!!hasExportBackground(this.plugin,t)&&getWithBackground(this.plugin,t),withTheme:!!i},s=await createSVG(t.path,!0,a,this,i,null,null,[],this.plugin,e+1,getSVGPadding(this.plugin,t)),r=s.querySelectorAll("image:not([href^='data:image/svg'])");return r.length>0&&(n=!0),n&&A&&r.forEach((A=>{var e;const t=null===(e=A.parentElement)||void 0===e?void 0:e.id;s.querySelectorAll(`use[href='#${t}']`).forEach((A=>{A.setAttribute("filter",THEME_FILTER)}))})),!n&&s.getAttribute("hasbitmap")&&(n=!0),svgToBase64(s.outerHTML)})(this.isDark):null;let l="image/svg+xml";if(!s)switch(t.extension){case"png":l="image/png";break;case"jpeg":case"jpg":l="image/jpeg";break;case"gif":l="image/gif";break;case"svg":case"md":l="image/svg+xml";break;default:l="application/octet-stream"}let c=null!=o?o:"svg"===t.extension?await getSVGData(a,t):"md"===t.extension?null:await getDataURL(r,l);if(!c){const A=await this.convertMarkdownToSVG(this.plugin,t,i);c=A.dataURL,n=A.hasSVGwithBitmap}const d=await getImageSize(c);return{mimeType:l,fileId:await generateIdFromFile(r),dataURL:c,created:t.stat.mtime,hasSVGwithBitmap:n,size:d}}async loadSceneFiles(A,e,i){var n,a;if(i>4)return void new obsidian.Notice(t("INFINITE_LOOP_WARNING")+i.toString(),6e3);const s=A.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(a=null===(n=null==A?void 0:A.scene)||void 0===n?void 0:n.appState)||void 0===a?void 0:a.theme));const o=[];for(;!this.terminate&&!(r=s.next()).done;){const A=r.value[1];if(A.isLoaded(this.isDark))A.isSVGwithBitmap&&o.push({mimeType:A.mimeType,id:r.value[0],dataURL:A.getImage(this.isDark),created:A.mtime,size:A.size,hasSVGwithBitmap:A.isSVGwithBitmap});else{const e=await this.getObsidianImage(A,i);e&&o.push({mimeType:e.mimeType,id:r.value[0],dataURL:e.dataURL,created:e.created,size:e.size,hasSVGwithBitmap:e.hasSVGwithBitmap})}}let l;const c=A.getEquationEntries();for(;!this.terminate&&!(l=c.next()).done;)if(!A.getEquation(l.value[0]).isLoaded){const A=l.value[1].latex,e=await tex2dataURL(A,this.plugin);e&&o.push({mimeType:e.mimeType,id:l.value[0],dataURL:e.dataURL,created:e.created,size:e.size,hasSVGwithBitmap:!1})}if(!this.terminate)try{e(o,this.isDark)}catch(A){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:A})}}async convertMarkdownToSVG(A,e,t){var i,n,a,s;let r=!1;const o=await getTransclusion(t,A.app,e);let l=(null!==(i=o.leadingHashes)&&void 0!==i?i:"")+o.contents;""===l&&(l="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const c=A.app.metadataCache.getFileCache(e);let d,h=A.settings.mdFont;switch((null==c?void 0:c.frontmatter)&&null!=c.frontmatter["excalidraw-font"]&&(h=c.frontmatter["excalidraw-font"]),h){case"Virgil":d=VIRGIL_FONT;break;case"Cascadia":d=CASCADIA_FONT;break;case"":d="";break;default:const t=await getFontDataURL(A.app,h,e.path);d=t.fontDef,h=t.fontName}const g=(null==c?void 0:c.frontmatter)&&null!==(n=c.frontmatter["excalidraw-font-color"])&&void 0!==n?n:A.settings.mdFontColor;let u=(null==c?void 0:c.frontmatter)&&null!==(a=c.frontmatter["excalidraw-css"])&&void 0!==a?a:"",w=!1;if(u&&""!=u){const t=A.app.metadataCache.getFirstLinkpathDest(u,e.path);t&&(u=await A.app.vault.read(t),w=!0)}if(!w)if(A.settings.mdCSS&&""!==A.settings.mdCSS){const t=A.app.metadataCache.getFirstLinkpathDest(A.settings.mdCSS,e.path);u+=t?`\n${await A.app.vault.read(t)}`:DEFAULT_MD_EMBED_CSS}else u+=DEFAULT_MD_EMBED_CSS;const p=(null==c?void 0:c.frontmatter)&&null!==(s=c.frontmatter["excalidraw-border-color"])&&void 0!==s?s:A.settings.mdBorderColor;p&&""!==p&&!u.match(/svg/i)&&(u+=`svg{border:2px solid;color:${p};transform:scale(.95)}`);let B=` width="${t.width}px" height="100000"`,m=` width="${t.width}px" height="100%"`;const f=(A,e,t)=>`${t?``:""}${A}${e}${""!==d?``:""}`,E=createDiv();E.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),E.setAttribute("class","excalidraw-md-host"),""!==h&&(E.style.fontFamily=h),E.style.overflow="auto",E.style.display="block",E.style.color=g&&""!==g?g:"initial",await obsidian.MarkdownRenderer.renderMarkdown(l,E,e.path,A),E.querySelectorAll(":scope > *[class^='frontmatter']").forEach((A=>E.removeChild(A)));const C=Array.from(E.querySelectorAll("span[class='internal-embed']"));for(let A=0;A{const e=A.style,t=window.getComputedStyle(A);let i="";for(const A in e)e.hasOwnProperty(A)&&(i+=`${A}: ${t[A]};`);A.setAttribute("style",i)}));const b=(new XMLSerializer).serializeToString(y),U=(new XMLSerializer).serializeToString(Q);document.body.removeChild(F);const x=new DOMParser,I=x.parseFromString(f(b,U),"image/svg+xml").firstElementChild,S=createDiv();S.appendChild(I),document.body.appendChild(S);const T=I.querySelector(".excalidraw-md-footer").scrollHeight,L=I.querySelector(".excalidraw-md-host").scrollHeight+T,M=L<=t.height?L:t.height;document.body.removeChild(S),B=` width="${t.width}px" height="${M}px"`,m=` width="${t.width}px" height="${M}px"`,E.style.height=M-T+"px",E.style.overflow="hidden";const H=E.querySelectorAll("img:not([src^='data:image/svg+xml'])");H.length>0&&(r=!0),r&&this.isDark&&H.forEach((A=>{A instanceof HTMLImageElement&&(A.style.filter=THEME_FILTER)}));const D=f((new XMLSerializer).serializeToString(E),'',u);return A.ea.mostRecentMarkdownSVG=x.parseFromString(D,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(D),hasSVGwithBitmap:r}}}const getSVGData=async(A,e)=>{const t=await A.vault.read(e);return svgToBase64(t)},generateIdFromFile=async A=>{let e;try{const t=await window.crypto.subtle.digest("SHA-1",A);e=Array.from(new Uint8Array(t)).map((A=>A.toString(16).padStart(2,"0"))).join("")}catch(A){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:A}),e=fileid()}return e},REGEX_LINK={ +var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,i=arguments.length;t0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&t>10),r%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),p=10,w=13,m=15,f=17,B=18,E=19,C=20,b=21,v=22,F=24,y=25,x=26,Q=27,U=28,I=30,S=32,T=33,L=34,M=35,k=37,H=38,D=39,O=40,N=42,R=[9001,65288],P="×",V="÷",K=function(A){var e,t,i,n=function(A){var e,t,i,n,a,r=.75*A.length,s=A.length,o=0;"="===A[A.length-1]&&(r--,"="===A[A.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(A),a=Array.isArray(n)?function(A){for(var e=A.length,t=[],i=0;i0;){var r=i[--a];if(Array.isArray(A)?-1!==A.indexOf(r):A===r)for(var s=t;s<=i.length;){var o;if((o=i[++s])===e)return!0;if(o!==p)break}if(r!==p)break}return!1},q=function(A,e){for(var t=A;t>=0;){var i=e[t];if(i!==p)return i;t--}return 0},_=function(A,e,t,i,n){if(0===t[i])return P;var a=i-1;if(Array.isArray(n)&&!0===n[a])return P;var r=a-1,s=a+1,o=e[a],l=r>=0?e[r]:0,c=e[s];if(2===o&&3===c)return P;if(-1!==W.indexOf(o))return"!";if(-1!==W.indexOf(c))return P;if(-1!==X.indexOf(c))return P;if(8===q(a,e))return V;if(11===K.get(A[a]))return P;if((o===S||o===T)&&11===K.get(A[s]))return P;if(7===o||7===c)return P;if(9===o)return P;if(-1===[p,w,m].indexOf(o)&&9===c)return P;if(-1!==[f,B,E,F,U].indexOf(c))return P;if(q(a,e)===v)return P;if(Z(23,v,a,e))return P;if(Z([f,B],b,a,e))return P;if(Z(12,12,a,e))return P;if(o===p)return V;if(23===o||23===c)return P;if(16===c||16===o)return V;if(-1!==[w,m,b].indexOf(c)||14===o)return P;if(36===l&&-1!==J.indexOf(o))return P;if(o===U&&36===c)return P;if(c===C)return P;if(-1!==G.indexOf(c)&&o===y||-1!==G.indexOf(o)&&c===y)return P;if(o===Q&&-1!==[k,S,T].indexOf(c)||-1!==[k,S,T].indexOf(o)&&c===x)return P;if(-1!==G.indexOf(o)&&-1!==z.indexOf(c)||-1!==z.indexOf(o)&&-1!==G.indexOf(c))return P;if(-1!==[Q,x].indexOf(o)&&(c===y||-1!==[v,m].indexOf(c)&&e[s+1]===y)||-1!==[v,m].indexOf(o)&&c===y||o===y&&-1!==[y,U,F].indexOf(c))return P;if(-1!==[y,U,F,f,B].indexOf(c))for(var d=a;d>=0;){if((h=e[d])===y)return P;if(-1===[U,F].indexOf(h))break;d--}if(-1!==[Q,x].indexOf(c))for(d=-1!==[f,B].indexOf(o)?r:a;d>=0;){var h;if((h=e[d])===y)return P;if(-1===[U,F].indexOf(h))break;d--}if(H===o&&-1!==[H,D,L,M].indexOf(c)||-1!==[D,L].indexOf(o)&&-1!==[D,O].indexOf(c)||-1!==[O,M].indexOf(o)&&c===O)return P;if(-1!==j.indexOf(o)&&-1!==[C,x].indexOf(c)||-1!==j.indexOf(c)&&o===Q)return P;if(-1!==G.indexOf(o)&&-1!==G.indexOf(c))return P;if(o===F&&-1!==G.indexOf(c))return P;if(-1!==G.concat(y).indexOf(o)&&c===v&&-1===R.indexOf(A[s])||-1!==G.concat(y).indexOf(c)&&o===B)return P;if(41===o&&41===c){for(var g=t[a],u=1;g>0&&41===e[--g];)u++;if(u%2!=0)return P}return o===S&&c===T?P:V},$=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],i=[],n=[];return A.forEach((function(A,a){var r=K.get(A);if(r>50?(n.push(!0),r-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return i.push(a),t.push(16);if(4===r||11===r){if(0===a)return i.push(a),t.push(I);var s=t[a-1];return-1===Y.indexOf(s)?(i.push(i[a-1]),t.push(s)):(i.push(a),t.push(I))}return i.push(a),31===r?t.push("strict"===e?b:k):r===N||29===r?t.push(I):43===r?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(k):t.push(I):void t.push(r)})),[i,t,n]}(A,e.lineBreak),i=t[0],n=t[1],a=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[y,I,N].indexOf(A)?k:A})));var r="keep-all"===e.wordBreak?a.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[i,n,r]},AA=function(){function A(A,e,t,i){this.codePoints=A,this.required="!"===e,this.start=t,this.end=i}return A.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),eA=45,tA=43,iA=-1,nA=function(A){return A>=48&&A<=57},aA=function(A){return nA(A)||A>=65&&A<=70||A>=97&&A<=102},rA=function(A){return 10===A||9===A||32===A},sA=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},oA=function(A){return sA(A)||nA(A)||A===eA},lA=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},cA=function(A,e){return 92===A&&10!==e},dA=function(A,e,t){return A===eA?sA(e)||cA(e,t):!!sA(A)||!(92!==A||!cA(A,e))},hA=function(A,e,t){return A===tA||A===eA?!!nA(e)||46===e&&nA(t):nA(46===A?e:A)},gA=function(A){var e=0,t=1;A[e]!==tA&&A[e]!==eA||(A[e]===eA&&(t=-1),e++);for(var i=[];nA(A[e]);)i.push(A[e++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===A[e]&&e++;for(var a=[];nA(A[e]);)a.push(A[e++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==A[e]&&101!==A[e]||e++;var o=1;A[e]!==tA&&A[e]!==eA||(A[e]===eA&&(o=-1),e++);for(var c=[];nA(A[e]);)c.push(A[e++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return t*(n+s*Math.pow(10,-r))*Math.pow(10,o*d)},uA={type:2},pA={type:3},wA={type:4},mA={type:13},fA={type:8},BA={type:21},EA={type:9},CA={type:10},bA={type:11},vA={type:12},FA={type:14},yA={type:23},xA={type:1},QA={type:25},UA={type:24},IA={type:26},SA={type:27},TA={type:28},LA={type:29},MA={type:31},kA={type:32},HA=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(o(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==kA;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),i=this.peekCodePoint(2);if(oA(e)||cA(t,i)){var n=dA(e,t,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),mA;break;case 39:return this.consumeStringToken(39);case 40:return uA;case 41:return pA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),FA;break;case tA:if(hA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return wA;case eA:var a=A,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(hA(a,r,s))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(dA(a,r,s))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(r===eA&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),UA;break;case 46:if(hA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===iA)return this.consumeToken()}break;case 58:return IA;case 59:return SA;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===eA&&this.peekCodePoint(2)===eA)return this.consumeCodePoint(),this.consumeCodePoint(),QA;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(dA(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return TA;case 92:if(cA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return LA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),fA;break;case 123:return bA;case 125:return vA;case 117:case 85:var g=this.peekCodePoint(0),u=this.peekCodePoint(1);return g!==tA||!aA(u)&&63!==u||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),EA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),BA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),CA;break;case iA:return kA}return rA(A)?(this.consumeWhiteSpace(),MA):nA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):sA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:l(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();aA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(l.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(l.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var i=parseInt(l.apply(void 0,A),16);if(this.peekCodePoint(0)===eA&&aA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];aA(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===iA)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===iA||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),yA)}for(;;){var i=this.consumeCodePoint();if(i===iA||41===i)return{type:22,value:l.apply(void 0,A)};if(rA(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===iA||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,A)}):(this.consumeBadUrlRemnants(),yA);if(34===i||39===i||40===i||lA(i))return this.consumeBadUrlRemnants(),yA;if(92===i){if(!cA(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),yA;A.push(this.consumeEscapedCodePoint())}else A.push(i)}},A.prototype.consumeWhiteSpace=function(){for(;rA(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===iA)return;cA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=l.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var i=this._value[t];if(i===iA||void 0===i||i===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===i)return this._value.splice(0,t),xA;if(92===i){var n=this._value[t+1];n!==iA&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):cA(i,n)&&(e+=this.consumeStringSlice(t),e+=l(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==tA&&t!==eA||A.push(this.consumeCodePoint());nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===t&&nA(i))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((i===tA||i===eA)&&nA(n)||nA(i)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[gA(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return dA(i,n,a)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(aA(A)){for(var e=l(A);aA(this.peekCodePoint(0))&&e.length<6;)e+=l(this.consumeCodePoint());rA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===iA?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(oA(e))A+=l(e);else{if(!cA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=l(this.consumeEscapedCodePoint())}}},A}(),DA=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new HA;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||XA(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?kA:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),OA=function(A){return 15===A.type},NA=function(A){return 17===A.type},RA=function(A){return 20===A.type},PA=function(A){return 0===A.type},VA=function(A,e){return RA(A)&&A.value===e},KA=function(A){return 31!==A.type},GA=function(A){return 31!==A.type&&4!==A.type},WA=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},XA=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},zA=function(A){return 17===A.type||15===A.type},YA=function(A){return 16===A.type||zA(A)},jA=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},JA={type:17,number:0,flags:4},ZA={type:16,number:50,flags:4},qA={type:16,number:100,flags:4},_A=function(A,e,t){var i=A[0],n=A[1];return[$A(i,e),$A(void 0!==n?n:i,t)]},$A=function(A,e){if(16===A.type)return A.number/100*e;if(OA(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},Ae="grad",ee="turn",te=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case Ae:return Math.PI/200*e.number;case"rad":return e.number;case ee:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},ie=function(A){return 15===A.type&&("deg"===A.unit||A.unit===Ae||"rad"===A.unit||A.unit===ee)},ne=function(A){switch(A.filter(RA).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[JA,JA];case"to top":case"bottom":return ae(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[JA,qA];case"to right":case"left":return ae(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[qA,qA];case"to bottom":case"top":return ae(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[qA,JA];case"to left":case"right":return ae(270)}return 0},ae=function(A){return Math.PI*A/180},re=function(A,e){if(18===e.type){var t=ue[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var i=e.value.substring(0,1),n=e.value.substring(1,2),a=e.value.substring(2,3);return le(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===e.value.length){i=e.value.substring(0,1),n=e.value.substring(1,2),a=e.value.substring(2,3);var r=e.value.substring(3,4);return le(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===e.value.length)return i=e.value.substring(0,2),n=e.value.substring(2,4),a=e.value.substring(4,6),le(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===e.value.length)return i=e.value.substring(0,2),n=e.value.substring(2,4),a=e.value.substring(4,6),r=e.value.substring(6,8),le(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(r,16)/255)}if(20===e.type){var s=we[e.value.toUpperCase()];if(void 0!==s)return s}return we.TRANSPARENT},se=function(A){return 0==(255&A)},oe=function(A){var e=255&A,t=255&A>>8,i=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+i+","+t+","+e/255+")":"rgb("+n+","+i+","+t+")"},le=function(A,e,t,i){return(A<<24|e<<16|t<<8|Math.round(255*i)<<0)>>>0},ce=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},de=function(A,e){var t=e.filter(GA);if(3===t.length){var i=t.map(ce),n=i[0],a=i[1],r=i[2];return le(n,a,r,1)}if(4===t.length){var s=t.map(ce),o=(n=s[0],a=s[1],r=s[2],s[3]);return le(n,a,r,o)}return 0};function he(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var ge=function(A,e){var t=e.filter(GA),i=t[0],n=t[1],a=t[2],r=t[3],s=(17===i.type?ae(i.number):te(A,i))/(2*Math.PI),o=YA(n)?n.number/100:0,l=YA(a)?a.number/100:0,c=void 0!==r&&YA(r)?$A(r,1):1;if(0===o)return le(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,g=he(h,d,s+1/3),u=he(h,d,s),p=he(h,d,s-1/3);return le(255*g,255*u,255*p,c)},ue={hsl:ge,hsla:ge,rgb:de,rgba:de},pe=function(A,e){return re(A,DA.create(e).parseComponentValue())},we={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},me={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(RA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},fe={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Be=function(A,e){var t=re(A,e[0]),i=e[1];return i&&YA(i)?{color:t,stop:i}:{color:t,stop:null}},Ee=function(A,e){var t=A[0],i=A[A.length-1];null===t.stop&&(t.stop=JA),null===i.stop&&(i.stop=qA);for(var n=[],a=0,r=0;ra?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(r=0;rA.optimumDistance)?{optimumCorner:e,optimumDistance:s}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Fe=function(A,e){var t=ae(180),i=[];return WA(e).forEach((function(e,n){if(0===n){var a=e[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(t=ne(e));if(ie(a))return void(t=(te(A,a)+ae(270))%ae(360))}var r=Be(A,e);i.push(r)})),{angle:t,stops:i,type:1}},ye="closest-side",xe="farthest-side",Qe="closest-corner",Ue="farthest-corner",Ie="circle",Se="ellipse",Te="cover",Le="contain",Me=function(A,e){var t=0,i=3,n=[],a=[];return WA(e).forEach((function(e,r){var s=!0;if(0===r?s=e.reduce((function(A,e){if(RA(e))switch(e.value){case"center":return a.push(ZA),!1;case"top":case"left":return a.push(JA),!1;case"right":case"bottom":return a.push(qA),!1}else if(YA(e)||zA(e))return a.push(e),!1;return A}),s):1===r&&(s=e.reduce((function(A,e){if(RA(e))switch(e.value){case Ie:return t=0,!1;case Se:return t=1,!1;case Le:case ye:return i=0,!1;case xe:return i=1,!1;case Qe:return i=2,!1;case Te:case Ue:return i=3,!1}else if(zA(e)||YA(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),s)),s){var o=Be(A,e);n.push(o)}})),{size:i,shape:t,stops:n,position:a,type:2}},ke=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var i=De[e.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return i(A,e.values)}throw new Error("Unsupported image type "+e.type)};var He,De={"linear-gradient":function(A,e){var t=ae(180),i=[];return WA(e).forEach((function(e,n){if(0===n){var a=e[0];if(20===a.type&&"to"===a.value)return void(t=ne(e));if(ie(a))return void(t=te(A,a))}var r=Be(A,e);i.push(r)})),{angle:t,stops:i,type:1}},"-moz-linear-gradient":Fe,"-ms-linear-gradient":Fe,"-o-linear-gradient":Fe,"-webkit-linear-gradient":Fe,"radial-gradient":function(A,e){var t=0,i=3,n=[],a=[];return WA(e).forEach((function(e,r){var s=!0;if(0===r){var o=!1;s=e.reduce((function(A,e){if(o)if(RA(e))switch(e.value){case"center":return a.push(ZA),A;case"top":case"left":return a.push(JA),A;case"right":case"bottom":return a.push(qA),A}else(YA(e)||zA(e))&&a.push(e);else if(RA(e))switch(e.value){case Ie:return t=0,!1;case Se:return t=1,!1;case"at":return o=!0,!1;case ye:return i=0,!1;case Te:case xe:return i=1,!1;case Le:case Qe:return i=2,!1;case Ue:return i=3,!1}else if(zA(e)||YA(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),s)}if(s){var l=Be(A,e);n.push(l)}})),{size:i,shape:t,stops:n,position:a,type:2}},"-moz-radial-gradient":Me,"-ms-radial-gradient":Me,"-o-radial-gradient":Me,"-webkit-radial-gradient":Me,"-webkit-gradient":function(A,e){var t=ae(180),i=[],n=1;return WA(e).forEach((function(e,t){var a=e[0];if(0===t){if(RA(a)&&"linear"===a.value)return void(n=1);if(RA(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var r=re(A,a.values[0]);i.push({stop:JA,color:r})}else if("to"===a.name)r=re(A,a.values[0]),i.push({stop:qA,color:r});else if("color-stop"===a.name){var s=a.values.filter(GA);if(2===s.length){r=re(A,s[1]);var o=s[0];NA(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===n?{angle:(t+ae(180))%ae(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},Oe={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return GA(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!De[A.name])}(A)})).map((function(e){return ke(A,e)}))}},Ne={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(RA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Re={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return WA(e).map((function(A){return A.filter(YA)})).map(jA)}},Pe={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return WA(e).map((function(A){return A.filter(RA).map((function(A){return A.value})).join(" ")})).map(Ve)}},Ve=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(He||(He={}));var Ke,Ge={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return WA(e).map((function(A){return A.filter(We)}))}},We=function(A){return RA(A)||YA(A)},Xe=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},ze=Xe("top"),Ye=Xe("right"),je=Xe("bottom"),Je=Xe("left"),Ze=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return jA(e.filter(YA))}}},qe=Ze("top-left"),_e=Ze("top-right"),$e=Ze("bottom-right"),At=Ze("bottom-left"),et=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tt=et("top"),it=et("right"),nt=et("bottom"),at=et("left"),rt=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return OA(e)?e.number:0}}},st=rt("top"),ot=rt("right"),lt=rt("bottom"),ct=rt("left"),dt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ht={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},gt={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(RA).reduce((function(A,e){return A|ut(e.value)}),0)}},ut=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},pt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},wt={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(Ke||(Ke={}));var mt,ft={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?Ke.STRICT:Ke.NORMAL}},Bt={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=function(A,e){return RA(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:YA(A)?$A(A,e):e},Ct={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:ke(A,e)}},bt={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},vt={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Ft=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},yt=Ft("top"),xt=Ft("right"),Qt=Ft("bottom"),Ut=Ft("left"),It={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(RA).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},St={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Tt=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},Lt=Tt("top"),Mt=Tt("right"),kt=Tt("bottom"),Ht=Tt("left"),Dt={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},Ot={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Nt={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&VA(e[0],"none")?[]:WA(e).map((function(e){for(var t={color:we.TRANSPARENT,offsetX:JA,offsetY:JA,blur:JA},i=0,n=0;n1?1:0],this.overflowWrap=mi(A,St,e.overflowWrap),this.paddingTop=mi(A,Lt,e.paddingTop),this.paddingRight=mi(A,Mt,e.paddingRight),this.paddingBottom=mi(A,kt,e.paddingBottom),this.paddingLeft=mi(A,Ht,e.paddingLeft),this.paintOrder=mi(A,di,e.paintOrder),this.position=mi(A,Ot,e.position),this.textAlign=mi(A,Dt,e.textAlign),this.textDecorationColor=mi(A,Zt,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=mi(A,qt,null!==(i=e.textDecorationLine)&&void 0!==i?i:e.textDecoration),this.textShadow=mi(A,Nt,e.textShadow),this.textTransform=mi(A,Rt,e.textTransform),this.transform=mi(A,Pt,e.transform),this.transformOrigin=mi(A,Wt,e.transformOrigin),this.visibility=mi(A,Xt,e.visibility),this.webkitTextStrokeColor=mi(A,hi,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=mi(A,gi,e.webkitTextStrokeWidth),this.wordBreak=mi(A,zt,e.wordBreak),this.zIndex=mi(A,Yt,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return se(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ii(this.display,4)||ii(this.display,33554432)||ii(this.display,268435456)||ii(this.display,536870912)||ii(this.display,67108864)||ii(this.display,134217728)},A}(),pi=function(A,e){this.content=mi(A,ni,e.content),this.quotes=mi(A,oi,e.quotes)},wi=function(A,e){this.counterIncrement=mi(A,ai,e.counterIncrement),this.counterReset=mi(A,ri,e.counterReset)},mi=function(A,e,t){var i=new HA,n=null!=t?t.toString():e.initialValue;i.write(n);var a=new DA(i.read());switch(e.type){case 2:var r=a.parseComponentValue();return e.parse(A,RA(r)?r.value:e.initialValue);case 0:return e.parse(A,a.parseComponentValue());case 1:return e.parse(A,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(e.format){case"angle":return te(A,a.parseComponentValue());case"color":return re(A,a.parseComponentValue());case"image":return ke(A,a.parseComponentValue());case"length":var s=a.parseComponentValue();return zA(s)?s:JA;case"length-percentage":var o=a.parseComponentValue();return YA(o)?o:JA;case"time":return jt.parse(A,a.parseComponentValue())}}},fi=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},Bi=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,fi(e,3),this.styles=new ui(A,window.getComputedStyle(e,null)),Fn(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=s(this.context,e),fi(e,4)&&(this.flags|=16)},Ei="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ci="undefined"==typeof Uint8Array?[]:new Uint8Array(256),bi=0;bi=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),yi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xi="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Qi=0;Qi>10),r%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},ki=function(A,e){var t,i,n,a=function(A){var e,t,i,n,a,r=.75*A.length,s=A.length,o=0;"="===A[A.length-1]&&(r--,"="===A[A.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(A),r=Array.isArray(a)?function(A){for(var e=A.length,t=[],i=0;i=55296&&n<=56319&&t=t)return{done:!0,value:null};for(var A=Hi;ir.x||n.y>r.y;return r=n,0===e||s}));return A.body.removeChild(e),s}(document);return Object.defineProperty(Ki,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),i=t.getContext("2d");if(!i)return!1;e.src="data:image/svg+xml,";try{i.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Ki,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var i=e.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,t,t);var n=new Image,a=e.toDataURL();n.src=a;var r=Pi(t,t,0,0,n);return i.fillStyle="red",i.fillRect(0,0,t,t),Vi(r).then((function(e){i.drawImage(e,0,0);var n=i.getImageData(0,0,t,t).data;i.fillStyle="red",i.fillRect(0,0,t,t);var r=A.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",Ri(n)?Vi(Pi(t,t,0,0,r)):Promise.reject(!1)})).then((function(A){return i.drawImage(A,0,0),Ri(i.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Ki,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Ki,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Ki,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Ki,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Ki,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},Gi=function(A,e){this.text=A,this.bounds=e},Wi=function(A,e){var t=e.ownerDocument;if(t){var i=t.createElement("html2canvaswrapper");i.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(i,e);var a=s(A,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return r.EMPTY},Xi=function(A,e,t){var i=A.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},zi=function(A){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=Ni(A),i=[];!(e=t.next()).done;)e.value&&i.push(e.value.slice());return i}(A)},Yi=function(A,e){return 0!==e.letterSpacing?zi(A):function(A,e){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return Ji(A,e)}(A,e)},ji=[32,160,4961,65792,65793,4153,4241],Ji=function(A,e){for(var t,i=function(A,e){var t=o(A),i=$(t,e),n=i[0],a=i[1],r=i[2],s=t.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var A=P;c0)if(Ki.SUPPORT_RANGE_BOUNDS){var n=Xi(i,s,e.length).getClientRects();if(n.length>1){var o=zi(e),l=0;o.forEach((function(e){a.push(new Gi(e,r.fromDOMRectList(A,Xi(i,l+s,e.length).getClientRects()))),l+=e.length}))}else a.push(new Gi(e,r.fromDOMRectList(A,n)))}else{var c=i.splitText(e.length);a.push(new Gi(e,Wi(A,i))),i=c}else Ki.SUPPORT_RANGE_BOUNDS||(i=i.splitText(e.length));s+=e.length})),a}(A,this.text,t,e)},qi=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(_i,$i);case 2:return A.toUpperCase();default:return A}},_i=/(^|\s|:|-|\(|\))([a-z])/g,$i=function(A,e,t){return A.length>0?e+t.toUpperCase():A},An=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.src=t.currentSrc||t.src,i.intrinsicWidth=t.naturalWidth,i.intrinsicHeight=t.naturalHeight,i.context.cache.addImage(i.src),i}return e(t,A),t}(Bi),en=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.canvas=t,i.intrinsicWidth=t.width,i.intrinsicHeight=t.height,i}return e(t,A),t}(Bi),tn=function(A){function t(e,t){var i=A.call(this,e,t)||this,n=new XMLSerializer,a=s(e,t);return t.setAttribute("width",a.width+"px"),t.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),i.intrinsicWidth=t.width.baseVal.value,i.intrinsicHeight=t.height.baseVal.value,i.context.cache.addImage(i.svg),i}return e(t,A),t}(Bi),nn=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.value=t.value,i}return e(t,A),t}(Bi),an=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.start=t.start,i.reversed="boolean"==typeof t.reversed&&!0===t.reversed,i}return e(t,A),t}(Bi),rn=[{type:15,flags:0,unit:"px",number:3}],sn=[{type:16,flags:0,number:50}],on="checkbox",ln="radio",cn="password",dn=707406591,hn=function(A){function t(e,t){var i,n,a,s=A.call(this,e,t)||this;switch(s.type=t.type.toLowerCase(),s.checked=t.checked,s.value=0===(a=(n=t).type===cn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,s.type!==on&&s.type!==ln||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(i=s.bounds).width>i.height?new r(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)t.textNodes.push(new Zi(A,n,t.styles));else if(vn(n))if(On(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return mn(A,e,t,i)}));else{var r=fn(A,n);r.styles.isVisible()&&(En(n,r,i)?r.flags|=4:Cn(r.styles)&&(r.flags|=2),-1!==wn.indexOf(n.tagName)&&(r.flags|=8),t.elements.push(r),n.slot,n.shadowRoot?mn(A,n.shadowRoot,r,i):Hn(n)||In(n)||Dn(n)||mn(A,n,r,i))}},fn=function(A,e){return Ln(e)?new An(A,e):Tn(e)?new en(A,e):In(e)?new tn(A,e):xn(e)?new nn(A,e):Qn(e)?new an(A,e):Un(e)?new hn(A,e):Dn(e)?new gn(A,e):Hn(e)?new un(A,e):Mn(e)?new pn(A,e):new Bi(A,e)},Bn=function(A,e){var t=fn(A,e);return t.flags|=4,mn(A,e,t,t),t},En=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Sn(A)&&t.styles.isTransparent()},Cn=function(A){return A.isPositioned()||A.isFloating()},bn=function(A){return A.nodeType===Node.TEXT_NODE},vn=function(A){return A.nodeType===Node.ELEMENT_NODE},Fn=function(A){return vn(A)&&void 0!==A.style&&!yn(A)},yn=function(A){return"object"==typeof A.className},xn=function(A){return"LI"===A.tagName},Qn=function(A){return"OL"===A.tagName},Un=function(A){return"INPUT"===A.tagName},In=function(A){return"svg"===A.tagName},Sn=function(A){return"BODY"===A.tagName},Tn=function(A){return"CANVAS"===A.tagName},Ln=function(A){return"IMG"===A.tagName},Mn=function(A){return"IFRAME"===A.tagName},kn=function(A){return"STYLE"===A.tagName},Hn=function(A){return"TEXTAREA"===A.tagName},Dn=function(A){return"SELECT"===A.tagName},On=function(A){return"SLOT"===A.tagName},Nn=function(A){return A.tagName.indexOf("-")>0},Rn=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){return this.counters[A]||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,i=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var a=[];return n&&i.forEach((function(A){var t=e.counters[A.counter];a.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),a},A}(),Pn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Vn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Kn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Gn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Wn=function(A,e,t,i,n,a){return At?$n(A,n,a.length>0):i.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=i.values[n];return e}),"")+a},Xn=function(A,e,t,i){var n="";do{t||A--,n=i(A)+n,A/=e}while(A*e>=e);return n},zn=function(A,e,t,i,n){var a=t-e+1;return(A<0?"-":"")+(Xn(Math.abs(A),a,i,(function(A){return l(Math.floor(A%a)+e)}))+n)},Yn=function(A,e,t){void 0===t&&(t=". ");var i=e.length;return Xn(Math.abs(A),i,!1,(function(A){return e[Math.floor(A%i)]}))+t},jn=function(A,e,t,i,n,a){if(A<-9999||A>9999)return $n(A,4,n.length>0);var r=Math.abs(A),s=n;if(0===r)return e[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&ii(a,1)&&""!==s?s=e[l]+s:l>1||1===l&&0===o||1===l&&1===o&&ii(a,2)||1===l&&1===o&&ii(a,4)&&A>100||1===l&&o>1&&ii(a,8)?s=e[l]+(o>0?t[o-1]:"")+s:1===l&&o>0&&(s=t[o-1]+s),r=Math.floor(r/10)}return(A<0?i:"")+s},Jn="十百千萬",Zn="拾佰仟萬",qn="マイナス",_n="마이너스",$n=function(A,e,t){var i=t?". ":"",n=t?"、":"",a=t?", ":"",r=t?" ":"";switch(e){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=zn(A,48,57,!0,i);return s.length<4?"0"+s:s;case 4:return Yn(A,"〇一二三四五六七八九",n);case 6:return Wn(A,1,3999,Pn,3,i).toLowerCase();case 7:return Wn(A,1,3999,Pn,3,i);case 8:return zn(A,945,969,!1,i);case 9:return zn(A,97,122,!1,i);case 10:return zn(A,65,90,!1,i);case 11:return zn(A,1632,1641,!0,i);case 12:case 49:return Wn(A,1,9999,Vn,3,i);case 35:return Wn(A,1,9999,Vn,3,i).toLowerCase();case 13:return zn(A,2534,2543,!0,i);case 14:case 30:return zn(A,6112,6121,!0,i);case 15:return Yn(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Yn(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return jn(A,"零一二三四五六七八九",Jn,"負",n,14);case 47:return jn(A,"零壹貳參肆伍陸柒捌玖",Zn,"負",n,15);case 42:return jn(A,"零一二三四五六七八九",Jn,"负",n,14);case 41:return jn(A,"零壹贰叁肆伍陆柒捌玖",Zn,"负",n,15);case 26:return jn(A,"〇一二三四五六七八九","十百千万",qn,n,0);case 25:return jn(A,"零壱弐参四伍六七八九","拾百千万",qn,n,7);case 31:return jn(A,"영일이삼사오육칠팔구","십백천만",_n,a,7);case 33:return jn(A,"零一二三四五六七八九","十百千萬",_n,a,0);case 32:return jn(A,"零壹貳參四五六七八九","拾百千",_n,a,7);case 18:return zn(A,2406,2415,!0,i);case 20:return Wn(A,1,19999,Gn,3,i);case 21:return zn(A,2790,2799,!0,i);case 22:return zn(A,2662,2671,!0,i);case 22:return Wn(A,1,10999,Kn,3,i);case 23:return Yn(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Yn(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return zn(A,3302,3311,!0,i);case 28:return Yn(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Yn(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return zn(A,3792,3801,!0,i);case 37:return zn(A,6160,6169,!0,i);case 38:return zn(A,4160,4169,!0,i);case 39:return zn(A,2918,2927,!0,i);case 40:return zn(A,1776,1785,!0,i);case 43:return zn(A,3046,3055,!0,i);case 44:return zn(A,3174,3183,!0,i);case 45:return zn(A,3664,3673,!0,i);case 46:return zn(A,3872,3881,!0,i);default:return zn(A,48,57,!0,i)}},Aa="data-html2canvas-ignore",ea=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Rn,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,a=ia(A,e);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=A.defaultView.pageXOffset,s=A.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ra(a).then((function(){return i(t,void 0,void 0,(function(){var A,t;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(da),o&&(o.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===e.top&&o.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-e.left,o.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,aa(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(l,t)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(la(document.doctype)+""),ca(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},A.prototype.createElementClone=function(A){if(fi(A,2),Tn(A))return this.createCanvasClone(A);if(kn(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Ln(e)&&(Ln(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Nn(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return oa(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),i=A.cloneNode(!1);return i.textContent=t,i}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var i=A.cloneNode(!1);try{i.width=A.width,i.height=A.height;var n=A.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,A.width,A.height),0,0);else{var r=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}a.drawImage(A,0,0)}return i}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return i},A.prototype.appendChildNode=function(A,e,t){vn(e)&&("SCRIPT"===e.tagName||e.hasAttribute(Aa)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&vn(e)&&kn(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneNode=function(A,e){var t=this;if(bn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var i=A.ownerDocument.defaultView;if(i&&vn(A)&&(Fn(A)||yn(A))){var n=this.createElementClone(A);n.style.transitionProperty="none";var a=i.getComputedStyle(A),r=i.getComputedStyle(A,":before"),s=i.getComputedStyle(A,":after");this.referenceElement===A&&Fn(n)&&(this.clonedReferenceElement=n),Sn(n)&&pa(n);var o=this.counters.parse(new wi(this.context,a)),l=this.resolvePseudoContent(A,n,r,Ui.BEFORE);Nn(A)&&(e=!0);for(var c=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;c;c=c.nextSibling)if(vn(c)&&On(c)&&"function"==typeof c.assignedNodes){var d=c.assignedNodes();d.length&&d.forEach((function(A){return t.appendChildNode(n,A,e)}))}else this.appendChildNode(n,c,e);l&&n.insertBefore(l,n.firstChild);var h=this.resolvePseudoContent(A,n,s,Ui.AFTER);return h&&n.appendChild(h),this.counters.pop(o),(a&&(this.options.copyStyles||yn(A))&&!Mn(A)||e)&&oa(a,n),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([n,A.scrollLeft,A.scrollTop]),(Hn(A)||Dn(A))&&(Hn(n)||Dn(n))&&(n.value=A.value),n}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,i){var n=this;if(t){var a=t.content,r=e.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==t.display){this.counters.parse(new wi(this.context,t));var s=new pi(this.context,t),o=r.createElement("html2canvaspseudoelement");oa(t,o),s.content.forEach((function(e){if(0===e.type)o.appendChild(r.createTextNode(e.value));else if(22===e.type){var t=r.createElement("img");t.src=e.value,t.style.opacity="1",o.appendChild(t)}else if(18===e.type){if("attr"===e.name){var i=e.values.filter(RA);i.length&&o.appendChild(r.createTextNode(A.getAttribute(i[0].value)||""))}else if("counter"===e.name){var a=e.values.filter(GA),l=a[0],c=a[1];if(l&&RA(l)){var d=n.counters.getCounterValue(l.value),h=c&&RA(c)?vt.parse(n.context,c.value):3;o.appendChild(r.createTextNode($n(d,h,!1)))}}else if("counters"===e.name){var g=e.values.filter(GA),u=(l=g[0],g[1]);if(c=g[2],l&&RA(l)){var p=n.counters.getCounterValues(l.value),w=c&&RA(c)?vt.parse(n.context,c.value):3,m=u&&0===u.type?u.value:"",f=p.map((function(A){return $n(A,w,!1)})).join(m);o.appendChild(r.createTextNode(f))}}}else if(20===e.type)switch(e.value){case"open-quote":o.appendChild(r.createTextNode(li(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(li(s.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(e.value))}})),o.className=ha+" "+ga;var l=i===Ui.BEFORE?" "+ha:" "+ga;return yn(e)?e.className.baseValue+=l:e.className+=l,o}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Ui||(Ui={}));var ta,ia=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(Aa,"true"),A.body.appendChild(t),t},na=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},aa=function(A){return Promise.all([].slice.call(A.images,0).map(na))},ra=function(A){return new Promise((function(e,t){var i=A.contentWindow;if(!i)return t("No window assigned for iframe");var n=i.document;i.onload=A.onload=function(){i.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},sa=["all","d","content"],oa=function(A,e){for(var t=A.length-1;t>=0;t--){var i=A.item(t);-1===sa.indexOf(i)&&e.style.setProperty(i,A.getPropertyValue(i))}return e},la=function(A){var e="";return A&&(e+=""),e},ca=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},da=function(A){var e=A[0],t=A[1],i=A[2];e.scrollLeft=t,e.scrollTop=i},ha="___html2canvas___pseudoelement_before",ga="___html2canvas___pseudoelement_after",ua='{\n content: "" !important;\n display: none !important;\n}',pa=function(A){wa(A,"."+ha+":before"+ua+"\n ."+ga+":after"+ua)},wa=function(A,e){var t=A.ownerDocument;if(t){var i=t.createElement("style");i.textContent=e,A.appendChild(i)}},ma=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),fa=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:ya(A)||ba(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return i(this,void 0,void 0,(function(){var e,t,i,a,r=this;return n(this,(function(n){switch(n.label){case 0:return e=ma.isSameOrigin(A),t=!va(A)&&!0===this._options.useCORS&&Ki.SUPPORT_CORS_IMAGES&&!e,i=!va(A)&&!e&&!ya(A)&&"string"==typeof this._options.proxy&&Ki.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||va(A)||ya(A)||i||t?(a=A,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var i=new Image;i.onload=function(){return A(i)},i.onerror=e,(Fa(a)||t)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return A(i)}),500),r._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var i=A.substring(0,256);return new Promise((function(n,a){var r=Ki.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)n(s.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return a(A)}),!1),A.readAsDataURL(s.response)}else a("Failed to proxy resource "+i+" with status code "+s.status)},s.onerror=a;var o=t.indexOf("?")>-1?"&":"?";if(s.open("GET",""+t+o+"url="+encodeURIComponent(A)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),e._options.imageTimeout){var l=e._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}s.send()}))},A}(),Ba=/^data:image\/svg\+xml/i,Ea=/^data:image\/.*;base64,/i,Ca=/^data:image\/.*/i,ba=function(A){return Ki.SUPPORT_SVG_DRAWING||!xa(A)},va=function(A){return Ca.test(A)},Fa=function(A){return Ea.test(A)},ya=function(A){return"blob"===A.substr(0,4)},xa=function(A){return"svg"===A.substr(-3).toLowerCase()||Ba.test(A)},Qa=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),Ua=function(A,e,t){return new Qa(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ia=function(){function A(A,e,t,i){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=i}return A.prototype.subdivide=function(e,t){var i=Ua(this.start,this.startControl,e),n=Ua(this.startControl,this.endControl,e),a=Ua(this.endControl,this.end,e),r=Ua(i,n,e),s=Ua(n,a,e),o=Ua(r,s,e);return t?new A(this.start,i,r,o):new A(o,s,a,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Sa=function(A){return 1===A.type},Ta=function(A){var e=A.styles,t=A.bounds,i=_A(e.borderTopLeftRadius,t.width,t.height),n=i[0],a=i[1],r=_A(e.borderTopRightRadius,t.width,t.height),s=r[0],o=r[1],l=_A(e.borderBottomRightRadius,t.width,t.height),c=l[0],d=l[1],h=_A(e.borderBottomLeftRadius,t.width,t.height),g=h[0],u=h[1],p=[];p.push((n+s)/t.width),p.push((g+c)/t.width),p.push((a+u)/t.height),p.push((o+d)/t.height);var w=Math.max.apply(Math,p);w>1&&(n/=w,a/=w,s/=w,o/=w,c/=w,d/=w,g/=w,u/=w);var m=t.width-s,f=t.height-d,B=t.width-c,E=t.height-u,C=e.borderTopWidth,b=e.borderRightWidth,v=e.borderBottomWidth,F=e.borderLeftWidth,y=$A(e.paddingTop,A.bounds.width),x=$A(e.paddingRight,A.bounds.width),Q=$A(e.paddingBottom,A.bounds.width),U=$A(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?La(t.left+F/3,t.top+C/3,n-F/3,a-C/3,ta.TOP_LEFT):new Qa(t.left+F/3,t.top+C/3),this.topRightBorderDoubleOuterBox=n>0||a>0?La(t.left+m,t.top+C/3,s-b/3,o-C/3,ta.TOP_RIGHT):new Qa(t.left+t.width-b/3,t.top+C/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?La(t.left+B,t.top+f,c-b/3,d-v/3,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-b/3,t.top+t.height-v/3),this.bottomLeftBorderDoubleOuterBox=g>0||u>0?La(t.left+F/3,t.top+E,g-F/3,u-v/3,ta.BOTTOM_LEFT):new Qa(t.left+F/3,t.top+t.height-v/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?La(t.left+2*F/3,t.top+2*C/3,n-2*F/3,a-2*C/3,ta.TOP_LEFT):new Qa(t.left+2*F/3,t.top+2*C/3),this.topRightBorderDoubleInnerBox=n>0||a>0?La(t.left+m,t.top+2*C/3,s-2*b/3,o-2*C/3,ta.TOP_RIGHT):new Qa(t.left+t.width-2*b/3,t.top+2*C/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?La(t.left+B,t.top+f,c-2*b/3,d-2*v/3,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-2*b/3,t.top+t.height-2*v/3),this.bottomLeftBorderDoubleInnerBox=g>0||u>0?La(t.left+2*F/3,t.top+E,g-2*F/3,u-2*v/3,ta.BOTTOM_LEFT):new Qa(t.left+2*F/3,t.top+t.height-2*v/3),this.topLeftBorderStroke=n>0||a>0?La(t.left+F/2,t.top+C/2,n-F/2,a-C/2,ta.TOP_LEFT):new Qa(t.left+F/2,t.top+C/2),this.topRightBorderStroke=n>0||a>0?La(t.left+m,t.top+C/2,s-b/2,o-C/2,ta.TOP_RIGHT):new Qa(t.left+t.width-b/2,t.top+C/2),this.bottomRightBorderStroke=c>0||d>0?La(t.left+B,t.top+f,c-b/2,d-v/2,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-b/2,t.top+t.height-v/2),this.bottomLeftBorderStroke=g>0||u>0?La(t.left+F/2,t.top+E,g-F/2,u-v/2,ta.BOTTOM_LEFT):new Qa(t.left+F/2,t.top+t.height-v/2),this.topLeftBorderBox=n>0||a>0?La(t.left,t.top,n,a,ta.TOP_LEFT):new Qa(t.left,t.top),this.topRightBorderBox=s>0||o>0?La(t.left+m,t.top,s,o,ta.TOP_RIGHT):new Qa(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||d>0?La(t.left+B,t.top+f,c,d,ta.BOTTOM_RIGHT):new Qa(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=g>0||u>0?La(t.left,t.top+E,g,u,ta.BOTTOM_LEFT):new Qa(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||a>0?La(t.left+F,t.top+C,Math.max(0,n-F),Math.max(0,a-C),ta.TOP_LEFT):new Qa(t.left+F,t.top+C),this.topRightPaddingBox=s>0||o>0?La(t.left+Math.min(m,t.width-b),t.top+C,m>t.width+b?0:Math.max(0,s-b),Math.max(0,o-C),ta.TOP_RIGHT):new Qa(t.left+t.width-b,t.top+C),this.bottomRightPaddingBox=c>0||d>0?La(t.left+Math.min(B,t.width-F),t.top+Math.min(f,t.height-v),Math.max(0,c-b),Math.max(0,d-v),ta.BOTTOM_RIGHT):new Qa(t.left+t.width-b,t.top+t.height-v),this.bottomLeftPaddingBox=g>0||u>0?La(t.left+F,t.top+Math.min(E,t.height-v),Math.max(0,g-F),Math.max(0,u-v),ta.BOTTOM_LEFT):new Qa(t.left+F,t.top+t.height-v),this.topLeftContentBox=n>0||a>0?La(t.left+F+U,t.top+C+y,Math.max(0,n-(F+U)),Math.max(0,a-(C+y)),ta.TOP_LEFT):new Qa(t.left+F+U,t.top+C+y),this.topRightContentBox=s>0||o>0?La(t.left+Math.min(m,t.width+F+U),t.top+C+y,m>t.width+F+U?0:s-F+U,o-(C+y),ta.TOP_RIGHT):new Qa(t.left+t.width-(b+x),t.top+C+y),this.bottomRightContentBox=c>0||d>0?La(t.left+Math.min(B,t.width-(F+U)),t.top+Math.min(f,t.height+C+y),Math.max(0,c-(b+x)),d-(v+Q),ta.BOTTOM_RIGHT):new Qa(t.left+t.width-(b+x),t.top+t.height-(v+Q)),this.bottomLeftContentBox=g>0||u>0?La(t.left+F+U,t.top+E,Math.max(0,g-(F+U)),u-(v+Q),ta.BOTTOM_LEFT):new Qa(t.left+F+U,t.top+t.height-(v+Q))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(ta||(ta={}));var La=function(A,e,t,i,n){var a=(Math.sqrt(2)-1)/3*4,r=t*a,s=i*a,o=A+t,l=e+i;switch(n){case ta.TOP_LEFT:return new Ia(new Qa(A,l),new Qa(A,l-s),new Qa(o-r,e),new Qa(o,e));case ta.TOP_RIGHT:return new Ia(new Qa(A,e),new Qa(A+r,e),new Qa(o,l-s),new Qa(o,l));case ta.BOTTOM_RIGHT:return new Ia(new Qa(o,e),new Qa(o,e+s),new Qa(A+r,l),new Qa(A,l));case ta.BOTTOM_LEFT:default:return new Ia(new Qa(o,l),new Qa(o-r,l),new Qa(A,e+s),new Qa(A,e))}},Ma=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},ka=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Ha=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},Da=function(A,e){this.path=A,this.target=e,this.type=1},Oa=function(A){this.opacity=A,this.type=2,this.target=6},Na=function(A){return 1===A.type},Ra=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Pa=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Va=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new Ta(this.container),this.container.styles.opacity<1&&this.effects.push(new Oa(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Ha(t,i,n))}if(0!==this.container.styles.overflowX){var a=Ma(this.curves),r=ka(this.curves);Ra(a,r)?this.effects.push(new Da(a,6)):(this.effects.push(new Da(a,2)),this.effects.push(new Da(r,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,i=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!Na(A)}));if(e||0!==t.container.styles.position||!t.parent){if(i.unshift.apply(i,n),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var a=Ma(t.curves),r=ka(t.curves);Ra(a,r)||i.unshift(new Da(r,6))}}else i.unshift.apply(i,n);t=t.parent}return i.filter((function(e){return ii(e.target,A)}))},A}(),Ka=function(A,e,t,i){A.container.elements.forEach((function(n){var a=ii(n.flags,4),r=ii(n.flags,2),s=new Va(n,A);ii(n.styles.display,2048)&&i.push(s);var o=ii(n.flags,8)?[]:i;if(a||r){var l=a||n.styles.isPositioned()?t:e,c=new Pa(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(A,e){return d>A.element.container.styles.zIndex.order?(h=e,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var g=0;l.positiveZIndex.some((function(A,e){return d>=A.element.container.styles.zIndex.order?(g=e+1,!1):g>0})),l.positiveZIndex.splice(g,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Ka(s,c,a?c:t,o)}else n.styles.isInlineLevel()?e.inlineLevel.push(s):e.nonInlineLevel.push(s),Ka(s,e,t,o);ii(n.flags,8)&&Ga(n,o)}))},Ga=function(A,e){for(var t=A instanceof an?A.start:1,i=A instanceof an&&A.reversed,n=0;n0&&A.intrinsicHeight>0){var i=ja(A),n=ka(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return i(this,void 0,void 0,(function(){var e,i,a,s,o,l,c,d,h,g,u,p,w,m,f,B,E,C;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,i=A.curves,a=e.styles,s=0,o=e.textNodes,n.label=1;case 1:return s0&&F>0&&(f=i.ctx.createPattern(p,"repeat"),i.renderRepeat(E,f,x,Q))):function(A){return 2===A.type}(t)&&(B=Ja(A,e,[null,null,null]),E=B[0],C=B[1],b=B[2],v=B[3],F=B[4],y=0===t.position.length?[ZA]:t.position,x=$A(y[0],v),Q=$A(y[y.length-1],F),U=function(A,e,t,i,n){var a=0,r=0;switch(A.size){case 0:0===A.shape?a=r=Math.min(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-n)):1===A.shape&&(a=Math.min(Math.abs(e),Math.abs(e-i)),r=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)a=r=Math.min(be(e,t),be(e,t-n),be(e-i,t),be(e-i,t-n));else if(1===A.shape){var s=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-i)),o=ve(i,n,e,t,!0),l=o[0],c=o[1];r=s*(a=be(l-e,(c-t)/s))}break;case 1:0===A.shape?a=r=Math.max(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-n)):1===A.shape&&(a=Math.max(Math.abs(e),Math.abs(e-i)),r=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)a=r=Math.max(be(e,t),be(e,t-n),be(e-i,t),be(e-i,t-n));else if(1===A.shape){s=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-i));var d=ve(i,n,e,t,!1);l=d[0],c=d[1],r=s*(a=be(l-e,(c-t)/s))}}return Array.isArray(A.size)&&(a=$A(A.size[0],i),r=2===A.size.length?$A(A.size[1],n):a),[a,r]}(t,x,Q,v,F),I=U[0],S=U[1],I>0&&S>0&&(T=i.ctx.createRadialGradient(C+x,b+Q,0,C+x,b+Q,I),Ee(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,oe(A.color))})),i.path(E),i.ctx.fillStyle=T,I!==S?(L=A.bounds.left+.5*A.bounds.width,M=A.bounds.top+.5*A.bounds.height,H=1/(k=S/I),i.ctx.save(),i.ctx.translate(L,M),i.ctx.transform(1,0,0,k,0,0),i.ctx.translate(-L,-M),i.ctx.fillRect(C,H*(b-M)+M,v,F*H),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},i=this,a=0,r=A.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,A.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,A.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,A.curves)];case 10:n.sent(),n.label=11;case 11:r++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,a,r){return i(this,void 0,void 0,(function(){var i,s,o,l,c,d,h,g,u,p,w,m,f,B,E,C;return n(this,(function(n){return this.ctx.save(),i=function(A,e){switch(e){case 0:return Xa(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return Xa(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return Xa(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return Xa(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(a,t),s=Wa(a,t),2===r&&(this.path(s),this.ctx.clip()),Sa(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Sa(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===t||2===t?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(i):this.formatPath(s.slice(0,2)),g=e<3?3*e:2*e,u=e<3?2*e:e,3===r&&(g=e,u=e),p=!0,h<=2*g?p=!1:h<=2*g+u?(g*=w=h/(2*g+u),u*=w):(m=Math.floor((h+u)/(g+u)),f=(h-m*g)/(m-1),u=(B=(h-(m+1)*g)/m)<=0||Math.abs(u-f){const a=await tex2dataURL(A,n);if(a){const A=[];A.push({mimeType:a.mimeType,id:e,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1}),i(A,t)}};async function tex2dataURL(A,e){let t=0;for(;!e.mathjax&&!e.mathjaxLoaderFinished&&t<10;)await sleep$1(100),t++;e.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(A,e)}catch(t){await sleep$1(100);try{return await mathjaxSVG(A,e)}catch(t){await sleep$1(100);try{return await mathjaxSVG(A,e)}catch(t){return e.mathjax?new obsidian.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(A)}}}}async function mathjaxSVG(A,e){const t=e.mathjax.tex2svg(A,{display:!0,scale:4}).querySelector("svg");if(t){const A=svgToBase64(t.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:A,created:Date.now(),size:await getImageSize(A)}}return null}async function mathjaxImage2html(A){const e=document.body.createDiv();e.style.display="table";const t=window.MathJax.tex2chtml(A,{display:!0,scale:4});t.style.margin="3px",t.style.color="black";const i=t.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),e.appendChild(t),window.MathJax.typeset();const n=await html2canvas(e,{backgroundColor:null});return document.body.removeChild(e),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)";class EmbeddedFile{constructor(A,e,t){this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.plugin=A,this.resetImage(e,t)}resetImage(A,e){this.imgInverted=this.img="",this.mtime=0,this.linkParts=getLinkParts(e),this.hostPath=A,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,A),this.file||0==this.attemptCounter++&&new obsidian.Notice(`Excalidraw Warning: could not find image file: ${e}`,5e3)):new obsidian.Notice(`Excalidraw Error\nIncorrect embedded filename: ${e}`)}fileChanged(){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1)}setImage(A,e,t,i,n){if(this.file){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.file.stat.mtime,this.size=t,this.mimeType=e,i&&n){case!0:this.imgInverted=A;break;case!1:this.img=A}this.isSVGwithBitmap=n}}isLoaded(A){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?!this.fileChanged()&&(this.isSVGwithBitmap&&A?""!==this.imgInverted:""!==this.img):(this.attemptCounter++,!0)}getImage(A){return this.file?A&&this.isSVGwithBitmap?this.imgInverted:this.img:""}}class EmbeddedFilesLoader{constructor(A,e){this.terminate=!1,this.plugin=A,this.isDark=e,this.uid=nanoid()}async getObsidianImage(A,e){if(!this.plugin||!A)return null;const t=A instanceof EmbeddedFile?A.file:A,i=A instanceof EmbeddedFile?A.linkParts:{original:t.path,path:t.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight};let n=!1;const a=this.plugin.isExcalidrawFile(t);if(!IMAGE_TYPES.contains(t.extension)&&!a&&"md"!==t.extension)return null;const r=await app.vault.readBinary(t),s=a?await(async A=>{const i=hasExportTheme(this.plugin,t)?getExportTheme(this.plugin,t,"light"):void 0,a={withBackground:!!hasExportBackground(this.plugin,t)&&getWithBackground(this.plugin,t),withTheme:!!i},r=await createSVG(t.path,!0,a,this,i,null,null,[],this.plugin,e+1,getExportPadding(this.plugin,t)),s=r.querySelectorAll("image:not([href^='data:image/svg'])");return s.length>0&&(n=!0),n&&A&&s.forEach((A=>{var e;const t=null===(e=A.parentElement)||void 0===e?void 0:e.id;r.querySelectorAll(`use[href='#${t}']`).forEach((A=>{A.setAttribute("filter",THEME_FILTER)}))})),!n&&r.getAttribute("hasbitmap")&&(n=!0),svgToBase64(r.outerHTML)})(this.isDark):null;let o="image/svg+xml";if(!a)switch(t.extension){case"png":o="image/png";break;case"jpeg":case"jpg":o="image/jpeg";break;case"gif":o="image/gif";break;case"svg":case"md":o="image/svg+xml";break;default:o="application/octet-stream"}let l=null!=s?s:"svg"===t.extension?await getSVGData(app,t):"md"===t.extension?null:await getDataURL(r,o);if(!l){const A=await this.convertMarkdownToSVG(this.plugin,t,i);l=A.dataURL,n=A.hasSVGwithBitmap}const c=await getImageSize(l);return{mimeType:o,fileId:await generateIdFromFile(r),dataURL:l,created:t.stat.mtime,hasSVGwithBitmap:n,size:c}}async loadSceneFiles(A,e,t){var i,n;if(t>4)return void new obsidian.Notice(t$d("INFINITE_LOOP_WARNING")+t.toString(),6e3);const a=A.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(n=null===(i=null==A?void 0:A.scene)||void 0===i?void 0:i.appState)||void 0===n?void 0:n.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const A=r.value[1];if(A.isLoaded(this.isDark))A.isSVGwithBitmap&&s.push({mimeType:A.mimeType,id:r.value[0],dataURL:A.getImage(this.isDark),created:A.mtime,size:A.size,hasSVGwithBitmap:A.isSVGwithBitmap});else{const e=await this.getObsidianImage(A,t);e&&s.push({mimeType:e.mimeType,id:r.value[0],dataURL:e.dataURL,created:e.created,size:e.size,hasSVGwithBitmap:e.hasSVGwithBitmap})}}let o;const l=A.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!A.getEquation(o.value[0]).isLoaded){const A=o.value[1].latex,e=await tex2dataURL(A,this.plugin);e&&s.push({mimeType:e.mimeType,id:o.value[0],dataURL:e.dataURL,created:e.created,size:e.size,hasSVGwithBitmap:!1})}if(!this.terminate)try{e(s,this.isDark)}catch(A){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:A})}}async convertMarkdownToSVG(A,e,t){var i,n,a,r;let s=!1;const o=await getTransclusion(t,A.app,e);let l=(null!==(i=o.leadingHashes)&&void 0!==i?i:"")+o.contents;""===l&&(l="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const c=A.app.metadataCache.getFileCache(e);let d,h=A.settings.mdFont;switch((null==c?void 0:c.frontmatter)&&null!=c.frontmatter["excalidraw-font"]&&(h=c.frontmatter["excalidraw-font"]),h){case"Virgil":d=VIRGIL_FONT;break;case"Cascadia":d=CASCADIA_FONT;break;case"":d="";break;default:const t=await getFontDataURL(A.app,h,e.path);d=t.fontDef,h=t.fontName}const g=(null==c?void 0:c.frontmatter)&&null!==(n=c.frontmatter["excalidraw-font-color"])&&void 0!==n?n:A.settings.mdFontColor;let u=(null==c?void 0:c.frontmatter)&&null!==(a=c.frontmatter["excalidraw-css"])&&void 0!==a?a:"",p=!1;if(u&&""!=u){const t=A.app.metadataCache.getFirstLinkpathDest(u,e.path);t&&(u=await A.app.vault.read(t),p=!0)}if(!p)if(A.settings.mdCSS&&""!==A.settings.mdCSS){const t=A.app.metadataCache.getFirstLinkpathDest(A.settings.mdCSS,e.path);u+=t?`\n${await A.app.vault.read(t)}`:DEFAULT_MD_EMBED_CSS}else u+=DEFAULT_MD_EMBED_CSS;const w=(null==c?void 0:c.frontmatter)&&null!==(r=c.frontmatter["excalidraw-border-color"])&&void 0!==r?r:A.settings.mdBorderColor;w&&""!==w&&!u.match(/svg/i)&&(u+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let m=` width="${t.width}px" height="100000"`,f=` width="${t.width}px" height="100%"`;const B=(A,e,t)=>`${t?``:""}${A}${e}${""!==d?``:""}`,E=createDiv();E.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),E.setAttribute("class","excalidraw-md-host"),""!==h&&(E.style.fontFamily=h),E.style.overflow="auto",E.style.display="block",E.style.color=g&&""!==g?g:"initial",await obsidian.MarkdownRenderer.renderMarkdown(l,E,e.path,A),E.querySelectorAll(":scope > *[class^='frontmatter']").forEach((A=>E.removeChild(A)));const C=Array.from(E.querySelectorAll("span[class='internal-embed']"));for(let t=0;t{const e=A.style,t=window.getComputedStyle(A);let i="";for(const A in e)e.hasOwnProperty(A)&&(i+=`${A}: ${t[A]};`);A.setAttribute("style",i)}));const x=(new XMLSerializer).serializeToString(F),Q=(new XMLSerializer).serializeToString(y);document.body.removeChild(b);const U=new DOMParser,I=U.parseFromString(B(x,Q),"image/svg+xml").firstElementChild,S=createDiv();S.appendChild(I),document.body.appendChild(S);const T=I.querySelector(".excalidraw-md-footer").scrollHeight,L=I.querySelector(".excalidraw-md-host").scrollHeight+T,M=L<=t.height?L:t.height;document.body.removeChild(S),m=` width="${t.width}px" height="${M}px"`,f=` width="${t.width}px" height="${M}px"`,E.style.height=M-T+"px",E.style.overflow="hidden";const k=E.querySelectorAll("img:not([src^='data:image/svg+xml'])");k.length>0&&(s=!0),s&&this.isDark&&k.forEach((A=>{A instanceof HTMLImageElement&&(A.style.filter=THEME_FILTER)}));const H=B((new XMLSerializer).serializeToString(E),'',u);return A.ea.mostRecentMarkdownSVG=U.parseFromString(H,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(H),hasSVGwithBitmap:s}}}const getSVGData=async(A,e)=>{const t=await A.vault.read(e);return svgToBase64(t)},generateIdFromFile=async A=>{let e;try{const t=await window.crypto.subtle.digest("SHA-1",A);e=Array.from(new Uint8Array(t)).map((A=>A.toString(16).padStart(2,"0"))).join("")}catch(A){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:A}),e=fileid()}return e};var AutoexportPreference;!function(A){A[A.none=0]="none",A[A.both=1]="both",A[A.png=2]="png",A[A.svg=3]="svg",A[A.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ //![[link|alias]] [alias](link){num} -EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getRes:A=>A.matchAll(REGEX_LINK.EXPR),isTransclusion:A=>!!A.value[1],getLink:A=>A.value[3]?A.value[3]:A.value[6],isWikiLink:A=>!!A.value[3],getAliasOrLink:A=>REGEX_LINK.isWikiLink(A)?A.value[4]?A.value[4]:A.value[3]:A.value[5]?A.value[5]:A.value[6],getWrapLength:(A,e)=>{const t=parseInt(A.value[8]);return isNaN(t)?e>0?e:null:t}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=A=>null!==A.match(/```compressed\-json\n/gm),getDecompressedScene=A=>{let e,t=A.matchAll(DRAWING_COMPRESSED_REG);return e=t.next(),e.done&&(t=A.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),e=t.next()),e.value&&e.value.length>1?[decompress(e.value[2]),e]:[null,e]},changeThemeOfExcalidrawMD=A=>{const e=isCompressedMD(A);let t=e?getDecompressedScene(A)[0]:A;return t?(isObsidianThemeDark?1===(t.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(t.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),e?A.replace(DRAWING_COMPRESSED_REG,`$1${compress(t)}$3`):t):A};function getJSON(A){let e,t;if(isCompressedMD(A)){const[e,t]=getDecompressedScene(A);return e?{scene:e.substring(0,e.lastIndexOf("}")+1),pos:t.value.index}:{scene:A,pos:t.value?t.value.index:0}}if(e=A.matchAll(DRAWING_REG),t=e.next(),t.done&&(e=A.matchAll(DRAWING_REG_FALLBACK),t=e.next()),t.value&&t.value.length>1){const A=t.value[2];return{scene:A.substr(0,A.lastIndexOf("}")+1),pos:t.value.index}}return{scene:A,pos:t.value?t.value.index:0}}function getMarkdownDrawingSection(A,e){return e?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(A)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${A}\n\`\`\`\n%%`}const estimateMaxLineLen=(A,e)=>{if(!e||!A)return null;if(A===e)return null;let t=0;const i=A.split("\n");if(1===i.length)return null;for(const A of i)A.length>t&&(t=A.length);return t},wrap=(A,e)=>e?wrapText(A,e,!1,0):A;class ExcalidrawData{constructor(A){this.plugin=A,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=A.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var A,e;if(!this.scene||!this.scene.elements)return;const t=this.scene.elements;for(const i of t){if(i.boundElements){const A=new Map;i.boundElements.forEach((e=>{A.set(e.id,e.type)}));const e=Array.from(A,(([A,e])=>({id:A,type:e})));e.length!==i.boundElements.length&&(i.boundElements=e)}i.boundElementIds&&(i.boundElements||(i.boundElements=[]),i.boundElements=i.boundElements.concat(i.boundElementIds.map((A=>({type:"arrow",id:A})))),delete i.boundElementIds),"text"!==i.type||i.containerId||(i.containerId=null),null===i.x&&(i.x=0),null===i.y&&(i.y=0),null===(null===(A=i.startBinding)||void 0===A?void 0:A.focus)&&(i.startBinding.focus=0),null===(null===(e=i.endBinding)||void 0===e?void 0:e.focus)&&(i.endBinding.focus=0),null===i.fontSize&&(i.fontSize=20)}try{t.filter((A=>"text"===A.type&&A.containerId&&t.some((e=>e.id===A.containerId&&e.boundElements.length>0&&e.boundElements.some((e=>"text"===e.type&&e.id!==A.id&&e.id.length>8)))))).forEach((A=>{try{const e=t.filter((e=>e.id===A.containerId))[0],i=e.boundElements.filter((A=>!("text"===A.type&&!t.some((e=>e.id===A.id)))));e.boundElements=[{id:A.id,type:"text"}].concat(i)}catch(A){}})),t.filter((A=>A.boundElements&&A.boundElements.length>0)).forEach((A=>{const e=A.boundElements.filter((A=>t.some((e=>e.id===A.id))));e.length!==A.boundElements.length&&(A.boundElements=e)})),t.filter((A=>"text"===A.type&&A.containerId&&!t.some((e=>e.id===A.containerId)))).forEach((A=>{A.containerId=null}))}catch(A){}}async loadData(A,e,t){if(!e)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=e&&(this.files.clear(),this.equations.clear()),this.file=e,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.scene=null,this.plugin.settings.syncExcalidraw){const A=`${e.path.substring(0,e.path.lastIndexOf(".md"))}.excalidraw`,t=this.app.vault.getAbstractFileByPath(A);if(t&&t instanceof obsidian.TFile&&t.stat.mtime>e.stat.mtime){const A=await this.app.vault.read(t);this.scene=JSON.parse(A)}}let i=null;i=(()=>{const e=getJSON(A);if(-1===e.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(e.scene)),e})(),this.deletedElements=this.scene.elements.filter((A=>A.isDeleted)),this.scene.elements=this.scene.elements.filter((A=>!A.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.initializeNonInitializedFields();let n=(A=A.substring(0,i.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===n)return await this.setTextMode(t,!1),this.loaded=!0,!0;n+=A.match(/((^%%\n)?# Text Elements\n)/m)[0].length,A=A.substring(n),n=0;const a=" ^12345678\n\n".length;let s,r=A.matchAll(/\s\^(.{8})[\n]+/g);for(;!(s=r.next()).done;){const e=A.substring(n,s.value.index),t=s.value[1],i=this.scene.elements.filter((A=>A.id===t))[0];if(i)if("text"!==i.type)i.link!==e&&(i.link=e,i.version++,i.versionNonce++),this.elementLinks.set(t,e);else{const A=estimateMaxLineLen(i.text,i.originalText),n=await this.parse(e);this.textElements.set(t,{raw:e,parsed:n.parsed,wrapAt:A}),n.link&&(i.link=n.link),!i||i.rawText&&""!==i.rawText||(i.rawText=e)}n=s.value.index+a}for(r=(A=A.substring(A.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\n/gm);!(s=r.next()).done;){const A=new EmbeddedFile(this.plugin,this.file.path,s.value[2]);this.setFile(s.value[1],A)}for(r=A.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(s=r.next()).done;)this.setEquation(s.value[1],{latex:s.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(t,!0),this.loaded=!0,!0}async loadLegacyData(A,e){return!!e&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=e,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.scene=JSON.parse(A),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(A,e=!1){this.textMode=A,await this.updateSceneTextElements(e)}updateTextElement(A,e,t,i=!1){if(i||e!=A.text){const i=_measureText(e,A.fontSize,A.fontFamily);A.text=e,A.originalText=t,A.containerId||(A.width=i.w),A.height=i.h,A.baseline=i.baseline}}async updateSceneTextElements(A=!1){var e,t,i,n;const a=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((A=>"text"===A.type));for(const e of a){const a=null!==(i=null!==(t=await this.getText(e.id,!1))&&void 0!==t?t:e.originalText)&&void 0!==i?i:e.text,s=null===(n=this.textElements.get(e.id))||void 0===n?void 0:n.wrapAt;this.updateTextElement(e,wrap(a,s),a,A)}}async getText(A,e=!0){const t=this.textElements.get(A);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(A,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed,wrapAt:t.wrapAt}),e?wrap(t.parsed,t.wrapAt):t.parsed):t.raw:null}findNewElementLinksInScene(){var A;const e=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"!==A.type&&A.link&&A.link.startsWith("[[")&&!this.elementLinks.has(A.id)));if(0===e.length)return!1;let t,i=JSON.stringify(this.scene);for(const A of e)t=A.id,A.id.length>8&&(t=nanoid(),i=i.replaceAll(A.id,t)),this.elementLinks.set(t,A.link);return this.scene=JSON.parse(i),!0}findNewTextElementsInScene(A={}){var e;this.selectedElementIds=A;const t=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((A=>"text"===A.type));let i,n=JSON.stringify(this.scene),a=!1;for(const A of t)if(i=A.id,A.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[A.id]&&(delete this.selectedElementIds[A.id],this.selectedElementIds[i]=!0),n=n.replaceAll(A.id,i),this.textElements.has(A.id)){const e=this.textElements.get(A.id);this.textElements.set(i,{raw:e.raw,parsed:e.parsed,wrapAt:e.wrapAt}),this.textElements.delete(A.id)}if(!this.textElements.has(i)){const e=A.rawText&&""!==A.rawText?A.rawText:A.text,t=estimateMaxLineLen(A.text,A.originalText);this.textElements.set(i,{raw:e,parsed:null,wrapAt:t}),this.parseasync(i,e,t)}}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var A;for(const e of this.elementLinks.keys()){const t=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"!==A.type&&A.id===e&&A.link&&A.link.startsWith("[[")));0===t.length?this.elementLinks.delete(e):this.elementLinks.set(e,t[0].link)}}async updateTextElementsFromScene(){var A,e,t,i;for(const n of this.textElements.keys()){const a=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"===A.type&&A.id===n));if(0===a.length)this.textElements.delete(n);else if(await this.getText(n,!1)!==(null!==(e=a[0].originalText)&&void 0!==e?e:a[0].text)){const A=estimateMaxLineLen(a[0].text,a[0].originalText);this.textElements.set(n,{raw:null!==(t=a[0].originalText)&&void 0!==t?t:a[0].text,parsed:(await this.parse(null!==(i=a[0].originalText)&&void 0!==i?i:a[0].text)).parsed,wrapAt:A})}}}async parseasync(A,e,t){this.textElements.set(A,{raw:e,parsed:(await this.parse(e)).parsed,wrapAt:t})}parseLinks(A,e,t){return A.substring(e,t.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(t)+(this.showLinkBrackets?"]]":"")}async getTransclusion(A){const e=getLinkParts(A,this.file),t=this.app.metadataCache.getFirstLinkpathDest(e.path,this.file.path);return await getTransclusion(e,this.app,t,this.plugin.settings.pageTransclusionCharLimit)}async parse(A){let e="",t=null,i=0;const n=REGEX_LINK.getRes(A);let a,s=!1,r=!1;for(A.match(REG_LINKINDEX_HYPERLINK)&&(t=A,r=!0);!(a=n.next()).done;){if(!t){const A=REGEX_LINK.getLink(a);t=A.match(REG_LINKINDEX_HYPERLINK)?A:`[[${A}]]`}if(REGEX_LINK.isTransclusion(a)){const t=(await this.getTransclusion(REGEX_LINK.getLink(a))).contents;e+=A.substring(i,a.value.index)+wrapText(t,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const t=this.parseLinks(A,i,a);t&&(e+=t,r||s||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?r=!0:s=!0))}i=a.value.index+a.value[0].length}return e+=A.substring(i,A.length),s&&(e=this.linkPrefix+e),r&&(e=this.urlPrefix+e),{parsed:e,link:t}}quickParse(A){if((A=>{const e=REGEX_LINK.getRes(A);let t;for(;!(t=e.next()).done;)if(REGEX_LINK.isTransclusion(t))return!0;return!1})(A))return[null,null];let e="",t=null,i=0;const n=REGEX_LINK.getRes(A);let a,s=!1,r=!1;for(A.match(REG_LINKINDEX_HYPERLINK)&&(t=A,r=!0);!(a=n.next()).done;){if(!t){const A=REGEX_LINK.getLink(a);t=A.match(REG_LINKINDEX_HYPERLINK)?A:`[[${A}]]`}const n=this.parseLinks(A,i,a);n&&(e+=n,r||s||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?r=!0:s=!0)),i=a.value.index+a.value[0].length}return e+=A.substring(i,A.length),s&&(e=this.linkPrefix+e),r&&(e=this.urlPrefix+e),[e,t]}generateMD(A=[]){let e="# Text Elements\n";for(const A of this.textElements.keys())e+=`${this.textElements.get(A).raw} ^${A}\n\n`;for(const A of this.elementLinks.keys())e+=`${this.elementLinks.get(A)} ^${A}\n\n`;if(e+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const A of this.equations.keys())e+=`${A}: $$${this.equations.get(A).latex}$$\n`;if(this.files.size>0)for(const A of this.files.keys())e+=`${A}: [[${this.files.get(A).linkParts.original}]]\n`;return e+=this.equations.size>0||this.files.size>0?"\n":"",e+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(A),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async syncFiles(){var A;let e=!1;const t=this.scene,i=t.elements.filter((A=>"image"===A.type)).map((A=>A.fileId));if(this.files.forEach(((A,t)=>{i.contains(t)||(this.files.delete(t),e=!0)})),this.equations.forEach(((A,t)=>{i.contains(t)||(this.equations.delete(t),e=!0)})),!t.files||t.files=={})return!1;const n=new Set;i.forEach((A=>{if(n.has(A)){const i=this.getFile(A),a=this.getEquation(A);if(i&&("md"!==i.file.extension||this.plugin.isExcalidrawFile(i.file)))return;const s=fileid();t.elements.filter((e=>e.fileId===A))[0].fileId=s,e=!0,n.add(s),i&&this.setFile(s,new EmbeddedFile(this.plugin,this.file.path,i.linkParts.original)),a&&this.setEquation(s,{latex:a.latex,isLoaded:!1})}n.add(A)}));for(const i of Object.keys(t.files))if(!this.hasFile(i)&&!this.hasEquation(i)){e=!0;let n=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;const a=t.files[i].mimeType;switch(a){case"image/png":default:n+=".png";break;case"image/jpeg":n+=".jpg";break;case"image/svg+xml":n+=".svg";break;case"image/gif":n+=".gif"}const s=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,n)).filepath,r=t.files[i].dataURL;await this.app.vault.createBinary(s,getBinaryFileFromDataURL(r));const o=new EmbeddedFile(this.plugin,this.file.path,s);o.setImage(r,a,{height:0,width:0},"dark"===(null===(A=t.appState)||void 0===A?void 0:A.theme),"image/svg+xml"===a),this.setFile(i,o)}return e}async syncElements(A,e){this.scene=A;let t=!1;return this.compatibilityMode||(t=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),t=t||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),t||this.findNewTextElementsInScene(e)}async updateScene(A){this.scene=JSON_parse(A),this.updateElementLinksFromScene();const e=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!e&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(A){var e;return null===(e=this.textElements.get(A))||void 0===e?void 0:e.raw}getParsedText(A){const e=this.textElements.get(A);return e?[wrap(e.parsed,e.wrapAt),e.parsed,null]:[null,null,null]}setTextElement(A,e,t,i){const n=estimateMaxLineLen(e,t),[a,s]=this.quickParse(t);return a?(this.textElements.set(A,{raw:t,parsed:a,wrapAt:n}),[wrap(a,n),a,s]):(this.parse(t).then((e=>{const a=e.parsed;this.textElements.set(A,{raw:t,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(A,e,t){let i=estimateMaxLineLen(e,t);this.textElements.has(A)&&(i=this.textElements.get(A).wrapAt);const n=await this.parse(t);return this.textElements.set(A,{raw:t,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(A){this.textElements.delete(A)}getOpenMode(){const A=this.app.metadataCache.getFileCache(this.file);let e=this.plugin.settings.defaultMode;switch((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-default-mode"]&&(e=A.frontmatter["excalidraw-default-mode"]),e){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const A=this.app.metadataCache.getFileCache(this.file);let e=this.plugin.settings.linkOpacity;return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-linkbutton-opacity"]&&(e=A.frontmatter["excalidraw-linkbutton-opacity"]),e}getOnLoadScript(){const A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-onload-script"]?A.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const A=this.linkPrefix,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=e.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,A!=this.linkPrefix}setUrlPrefix(){const A=this.urlPrefix,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=e.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,A!=this.urlPrefix}setShowLinkBrackets(){const A=this.showLinkBrackets,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=e.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,A!=this.showLinkBrackets}setFile(A,e){if(!e)return;if(this.files.set(A,e),!e.file)return;const t=e.linkParts.original.split("#");this.plugin.filesMaster.set(A,{path:e.file.path,blockrefData:1===t.length?null:t[1],hasSVGwithBitmap:e.isSVGwithBitmap})}getFiles(){return Object.values(this.files)}getFile(A){let e=this.files.get(A);if(e)return e;const t=this.plugin.filesMaster.get(A);return t?(e=new EmbeddedFile(this.plugin,this.file.path,t.blockrefData?t.path+"#"+t.blockrefData:t.path),this.files.set(A,e),e):e}getFileEntries(){return this.files.entries()}deleteFile(A){this.files.delete(A)}hasFile(A){if(this.files.has(A))return!0;if(this.plugin.filesMaster.has(A)){const e=this.plugin.filesMaster.get(A);if(!this.app.vault.getAbstractFileByPath(e.path))return this.plugin.filesMaster.delete(A),!0;const t=new EmbeddedFile(this.plugin,this.file.path,e.blockrefData?e.path+"#"+e.blockrefData:e.path);return this.files.set(A,t),!0}return!1}setEquation(A,e){this.equations.set(A,{latex:e.latex,isLoaded:e.isLoaded}),this.plugin.equationsMaster.set(A,e.latex)}getEquation(A){let e=this.equations.get(A);if(e)return e;const t=this.plugin.equationsMaster.get(A);return t?(this.equations.set(A,{latex:t,isLoaded:!1}),{latex:t,isLoaded:!1}):e}getEquationEntries(){return this.equations.entries()}deleteEquation(A){this.equations.delete(A)}hasEquation(A){return!!this.equations.has(A)||!!this.plugin.equationsMaster.has(A)&&(this.equations.set(A,{latex:this.plugin.equationsMaster.get(A),isLoaded:!1}),!0)}}const getTransclusion=async(A,e,t,i)=>{var n,a,s,r,o,l,c,d,h,g;if(!A.path)return{contents:A.original.trim(),lineNum:0};if(!(t&&t instanceof obsidian.TFile))return{contents:A.original.trim(),lineNum:0};const u=await e.vault.read(t);if(!A.ref)return i?{contents:u.substring(0,i).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const w=(await e.metadataCache.blockCache.getForFile({isCancelled:()=>!1},t)).blocks.filter((A=>"comment"!=A.node.type));if(!w)return{contents:A.original.trim(),lineNum:0};if(A.isBlockRef){let e=null===(n=w.filter((e=>e.node.id==A.ref))[0])||void 0===n?void 0:n.node;if(!e)return{contents:A.original.trim(),lineNum:0};["blockquote","listItem"].includes(e.type)&&(e=e.children[0]);const t=e.position.start.offset,i=e.position.start.line,s=(null===(a=e.children[e.children.length-1])||void 0===a?void 0:a.position.start.offset)-1;return{contents:u.substring(t,s).trim(),lineNum:i}}const p=w.filter((A=>0===A.display.search(/^#+\s/)));let B=null,m=0,f=null,E=1;for(let e=0;eE;)A++;return A===p.length&&p[A-1].node.depth>E?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(B).trim(),lineNum:m}:(f=p[A].node.position.start.offset-1,{leadingHashes:"#".repeat(E)+" ",contents:u.substring(B,f).trim(),lineNum:m})}const t=p[e].node.children[0],i=null===(r=null===(s=p[e].node.data)||void 0===s?void 0:s.hProperties)||void 0===r?void 0:r.dataHeading,n=null==t?void 0:t.children;!B&&((null===(o=null==t?void 0:t.value)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||(null===(l=null==t?void 0:t.title)||void 0===l?void 0:l.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||(null==i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||n&&(null===(d=null===(c=n[0])||void 0===c?void 0:c.value)||void 0===d?void 0:d.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref)&&(B=null===(h=p[e].node.children[0])||void 0===h?void 0:h.position.start.offset,E=p[e].node.depth,m=null===(g=p[e].node.children[0])||void 0===g?void 0:g.position.start.line)}return B?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(B).trim(),lineNum:m}:{contents:A.original.trim(),lineNum:0}};class Prompt extends obsidian.Modal{constructor(A,e,t,i,n){super(A),this.prompt_text=e,this.default_value=t,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var A;let e=this.contentEl.createDiv();e.addClass("excalidraw-prompt-div"),this.prompt_desc&&(e=e.createDiv(),e.style.width="100%",e.createEl("p").innerHTML=this.prompt_desc);const t=e.createEl("form");t.addClass("excalidraw-prompt-form"),t.type="submit",t.onsubmit=A=>{A.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=t.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(A=this.default_value)&&void 0!==A?A:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(A){this.resolve=A,this.open()}}class GenericInputPrompt extends obsidian.Modal{constructor(A,e,t,i,n){super(A),this.header=e,this.didSubmit=!1,this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.submitEnterCallback=A=>{"Enter"===A.key&&(A.preventDefault(),this.submit())},this.placeholder=t,this.input=i,this.buttons=n,this.waitForClose=new Promise(((A,e)=>{this.resolvePromise=A,this.rejectPromise=e})),this.display(),this.open()}static Prompt(A,e,t,i,n){return new GenericInputPrompt(A,e,t,i,n).waitForClose}display(){this.contentEl.empty(),this.titleEl.textContent=this.header;const A=this.contentEl.createDiv();this.inputComponent=this.createInputField(A,this.placeholder,this.input),this.createButtonBar(A)}createInputField(A,e,t){const i=new obsidian.TextComponent(A);return i.inputEl.style.width="100%",i.setPlaceholder(null!=e?e:"").setValue(null!=t?t:"").onChange((A=>this.input=A)).inputEl.addEventListener("keydown",this.submitEnterCallback),i}createButton(A,e,t){const i=new obsidian.ButtonComponent(A);return i.setButtonText(e).onClick(t),i}createButtonBar(A){const e=A.createDiv();if(this.buttons&&this.buttons.length>0){let A=null;for(const t of this.buttons){const i=new obsidian.ButtonComponent(e);i.setButtonText(t.caption).onClick((A=>{const e=t.action(this.input);e&&(this.input=e),this.submit()})),A=null!=A?A:i}A&&(A.setCta().buttonEl.style.marginRight="0")}else this.createButton(e,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(e,"Cancel",this.cancelClickCallback),e.style.display="flex",e.style.flexDirection="row-reverse",e.style.justifyContent="flex-start",e.style.marginTop="1rem"}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var A,e;null===(e=null===(A=this.inputComponent)||void 0===A?void 0:A.inputEl)||void 0===e||e.removeEventListener("keydown",this.submitEnterCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian.FuzzySuggestModal{constructor(A,e,t,i,n){var a;super(A),this.displayItems=e,this.items=t,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((A,e)=>{this.resolvePromise=A,this.rejectPromise=e})),this.open()}static Suggest(A,e,t,i,n){return new GenericSuggester(A,e,t,i,n).promise}getItemText(A){return this.displayItems[this.items.indexOf(A)]}getItems(){return this.items}selectSuggestion(A,e){this.resolved=!0,super.selectSuggestion(A,e)}onChooseItem(A){this.resolved=!0,this.resolvePromise(A)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian.Modal{constructor(A,e,t,i,n){super(A.app),this.plugin=A,this.path=e,this.newPane=t,this.newWindow=i,this.view=n}onOpen(){this.createForm()}async onClose(){}openFile(A){A&&(this.newWindow?app.workspace.openPopoutLeaf():this.newPane?getNewOrAdjacentLeaf(this.plugin,this.view.leaf):this.view.leaf).openFile(A,{active:!0})}createForm(){this.titleEl.setText("New File"),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:"File does not exist. Do you want to create it?"}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(A=>{A.style.textAlign="right";const e=()=>this.path&&""!==this.path?!!this.view.file||(new obsidian.Notice("Unknown error. It seems as if your drawing was closed or the drawing file is missing"),!1):(new obsidian.Notice("Error: Filename for new file may not be empty"),!1),t=async A=>{if(!this.path.includes("/")){const A=new RegExp(`${this.view.file.name}$`,"g");this.path=this.view.file.path.replace(A,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),await this.app.vault.create(this.path,A)};A.createEl("button",{text:"Create Markdown"}).onclick=async()=>{if(!e)return;const A=await t("");this.openFile(A),this.close()},A.createEl("button",{text:"Create Excalidraw"}).onclick=async()=>{if(!e)return;const A=await t(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(A),this.close()},A.createEl("button",{text:"Never Mind"}).onclick=()=>{this.close()}}))}}class ScriptEngine{constructor(A){this.plugin=A,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const A=A=>{if(!A.endsWith(".svg"))return;const e=this.plugin.app.vault.getAbstractFileByPath(getIMGFilename(A,"md"));e&&e instanceof obsidian.TFile&&(this.unloadScript(this.getScriptName(e),e.path),this.loadScript(e))};this.plugin.registerEvent(this.plugin.app.vault.on("delete",(async e=>{e instanceof obsidian.TFile&&e.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(e),e.path),A(e.path))}))),this.plugin.registerEvent(this.plugin.app.vault.on("create",(async e=>{e instanceof obsidian.TFile&&e.path.startsWith(this.scriptPath)&&(this.loadScript(e),A(e.path))}))),this.plugin.registerEvent(this.plugin.app.vault.on("rename",(async(e,t)=>{if(!(e instanceof obsidian.TFile))return;const i=t.startsWith(this.scriptPath),n=e.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(t),t),A(t)),n&&(this.loadScript(e),A(e.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){const A=this.plugin.app;if(this.scriptPath=this.plugin.settings.scriptFolderPath,A.vault.getAbstractFileByPath(this.scriptPath))return A.vault.getFiles().filter((A=>A.path.startsWith(this.scriptPath)&&"md"===A.extension));this.scriptPath=null}loadScripts(){var A;null===(A=this.getListofScripts())||void 0===A||A.forEach((A=>this.loadScript(A)))}getScriptName(A){let e="",t="";A instanceof obsidian.TFile?(e=A.basename,t=A.path):(e=splitFolderAndFilename(A).basename,t=A);const i=t.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+e:e}async addScriptIconToMap(A,e){const t=getIMGFilename(A,"svg"),i=this.plugin.app.vault.getAbstractFileByPath(t),n=i&&i instanceof obsidian.TFile?await this.plugin.app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap),this.scriptIconMap[A]={name:e,svgString:n},this.updateToolPannels()}loadScript(A){if("md"!==A.extension)return;const e=this.getScriptName(A);this.addScriptIconToMap(A.path,e),this.plugin.addCommand({id:e,name:`(Script) ${e}`,checkCallback:t=>{if(t)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const t=await this.plugin.app.vault.read(A);t&&this.executeScript(i,t,e)})(),!0)}})}unloadScripts(){this.plugin.app.vault.getFiles().filter((A=>A.path.startsWith(this.scriptPath))).forEach((A=>{this.unloadScript(this.getScriptName(A),A.path)}))}unloadScript(A,e){if(!e.endsWith(".md"))return;delete this.scriptIconMap[e],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const t=this.plugin.app,i=`${PLUGIN_ID}:${A}`;t.commands.commands[i]&&delete t.commands.commands[i]}async executeScript(A,e,t){if(!A||!e||!t)return;this.plugin.ea.reset(),this.plugin.ea.setView(A),this.plugin.ea.activeScript=t;const i=Object.getPrototypeOf((async()=>{})).constructor;let n=null;return n=await new i("ea","utils",e)(this.plugin.ea,{inputPrompt:(A,e,t,i)=>ScriptEngine.inputPrompt(this.plugin.app,A,e,t,i),suggester:(A,e,t,i)=>ScriptEngine.suggester(this.plugin.app,A,e,t,i)}),this.plugin.ea.activeScript=null,n}updateToolPannels(){this.plugin.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{var e,t;null===(t=null===(e=A.view.toolsPanelRef)||void 0===e?void 0:e.current)||void 0===t||t.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(A,e,t,i,n){try{return await GenericInputPrompt.Prompt(A,e,t,i,n)}catch(A){return}}static async suggester(A,e,t,i,n){try{return await GenericSuggester.Suggest(A,e,t,i,n)}catch(A){return}}}const{determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText}=excalidrawLib,GAP=4;class ExcalidrawAutomate{constructor(A,e){this.targetView=null,this.mostRecentMarkdownSVG=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.activeScript=null,this.plugin=A,this.reset(),this.targetView=e}getAPI(A){return new ExcalidrawAutomate(this.plugin,A)}setFillStyle(A){switch(A){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(A){switch(A){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(A){return 0===A?(this.style.strokeSharpness="round","round"):(this.style.strokeSharpness="sharp","sharp")}setFontFamily(A){switch(A){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(A){return 0===A?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(A){const e=nanoid();return A.forEach((A=>{var t,i;null===(i=null===(t=this.elementsDict[A])||void 0===t?void 0:t.groupIds)||void 0===i||i.push(e)})),e}async toClipboard(A){const e=A?await getTemplate(this.plugin,A,!1,new EmbeddedFilesLoader(this.plugin),0):null;let t=e?e.elements:[];t=t.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:t}))}getElements(){const A=[],e=Object.keys(this.elementsDict);for(let t=0;t{const l=t+Math.random()*s-s/2;o.push([l+Math.random()*s-s/2+t%2*s/6+A,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*r-r/2+t%2*r/6+e])};let c;for(c=s/2-a;c<=a-s/2;c+=a/6)l(c,1);for(c=a-s/2;c>=s/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((A=>{const e=getLineBox(A),n=t/e.w,a=i/e.h;let s;for(s=0;s500){const A=500/Math.max(a.size.width,a.size.height);a.size.width=A*a.size.width,a.size.height=A*a.size.height}return this.elementsDict[i]=this.boxedElement(i,"image",A,e,a.size.width,a.size.height),this.elementsDict[i].fileId=s,this.elementsDict[i].scale=[1,1],i}async addLaTex(A,e,t){const i=nanoid(),n=await tex2dataURL(t,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:t},this.elementsDict[i]=this.boxedElement(i,"image",A,e,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(A,e,t,i,n){if(!this.elementsDict[A]||!this.elementsDict[t])return;if(["line","arrow","freedraw"].includes(this.elementsDict[A].type)||["line","arrow","freedraw"].includes(this.elementsDict[t].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,s=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,r=(A,e)=>{switch(A){case"bottom":return[(e.x+(e.x+e.width))/2,e.y+e.height+a];case"left":return[e.x-a,(e.y+(e.y+e.height))/2];case"right":return[e.x+e.width+a,(e.y+(e.y+e.height))/2];default:return[(e.x+(e.x+e.width))/2,e.y-a]}};let o,l,c,d;const h=this.elementsDict[A],g=this.elementsDict[t];if(!e||!i){const A=h.x+h.width/2,t=g.x+g.width/2,n=h.y+h.height/2,a=g.y+g.height/2;if(!e){const e=intersectElementWithLine(h,[t,a],[A,n],4);0===e.length?[o,l]=[A,n]:[o,l]=e[0]}if(!i){const e=intersectElementWithLine(g,[A,n],[t,a],4);0===e.length?[c,d]=[t,a]:[c,d]=e[0]}}e&&([o,l]=r(e,this.elementsDict[A])),i&&([c,d]=r(i,this.elementsDict[t]));const u=s+2,w=[];for(let A=0;AMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(t.x+t.points[1][0]/2-n.width/2,t.y+t.points[1][1]/2-n.height,e);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,strokeSharpness:"sharp",fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(A){return this.plugin.isExcalidrawFile(A)}setView(A){if("active"==A){const A=this.plugin.app.workspace.getActiveViewOfType(ExcalidrawView);if(!(A instanceof ExcalidrawView))return;this.targetView=A}if("first"==A){const A=this.plugin.app.workspace.getLeavesOfType("excalidraw");if(!A||0==A.length)return;this.targetView=A[0].view}return A instanceof ExcalidrawView&&(this.targetView=A),this.targetView}getExcalidrawAPI(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var A,e,t;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","getViewSelectedElements()"),[];const i=null===(t=null===(e=this.targetView)||void 0===e?void 0:e.excalidrawRef)||void 0===t?void 0:t.current;return i?null==i?void 0:i.getSceneElements():[]}deleteViewElements(A){var e,t,i;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewSelectedElements()"),!1;const n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),s=n.getAppState();return this.targetView.updateScene({elements:a.filter((e=>!A.includes(e))),appState:s,commitToHistory:!0}),!0}getViewSelectedElement(){const A=this.getViewSelectedElements();return A?A[0]:null}getViewSelectedElements(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(A){var e,t,i,n;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?A&&"image"===A.type?null===(n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawData)||void 0===i?void 0:i.getFile(A.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewSelectedElements()"),null)}copyViewElementsToEAforEditing(A){A.forEach((A=>{this.elementsDict[A.id]=Object.assign(Object.assign({},A),{version:A.version+1,updated:Date.now(),versionNonce:Math.floor(1e9*Math.random())})}))}viewToggleFullScreen(A=!1){var e;if(this.plugin.app.isMobile)return void errorMessage("mobile not supported","viewToggleFullScreen()");if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");if(A){const A=this.getExcalidrawAPI();this.targetView.updateScene({appState:Object.assign({viewModeEnabled:!0},A.appState),commitToHistory:!1})}const t=this.targetView;t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen()}connectObjectWithViewSelectedElement(A,e,t,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(A,e,a,t,i),delete this.elementsDict[a],!0}async addElementsToView(A=!1,e=!0,t=!1){var i;if(!this.targetView||!(null===(i=this.targetView)||void 0===i?void 0:i._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const n=this.getElements();return await this.targetView.addElements(n,A,e,this.imagesDict,t)}registerThisAsViewEA(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(A){return new EmbeddedFilesLoader(this.plugin,A)}getExportSettings(A,e){return{withBackground:A,withTheme:e}}getBoundingBox(A){const e=getCommonBoundingBox(A);return{topX:e.minX,topY:e.minY,width:e.maxX-e.minX,height:e.maxY-e.minY}}getMaximumGroups(A){return getMaximumGroups(A)}getLargestElement(A){if(!A||0===A.length)return null;let e=A[0];const t=A=>A.height*A.width;let i=t(A[0]);for(let n=1;ni&&(i=a,e=A[n])}return e}intersectElementWithLine(A,e,t,i){return intersectElementWithLine(A,e,t,i)}getScriptSettings(){var A;return this.activeScript?null!==(A=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==A?A:{}:null}async setScriptSettings(A){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=A,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(A){if(!(A&&A instanceof obsidian.TFile))return null;if(!this.targetView)return null;const e=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return e.openFile(A,{active:!1}),e}measureText(A){var e,t;const i=_measureText(A,this.style.fontSize,this.style.fontFamily);return{width:null!==(e=i.w)&&void 0!==e?e:0,height:null!==(t=i.h)&&void 0!==t?t:0}}verifyMinimumPluginVersion(A){return PLUGIN_VERSION>=A}isExcalidrawView(A){return A instanceof ExcalidrawView}selectElementsInView(A){var e;this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?A&&0!==A.length&&this.getExcalidrawAPI().selectElements(A):errorMessage("targetView not set","selectElementsInView()")}generateElementId(){return nanoid()}cloneElement(A){const e=JSON.parse(JSON.stringify(A));return e.id=nanoid(),e}moveViewElementToZIndex(A,e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((e=>e.id===A));if(0===a.length)return void errorMessage(`Element (id: ${A}) not found`,"moveViewElementToZIndex");if(e>=n.length)return void i.bringToFront(a);if(e<0)return void i.sendToBack(a);const s=n.indexOf(a[0]);n.splice(e,0,n.splice(s,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(A){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(A);return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}rgbToHexString(A){const e=(((255&Math.round(A[0]))<<16)+((255&Math.round(A[1]))<<8)+(255&Math.round(A[2]))).toString(16).toLowerCase();return`#${"000000".substring(e.length)}${e}`}hslToRgb(A){const e=A[0]/360,t=A[1]/100,i=A[2]/100;let n,a,s;if(0===t)return s=255*i,[s,s,s];n=i<.5?i*(1+t):i+t-i*t;const r=2*i-n,o=[0,0,0];for(let A=0;A<3;A++)a=e+1/3*-(A-1),a<0&&a++,a>1&&a--,s=6*a<1?r+6*(n-r)*a:2*a<1?n:3*a<2?r+(n-r)*(2/3-a)*6:r,o[A]=255*s;return o}rgbToHsl(A){const e=A[0]/255,t=A[1]/255,i=A[2]/255,n=Math.min(e,t,i),a=Math.max(e,t,i),s=a-n;let r,o;a===n?r=0:e===a?r=(t-i)/s:t===a?r=2+(i-e)/s:i===a&&(r=4+(e-t)/s),r=Math.min(60*r,360),r<0&&(r+=360);const l=(n+a)/2;return o=a===n?0:l<=.5?s/(a+n):s/(2-a-n),[r,100*o,100*l]}colorNameToHex(A){return COLOR_NAMES.has(A.toLowerCase().trim())?COLOR_NAMES.get(A.toLowerCase().trim()):A.trim()}}async function initExcalidrawAutomate(A){await initFonts();const e=new ExcalidrawAutomate(A);return window.ExcalidrawAutomate=e,e}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(A){const e=[],[t,i]=A[0];for(let n=0;n-1||e.search("excalidraw-plugin: locked\n")>-1;await a.loadData(e,o,r?TextMode.parsed:TextMode.raw);let c=e.search("# Text Elements\n");-1==c&&(c=e.search("# Drawing\n"));let d=a.scene;return t&&await i.loadSceneFiles(a,(A=>{if(A&&0!==A.length){for(const e of A)e.hasSVGwithBitmap&&(l=!0),a.scene.files[e.id]={mimeType:e.mimeType,id:e.id,dataURL:e.dataURL,created:e.created};d=scaleLoadedImage(a.scene,A).scene}}),n),{elements:d.elements,appState:d.appState,frontmatter:e.substring(0,c),files:d.files,hasSVGwithBitmap:l}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:l}}async function createPNG(A,e=1,t,i,n,a,s,r=[],o,l){var c,d,h,g,u,w,p,B;i||(i=new EmbeddedFilesLoader(o));const m=A?await getTemplate(o,A,!0,i,l):null;let f=null!==(c=null==m?void 0:m.elements)&&void 0!==c?c:[];return f=f.concat(r),await getPNG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:f,appState:{theme:null!==(h=null!=n?n:null===(d=null==m?void 0:m.appState)||void 0===d?void 0:d.theme)&&void 0!==h?h:a,viewBackgroundColor:null!==(u=null===(g=null==m?void 0:m.appState)||void 0===g?void 0:g.viewBackgroundColor)&&void 0!==u?u:s},files:null!==(w=null==m?void 0:m.files)&&void 0!==w?w:{}},{withBackground:null!==(p=null==t?void 0:t.withBackground)&&void 0!==p?p:o.settings.exportWithBackground,withTheme:null!==(B=null==t?void 0:t.withTheme)&&void 0!==B?B:o.settings.exportWithTheme},e)}async function createSVG(A,e=!1,t,i,n,a,s,r=[],o,l,c){var d,h,g,u,w,p,B,m;i||(i=new EmbeddedFilesLoader(o));const f=A?await getTemplate(o,A,!0,i,l):null;let E=null!==(d=null==f?void 0:f.elements)&&void 0!==d?d:[];E=E.concat(r);const C=await getSVG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(h=null==f?void 0:f.appState)||void 0===h?void 0:h.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(w=null===(u=null==f?void 0:f.appState)||void 0===u?void 0:u.viewBackgroundColor)&&void 0!==w?w:s},files:null!==(p=null==f?void 0:f.files)&&void 0!==p?p:{}},{withBackground:null!==(B=null==t?void 0:t.withBackground)&&void 0!==B?B:o.settings.exportWithBackground,withTheme:null!==(m=null==t?void 0:t.withTheme)&&void 0!==m?m:o.settings.exportWithTheme},null!=c?c:o.settings.exportPaddingSVG);return(null==f?void 0:f.hasSVGwithBitmap)&&C.setAttribute("hasbitmap","true"),e?embedFontsInSVG(C,o):C}function estimateLineBound(A){let e=1/0,t=1/0,i=-1/0,n=-1/0;for(const[a,s]of A)e=Math.min(e,a),t=Math.min(t,s),i=Math.max(i,a),n=Math.max(n,s);return[e,t,i,n]}function estimateBounds(A){const e=getCommonBoundingBox(A);return[e.minX,e.minY,e.maxX,e.maxY]}function repositionElementsToCursor(A,e,t=!1){const[i,n,a,s]=estimateBounds(A);let[r,o]=[0,0];return[r,o]=t?[e.x-(i+a)/2,e.y-(n+s)/2]:[e.x-i,e.y-n],A.forEach((A=>{A.x=A.x+r,A.y=A.y+o})),A}function errorMessage(A,e){switch(A){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:e,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:e,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:e,message:"unknown error"})}}const insertLaTeXToView=A=>{const e=A.plugin.app,i=A.plugin.ea;new Prompt(e,t("ENTER_LATEX"),"","\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async e=>{e&&(i.reset(),await i.addLaTex(0,0,e),i.setView(A),i.addElementsToView(!0,!1,!0))}))},search=async A=>{const e=A.plugin.ea;e.reset(),e.setView(A);const t=e.getViewElements().filter((A=>"text"===A.type));if(0===t.length)return;let i=await ScriptEngine.inputPrompt(A.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,s=[];for(;!(a=n.next()).done;)s.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),s=s.concat(i.split(" ").filter((A=>0!==A.length))),e.targetView.selectElementsMatchingQuery(t,s)},URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian.Modal{constructor(A){super(A.app),this.plugin=A}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const A=await obsidian.request({url:URL$1});if(!A)return new obsidian.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian.MarkdownRenderer.renderMarkdown(A,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((A=>{A.setAttribute("id",A.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((A=>{A.removeAttribute("target")}))}catch(A){errorlog({where:"ScriptInstallPrompt.onOpen",error:A}),new obsidian.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function toVal(A){var e,t,i="";if("string"==typeof A||"number"==typeof A)i+=A;else if("object"==typeof A)if(Array.isArray(A))for(e=0;eReact__namespace.createElement("label",{className:clsx("ToolIcon ToolIcon_type_floating","ToolIcon_size_medium",{"is-mobile":A}),onClick:()=>{this.toolsRef.current.setTheme(e.theme),this.toolsRef.current.toggleVisibility(e.zenModeEnabled||A)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 166 267"},React__namespace.createElement("path",{fill:"transparent",d:"M0 0h165.742v267.245H0z"}),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#bd7efc",strokeWidth:"0",d:"M55.5 96.49 39.92 57.05 111.28 10l4.58 36.54L55.5 95.65"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M55.5 96.49c-5.79-14.66-11.59-29.33-15.58-39.44M55.5 96.49c-3.79-9.59-7.58-19.18-15.58-39.44m0 0C60.13 43.72 80.34 30.4 111.28 10M39.92 57.05C60.82 43.27 81.73 29.49 111.28 10m0 0c.97 7.72 1.94 15.45 4.58 36.54M111.28 10c1.14 9.12 2.29 18.24 4.58 36.54m0 0C95.41 63.18 74.96 79.82 55.5 95.65m60.36-49.11C102.78 57.18 89.71 67.82 55.5 95.65m0 0v.84m0-.84v.84"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#e2c4ff",strokeWidth:"0",d:"m111.234 10.06 44.51 42.07-40.66-5.08-3.85-36.99"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 10.06c11.83 11.18 23.65 22.36 44.51 42.07m-44.51-42.07 44.51 42.07m0 0c-13.07-1.63-26.13-3.27-40.66-5.08m40.66 5.08c-11.33-1.41-22.67-2.83-40.66-5.08m0 0c-1.17-11.29-2.35-22.58-3.85-36.99m3.85 36.99c-1.47-14.17-2.95-28.33-3.85-36.99m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#2f005e",strokeWidth:"0",d:"m10 127.778 45.77-32.99-15.57-38.08-30.2 71.07"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M10 127.778c16.85-12.14 33.7-24.29 45.77-32.99M10 127.778c16.59-11.95 33.17-23.91 45.77-32.99m0 0c-6.14-15.02-12.29-30.05-15.57-38.08m15.57 38.08c-4.08-9.98-8.16-19.96-15.57-38.08m0 0c-11.16 26.27-22.33 52.54-30.2 71.07m30.2-71.07c-10.12 23.81-20.23 47.61-30.2 71.07m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#410380",strokeWidth:"0",d:"m40.208 235.61 15.76-140.4-45.92 32.92 30.16 107.48"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.208 235.61c3.7-33.01 7.41-66.02 15.76-140.4m-15.76 140.4c3.38-30.16 6.77-60.32 15.76-140.4m0 0c-10.83 7.76-21.66 15.53-45.92 32.92m45.92-32.92c-11.69 8.38-23.37 16.75-45.92 32.92m0 0c6.84 24.4 13.69 48.8 30.16 107.48m-30.16-107.48c6.67 23.77 13.33 47.53 30.16 107.48m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#943feb",strokeWidth:"0",d:"m111.234 240.434-12.47 16.67-42.36-161.87 58.81-48.3 40.46 5.25-44.44 188.25"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 240.434c-3.79 5.06-7.57 10.12-12.47 16.67m12.47-16.67c-4.43 5.93-8.87 11.85-12.47 16.67m0 0c-16.8-64.17-33.59-128.35-42.36-161.87m42.36 161.87c-9.74-37.2-19.47-74.41-42.36-161.87m0 0c15.03-12.35 30.07-24.7 58.81-48.3m-58.81 48.3c22.49-18.47 44.97-36.94 58.81-48.3m0 0c9.48 1.23 18.95 2.46 40.46 5.25m-40.46-5.25c13.01 1.69 26.02 3.38 40.46 5.25m0 0c-10.95 46.41-21.91 92.82-44.44 188.25m44.44-188.25c-12.2 51.71-24.41 103.42-44.44 188.25m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#6212b3",strokeWidth:"0",d:"m40.379 235.667 15.9-140.21 42.43 161.79-58.33-21.58"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.379 235.667c4.83-42.62 9.67-85.25 15.9-140.21m-15.9 140.21c5.84-51.52 11.69-103.03 15.9-140.21m0 0c10.98 41.87 21.96 83.74 42.43 161.79m-42.43-161.79c13.28 50.63 26.56 101.25 42.43 161.79m0 0c-11.8-4.37-23.6-8.74-58.33-21.58m58.33 21.58c-21.73-8.04-43.47-16.08-58.33-21.58m0 0s0 0 0 0m0 0s0 0 0 0"}))))),this.plugin=A,this.toolsRef=e}}class ActionButton extends React__namespace.Component{constructor(A){super(A),this.toastMessageTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{width:"fit-content",padding:"2px",margin:"4px"},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:A=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0),this.props.action(A)},onPointerDown:()=>{this.toastMessageTimeout=window.setTimeout((()=>{var A;return null===(A=this.props.view.excalidrawAPI)||void 0===A?void 0:A.setToastMessage(this.props.title)}),300)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const ICONS={exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),exportSVG:React__namespace.createElement("svg",{viewBox:"0 0 28 28"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"S")),exportPNG:React__namespace.createElement("svg",{viewBox:"0 0 28 28"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"P")),exportExcalidraw:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},React__namespace.createElement("g",{transform:"translate(30,5)"},React__namespace.createElement("path",{d:"M14.45 1.715c-2.723 2.148-6.915 5.797-10.223 8.93l-2.61 2.445.477 3.207c.258 1.75.738 5.176 1.031 7.582.332 2.406.66 4.668.773 4.996.145.438 0 .656-.406.656-.699 0-.734-.183 1.176 5.832.7 2.297 1.363 4.414 1.434 4.633.074.254.367.363.699.254.332-.145.515-.438.406-.691-.113-.293.074-.586.367-.696.403-.144.367-.437-.258-1.492-.992-1.64-3.53-15.64-3.675-20.164-.11-3.207-.11-3.242 1.25-5.066 1.324-1.786 4.375-4.485 9.078-7.91 1.324-.985 2.648-2.079 3.015-2.446.551-.656.809-.472 5.442 4.414 2.683 2.805 5.664 5.688 6.617 6.414l1.766 1.313-1.36 2.844c-.734 1.53-3.715 7.437-6.656 13.054-6.137 11.813-4.887 10.68-12.02 10.79l-4.632.038-1.547 1.75c-1.617 1.86-1.836 2.551-1.063 3.72.293.398.512 1.054.512 1.456 0 .656.258.766 1.73.84.918.035 1.762.145 1.875.254.11.11.258 2.371.368 5.031l.144 4.813-2.46 5.25C1.616 72.516 0 76.527 0 77.84c0 .691.148 1.273.293 1.273.367 0 .367-.035 15.332-30.988 6.95-14.363 13.531-27.89 14.633-30.113 1.101-2.227 2.094-4.266 2.168-4.559.074-.328-2.461-2.844-6.508-6.379C22.281 3.864 19.082.95 18.785.621c-.844-1.023-2.094-.695-4.336 1.094zM15.7 43.64c-1.692 3.246-1.766 3.28-6.4 3.5-4.081.218-4.152.183-4.152-.582 0-.438-.148-1.024-.332-1.313-.222-.328-.074-.914.442-1.715l.808-1.238h3.676c2.024-.04 4.34-.184 5.149-.328.808-.149 1.507-.219 1.578-.184.074.035-.293.875-.77 1.86zm-3.09 5.832c-.294.765-1.067 2.37-1.692 3.574-1.027 2.043-1.137 2.113-1.395 1.277-.148-.511-.257-2.008-.296-3.355-.036-2.66-.11-2.625 2.98-2.809l.992-.035zm0 0"}),React__namespace.createElement("path",{d:"M15.55 10.39c-.66.473-.843.95-.843 2.153 0 1.422.11 1.64 1.102 2.039.992.402 1.25.367 2.39-.398 1.508-1.024 1.543-1.278.442-2.918-.957-1.422-1.914-1.676-3.09-.875zm2.098 1.313c.586 1.02.22 1.785-.882 1.785-.993 0-1.434-.984-.883-1.968.441-.801 1.285-.727 1.765.183zm0 0M38.602 18.594c0 .183-.22.363-.477.363-.219 0-.844 1.023-1.324 2.262-1.469 3.793-16.176 32.629-16.211 31.718 0-.472-.223-.8-.59-.8-.516 0-.59.289-.367 1.71.219 1.641.074 2.008-5.149 12.071-2.941 5.723-6.101 11.703-7.02 13.305-.956 1.68-1.69 3.5-1.765 4.265-.11 1.313.035 1.496 3.235 4.23 1.84 1.606 4.191 3.61 5.222 4.52 4.63 4.196 6.801 5.871 7.387 5.762.883-.145 14.523-14.328 14.559-15.129 0-.367-.66-5.906-1.47-12.324-1.398-10.938-2.722-23.734-2.573-24.973.109-.765-.442-4.633-.844-6.308-.332-1.313-.184-1.86 2.46-7.84 1.544-3.535 3.567-7.875 4.45-9.625.844-1.75 1.582-3.281 1.582-3.39 0-.11-.258-.18-.55-.18-.298 0-.555.144-.555.363zm-8.454 27.234c.403 2.55 1.211 8.676 1.801 13.598 1.14 9.043 2.461 19.07 2.832 21.62.219 1.278.07 1.532-2.316 4.157-4.156 4.629-8.567 9.188-10.074 10.356l-1.399 1.093-7.168-6.636c-6.617-6.051-7.168-6.672-6.765-7.403.222-.398 2.097-3.789 4.156-7.508 2.058-3.718 4.777-8.68 6.027-11.011 1.29-2.371 2.465-4.41 2.684-4.52.258-.148.332 3.535.258 11.375-.149 11.703-.11 11.739 1.066 11.485.148 0 .258-5.907.258-13.09V56.293l3.86-7.656c2.132-4.23 3.898-7.621 3.972-7.586.07.039.441 2.187.808 4.777zm0 0"}))),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"}))},FIRST_RUN='\nThe Excalidraw Obsidian plugin is much more than "just" a drawing tool. To help you get started here\'s a showcase of the key Excalidraw plugin features.\n\nIf you\'d like to learn more, please subscribe to my YouTube channel: [Visual PKM](https://www.youtube.com/channel/UCC0gns4a9fhVkGkngvSumAQ) where I regularly share videos about Obsidian-Excalidraw and about tools and techniques for Visual Personal Knowledge Management.\n\nThank you & Enjoy!\n\n
\n\n
\n',RELEASE_NOTES={Intro:'I want to help you keep up with all the updates. After installing each release, you\'ll be prompted with a summary of new features and fixes. You can disable these popup messages in plugin settings.\n\nI develop this plugin as a hobby, spending most of my free time doing this. If you\'d like to contribute to the on-going work, I have a simple membership scheme with Bronze, Silver and Gold tiers. Many of you have already bought me a coffee. THANK YOU! It really means a lot to me! If you find this plugin valuable, please consider supporting me.\n\n
\n',"1.7.8":'\n# Optimized for Obsidian 0.15.5\n- I reworked how the plugin treats the "More options" menu because the old approach was interfering with Obsidian\n- Did thorough testing of handling of work panes on link click. There are two settings (open in the adjacent pane, and open in the main workspace), and three broad scenarios (Excalidraw in a work pane in the main Obsidian window, Excalidraw in a hover editor, and Excalidraw in an Obsidian popout window). All should work correctly now.\n',"1.7.7":`\n# New\n- Optimized for Obsidian 0.15.4\n- On a desktop, you can now use the META key when clicking on a link and it will open the link in a new popout Window.\n- ([#685](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/685)) Markdown embeds will now display correctly in Excalidraw even if they include photos and recursive markdown embeds. Unfortunately due to the limitations of Safari the inversion of colors on iPads in dark mode will not work well.\nSee an 18 second long demo video [here](https://user-images.githubusercontent.com/14358394/177213263-2a7ef1ca-0614-4190-8955-e830ca6b424b.mp4).\n\n\n# Fixed\n- ([#683](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/683)) Copy/Paste Markdown embeds to create another instance of the embed, thus you can reference different sections of the document in your drawing (something I broke in 1.7.6)\n- ([#684](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/684)) Transclusions incorrectly did not pick up subsections of a section. To understand this change, imagine for example the following document:\n${String.fromCharCode(96,96,96)}markdown\n# A\nabc\n# B\nxyz\n## b1\n123\n## b2\n456\n# C\n${String.fromCharCode(96,96,96)}\nWhen you transclude ${String.fromCharCode(96)}![[document#B]]${String.fromCharCode(96)} you expect the following result\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n\nb1\n123\n\nb2\n456\n${String.fromCharCode(96,96,96)}\nUntil this fix you only got\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n${String.fromCharCode(96,96,96)}`,"1.7.6":`\nThis release is the same as 1.7.5 except for two minor fixes\n- a fix for ExcaliBrain, becuase 1.7.5 broke ExcaliBrain.\n- I left out the release note from 1.7.5.\n\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.5":`\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.4":"\n- Obsidian 0.15.3 support dragging and dropping work panes between Obsidian windows.\n- Addressed Obsidian changes affecting the more-options menu.\n- Addressed incompatibility with Obsidian Mobile 1.2.2.\n","1.7.3":"\nObsidian 0.15.3 support for dragging and dropping work panes between Obsidian windows.\n","1.7.2":"\nDue to some of the changes to the code, I highly recommend restarting Obsidian after installing this update to Excalidraw.\n\n# Fixed\n- Stability improvements\n- Opening links in new panes and creating new drawings from the file explorer works properly again\n\n# New feature\n- Two new command palette actions:\n - Create a new drawing - IN A POPOUT WINDOW\n - Create a new drawing - IN A POPOUT WINDOW - and embed into active document\n![image|600](https://user-images.githubusercontent.com/14358394/175137800-88789f5d-f8e8-4371-a356-84f443aa6a50.png)\n- Added setting to prefer opening the link in the popout window or in the main workspace.\n![image|800](https://user-images.githubusercontent.com/14358394/175076326-1c8eee53-e512-4025-aedb-07881a732c69.png)\n","1.7.1":"\nSupport for Obsidian 0.15.0 popout windows. While there are no new features (apart from the popout window support) under the hood there were some major changes required to make this happen.\n","1.7.0":"\nThis is the first test version of Excalidraw Obsidian supporting Obsidian 0.15.0 popout windows. The current technical solution is not really sustainable, it's more of a working concept. I don't expect any real big issues with this version - on the contrary, this works much better with Obsidian 0.15.0 popout windows, but some of the features aren't working as expected in the Obsidian popouts yet. Also as a consequence of Obsidian 0.15.0 compatibility, multiple hover previews are no longer supported.\n","1.6.34":"\nWith 0.15.1 Obsidian is implementing some exciting, but significant changes to how windows are managed. I need to make some heavy/invasive changes to Excalidraw to adapt. The next version of the Excalidraw Plugin will require Obsidian 0.15.1 or newer. If you are not signed up for Obsidian Insider Builds, you will need to wait few weeks until the new Obsidian version will be made public.\n\n# Fixed\n- Error saving when the attachments folder exists but with a different letter case (i.e. ATTACHMENTS instead of attachments) [658](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/658). I added more error tolerance. As a general rule, however, I recommend treating file paths as case-sensitive as some platforms like iOS or LINUX have case-sensitive filenames, and synchronizing your Vault to these platforms will cause you headaches in the future.\n- Text detached from the container if you immediately clicked the text-align buttons on the properties pane while still editing the text in the container for the very first time. [#657](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/657).\n- Can't add text to the second container if the first container has text and the second container is centered around the first one. [#5300](https://github.com/excalidraw/excalidraw/issues/5300)\n","1.6.33":`\n# Fixed\n- Under some special circumstances when you embedded a drawing (guest) into another drawing (host), the host did not update when you modified the guest, until you closed Excalidraw completely and reopened the host. [#637](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/637)\n\n# New\n- ExcalidrawAutomate ${String.fromCharCode(96)}addLabelToLine${String.fromCharCode(96)} adds a text label to a line or arrow. Currently this function only works with simple straight 2-point (start & end) lines.\n${String.fromCharCode(96,96,96)}typescript\naddLabelToLine(lineId: string, label: string): string\n${String.fromCharCode(96,96,96)}\n- ExcalidrawAutomate ${String.fromCharCode(96)}ConnectObjects${String.fromCharCode(96)} now returns the ID of the arrow that was created.`,"1.6.32":"\n## Fixed\n- Filenames of embedded images and markdown documents did not get updated if the drawing was open in a work-pane while you changed the filename of the embedded file (image or markdown document) [632](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/632).\n- When you created a new text element and immediately dragged it, sometimes autosave interrupted the drag action and Excalidraw dropped the element you were dragging [630](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/630)\n- In some edge cases when you had the drawing open on your desktop and you also opened the same image on your tablet, Sync seemed to work in the background but the changes did not appear on the desktop until you closed and opened the drawing again. [629](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/629)\n- LaTeX support: Excalidraw must download a javascript library from one of the hosting sites for MathJax tex2svg. It seems that some people do not have access to the URL recommended in the first place by [MathJax](https://docs.mathjax.org/en/latest/web/start.html). If LaTeX formulas do not render correctly in Excalidraw, try changing the source server under Compatibility Settings in Excalidraw Plugin Settings. [628](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/628)","1.6.31":"\nMinor update:\n\n## Fixes\n- Color picker hotkeys were not working. They are working again [627](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/627)\n- I updated MathJax (LaTeX) to the newest (3.2.1) release.","1.6.30":"\n## Fixed\n- The load stencil library button stopped working after 1.6.29 due to an error in the core Excalidraw package. It is now fixed. [#625](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/625).\n- On iPad (probably other Obsidian mobile devices as well) after opening the command palette the positioning of the pointer was off. From now on, the pointer is automatically re-calibrated every 5 seconds.\n- I improved shared-vault collaboration sync. If the open file has not been saved for the last 5 minutes (i.e. you are not working on the drawing actively), and a newer remote version of the file is received via sync, then the remote file will simply overwrite the local file (i.e. the behavior of Excalidraw Obsidian prior to implementing Shared (Multiplayer) Vault Synchronization support in 1.6.29). This solution will support active collaboration when parties participating are actively editing the drawing, but also caters to the scenario when you open a drawing on one device (e.g. your desktop) and once you are finished editing you do not close the drawing, but simply put your PC to sleep... then later you edit the same drawing on your tablet. When you turn your desktop PC on the next time, the changes you've made on your tablet will be synchronized by Obsidian sync. In this case the changes from your tablet should be honored. If you have not edited the open drawing for more then 5 minutes (like in this scenario) there is no value in running the file comparison between the local version and the received one. This approach reduces the probability of running into sync conflicts.","1.6.29":"\n## New\n- I implemented sync support inspired by the new [Obsidian Multiplayer Sync](https://youtu.be/ZyCPhbd51eo) feature (available in insider build v0.14.10). \n - To manage expectations, this is not real-time collaboration like on Excalidraw.com. Synchronization is delayed by the frequency of the autosave timer (every 10 secs) and the speed of Obsidian sync. Also if a file has conflicting versions, Obsidian sync may delay the delivery of the changed file.\n - Even if you are not using multiplayer Obsidian Vaults, you may benefit from the improved synchronization, for example when using the freedraw tool on your tablet or phone, and in parallel editing the same drawing (e.g. typing text) on your desktop. I frequently do this in a mind-mapping scenario.\n - If the same Excalidraw sketch is open on multiple devices then Excalidraw will try to merge changes into the open drawing, thus parallel modifications on different devices are possible. If the same element is edited by multiple parties at the same time, then the foreign (received) version will be honored and the local changes lost. \n\n## Fixed:\n- Default embed width setting stopped working. [#622](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/622)\n- The link tooltip gets stuck on screen after Excalidraw closes [#621](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/621)\n- Layout error when using the Workspaces core plugin. [#28](https://github.com/zsviczian/excalibrain/issues/28)","1.6.28":'\n## New\n- When dropping a link from a DataView query into Excalidraw the link will honor your "New link format" preferences in Obsidian. It will add the "shortest path when possible", if that is your setting. If the link includes a block or section reference, then the link will automatically include an alias, such that only the filename is displayed (shortest path possible allowing) [#610](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/610)\n- If Excalidraw is in a Hover Editor and you open a link in another pane by CTRL+SHIFT+Click then the new page will open in the main workspace, and not in a split pane in the hover editor.\n\n## Fixed\n- New text elements get de-selected after auto-save [#609](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/609)\n- Update opacity of bound text when the opacity of the container is updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)\n- ExcalidrawAutomate: openFileInNewOrAdjacentLeaf() function. This also caused an error when clicking a link in Excalidraw in a hover window, when there were no leaves in the main workspace view.',"1.6.27":"\n## New Features\n- While these new features are benefitial for all Excalidraw Automation projects, the current changes are mainly in support of the [ExcaliBrain](https://youtu.be/O2s-h5VKCas) integration. See detailed [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.27) on GitHub.\n","1.6.26":`\n## Fixed\n- Dragging multiple files onto the canvas will now correctly [#589](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/589)\n - add multiple links\n - or if you hold the CTRL/(SHIFT on Mac) while dropping the files, then adding multiple images\n- Dropped images and links were not selectable with the selection tool until the file was saved. This is now fixed.\n- Display the linked block/section on link-hover instead of the full page. [#597](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/597)\n- Hover preview without CTRL/CMD works again. Requires configuration in plugin settings. [#595](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/595)\n- If you embed the same markdown document into a drawing multiple times, you can now display different sections of the document in each embedded object. [#601](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/601).\n- If you make a copy of an equation and edit this copy, the original equation will remain unchanged [#593](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/593)\n\n## New Features\n- When you drag files from Dataview-results onto the canvas the obsidian:// urls will be converted into wiki links.[#599](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/599)\n- I added one more frontmatter key: ${String.fromCharCode(96)}excalidraw-linkbutton-opacity: ${String.fromCharCode(96)} This sets the opacity of the blue link-button in the top right corner of the element, overriding the respective setting in plugin settings. Valid values are numbers between 0 and 1, where 0 means the button is fully transparent.\n\n## New Excalidraw Automate Features\n- As part of building the new [ExcaliBrain](https://youtu.be/O2s-h5VKCas) plugin, I've added a number of integration features. See the GitHub [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.26) for details.\n`,"1.6.25":`\n## Fixed\n- Pinch-zoom in view mode was broken ([#5001](https://github.com/excalidraw/excalidraw/pull/5001))\n- The add image button on iPad was not working ([#5038](https://github.com/excalidraw/excalidraw/pull/5038) & [#584](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/584))\n\n## New Features\n- If Excalidraw is open in a [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) when opening a link in a new pane Excalidraw will now open the link in the main workspace and not by splitting the view inside the hover-editor. \n- Excalidraw ScriptEngine settings\n - Script Engine settings now render HTML descriptions\n - If the ${String.fromCharCode(96)}height${String.fromCharCode(96)} property of a text setting is set, the corresponding text input field will be rendered as a textArea with the specified height.\n`,"1.6.24":"\n## Fixed\n- Link fixes:\n - Shift+Click on an element link (i.e. a link attached to a rectangle, ellipse, etc) did not open the link in a new leaf.\n - Clicking a link and opening it in a new leaf will now make the new leaf active and focused after the click.\n- Pointer calibration:\n - Opening an Excalidraw drawing with the [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) and dragging the editor to another location corrupted the calibration of the pointer in Excalidraw. Similarly, when rearranging workspace panes by dragging, Excalidraw lost pointer calibration.\n\n## New Features\n### From Excalidraw.com\n- Element locking: The lock and unlock action is in the context menu.\n\n### Plugin\n- Any element that has a link, ctrl/cmd+clicking anywhere on the object will trigger the link action. You no longer have to go to the link icon. ([#541](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/541#issuecomment-1075578365))\n","1.6.23":`\n## Fixed:\n- I have received some user feedback about cases where the text separated from the sticky note. This version comes with a cleanup algorithm that will try to automatically resolve these issues.\n- Autosave did not notice changes in a very obscure case, when you opened a drawing, resized an element, and without deselecting the element you immediately closed the drawing. ([565](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/565))\n- CTRL+Enter to create a task did not work in hover-editor when opened from Excalidraw. Now it does! Thanks @pjeby! ([567](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/567))\n\n## New Features\n- If you have the [Obsidian-Latex](https://github.com/xldenis/obsidian-latex) plugin installed, from now Excalidraw will also process the ${String.fromCharCode(96)}preambles.sty${String.fromCharCode(96)} file. ( [563](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/563))\n- I added a new setting ${String.fromCharCode(96)}Embed & Export >> If found, use the already exported image for preview${String.fromCharCode(96)}. This setting works in conjunction with the ${String.fromCharCode(96)}Auto-export SVG/PNG${String.fromCharCode(96)} settings. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See release notes for a [demo video](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.22).\n`,"1.6.22":'\n## Fixed:\n- "Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document" did not work as intended when an Excalidraw pane was already open. [#559](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/559)\n- [Obsidian-hover-editor](https://github.com/nothingislost/obsidian-hover-editor) related improvements [#555](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/555):\n - hovering triggered many hover preview windows in quick succession, and in some cases raised dozens of errors in the Developer Console\n - hover-editors were not visible in Excalidraw fullscreen mode\n\n## Minor new features:\n- Activating the eraser with key "e" will toggle the active tool and back. So for example if you are drawing a freedraw shape, you can press "e" to delete a few strokes, then press "e" again to continue drawing. On desktop PCs many styluses allow you to configure the pen button to trigger keypress "e". \n- New setting to enable penMode by default.\n- I increased the file size limit for images you paste into Excalidraw from 2MB to 20MB. You should however avoid very large images as they will impact the overall performance of the canvas. ([#557](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/557))\n',"1.6.21":`\nBefore I move on to implementing further features, I spent this week with further stabilizing and debugging the plugin. Hopefully this will result in a smoother, better experince for you all.\n\n## Fixed\n- Links in drawings (e.g. text elements or embedded images) were sometimes not updating when the source file was moved or renamed in your Vault. The issue happend when you had the drawing and the linked file open in panes next to each other. This has led to broken links. ([#546](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/546))\n- To remove complexity and potential error, I have hidden the autosave settings. From now, autosave is now always enabled. Excalidraw will attempt to save your drawing every 10 seconds, or if you are actively engaged in drawing a shape at that very moment (e.g. you are busy with a freedraw line), then autosave will save the drawing at the earliest next opportunity. I imlemented further triggers to save the drawing when there are changes in the drawing and you click outside the drawing canvas. There was a rare error involving text elements, that when happened blocked saving of the file. This error is now properly handeled. Also from now, you will receive a warning message if for any reason save encountered problems. \n- If you have two heading sections in your drawing, e.g. ${String.fromCharCode(96)}# Section abc${String.fromCharCode(96)} and ${String.fromCharCode(96)}# Section abc def${String.fromCharCode(96)}, then referencing ${String.fromCharCode(96)}[[#Section abc]]${String.fromCharCode(96)} in a link will highlight both text elements when clicking the link. These section references now work as expected. ([#530](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/530))`,"1.6.20":`\n
\n\n
\n\n## Fixed\n- ${String.fromCharCode(96)}ExcalidrawAutomate.create()${String.fromCharCode(96)} threw an error [539](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/539)\n\n## New Features\n### From excalidraw.com\n- Bind/unbind text to/from container [4935](https://github.com/excalidraw/excalidraw/pull/4935)\n\n### Plugin\nFrontmatter tags to customize image export at a file level [519](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/519). If these keys are present they will override the default excalidraw embed and export settings.\n- ${String.fromCharCode(96)}excalidraw-export-transparent: true${String.fromCharCode(96)}\n - true == Transparent / false == with background. \n- ${String.fromCharCode(96)}excalidraw-export-dark${String.fromCharCode(96)}\n - true == Dark mode / false == light mode.\n- ${String.fromCharCode(96)}excalidraw-export-svgpadding${String.fromCharCode(96)}\n - This only affects export to SVG. Specify the export padding for the image\n- ${String.fromCharCode(96)}excalidraw-export-pngscale${String.fromCharCode(96)}\n - This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.\n`,"1.6.19":"\nThis is a minor update fixing left-handed mode on iOS, and deploying improvements to the new Excalidraw Eraser.\n","1.6.18":`\n
\n\n
\n\n## Fixed\n- Modifying properties of a text element in tray mode. [496](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/496)\n- Friendly page aliases with iframely should work more reliably now.\n- I further improved resilience of loading from a damaged Excalidraw.md file.\n\n## New Features\n### From excalidraw.com\n- Added Eraser [4887](https://github.com/excalidraw/excalidraw/pull/4887)\n\n### Plugin\n- New setting for default transcluded-text line-wrap length. This is the default value for "wrapAt" in ${String.fromCharCode(96)}![[file#^block]]{wrapAt}${String.fromCharCode(96)}. Wrapping text using this feature will insert linebreaks in the transcluded text. An alternative approach is to transclude text inside sticky notes, in which case Excalidraw will automatically take care of text wrapping depending on the sticky note's width. [228](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/228)\n- New command palette action to toggle fullscreen mode, so you can assign a hotkey.\n- I added basic support for left-handed users. Enable it in plugin settings under the "Display" section. Currently, only affects the position of the tray in tray-mode. [510](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/510)\n- More flexible filename settings. ⚠ Due to the change, current settings may behave slightly differently compared to before. ⚠ [470](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/470)\n`,"1.6.17":`\n
\n\n
\n\n## Fixed\n- Freedraw shape's background color was missing in the SVG export. [#443](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/443)\n- In rare cases, when you only changed the background color of the drawing or edited the dimensions of an embedded markdown document, or changed an existing LaTeX formula, and then moved to another document in the vault, these changes did not get saved. [#503](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/503)\n- I resolved an Excalidraw Automate glitch with word wrapping in containers. EA generated containers with fixed line breaks. The same error also affected the conversion of drawings from the "legacy" Excalidraw.com file format.\n- When you allow/disable autosave in settings, this change will immediately take effect for all open Excalidraw workspace leaves. Until now autosave was activated only after you closed and reopened the Excalidraw view. [#502](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/502)\n- When you create a text element containing a ${String.fromCharCode(96,96,96)}[[markdown link]]${String.fromCharCode(96,96,96)} in raw mode, the new link was parsed nonetheless, and sometimes the link disappeared, leaving only the parsed text without the actual link. Creating links in raw-mode now works correctly.\n\n## New Features\n- The most recent 5 custom colors from the canvas are now added as color options to the element stroke and element background palette. [#4843](https://github.com/excalidraw/excalidraw/pull/4843)\n- Vertical text alignment for text in sticky notes [#4852](https://github.com/excalidraw/excalidraw/pull/4852)\n- Markdown embeds into Excalidraw now receive default styling, including that of tables, blockquotes, and code blocks. I also added a new setting and corresponding frontmatter-key to set the border-color for the embedded markdown document. You can override plugin settings at the document level by adding ${String.fromCharCode(96,96,96)}excalidraw-border-color: steelblue${String.fromCharCode(96,96,96)} to the markdown document you want to embed into your drawing. Valid values are css-color-name|#HEXcolor|any-other-html-standard-format.\n- In Obsidian search, when the text you were searching for is found in an Excalidraw document, clicking the link in search-results will open the drawing with the matching text element selected and zoomed.\n- Excalidraw now supports linking to text elements on the canvas and linking to non-text objects. \n1) You can reference text headings just the same as markdown headings in a document\ni.e. you have a text element that includes a valid markdown heading:\n${String.fromCharCode(96,96,96)}markdown\n# My Heading\ndetails...\n${String.fromCharCode(96,96,96)}\nor \n${String.fromCharCode(96,96,96)}markdown\ntext element text\n# my reference\n${String.fromCharCode(96,96,96)}\nYou can reference these like this respectively: ${String.fromCharCode(96,96,96)}[[#My Heading|display alias]]${String.fromCharCode(96,96,96)} and ${String.fromCharCode(96,96,96)}[[#my reference|alias]]${String.fromCharCode(96,96,96)}\n\n![image](https://user-images.githubusercontent.com/14358394/156890231-5a23bcb3-40a4-4ad7-b366-74c328620159.png)\n\n2) You can also reference element ids similar to block references\n- Links take this form ${String.fromCharCode(96,96,96)}[[#^elementID|alias]]${String.fromCharCode(96,96,96)}\n- Linking is supported by a new action on the Obsidian Tools Panel\n![image](https://user-images.githubusercontent.com/14358394/156894011-6442c3d6-aaff-43a8-bd77-513e450484ba.png)\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.17)\n`,"1.6.16":'\n
\n\n
\n\n\n## Fixed\n- CMD+Drag from the Obsidian File Manager does not work on Mac. You can now use SHIFT+Drag to embed an image or markdown document into a scene. ([#468](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/468))\n- Excalidraw Compressed JSON is now cut to smaller chunks (64 characters per paragraph, instead of the earlier 1024 characters). This should address search performance issues. ([#484](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/484))\n\n## New Features\n- I added the Obsidian Tools Panel\n - Click the Obsidian button to access the panel.\n - The tools panel contains key plugin commands and user / downloaded Excalidraw scripts.\n - Drag the panel with the handle at the top. Single click on the top to collapse the panel.\n - On Mobile press and hold the drag handle before dragging, to avoid activating the Obsidian slide in menus.\n - On Mobile long touch individual buttons on the panel to access tooltips.\n - Reinstall Excalidraw scripts to get the icons.\n- If you hold down SHIFT while resizing a sticky note, the text size will scale instead of text wrapping. ([Excalidraw tweet](https://twitter.com/aakansha1216/status/1496116528890417155?s=20&t=taXjA6I9Nd0T-C0wYBsG5g))\n- SVG export now includes links ([#4791](https://github.com/excalidraw/excalidraw/pull/4791))\n- Added full screen mode for Obsidian Mobile\n- Release notes\n - disable popup in settings\n - access release notes via the command palette, or the button on the tools panel\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.16)\n\n[![support-membership](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/support-tiers.jpg)](https://ko-fi.com/zsolt)\n'};class ReleaseNotes extends obsidian.Modal{constructor(A,e,t){super(A),this.plugin=e,this.version=t}onOpen(){var A;this.contentEl.classList.add("excalidraw-release"),this.containerEl.classList.add(".excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(A=this.version)&&void 0!==A?A:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let A=this.plugin.settings.previousRelease;A=this.version===A?"0":A;const e=this.version?Object.keys(RELEASE_NOTES).filter((e=>e>A)).map((A=>`# ${A}\n${RELEASE_NOTES[A]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(A=>{A.style.textAlign="right",A.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}const dark='({scriptIconMap:A})))}setPreviewMode(A){this.setState((()=>({isPreviewMode:A})))}setFullscreen(A){this.setState((()=>({isFullscreen:A})))}setExcalidrawViewMode(A){this.setState((()=>({excalidrawViewMode:A})))}toggleVisibility(A){this.setTopCenter(A),this.setState((A=>({visible:!A.visible})))}setTheme(A){this.setState((e=>({theme:A})))}setTopCenter(A){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(A?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(A?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(A=0,e=0){this.setState((()=>{const{offsetTop:t,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,s=t-A,r=i-e,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=s>=l-a+c,this.onRightEdge=r>=o-n+d,{top:s{A.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((A=>({minimized:!A.minimized})))},onPointerDown:A=>{const e=A=>{A.preventDefault(),this.pos1=this.pos3-A.clientX,this.pos2=this.pos4-A.clientY,this.pos3=A.clientX,this.pos4=A.clientY,this.updatePosition(this.pos2,this.pos1)},t=()=>{var A,i;null===(A=this.props.view.ownerDocument)||void 0===A||A.removeEventListener("pointerup",t),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",e)};A.preventDefault(),this.penDownX=this.pos3=A.clientX,this.penDownY=this.pos4=A.clientY,this.props.view.ownerDocument.addEventListener("pointerup",t),this.props.view.ownerDocument.addEventListener("pointermove",e)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"search",title:t("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t("PARSED"):t("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t("EXIT_FULLSCREEN"):t("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"svg",title:t("EXPORT_SVG"),action:()=>{this.props.view.saveSVG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"svg")}`)},icon:ICONS.exportSVG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"png",title:t("EXPORT_PNG"),action:()=>{this.props.view.savePNG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"png")}`)},icon:ICONS.exportPNG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"excalidraw",title:t("EXPORT_EXCALIDRAW"),action:()=>{this.props.view.exportExcalidraw()},icon:ICONS.exportExcalidraw,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t("INSERT_LATEX"),action:()=>{this.props.centerPointer(),insertLaTeXToView(this.props.view)},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t("INSERT_LINK_TO_ELEMENT"),action:()=>{this.props.view.copyLinkToSelectedElementToClipboard()},icon:ICONS.copyElementLink,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(A){if(0===Object.keys(this.state.scriptIconMap).length)return"";const e=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,t=t=>A?t.startsWith(e):!t.startsWith(e);return 0===Object.keys(this.state.scriptIconMap).filter((A=>t(A))).length?"":React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,A?"Downloaded":"User"," Scripts"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.keys(this.state.scriptIconMap).filter((A=>t(A))).sort().map((e=>React__namespace.createElement(ActionButton,{key:e,title:A?this.state.scriptIconMap[e].name.replace("Downloaded/",""):this.state.scriptIconMap[e].name,action:async()=>{const A=this.props.view.app.vault.getAbstractFileByPath(e);A&&A instanceof obsidian.TFile&&this.props.view.plugin.scriptEngine.executeScript(this.props.view,await this.props.view.plugin.app.vault.read(A),this.props.view.plugin.scriptEngine.getScriptName(A))},icon:this.state.scriptIconMap[e].svgString?React__namespace.createElement("img",{src:`data:image/svg+xml,${encodeURIComponent("dark"===this.state.theme?this.state.scriptIconMap[e].svgString.replace("e.filter((e=>{if(t&&e.type!==t)return!1;const[i,n,a,s]=rotatedDimensions(e);return i<=A.x&&i+a>=A.x&&n<=A.y&&n+s>=A.y})),getTextElementAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return{id:null,text:null};const i=getElementsAtPointer(A,t.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((A=>{const t=e.textMode===TextMode.parsed?e.excalidrawData.getRawText(A.id):A.text;return!!t&&(!!t.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(t).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(A,t.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(A,t.getSceneElements()).filter((A=>A.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0};var TextMode;!function(A){A[A.parsed=0]="parsed",A[A.raw=1]="raw"}(TextMode||(TextMode={}));const addFiles=async(A,e,t)=>{if(!A||0===A.length||!e)return;const i=e.excalidrawAPI;if(!i)return;if(0===(A=A.filter((A=>A&&A.size&&A.size.height>0&&A.size.width>0))).length)return;const n=scaleLoadedImage(e.getScene(),A);void 0===t&&(t=n.scene.appState.theme),n.dirty&&e.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of A)if(e.excalidrawData.hasFile(i.id)&&e.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,t,i.hasSVGwithBitmap),e.excalidrawData.hasEquation(i.id)){const A=e.excalidrawData.getEquation(i.id).latex;e.excalidrawData.setEquation(i.id,{latex:A,isLoaded:!0})}i.addFiles(A)},warningUnknowSeriousError=()=>{new obsidian.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian.TextFileView{constructor(A,e){super(A),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.metaKeyDown=!1,this.ctrlKeyDown=!1,this.shiftKeyDown=!1,this.altKeyDown=!1,this.semaphores={viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var A;return null!==(A=this.hookServer)&&void 0!==A?A:this.plugin.ea},this.preventReloadResetTimer=null,this.fullscreenModalObserver=null,this.offsetLeft=0,this.offsetTop=0,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.plugin=e,this.excalidrawData=new ExcalidrawData(e),this.hookServer=e.ea}setHookServer(A){this.hookServer=A||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),2e3)}saveExcalidraw(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,t=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(e));t&&t instanceof obsidian.TFile?this.app.vault.modify(t,JSON.stringify(A,null,"\t")):this.app.vault.create(e,JSON.stringify(A,null,"\t"))}async exportExcalidraw(){this.getScene&&this.file&&(this.app.isMobile?new Prompt(this.app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async A=>{if(!A)return;A=`${A}.excalidraw`;const e=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(this.app.vault,e);const t=getNewUniqueFilepath(this.app.vault,A,e);this.app.vault.create(t,JSON.stringify(this.getScene(),null,"\t")),new obsidian.Notice(`Exported to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(A){const e={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},A),{appState:Object.assign(Object.assign({},A.appState),{theme:getExportTheme(this.plugin,this.file,A.appState.theme)})}),e,getSVGPadding(this.plugin,this.file))}async saveSVG(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=getIMGFilename(this.file.path,"svg"),t=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(e)),i=await this.svg(A);if(!i)return;const n=(new XMLSerializer).serializeToString(embedFontsInSVG(i,this.plugin));t&&t instanceof obsidian.TFile?await this.app.vault.modify(t,n):await this.app.vault.create(e,n)}async png(A){const e={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},A),{appState:Object.assign(Object.assign({},A.appState),{theme:getExportTheme(this.plugin,this.file,A.appState.theme)})}),e,getPNGScale(this.plugin,this.file))}async savePNG(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=getIMGFilename(this.file.path,"png"),t=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(e)),i=await this.png(A);i&&(t&&t instanceof obsidian.TFile?await this.app.vault.modifyBinary(t,await i.arrayBuffer()):await this.app.vault.createBinary(e,await i.arrayBuffer()))}async save(A=!0,e=!1){if(!this.semaphores.saving)if(this.semaphores.saving=!0,this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&this.app.vault.getAbstractFileByPath(this.file.path)){try{const t=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||e),i=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(i):await this.excalidrawData.syncElements(i,this.excalidrawAPI.getAppState().selectedElementIds)&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((A=>A.isDeleted))),t&&(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=A,await super.save(),this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),A)){const A=this;this.preventReloadResetTimer=setTimeout((()=>A.semaphores.preventReload=!1),2e3)}this.semaphores.autosaving||this.semaphores.viewunload||(this.plugin.settings.autoexportSVG&&await this.saveSVG(),this.plugin.settings.autoexportPNG&&await this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw())}catch(A){errorlog({where:"ExcalidrawView.save",fn:this.save,error:A}),warningUnknowSeriousError()}this.semaphores.saving=!1}else this.semaphores.saving=!1}getViewData(){if(!this.getScene)return this.data;if(!this.excalidrawData.loaded)return this.data;const A=this.getScene();if(!this.compatibilityMode){let A=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==A&&(A=this.data.search(/(%%\n)?# Drawing\n/)),-1==A)return this.data;let e=this.data.substring(0,A).replace(/excalidraw-plugin:\s.*\n/,"excalidraw-plugin: "+(this.textMode===TextMode.raw?"raw\n":"parsed\n"));const t=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;e.match(t)&&(e=e.replace(t,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const i=e+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((A=>A.isDeleted)));return this.excalidrawData.disableCompression=!1,i}return this.compatibilityMode?JSON.stringify(A,null,"\t"):this.data}addFullscreenchangeEvent(){this.contentEl.onfullscreenchange=()=>{this.plugin.settings.zoomToFitOnResize&&this.zoomToFit(),this.isFullscreen()||(this.clearFullscreenObserver(),this.contentEl.removeAttribute("style")),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(this.isFullscreen())}}gotoFullscreen(){var A;if(this.excalidrawWrapperRef){if(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),this.app.isMobile){const A=document.createElement("style");A.id="excalidraw-full-screen",A.textContent="\n .workspace-leaf-content .view-content {\n padding: 0px !important;\n }\n .view-header {\n height: 1px !important;\n }\n .status-bar {\n display: none !important;\n }";const e=document.getElementById(A.id);return e&&document.head.removeChild(e),void document.head.appendChild(A)}this.contentEl.requestFullscreen(),null===(A=this.excalidrawWrapperRef.current.firstElementChild)||void 0===A||A.focus(),this.contentEl.setAttribute("style","padding:0px;margin:0px;"),this.fullscreenModalObserver=new MutationObserver((A=>{if(1!==A.length)return;if(!A[0].addedNodes||1!==A[0].addedNodes.length)return;const e=A[0].addedNodes[0];if(e.nodeType!==Node.ELEMENT_NODE)return;const t=e;t.classList.contains("modal-container")&&(this.contentEl.appendChild(t),t.querySelector("input").focus())})),this.fullscreenModalObserver.observe(this.ownerDocument.body,{childList:!0,subtree:!1})}}clearFullscreenObserver(){this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}isFullscreen(){return this.ownerDocument.fullscreenEnabled&&this.ownerDocument.fullscreenElement===this.contentEl}exitFullscreen(){if(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1),this.app.isMobile){const A=document.getElementById("excalidraw-full-screen");A&&document.head.removeChild(A)}else this.ownerDocument.exitFullscreen()}async handleLinkClick(A,e){var i,n,a,s;const r=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&this.ownerDocument.body.removeChild(r);const o=this.getSelectedTextElement(),l=(null==o?void 0:o.id)?null:this.getSelectedImageElement(),c=(null==l?void 0:l.id)||(null==o?void 0:o.id)?null:this.getSelectedElementWithLink();let d=null,h=null,g=null;if((null==o?void 0:o.id)||(null==c?void 0:c.id)){if(g=null!==(i=null==c?void 0:c.text)&&void 0!==i?i:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(o.id):o.text,!g)return;if(g=g.replaceAll("\n",""),this.getHookServer().onLinkClickHook){const A=null!==(n=o.id)&&void 0!==n?n:c.id,t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];try{if(!this.getHookServer().onLinkClickHook(t,g,e,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id!==null",fn:this.getHookServer().onLinkClickHook,error:A})}}if(g.match(REG_LINKINDEX_HYPERLINK))return void window.open(g,"_blank");const a=REGEX_LINK.getRes(g).next();if(!a.value){const A=g.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!A.value||A.value.length<2)return;const e=this.app.workspace.getLeavesOfType("search");if(0==e.length)return;return e[0].view.setQuery(`tag:${A.value[1]}`),this.app.workspace.revealLeaf(e[0]),void(this.isFullscreen()&&this.exitFullscreen())}if(g=REGEX_LINK.getLink(a),g.match(REG_LINKINDEX_HYPERLINK))return void window.open(g,"_blank");if(g.search("#")>-1){const A=getLinkParts(g,this.file);h=`#${A.isBlockRef?"^":""}${A.ref}`,g=A.path}if(g.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t("FILENAME_INVALID_CHARS"),4e3);d=A.app.metadataCache.getFirstLinkpathDest(g,A.file.path)}if(null==l?void 0:l.id){if(this.excalidrawData.hasEquation(l.fileId)){const A=this.excalidrawData.getEquation(l.fileId).latex;return void new Prompt(this.app,t("ENTER_LATEX"),A,"").openAndGetValue((async e=>{e&&e!==A&&(this.excalidrawData.setEquation(l.fileId,{latex:e,isLoaded:!1}),await this.save(!1),await updateEquation(e,l.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(l.fileId)){if(e.altKey){const A=this.excalidrawData.getFile(l.fileId);if("md"===A.file.extension&&!this.plugin.isExcalidrawFile(A.file))return void new Prompt(this.app,"Customize the link",A.linkParts.original,"","Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT").openAndGetValue((async e=>{e&&A.linkParts.original!==e&&(A.resetImage(this.file.path,e),await this.save(!1),await this.loadSceneFiles(),this.setDirty(2))}))}g=this.excalidrawData.getFile(l.fileId).file.path,d=this.excalidrawData.getFile(l.fileId).file}}if(g){if(this.getHookServer().onLinkClickHook){const A=null!==(s=null!==(a=l.id)&&void 0!==a?a:o.id)&&void 0!==s?s:c.id,t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];try{if(!this.getHookServer().onLinkClickHook(t,g,e,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id===null",fn:this.getHookServer().onLinkClickHook,error:A})}}try{if(e.shiftKey&&this.isFullscreen()&&this.exitFullscreen(),!d)return void new NewFileActions(this.plugin,g,e.shiftKey,!app.isMobile&&e.metaKey,A).open();const t=!app.isMobile&&(e.metaKey&&this.linksAlwaysOpenInANewPane||e.metaKey)?app.workspace.openPopoutLeaf():e.shiftKey||this.linksAlwaysOpenInANewPane?getNewOrAdjacentLeaf(this.plugin,A.leaf):A.leaf;await t.openFile(d,h?{active:!1,eState:{subpath:h}}:void 0)}catch(A){new obsidian.Notice(A,4e3)}}else new obsidian.Notice(t("LINK_BUTTON_CLICK_NO_TEXT"),2e4)}onResize(){var A,e;const t=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&t&&"text"!==(null===(e=null===(A=t.getAppState())||void 0===A?void 0:A.editingElement)||void 0===e?void 0:e.type)&&this.zoomToFit(!1)}getSceneVersion(A){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(A.filter((A=>!A.isDeleted)))}onload(){const A=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||A||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const e=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=e,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.addAction("ScriptEngine",t("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("disk",t("FORCE_SAVE"),(async()=>{this.semaphores.autosaving||(this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,new obsidian.Notice("Save successful",1e3))})),this.textIsRaw_Element=this.addAction("presentation",t("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.addAction("link",t("OPEN_LINK"),(A=>this.handleLinkClick(this,A))),this.app.isMobile||this.addAction("fullscreen","Press ESC to exit fullscreen mode",(()=>this.gotoFullscreen()));const i=this;this.app.workspace.onLayoutReady((async()=>{i.contentEl.addClass("excalidraw-view"),await i.addSlidingPanesListner(),i.addParentMoveObserver(),i.onKeyUp=A=>{i.ctrlKeyDown=A[CTRL_OR_CMD],i.shiftKeyDown=A.shiftKey,i.altKeyDown=A.altKey,i.metaKeyDown=A.metaKey},i.onKeyDown=A=>{this.ctrlKeyDown=A[CTRL_OR_CMD],this.shiftKeyDown=A.shiftKey,this.altKeyDown=A.altKey,this.metaKeyDown=A.metaKey},i.ownerWindow.addEventListener("keydown",i.onKeyDown,!1),i.ownerWindow.addEventListener("keyup",i.onKeyUp,!1)})),this.setupAutosaveTimer()}async addSlidingPanesListner(){const A=this;this.slidingPanesListner=()=>{A.refresh&&A.refresh()};let e=this.app.workspace.rootSplit;for(;!e;)await sleep(50),e=this.app.workspace.rootSplit;e.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var A;this.slidingPanesListner&&(null===(A=this.app.workspace.rootSplit.containerEl)||void 0===A||A.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var A;const e=null!==(A=getParentOfClass(this.containerEl,"popover"))&&void 0!==A?A:getParentOfClass(this.containerEl,"workspace-leaf");if(!e)return;const t=e.classList.contains("popover");this.offsetLeft=e.offsetLeft,this.offsetTop=e.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async A=>{const e=A[0].target;if(!(e instanceof HTMLElement))return;const{offsetLeft:t,offsetTop:n}=e;t===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=t,i.offsetTop=n)})),this.parentMoveObserver.observe(e,{attributeOldValue:!0,attributeFilter:t?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(A){const e=this.excalidrawAPI;if(!this.excalidrawRef||!e)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const t=e.getAppState();this.excalidrawData.scene.theme=A,this.updateScene({appState:Object.assign(Object.assign({},t),{theme:A}),commitToHistory:!1})}async changeTextMode(A,e=!0){if(this.textMode=A,A===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(A===TextMode.parsed),e){await this.save(!1,!0),this.updateContainerSize();const A=this.excalidrawAPI;if(!A)return;A.history.clear()}}setupAutosaveTimer(){const A=async()=>{var e;const t=this.excalidrawAPI;if(!t)return void warningUnknowSeriousError();const i=t.getAppState(),n=null!==i.editingElement;this.refresh(),this.isLoaded&&this.semaphores.dirty&&this.semaphores.dirty==(null===(e=this.file)||void 0===e?void 0:e.path)&&this.plugin.settings.autosave&&!this.semaphores.forceSaving&&!n&&null===i.draggingElement?(this.autosaveTimer=null,this.semaphores.autosaving=!0,this.excalidrawRef&&await this.save(),this.semaphores.autosaving=!1,this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval)):this.autosaveTimer=setTimeout(A,this.isLoaded&&this.plugin.activeExcalidrawView===this&&this.semaphores.dirty?1e3:this.plugin.settings.autosaveInterval)};this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.plugin.settings.autosave&&(this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval))}onunload(){var A,e,t,i,n,a;if(this.semaphores.viewunload=!0,null===(A=this.ownerWindow)||void 0===A||A.removeEventListener("keydown",this.onKeyDown,!1),null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keyup",this.onKeyUp,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(A){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:A})}const s=null===(i=null===(t=this.containerEl)||void 0===t?void 0:t.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");s&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(s)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null),this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}async reload(A=!1,e){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const t=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!t)return;const i=e&&e===this.file;i&&(this.data=await this.app.vault.read(e),this.preventAutozoom()),A?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}zoomToElementId(A){const e=this.excalidrawAPI;if(!e)return;const t=e.getSceneElements().filter((e=>e.id===A));0!==t.length&&(e.getAppState().viewModeEnabled||e.selectElements(t),e.zoomToFit(t,this.plugin.settings.zoomToFitMaxLevel,.05))}setEphemeralState(A){if(!A)return;const e=this;let t=null;if(A.match&&A.match.content&&A.match.matches&&1===A.match.matches.length&&2===A.match.matches[0].length&&(t=[A.match.content.substring(A.match.matches[0][0],A.match.matches[0][1])]),A.subpath&&A.subpath.length>2)if("^"===A.subpath[1]){const t=A.subpath.substring(2);setTimeout((()=>e.zoomToElementId(t)),300)}else t=[`# ${A.subpath.substring(1)}`];A.line&&A.line>0&&(t=[this.data.split("\n")[A.line-1]]),t&&setTimeout((()=>{const A=e.excalidrawAPI;if(!A)return;const i=A.getSceneElements().filter((A=>"text"===A.type));e.selectElementsMatchingQuery(i,t,!A.getAppState().viewModeEnabled,!0)}),300),super.setEphemeralState(A)}clear(){const A=this.excalidrawAPI;this.excalidrawRef&&A&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,A.resetScene(),A.history.clear(),this.previousSceneVersion=0)}async setViewData(A,e=!1){checkExcalidrawVersion(this.app),this.isLoaded=!1,e&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,A=this.data=A.replaceAll("\r\n","\n").replaceAll("\r","\n"),this.app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),await this.excalidrawData.loadLegacyData(A,this.file),this.plugin.settings.compatibilityMode||new obsidian.Notice(t("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.excalidrawData.disableCompression=!1;const e=getTextMode(A);this.changeTextMode(e,!1);try{if(!await this.excalidrawData.loadData(A,this.file,this.textMode))return}catch(A){return errorlog({where:"ExcalidrawView.setViewData",error:A}),new obsidian.Notice(`Error loading drawing:\n${A.message}${"Cannot read property 'index' of undefined"===A.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4),void this.setMarkdownView()}}await this.loadDrawing(!0);const e=this.excalidrawData.getOnLoadScript();if(e){const A=this,t=this.file.basename+"-onlaod-script",i=()=>{A.excalidrawAPI?A.plugin.scriptEngine.executeScript(A,e,t):setTimeout(i,200)};i()}this.isLoaded=!0}))}async loadSceneFiles(){if(!this.excalidrawAPI)return;const A=new EmbeddedFilesLoader(this.plugin),e=A=>{this.nextLoader=null,this.activeLoader=A,A.loadSceneFiles(this.excalidrawData,((A,t)=>{A&&(addFiles(A,this,t),this.activeLoader=null,this.nextLoader?e(this.nextLoader):this.excalidrawData.getFiles().some((A=>{if(A&&!A.file&&A.attemptCounter<30){const A=this,e=this.file.path;return setTimeout((async()=>{A&&A.excalidrawAPI&&e===A.file.path&&A.loadSceneFiles()}),2e3),!0}return!1})))}),0)};this.activeLoader?this.nextLoader=A:e(A)}async synchronizeWithData(A){let e=0;for(;this.semaphores.saving&&e++<30;)await sleep(100);if(e>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let t=!1;try{const e=A.deletedElements.map((A=>A.id)),i=this.excalidrawAPI.getSceneElements().filter((A=>!e.contains(A.id))),n=i.map((A=>A.id)),a=e=>{switch(e.type){case"text":this.excalidrawData.textElements.set(e.id,A.textElements.get(e.id));break;case"image":A.getFile(e.fileId)?(this.excalidrawData.setFile(e.fileId,A.getFile(e.fileId)),t=!0):A.getEquation(e.fileId)&&(this.excalidrawData.setEquation(e.fileId,A.getEquation(e.fileId)),t=!0)}A.elementLinks.has(e.id)&&this.excalidrawData.elementLinks.set(e.id,A.elementLinks.get(e.id))};A.scene.elements.forEach(((e,s,r)=>{const o=i.filter((A=>A.id===e.id))[0];if(o&&(o.versionA.view.file===this.file)).length>0}setDirty(A){var e;this.semaphores.dirty=null===(e=this.file)||void 0===e?void 0:e.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty")}clearDirty(){const A=this.excalidrawAPI;if(!A)return;this.semaphores.dirty=null;const e=A.getSceneElements();e&&(this.previousSceneVersion=this.getSceneVersion(e)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty")}initializeToolsIconPanelAfterLoading(){var A;const e=this.excalidrawAPI;if(!e)return;const t=e.getAppState(),i=null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current;i&&(i.setTheme(t.theme),i.setExcalidrawViewMode(t.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(A){return"excalidraw"===A}getDisplayText(){return this.file?this.file.basename:t("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane")}onPaneMenu(A,e){this.compatibilityMode?A.addItem((A=>{A.setTitle(t("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):A.addItem((A=>{A.setTitle(t("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})).addItem((A=>{A.setTitle(t("EXPORT_EXCALIDRAW")).setIcon(ICON_NAME).onClick((async()=>{this.exportExcalidraw()})).setSection("pane")})),A.addItem((A=>{A.setTitle(t("SAVE_AS_PNG")).setIcon("save-png").setSection("pane").onClick((async A=>{if(this.getScene&&this.file)if(A[CTRL_OR_CMD]){const A=await this.png(this.getScene());if(!A)return;const e=new FileReader;e.readAsDataURL(A);const t=this;e.onloadend=function(){download(null,e.result,`${t.file.basename}.png`)}}else this.savePNG()})).setSection("pane")})).addItem((A=>{A.setTitle(t("SAVE_AS_SVG")).setIcon("save-svg").setSection("pane").onClick((async A=>{if(this.getScene&&this.file){if(A[CTRL_OR_CMD]){let A=await this.svg(this.getScene());return A?(A=embedFontsInSVG(A,this.plugin),void download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`)):null}this.saveSVG()}}))})).addSeparator(),super.onPaneMenu(A,e)}async getLibrary(){var A;const e=this.plugin.getStencilLibrary();return(null==e?void 0:e.library)?e.library:null!==(A=null==e?void 0:e.libraryItems)&&void 0!==A?A:[]}async instantiateExcalidraw(A){for(;!this.semaphores.scriptsReady;)await sleep(50);const e=this.plugin.getPackage(this.ownerWindow).react,i=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const n=e.createElement((()=>{let i={x:0,y:0};const n=e.useRef(null),a=e.useRef(null),[s,r]=e.useState({width:void 0,height:void 0});let o=null,l=null,c=null,d=0,h=!1;this.toolsPanelRef=a,this.obsidianMenu=new ObsidianMenu(this.plugin,a);const g=()=>{let A,e;const t=new Promise(((t,i)=>{A=t,e=i}));return t.resolve=A,t.reject=e,t},u=e.useMemo((()=>({current:{readyPromise:g()}})),[]);e.useEffect((()=>{u.current.readyPromise.then((A=>{var e;this.excalidrawAPI=A,A.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.loadSceneFiles(),this.updateContainerSize(null,!0),null===(e=this.excalidrawWrapperRef.current.firstElementChild)||void 0===e||e.focus(),this.addFullscreenchangeEvent(),this.initializeToolsIconPanelAfterLoading()}))}),[u]),this.excalidrawRef=u,this.excalidrawWrapperRef=n,e.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const A=()=>{try{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(A){errorlog({where:"Excalidraw React-Wrapper, onResize",error:A})}};return this.ownerWindow.addEventListener("resize",A),()=>{var e;return null===(e=this.ownerWindow)||void 0===e?void 0:e.removeEventListener("resize",A)}}),[n]),this.getSelectedTextElement=()=>{var A;const e=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(o){const A=o;return o=null,A}return{id:null,text:null}}const t=e.getSceneElements().filter((A=>A.id===Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if("text"===t[0].type)return{id:t[0].id,text:t[0].text};if("image"===t[0].type)return{id:null,text:null};const i=null===(A=t[0].boundElements)||void 0===A?void 0:A.filter((A=>"text"===A.type));if((null==i?void 0:i.length)>0){const A=e.getSceneElements().filter((A=>A.id===i[0].id));if(A.length>0)return{id:A[0].id,text:A[0].text}}if(0===t[0].groupIds.length)return{id:null,text:null};const n=t[0].groupIds[0],a=e.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(n)})).filter((A=>"text"===A.type));return 0===a.length?{id:null,text:null}:{id:t[0].id,text:t[0].text}},this.getSelectedImageElement=()=>{const A=this.excalidrawAPI;if(!A)return{id:null,fileId:null};if(A.getAppState().viewModeEnabled){if(l){const A=l;return l=null,A}return{id:null,fileId:null}}const e=A.getSceneElements().filter((e=>e.id==Object.keys(A.getAppState().selectedElementIds)[0]));if(0===e.length)return{id:null,fileId:null};if("image"==e[0].type)return{id:e[0].id,fileId:e[0].fileId};if("text"===e[0].type)return{id:null,fileId:null};if(0===e[0].groupIds.length)return{id:null,fileId:null};const t=e[0].groupIds[0],i=A.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(t)})).filter((A=>"image"==A.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const A=this.excalidrawAPI;if(!A)return{id:null,text:null};if(A.getAppState().viewModeEnabled){if(c){const A=c;return c=null,A}return{id:null,text:null}}const e=A.getSceneElements().filter((e=>e.id==Object.keys(A.getAppState().selectedElementIds)[0]));if(0===e.length)return{id:null,text:null};if(e[0].link)return{id:e[0].id,text:e[0].link};if(0===e[0].groupIds.length)return{id:null,text:null};const t=e[0].groupIds[0],i=A.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(t)})).filter((A=>A.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(A,e,t=!0)=>{var n,a,s,r,o;const l=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!l)return;const c=l.getAppState(),d=this.plugin.ea;d.reset(),d.style.strokeColor=null!==(n=c.currentItemStrokeColor)&&void 0!==n?n:"black",d.style.opacity=null!==(a=c.currentItemOpacity)&&void 0!==a?a:1,d.style.fontFamily=null!==(s=null!=e?e:c.currentItemFontFamily)&&void 0!==s?s:1,d.style.fontSize=null!==(r=c.currentItemFontSize)&&void 0!==r?r:20,d.style.textAlign=null!==(o=c.currentItemTextAlign)&&void 0!==o?o:"left";const h=d.addText(i.x,i.y,A);return await this.addElements(d.getElements(),!1,t),h},this.addElements=async(A,e=!1,t=!1,n,a=!1)=>{const s=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!s)return!1;const r=A.filter((A=>"text"==A.type));for(let A=0;AA.id)),l=s.getSceneElements(),c=[];for(let e=0;eA.id===t))[0],c.push(t))}const d=a?l.concat(A.filter((A=>!c.includes(A.id)))):A.filter((A=>!c.includes(A.id))).concat(l);if(this.updateScene({elements:d,commitToHistory:!0}),n){const A=[];Object.keys(n).forEach((e=>{if(A.push({mimeType:n[e].mimeType,id:n[e].id,dataURL:n[e].dataURL,created:n[e].created}),n[e].file){const A=new EmbeddedFile(this.plugin,this.file.path,n[e].file),t=s.getAppState();A.setImage(n[e].dataURL,n[e].mimeType,n[e].size,"dark"===t.theme,n[e].hasSVGwithBitmap),this.excalidrawData.setFile(n[e].id,A)}n[e].latex&&this.excalidrawData.setEquation(n[e].id,{latex:n[e].latex,isLoaded:!0})})),s.addFiles(A)}return t?await this.save(!1):this.setDirty(5),!0},this.getScene=()=>{const A=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!A)return null;const e=A.getSceneElements(),t=A.getAppState(),i=A.getFiles();if(i){const A=e.filter((A=>"image"===A.type)).map((A=>A.fileId));Object.keys(i).filter((e=>!A.contains(e))).forEach((A=>delete i[A]))}return{type:"excalidraw",version:2,source:"https://excalidraw.com",elements:e,appState:{theme:t.theme,viewBackgroundColor:t.viewBackgroundColor,currentItemStrokeColor:t.currentItemStrokeColor,currentItemBackgroundColor:t.currentItemBackgroundColor,currentItemFillStyle:t.currentItemFillStyle,currentItemStrokeWidth:t.currentItemStrokeWidth,currentItemStrokeStyle:t.currentItemStrokeStyle,currentItemRoughness:t.currentItemRoughness,currentItemOpacity:t.currentItemOpacity,currentItemFontFamily:t.currentItemFontFamily,currentItemFontSize:t.currentItemFontSize,currentItemTextAlign:t.currentItemTextAlign,currentItemStrokeSharpness:t.currentItemStrokeSharpness,currentItemStartArrowhead:t.currentItemStartArrowhead,currentItemEndArrowhead:t.currentItemEndArrowhead,currentItemLinearStrokeSharpness:t.currentItemLinearStrokeSharpness,gridSize:t.gridSize,colorPalette:t.colorPalette},files:i}},this.refresh=()=>{const A=this.excalidrawAPI;(null==u?void 0:u.current)&&A&&A.refresh()};let w={x:0,y:0},p=null;const B=()=>{if(p){const A=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(A),p=null}},m=A=>{var e,t,i,n,a;const s=null===(e=this.app.dragManager.draggable)||void 0===e?void 0:e.files;return s&&s[0]==this.file&&(s.shift(),this.app.dragManager.draggable.title=`${s.length} files`),["file","files"].includes(null===(t=this.app.dragManager.draggable)||void 0===t?void 0:t.type)?"link":(null===(i=A.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=A.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=A.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let f=!1;const E=()=>{if(o=getTextElementAtPointer(i,this),o&&o.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(o=null)}if(l=getImageElementAtPointer(i,this),l&&l.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(l=null)}if(c=getElementWithLinkAtPointer(i,this),c&&c.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(c=null)}};let C=null;const F=(A,e)=>{if(!C)return;if(!A){if(!i)return;A="";const t=getTextElementAtPointer(i,this);if(t&&t.text){e=this.excalidrawAPI.getSceneElements().filter((A=>A.id===t.id))[0];const i=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(t.id):t.text;if(!i)return;if(i.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(i).next();if(!n.value)return;if((A=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const t=getImageElementAtPointer(i,this);if(e=this.excalidrawAPI.getSceneElements().filter((A=>A.id===t.id))[0],!t||!t.fileId)return;if(!this.excalidrawData.hasFile(t.fileId))return;const n=this.excalidrawData.getFile(t.fileId),a=n.linkParts.ref?`#${n.linkParts.isBlockRef?"^":""}${n.linkParts.ref}`:"";A=this.excalidrawData.getFile(t.fileId).file.path+a}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(e,A,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:A})}if(this.semaphores.hoverSleep)return;const t=this.app.metadataCache.getFirstLinkpathDest(A.split("#")[0],this.file.path);if(!t)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${t.path}"]`))return;this.semaphores.hoverSleep=!0;const n=this;if(setTimeout((()=>n.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=A,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,this.app.workspace.trigger("hover-link",{event:C,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),w=i,this.isFullscreen()){const A=this;setTimeout((()=>{var e,i,n,a;const s=null!==(a=null===(n=null===(i=null===(e=this.ownerDocument.querySelector(`div.popover-title[data-path="${t.path}"]`))||void 0===e?void 0:e.parentElement)||void 0===i?void 0:i.parentElement)||void 0===n?void 0:n.parentElement)&&void 0!==a?a:this.ownerDocument.body.querySelector("div.popover");s&&A.contentEl.append(s)}),400)}},{Excalidraw:v}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,y=e.createElement("div",{className:"excalidraw-wrapper",ref:n,key:"abc",tabIndex:0,onKeyDown:A=>{A.target!==y.ref.current&&(this.isFullscreen()&&A.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!A[CTRL_OR_CMD]||A.shiftKey||A.altKey||F())},onClick:A=>{(A[CTRL_OR_CMD]||A.metaKey)&&(this.plugin.settings.allowCtrlClick||A.metaKey)&&(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(this,A)},onMouseMove:A=>{C=A.nativeEvent},onMouseOver:()=>{B()},onDragOver:A=>{const e=m(A.dataTransfer);if(e)return A.dataTransfer.dropEffect=e,A.preventDefault(),!1},onDragLeave:()=>{}},e.createElement(v,{ref:u,width:s.width,height:s.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:{saveFileToDisk:!1},saveAsImage:!1,saveToActiveFile:!1}},initialData:A,detectScroll:!0,onPointerUpdate:A=>{if(i=A.pointer,p&&(Math.abs(w.x-A.pointer.x)>50||Math.abs(w.y-A.pointer.y)>50)&&B(),f){if(!h&&"down"===A.button){if(h=!0,this.ctrlKeyDown||this.metaKeyDown)return void E();const A=(new Date).getTime();return A-d<600&&E(),void(d=A)}"up"===A.button&&(h=!1),(this.ctrlKeyDown||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&F()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,onChange:(A,e)=>{if(f=e.viewModeEnabled,this.semaphores.justLoaded)return this.semaphores.justLoaded=!1,this.semaphores.preventAutozoom||this.zoomToFit(!1),this.previousSceneVersion=this.getSceneVersion(A),void(this.previousBackgroundColor=e.viewBackgroundColor);if(!this.semaphores.dirty&&null===e.editingElement&&null===e.editingLinearElement){const t=this.getSceneVersion(A);((t>0||0===t&&A.length>0)&&t!==this.previousSceneVersion||e.viewBackgroundColor!==this.previousBackgroundColor)&&(this.previousSceneVersion=t,this.previousBackgroundColor=e.viewBackgroundColor,this.setDirty(6))}},onLibraryChange:A=>{(async()=>{const e={type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:A};this.plugin.setStencilLibrary(e),await this.plugin.saveSettings()})()},renderTopRightUI:this.obsidianMenu.renderButton,onPaste:A=>{if(A.elements){const A=this;setTimeout((()=>A.save(!1)),300)}return!0},onThemeChange:async A=>{var e;this.excalidrawData.scene.appState.theme=A,this.loadSceneFiles(),null===(e=null==a?void 0:a.current)||void 0===e||e.setTheme(A)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:A=>{const e=this.excalidrawAPI;if(!e)return!1;const n=e.getAppState();i=viewportCoordsToSceneCoords({clientX:A.clientX,clientY:A.clientY},n);const a=this.app.dragManager.draggable,s=(e,t,n)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:A,draggable:a,type:e,payload:{files:t,text:n},excalidrawFile:this.file,view:this,pointerPosition:i})}catch(A){return new obsidian.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:A}),!1}};switch(A[CTRL_OR_CMD]=A.shiftKey||A[CTRL_OR_CMD],null==a?void 0:a.type){case"file":if(!s("file",[a.file],null)){if(a.file.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian.Notice(t("FILENAME_INVALID_CHARS"),4e3),!1;if(A[CTRL_OR_CMD]&&(IMAGE_TYPES.contains(a.file.extension)||"md"===a.file.extension)){const A=this.plugin.ea;return A.reset(),A.setView(this),(async()=>{A.canvas.theme=e.getAppState().theme,await A.addImage(i.x,i.y,a.file),A.addElementsToView(!1,!1,!0)})(),!1}this.addText(`[[${this.app.metadataCache.fileToLinktext(a.file,this.file.path,!0)}]]`)}return!1;case"files":return s("file",a.files,null)||(async()=>{if(A[CTRL_OR_CMD]){const A=this.plugin.ea;A.reset(),A.setView(this),A.canvas.theme=e.getAppState().theme;let t=0;for(const e of a.files)(IMAGE_TYPES.contains(e.extension)||"md"===e.extension)&&(await A.addImage(i.x+50*t,i.y+50*t,e),t++,await A.addElementsToView(!1,!1,!0))}else{for(const A of a.files)await this.addText(`[[${this.app.metadataCache.fileToLinktext(A,this.file.path,!0)}]]`,void 0,!1),i.y+=2*n.currentItemFontSize;this.save(!1)}})(),!1}if(A.dataTransfer.types.includes("text/plain")){const e=A.dataTransfer.getData("text");if(!e)return!0;if(!s("text",null,e)){if(this.plugin.settings.iframelyAllowed&&e.match(/^https?:\/\/\S*$/))return(async()=>{var A;const t=await this.addText(e),i=`http://iframely.server.crestify.com/iframely?url=${e}`,n=JSON.parse(await obsidian.request({url:i}));if(!n||n.error||!(null===(A=n.meta)||void 0===A?void 0:A.title))return!1;const a=this.plugin.ea;a.reset(),a.setView(this);const s=a.getViewElements().filter((A=>A.id===t));1===s.length&&(s[0].text=s[0].originalText=s[0].rawText=`[${n.meta.title}](${e})`,a.copyViewElementsToEAforEditing(s),a.addElementsToView(!1,!1,!1))})(),!1;if(e.startsWith("obsidian://open?vault=")){const t=A.dataTransfer.getData("text/html");if(t){const A=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===A.length){const e=decodeURIComponent(A[1]).split("#"),t=app.vault.getAbstractFileByPath(e[0]);if(t&&t instanceof obsidian.TFile){const A=app.metadataCache.fileToLinktext(t,this.file.path);return void this.addText(`[[${A+(e.length>1?"#"+e[1]+"|"+A:"")}]]`)}return this.addText(`[[${decodeURIComponent(A[1])}]]`),!1}}const i=e.split("file=");if(2===i.length)return this.addText(`[[${decodeURIComponent(i[1])}]]`),!1}this.addText(e.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!s("unknown",null,null)},onBeforeTextEdit:A=>{clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0;return this.excalidrawData.getRawText(A.id)||A.rawText},onBeforeTextSubmit:(A,e,t,i)=>{const n=this.excalidrawAPI;if(!n)return[null,null,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(A.id),this.setDirty(7),[null,null,null];const a=A.containerId;if(e!==A.text||t!==A.originalText||!this.excalidrawData.getRawText(A.id)){this.setDirty(8);const[i,s,r]=this.excalidrawData.setTextElement(A.id,e,t,(async()=>{await this.save(!1),this.textMode===TextMode.parsed&&n.history.clear()}));return i?(a&&this.updateContainerSize(a,!0),this.textMode===TextMode.raw?[e,t,r]:e===i?r?[i,s,r]:[null,null,null]:(n.history.clear(),[i,s,r])):[null,null,null]}return a&&this.updateContainerSize(a,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(A.id):[null,null,null]},onLinkOpen:async(A,e)=>{var i;if(e.preventDefault(),!A)return;const n=A.link;if(!n||""===n)return;const a=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");a&&this.ownerDocument.body.removeChild(a);const s=null===(i=null==e?void 0:e.detail)||void 0===i?void 0:i.nativeEvent;if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(A,A.link,s,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:e})}n.startsWith("md://")||n.startsWith("[[")?(async()=>{const A=n.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!A)return;let e=A.groups.link,i=null;if(e.search("#")>-1){const A=getLinkParts(e,this.file);i=`#${A.isBlockRef?"^":""}${A.ref}`,e=A.path}if(e.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t("FILENAME_INVALID_CHARS"),4e3);const a=this.app.metadataCache.getFirstLinkpathDest(e,this.file.path),r=s.shiftKey||s[CTRL_OR_CMD]||this.linksAlwaysOpenInANewPane||s.metaKey;if(r&&this.isFullscreen()&&this.exitFullscreen(),a)if(a===this.file){if(i)return void this.setEphemeralState({subpath:i});this.zoomToFit(!1)}else try{const A=r?s.metaKey&&!app.isMobile?app.workspace.openPopoutLeaf():getNewOrAdjacentLeaf(this.plugin,this.leaf):this.leaf;await A.openFile(a,i?{active:!1,eState:{subpath:i}}:{active:!1})}catch(A){new obsidian.Notice(A,4e3)}else new NewFileActions(this.plugin,e,r,!app.isMobile&&s.metaKey,this).open()})():window.open(n)},onLinkHover:(A,e)=>{if(A&&(this.plugin.settings.hoverPreviewWithoutCTRL||e[CTRL_OR_CMD])){C=e,C.ctrlKey=!0;const t=A.link;if(!t||""===t)return;if(t.startsWith("md://")||t.startsWith("[[")){const e=t.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!e)return;let i=e.groups.link;F(i,A)}}},onViewModeChange:A=>{var e,t;if(null===(t=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)||void 0===t||t.setExcalidrawViewMode(A),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(A,this,this.getHookServer())}catch(A){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:A})}}}),e.createElement(ToolsPanel,{ref:a,visible:!1,view:this,centerPointer:()=>{const A=this.excalidrawAPI;if(!u||!u.current||!A)return;const e=A.getAppState(),{width:t,height:n}=e;i=viewportCoordsToSceneCoords({clientX:t/2,clientY:n/2},e)}})),Q=e.useRef(new ResizeObserver((A=>{const{width:e,height:t}=A[0].contentRect,i=a.current.onRightEdge?a.current.previousWidth-e:0,n=a.current.onBottomEdge?a.current.previousHeight-t:0;a.current.updatePosition(n,i)})));return e.useEffect((()=>(a.current&&Q.current.observe(a.current.containerRef.current),()=>{Q.current.unobserve(a.current.containerRef.current)})),[a,Q]),e.createElement(e.Fragment,null,y)}));i.render(n,this.contentEl,(()=>{}))}updateContainerSize(A,e=!1){const t=this.excalidrawAPI;if(!t)return;const i=()=>{const e=A?t.getSceneElements().filter((e=>e.id===A)):t.getSceneElements().filter((A=>{var e;return null===(e=A.boundElements)||void 0===e?void 0:e.map((A=>A.type)).includes("text")}));e.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),t.updateContainerSize(e)),this.initialContainerSizeUpdate=!1};e?setTimeout((()=>i()),50):i()}zoomToFit(A=!0){const e=this.excalidrawAPI;if(!e||!this.excalidrawRef||this.semaphores.isEditingText)return;const t=this.plugin.settings.zoomToFitMaxLevel,i=e.getSceneElements();A?setTimeout((()=>e.zoomToFit(i,t,this.isFullscreen()?0:.05)),100):e.zoomToFit(i,t,this.isFullscreen()?0:.05)}async toggleTrayMode(){const A=this.excalidrawAPI;if(!A)return!1;const e=A.getAppState();A.updateScene({appState:{trayModeEnabled:!e.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!e.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(A,e,t=!0,i=!1){if(!A||0===A.length||!e||0===e.length)return;const n=A.filter((A=>e.some((e=>{if(i){const t=A.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!t||2!==t.length)&&t[1]===e.toLowerCase()}return A.rawText.toLowerCase().replaceAll("\n"," ").trim().match(e.toLowerCase())}))));if(0===n.length)return void new obsidian.Notice("I could not find a matching text element");const a=this.excalidrawAPI;a&&(t&&a.selectElements(n),a.zoomToFit(n,this.plugin.settings.zoomToFitMaxLevel,.05))}getViewSelectedElements(){var A;const e=this.excalidrawAPI;if(!e)return;const t=null===(A=e.getAppState())||void 0===A?void 0:A.selectedElementIds;if(!t)return[];const i=Object.keys(t);if(!i)return[];const n=e.getSceneElements().filter((A=>i.includes(A.id))),a=n.filter((A=>A.boundElements&&A.boundElements.filter((A=>"text"===A.type)).length>0)).map((A=>A.boundElements.filter((A=>"text"===A.type)).map((A=>A.id))[0])),s=n.map((A=>A.id)).concat(a);return e.getSceneElements().filter((A=>s.contains(A.id)))}async copyLinkToSelectedElementToClipboard(){const A=this.getViewSelectedElements();if(1!==A.length)return void new obsidian.Notice(t("INSERT_LINK_TO_ELEMENT_ERROR"));const e=await ScriptEngine.inputPrompt(this.app,"Set link alias","Leave empty if you do not want to set an alias","");navigator.clipboard.writeText(`[[${this.file.path}#^${A[0].id}${e?`|${e}`:""}]]`),new obsidian.Notice(t("INSERT_LINK_TO_ELEMENT_READY"))}updateScene(A,e=!1){const t=this.excalidrawAPI;if(!t)return;const i=A.elements&&e;i&&(A.elements=t.restore(A).elements);try{t.updateScene(A)}catch(e){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:e,scene:A,willDoSecondAttempt:!i}),i)warningUnknowSeriousError();else try{A.elements=t.restore(A).elements,t.updateScene(A)}catch(e){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:e,scene:A}),warningUnknowSeriousError()}}}}function getTextMode(A){return A.search("excalidraw-plugin: parsed\n")>-1||A.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",isLeftHanded:!1,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!1,previousRelease:"1.6.13",showReleaseNotes:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js"},fragWithHTML=A=>createFragment((e=>e.createDiv().innerHTML=A));class ExcalidrawSettingTab extends obsidian.PluginSettingTab{constructor(A,e){super(A,e),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.reloadMathJax=!1,this.plugin=e}applySettingsUpdate(A=!1){A&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestReloadDrawings){const A=this.plugin.app.workspace.getLeavesOfType("excalidraw");for(const e of A)e.view instanceof ExcalidrawView&&(await e.view.save(!1),await e.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var A;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:e}=this;this.containerEl.empty();const i=e.createDiv("coffee");i.addClass("ex-coffee-div"),i.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian.Setting(e).setName(t("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t("RELEASE_NOTES_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showReleaseNotes).onChange((async A=>{this.plugin.settings.showReleaseNotes=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FOLDER_NAME")).setDesc(fragWithHTML(t("FOLDER_DESC"))).addText((A=>A.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async A=>{this.plugin.settings.folder=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t("FOLDER_EMBED_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async A=>{this.plugin.settings.embedUseExcalidrawFolder=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("TEMPLATE_NAME")).setDesc(fragWithHTML(t("TEMPLATE_DESC"))).addText((A=>A.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async A=>{this.plugin.settings.templateFilePath=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t("SCRIPT_FOLDER_DESC"))).addText((A=>A.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async A=>{this.plugin.settings.scriptFolderPath=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("COMPRESS_NAME")).setDesc(fragWithHTML(t("COMPRESS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.compress).onChange((async A=>{this.plugin.settings.compress=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t("FILENAME_HEAD")}),e.createDiv("",(A=>{A.innerHTML=t("FILENAME_DESC")}));const n=()=>`${t("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,a=e.createEl("p",{text:""});let s,r,o,l,c;a.innerHTML=n(),new obsidian.Setting(e).setName(t("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t("FILENAME_PREFIX_DESC"))).addText((A=>A.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async e=>{this.plugin.settings.drawingFilenamePrefix=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilenamePrefix),a.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t("FILENAME_PREFIX_EMBED_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async A=>{this.plugin.settings.drawingEmbedPrefixWithFilename=A,a.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t("FILENAME_POSTFIX_DESC"))).addText((A=>A.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async e=>{this.plugin.settings.drawingFilnameEmbedPostfix=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),a.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t("FILENAME_DATE_DESC"))).addText((A=>A.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async e=>{this.plugin.settings.drawingFilenameDateTime=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilenameDateTime),a.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async A=>{this.plugin.settings.useExcalidrawExtension=A,a.innerHTML=n(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t("DISPLAY_HEAD")}),new obsidian.Setting(e).setName(t("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t("LEFTHANDED_MODE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.isLeftHanded).onChange((async A=>{this.plugin.settings.isLeftHanded=A,setLeftHandedMode(A),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("MATCH_THEME_NAME")).setDesc(fragWithHTML(t("MATCH_THEME_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchTheme).onChange((async A=>{this.plugin.settings.matchTheme=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t("MATCH_THEME_ALWAYS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchThemeAlways).onChange((async A=>{this.plugin.settings.matchThemeAlways=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t("MATCH_THEME_TRIGGER_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchThemeTrigger).onChange((async A=>{this.plugin.settings.matchThemeTrigger=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t("DEFAULT_OPEN_MODE_DESC"))).addDropdown((A=>A.addOption("normal","Normal Mode").addOption("zen","Zen Mode").addOption("view","View Mode").setValue(this.plugin.settings.defaultMode).onChange((async A=>{this.plugin.settings.defaultMode=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t("DEFAULT_PEN_MODE_DESC"))).addDropdown((A=>A.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async A=>{this.plugin.settings.defaultPenMode=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t("ZOOM_TO_FIT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async A=>{this.plugin.settings.zoomToFitOnResize=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((A=>A.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async A=>{s.innerText=` ${A.toString()}`,this.plugin.settings.zoomToFitMaxLevel=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{s=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(A=>A.innerHTML=t("LINKS_DESC"))),new obsidian.Setting(e).setName(t("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t("ADJACENT_PANE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.openInAdjacentPane).onChange((async A=>{this.plugin.settings.openInAdjacentPane=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t("MAINWORKSPACE_PANE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.openInMainWorkspace).onChange((async A=>{this.plugin.settings.openInMainWorkspace=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("LINK_BRACKETS_NAME")).setDesc(fragWithHTML(t("LINK_BRACKETS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showLinkBrackets).onChange((async A=>{this.plugin.settings.showLinkBrackets=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t("LINK_PREFIX_DESC"))).addText((A=>A.setPlaceholder(t("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((A=>{this.plugin.settings.linkPrefix=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t("URL_PREFIX_NAME")).setDesc(fragWithHTML(t("URL_PREFIX_DESC"))).addText((A=>A.setPlaceholder(t("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((async A=>{this.plugin.settings.urlPrefix=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t("LINKOPACITY_NAME")).setDesc(fragWithHTML(t("LINKOPACITY_DESC"))).addSlider((A=>A.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async A=>{r.innerText=` ${A.toString()}`,this.plugin.settings.linkOpacity=A,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(A=>{r=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian.Setting(e).setName(t("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t("HOVERPREVIEW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async A=>{this.plugin.settings.hoverPreviewWithoutCTRL=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t("LINK_CTRL_CLICK_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.allowCtrlClick).onChange((async A=>{this.plugin.settings.allowCtrlClick=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t("TRANSCLUSION_WRAP_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.forceWrap).onChange((async A=>{this.plugin.settings.forceWrap=A,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t("TRANSCLUSION_WRAP_DESC")}`,new obsidian.Setting(e).setName(t("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((A=>A.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=t,A.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((A=>A.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=t,A.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t("GET_URL_TITLE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.iframelyAllowed).onChange((async A=>{this.plugin.settings.iframelyAllowed=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t("MD_HEAD")}),this.containerEl.createEl("p",{text:t("MD_HEAD_DESC")}),new obsidian.Setting(e).setName(t("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t("MD_TRANSCLUDE_WIDTH_DESC"))).addText((A=>A.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=t,this.requestReloadDrawings=!0,A.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((A=>A.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=t,this.requestReloadDrawings=!0,A.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t("MD_DEFAULT_FONT_DESC"))).addDropdown((async A=>{A.addOption("Virgil","Virgil"),A.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((A=>["ttf","woff","woff2"].contains(A.extension))).forEach((e=>{A.addOption(e.path,e.name)})),A.setValue(this.plugin.settings.mdFont).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=A,this.applySettingsUpdate(!0)}))})),new obsidian.Setting(e).setName(t("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t("MD_DEFAULT_COLOR_DESC"))).addText((A=>A.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((A=>A.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t("MD_CSS_NAME")).setDesc(fragWithHTML(t("MD_CSS_DESC"))).addText((A=>A.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=A,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t("EMBED_HEAD")}),new obsidian.Setting(e).setName(t("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t("EMBED_PREVIEW_SVG_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.displaySVGInPreview).onChange((async A=>{this.plugin.settings.displaySVGInPreview=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async A=>{this.plugin.settings.displayExportedImageIfAvailable=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async A=>{this.plugin.settings.previewMatchObsidianTheme=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t("EMBED_WIDTH_DESC"))).addText((A=>A.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async A=>{this.plugin.settings.width=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(e).setName(t("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t("EMBED_TYPE_DESC"))).addDropdown((async A=>{o=A,o.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?o.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?o.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),o.setValue(this.plugin.settings.embedType).onChange((async A=>{this.plugin.settings.embedType=A,this.applySettingsUpdate()}))})),new obsidian.Setting(e).setName(t("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t("EMBED_WIKILINK_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.embedWikiLink).onChange((async A=>{this.plugin.settings.embedWikiLink=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t("EXPORT_PNG_SCALE_DESC"))).addSlider((A=>A.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async A=>{l.innerText=` ${A.toString()}`,this.plugin.settings.pngExportScale=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{l=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian.Setting(e).setName(t("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t("EXPORT_BACKGROUND_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.exportWithBackground).onChange((async A=>{this.plugin.settings.exportWithBackground=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(e).setName(t("EXPORT_SVG_PADDING_NAME")).setDesc(fragWithHTML(t("EXPORT_SVG_PADDING_DESC"))).addSlider((A=>A.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async A=>{c.innerText=` ${A.toString()}`,this.plugin.settings.exportPaddingSVG=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{c=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian.Setting(e).setName(t("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t("EXPORT_THEME_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.exportWithTheme).onChange((async A=>{this.plugin.settings.exportWithTheme=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t("EXPORT_HEAD")}),new obsidian.Setting(e).setName(t("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t("EXPORT_SYNC_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.keepInSync).onChange((async A=>{this.plugin.settings.keepInSync=A,this.applySettingsUpdate()}))));const d=A=>{let e=0;for(e=0;eA.setValue(this.plugin.settings.autoexportSVG).onChange((async A=>{A?o.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(o.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),d("SVG")),this.plugin.settings.autoexportSVG=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t("EXPORT_PNG_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoexportPNG).onChange((async A=>{A?o.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(o.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),d("PNG")),this.plugin.settings.autoexportPNG=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t("COMPATIBILITY_HEAD")}),new obsidian.Setting(e).setName(t("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t("COMPATIBILITY_MODE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.compatibilityMode).onChange((async A=>{this.plugin.settings.compatibilityMode=A,a.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t("EXPORT_EXCALIDRAW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async A=>{this.plugin.settings.autoexportExcalidraw=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t("SYNC_EXCALIDRAW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.syncExcalidraw).onChange((async A=>{this.plugin.settings.syncExcalidraw=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("MATHJAX_NAME")).setDesc(t("MATHJAX_DESC")).addDropdown((A=>{A.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((A=>{this.plugin.settings.mathjaxSourceURL=A,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),this.containerEl.createEl("h1",{text:t("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t("EXPERIMENTAL_DESC")}),new obsidian.Setting(e).setName(t("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t("FIELD_SUGGESTER_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.fieldSuggester).onChange((async A=>{this.plugin.settings.fieldSuggester=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FILETYPE_NAME")).setDesc(fragWithHTML(t("FILETYPE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalFileType).onChange((async A=>{this.plugin.settings.experimentalFileType=A,this.plugin.experimentalFileTypeDisplayToggle(A),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FILETAG_NAME")).setDesc(fragWithHTML(t("FILETAG_DESC"))).addText((A=>A.setPlaceholder(t("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async A=>{this.plugin.settings.experimentalFileTag=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t("LIVEPREVIEW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalLivePreview).onChange((async A=>{this.plugin.settings.experimentalLivePreview=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t("ENABLE_FOURTH_FONT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async A=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t("FOURTH_FONT_DESC"))).addDropdown((async A=>{A.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((A=>["ttf","woff","woff2"].contains(A.extension))).forEach((e=>{A.addOption(e.path,e.name)})),A.setValue(this.plugin.settings.experimantalFourthFont).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=A,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))}));const h=null===(A=this.plugin.scriptEngine.getListofScripts())||void 0===A?void 0:A.map((A=>this.plugin.scriptEngine.getScriptName(A)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&h){const A=(A,e)=>{const t=this.plugin.settings.scriptEngineSettings[A][e];return"object"==typeof t?t.height:null},i=(A,e)=>{const t=this.plugin.settings.scriptEngineSettings[A][e];return"object"==typeof t?t.value:t},n=(A,e,t)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[A][e]?this.plugin.settings.scriptEngineSettings[A][e].value=t:this.plugin.settings.scriptEngineSettings[A][e]=t},a=(A,t,a)=>{new obsidian.Setting(e).setName(t).setDesc(fragWithHTML(null!=a?a:"")).addToggle((e=>e.setValue(i(A,t)).onChange((async e=>{n(A,t,e),this.applySettingsUpdate()}))))},s=(t,a,s,r)=>{r&&"[object Array]"===Object.prototype.toString.call(r)&&r.length>0?new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=s?s:"")).addDropdown((A=>{r.forEach((e=>A.addOption(e.toString(),e.toString()))),A.setValue(i(t,a)).onChange((async A=>{n(t,a,A),this.applySettingsUpdate()}))})):A(t,a)?new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=s?s:"")).addTextArea((e=>{e.inputEl.style.minHeight=A(t,a),e.inputEl.style.minWidth="400px",e.setValue(i(t,a)).onChange((async A=>{n(t,a,A),this.applySettingsUpdate()}))})):new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=s?s:"")).addText((A=>A.setValue(i(t,a)).onChange((async A=>{n(t,a,A),this.applySettingsUpdate()}))))},r=(A,t,a)=>{new obsidian.Setting(e).setName(t).setDesc(fragWithHTML(null!=a?a:"")).addText((e=>e.setPlaceholder("Enter a number").setValue(i(A,t).toString()).onChange((async a=>{const s=parseFloat(a);isNaN(s)&&""!==a?e.setValue(i(A,t).toString()):(n(A,t,isNaN(s)?0:s),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((A=>h.contains(A))).forEach((A=>{const e=this.plugin.settings.scriptEngineSettings[A],t=Object.values(e);0===t.length||t.length>0&&0===t.map((A=>A.hidden?0:1)).reduce(((A,e)=>A+e))||(this.containerEl.createEl("h3",{text:A}),Object.keys(e).forEach((t=>{var i;const n=e[t];switch(typeof(null!==(i=n.value)&&void 0!==i?i:n)){case"boolean":n.hidden||a(A,t,n.description);break;case"string":n.hidden||s(A,t,n.description,n.valueset);break;case"number":n.hidden||r(A,t,n.description)}})))}))}}}var openDialogAction;!function(A){A[A.openFile=0]="openFile",A[A.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian.FuzzySuggestModal{constructor(A,e){super(A),this.app=A,this.action=openDialogAction.openFile,this.plugin=e,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=A=>{"Enter"==A.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>this.plugin.isExcalidrawFile(A)))}getItemText(A){return A.path}onChooseItem(A){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(A,this.onNewPane?"new-pane":"active-pane");break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(A)}}start(A,e){switch(this.action=A,this.onNewPane=e,A){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t("NO_MATCH"),this.setPlaceholder(t("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A),this.app=A,this.limit=20,this.setInstructions([{command:t("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t("SELECT_FILE_TO_LINK")),this.emptyStateText=t("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((A=>!A.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(A){return A.path+(A.alias?`|${A.alias}`:"")}onChooseItem(A){let e=A.path;A.file&&(e=this.app.metadataCache.fileToLinktext(A.file,this.drawingPath,!0)),this.addText(`[[${e+(A.alias?`|${A.alias}`:"")}]]`)}start(A,e){this.addText=e,this.drawingPath=A,this.open()}}class InsertImageDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A.app),this.plugin=A,this.app=A.app,this.limit=20,this.setInstructions([{command:t("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t("SELECT_DRAWING")),this.emptyStateText=t("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>(IMAGE_TYPES.contains(A.extension)||this.plugin.isExcalidrawFile(A))&&!A.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(A){return A.path}onChooseItem(A){const e=this.plugin.ea;e.reset(),e.setView(this.view),e.canvas.theme=this.view.excalidrawAPI.getAppState().theme,(async()=>{await e.addImage(0,0,A),e.addElementsToView(!0,!1,!0)})()}start(A){this.view=A,this.open()}}class InsertMDDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A.app),this.plugin=A,this.app=A.app,this.limit=20,this.setInstructions([{command:t("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t("SELECT_MD")),this.emptyStateText=t("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>"md"===A.extension&&!this.plugin.isExcalidrawFile(A)))}getItemText(A){return A.path}onChooseItem(A){const e=this.plugin.ea;e.reset(),e.setView(this.view),(async()=>{await e.addImage(0,0,A),e.addElementsToView(!0,!1,!0)})()}start(A){this.view=A,this.open()}}function around(A,e){const t=Object.keys(e).map((t=>around1(A,t,e[t])));return 1===t.length?t[0]:function(){t.forEach((A=>A()))}}function around1(A,e,t){const i=A[e],n=A.hasOwnProperty(e);let a=t(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(s,a),A[e]=s,r;function s(...t){return a===i&&A[e]===s&&r(),a.apply(this,t)}function r(){A[e]===s&&(n?A[e]=i:delete A[e]),a!==i&&(a=i,Object.setPrototypeOf(s,i||Function))}}let plugin,vault,metadataCache;const getDefaultWidth=A=>{const e=parseInt(A.settings.width);return isNaN(e)||0===e||null===e?"400":A.settings.width},initializeMarkdownPostProcessor=A=>{plugin=A,vault=A.app.vault,metadataCache=A.app.metadataCache},getIMG=async A=>{var e;let t=A.file;if(!A.file){const e=vault.getAbstractFileByPath(A.fname);if(!(e&&e instanceof obsidian.TFile))return null;t=e}A.style=A.style.replaceAll(" ","-");const i=hasExportTheme(plugin,t)?getExportTheme(plugin,t,"light"):void 0,n={withBackground:getWithBackground(plugin,t),withTheme:!!i||plugin.settings.exportWithTheme},a=createEl("img");let s=`max-width:${A.fwidth}px !important; width:100%;`;A.fheight&&(s+=`height:${A.fheight}px;`),a.setAttribute("style",s),a.addClass(A.style);const r=null!=i?i:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";r&&(n.withTheme=!0);const o=new EmbeddedFilesLoader(plugin,r?"dark"===r:void 0);if(!plugin.settings.displaySVGInPreview){const i=parseInt(A.fwidth);let s=1;i>=600&&(s=2),i>=1200&&(s=3),i>=1800&&(s=4),i>=2400&&(s=5);const l=null!==(e=await getQuickImagePreview(plugin,t.path,"png"))&&void 0!==e?e:await createPNG(t.path,s,n,o,r,null,null,[],plugin,0);return l?(a.src=URL.createObjectURL(l),a):null}const l=await getQuickImagePreview(plugin,t.path,"svg");if(l)return a.setAttribute("src",svgToBase64(l)),a;const c=(await createSVG(t.path,!0,n,o,r,null,null,[],plugin,0,getSVGPadding(plugin,t))).outerHTML;let d=null;const h=document.createElement("div");h.innerHTML=c;const g=h.firstChild;return g instanceof SVGSVGElement&&(d=g),d?(d=embedFontsInSVG(d,plugin),d.removeAttribute("width"),d.removeAttribute("height"),a.setAttribute("src",svgToBase64(d.outerHTML)),a):null},createImageDiv=async A=>{const e=await getIMG(A);return createDiv(A.style,(t=>{t.append(e),t.setAttribute("src",A.file.path),A.fwidth&&t.setAttribute("w",A.fwidth),A.fheight&&t.setAttribute("h",A.fheight),t.onClickEvent((A=>{if(A.target instanceof Element&&"img"!=A.target.tagName.toLowerCase())return;const e=t.getAttribute("src");e&&plugin.openDrawing(vault.getAbstractFileByPath(e),A[CTRL_OR_CMD]?"new-pane":A.metaKey&&!app.isMobile?"popout-window":"active-pane")})),t.addEventListener(RERENDER_EVENT,(async A=>{A.stopPropagation(),t.empty();const e=await getIMG({fname:t.getAttribute("src"),fwidth:t.getAttribute("w"),fheight:t.getAttribute("h"),style:t.getAttribute("class")});t.append(e)}))}))},processInternalEmbeds=async(A,e)=>{var t;const i={fname:"",fheight:"",fwidth:"",style:""};let n,a,s;for(const r of A)if(i.fname=r.getAttribute("src"),s=metadataCache.getFirstLinkpathDest(null===(t=i.fname)||void 0===t?void 0:t.split("#")[0],e.sourcePath),s&&s instanceof obsidian.TFile&&plugin.isExcalidrawFile(s)){i.fwidth=r.getAttribute("width")?r.getAttribute("width"):getDefaultWidth(plugin),i.fheight=r.getAttribute("height"),n=r.getAttribute("alt"),n==i.fname&&(n=""),i.style="excalidraw-svg",n&&("span"==r.tagName.toLowerCase()&&(n=`|${n}`),a=n.match(/[^\|]*\|?(\d*%?)x?(\d*%?)\|?(.*)/),i.fwidth=a[1]?a[1]:getDefaultWidth(plugin),i.fheight=a[2],a[3]!=i.fname&&(i.style="excalidraw-svg"+(a[3]?`-${a[3]}`:""))),i.fname=null==s?void 0:s.path,i.file=s;const A=await createImageDiv(i);r.parentElement.replaceChild(A,r)}},tmpObsidianWYSIWYG=async(A,e)=>{if(!e.frontmatter)return;if(!e.frontmatter.hasOwnProperty("excalidraw-plugin"))return;if(e.remainingNestLevel<4)return;if(!A.querySelector(".frontmatter"))return void(A.style.display="none");const t={fname:e.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};if(t.file=metadataCache.getFirstLinkpathDest(e.sourcePath,""),A.empty(),!plugin.settings.experimentalLivePreview)return void A.appendChild(await createImageDiv(t));const i=createDiv();A.appendChild(i),setTimeout((async()=>{let e=i;for(;!e.hasClass("internal-embed")&&e.parentElement;)e=e.parentElement;if(!e.hasClass("internal-embed"))return A.empty(),void A.appendChild(await createImageDiv(t));e.empty();const n=splitFolderAndFilename(t.fname).basename,a=()=>{const A=e.getAttribute("width")&&""!==e.getAttribute("width"),i=e.getAttribute("height")&&""!==e.getAttribute("height");A&&(t.fwidth=e.getAttribute("width")),i&&(t.fheight=e.getAttribute("height"));const a=e.getAttribute("alt"),s=a&&""!==a&&a!==n&&a!==e.getAttribute("src");if(s){const A=a.match(/(\d*%?)x?(\d*%?)\|?(.*)/);t.fwidth=A[1]?A[1]:getDefaultWidth(plugin),t.fheight=A[2],A[3]!=t.fname&&(t.style="excalidraw-svg"+(A[3]?`-${A[3]}`:""))}A||i||s||(t.fheight="",t.fwidth=getDefaultWidth(plugin),t.style="excalidraw-svg")},s=async()=>{a();const A=await createImageDiv(t);e.appendChild(A)};await s();let r=null;new MutationObserver((A=>{var t;["alt","width","height"].contains(null===(t=A[0])||void 0===t?void 0:t.attributeName)&&(r&&clearTimeout(r),r=setTimeout((()=>{r=null,a(),e.empty(),s()}),500))})).observe(e,{attributes:!0})}),300)},markdownPostProcessor=async(A,e)=>{var t;const i=A.querySelectorAll(".internal-embed");0!==i.length?(null===(t=e.frontmatter)||void 0===t?void 0:t.hasOwnProperty("excalidraw-plugin"))?A.style.display="none":await processInternalEmbeds(i,e):tmpObsidianWYSIWYG(A,e)},hoverEvent=A=>{A.linktext?(plugin.hover.linkText=A.linktext,plugin.hover.sourcePath=A.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async A=>{if(0==A.length)return;if(!plugin.hover.linkText)return;const e=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!e)return;if(!(e instanceof obsidian.TFile))return;if("excalidraw"!==e.extension)return;const t=getIMGFilename(e.path,"svg"),i=vault.getAbstractFileByPath(t);if(i&&i instanceof obsidian.TFile)return;const n=getIMGFilename(e.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian.TFile)return;if(!plugin.hover.linkText)return;if(1!=A.length)return;if(1!=A[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!A[0].addedNodes[0].classNames)return;const s=A[0].addedNodes[0];s.empty();const r=await getIMG({file:e,fname:e.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async A=>{A.appendChild(r),A.setAttribute("src",e.path),A.onClickEvent((e=>{e.stopImmediatePropagation();const t=A.getAttribute("src");t&&plugin.openDrawing(vault.getAbstractFileByPath(t),e[CTRL_OR_CMD]?"new-pane":e.metaKey&&!app.isMobile?"popout-window":"active-pane")}))}));s.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.strokeSharpness",code:"[string]",desc:"'round' | 'sharp'",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toCliboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: string; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile): Promise;",desc:null,after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[]):void;",desc:"Elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: [{caption:string, action:Function}]);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-svgpadding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to SVG. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"}];class FieldSuggester extends obsidian.EditorSuggest{constructor(A){super(A.app),this.getSuggestions=A=>{const e=A.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((A=>A.field)).filter((A=>A.toLowerCase().includes(e)))},this.plugin=A}onTrigger(A,e,t){var i,n,a,s,r;if(this.plugin.settings.fieldSuggester){const t=e.getLine(A.line).substring(0,A.ch),o=null!==(s=null!==(n=null===(i=t.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=t.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==s?s:null===(r=t.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===r?void 0:r[2];if(void 0!==o)return this.suggestType=t.match(/^excalidraw-(.*)$/)?"excalidraw":t.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:A,start:{ch:A.ch-o.length,line:A.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(A,e){const t=A.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((e=>e.field===A));e.createEl("b",{text:t}),e.createEl("br"),i.code&&e.createEl("code",{text:i.code}),i.desc&&e.createDiv("div",(A=>A.innerHTML=i.desc))}selectSuggestion(A){var e;const{context:t}=this;if(t){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${A}${null===(e=i.find((e=>e.field===A)))||void 0===e?void 0:e.after}`;if(t.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const A=this.latestTriggerInfo.end;A.ch+=n.length,t.editor.setCursor(A)}}}}class ExcalidrawPlugin extends obsidian.Plugin{constructor(A,e){super(A,e),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(A){if(A===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(A))return this.packageMap.get(A);const{react:e,reactDOM:t,excalidrawLib:i}=A.eval.call(A,`(function() {\n ${lzString.exports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(A,{react:e,reactDOM:t,excalidrawLib:i}),{react:e,reactDOM:t,excalidrawLib:i}}async onload(){if(obsidian.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian.addIcon("disk",DISK_ICON),obsidian.addIcon("save-png",PNG_ICON),obsidian.addIcon("save-svg",SVG_ICON),await this.loadSettings(),this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(A=>new ExcalidrawView(A,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const A=this.settings.imageElementNotice;PLUGIN_VERSION>this.settings.previousRelease&&new ReleaseNotes(this.app,this,A?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const A=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(A)}))}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const A=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),e=""===A.dataURL?VIRGIL_DATAURL:A.dataURL;this.fourthFontDef=A.fontDef;const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;if(!i)return;if(t.has(i))return;t.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${e}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const A=this;this.app.workspace.onLayoutReady((async()=>{await obsidian.loadMathJax();try{A.mathjaxDiv&&(document.body.removeChild(A.mathjaxDiv),A.mathjax=null,A.mathjaxLoaderFinished=!1),A.mathjaxDiv=document.body.createDiv(),A.mathjaxDiv.title="Excalidraw MathJax Support",A.mathjaxDiv.style.display="none";const e=A.mathjaxDiv.createEl("iframe");e.title="Excalidraw MathJax Support";const t=e.contentWindow.document,i=t.createElement("script");i.type="text/javascript",i.onload=()=>{const t=e.contentWindow;t.MathJax.startup.pagePromise.then((async()=>{const e=A.app.vault.getAbstractFileByPath("preamble.sty"),i=e&&e instanceof obsidian.TFile?await A.app.vault.read(e):null;try{i&&await t.MathJax.tex2svg(i)}catch(e){errorlog({where:A.loadMathJax,description:"Unexpected error while loading preamble.sty",error:e})}A.mathjax=t.MathJax,A.mathjaxLoaderFinished=!0}))},i.src=A.settings.mathjaxSourceURL,t.head.appendChild(i)}catch(e){new obsidian.Notice("Excalidraw: Error initializing LaTeX support"),A.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const A=this;this.app.workspace.onLayoutReady((()=>{let e;for(e of A.app.workspace.getLeavesOfType("markdown"))e.view instanceof obsidian.MarkdownView&&A.isExcalidrawFile(e.view.file)&&(A.excalidrawFileModes[e.id||e.view.file.path]="excalidraw",A.setExcalidrawView(e))}))}registerInstallCodeblockProcessor(){const A=async(A,e)=>{let i=null;try{const A=e.parentElement.querySelector(`a[href="#${e.previousElementSibling.getAttribute("data-heading")}"]`);A.style.paddingRight="10px",i=A.parentElement.createEl("button",null,(A=>{A.setText(t("UPDATE_SCRIPT")),A.addClass("mod-cta"),A.style.backgroundColor="var(--interactive-success)",A.style.display="none"}))}catch(e){errorlog({where:"this.registerInstallCodeblockProcessor",source:A,error:e})}A=A.trim(),e.createEl("button",null,(async e=>{const n=A=>{switch(i&&(i.style.display="none"),A){case"CHECKING":e.setText(t("CHECKING_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":e.setText(t("INSTALL_SCRIPT")),e.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":e.setText(t("UPTODATE_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":e.setText(t("UPDATE_SCRIPT")),e.style.backgroundColor="var(--interactive-success)",i&&(i.style.display=null);break;case"ERROR":e.setText(t("UNABLETOCHECK_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)"}};e.addClass("mod-cta");let a=A;try{a=decodeURI(A)}catch(e){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:A,error:e})}const s=a.substring(a.lastIndexOf("/")+1),r=`${this.settings.scriptFolderPath}/Downloaded`,o=`${r}/${s}`,l=getIMGFilename(o,"svg");let c=this.app.vault.getAbstractFileByPath(o),d=this.app.vault.getAbstractFileByPath(l);if(n(c?"CHECKING":"INSTALL"),e.onclick=async()=>{const e=async(A,e,t)=>{const i=await obsidian.request({url:A});return!i||i.startsWith("404: Not Found")?null:(e?await this.app.vault.modify(e,i):(await checkAndCreateFolder(this.app.vault,r),e=await this.app.vault.create(t,i)),e)};try{if(c=await e(A,c,o),!c)throw n("ERROR"),"File not found";d=await e(getIMGFilename(A,"svg"),d,l),n("UPTODATE"),new obsidian.Notice(`Installed: ${c.basename}`)}catch(A){new obsidian.Notice(`Error installing script: ${s}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:A})}},i&&(i.onclick=e.onclick),!(c&&c instanceof obsidian.TFile))return;const h=new Map;JSON.parse(await obsidian.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((A=>h.set(A.fname,A.mtime)));const g=(A,e)=>{if(0===h.size||!h.has(A))return"ERROR";const t=h.get(A);return!e||t>e.stat.mtime?"UPDATE":"UPTODATE"},u=g(s,c),w=g(getIMGFilename(s,"svg"),d&&d instanceof obsidian.TFile?d:null);n("UPTODATE"===u&&"UPTODATE"===w||"UPTODATE"===u&&"ERROR"===w?"UPTODATE":"ERROR"===u?"ERROR":"UPDATE"===u||"UPDATE"===w?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(e,t)=>{t.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),t.empty(),A(e,t)})),A(e,t)}))}addMarkdownPostProcessor(){plugin=this,vault=this.app.vault,metadataCache=this.app.metadataCache,this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async A=>{var e,t,i,n,a,s,r,o;if(!this.settings.matchThemeTrigger)return;if((null===(e=A[0])||void 0===e?void 0:e.oldValue)===(null===(i=null===(t=A[0])||void 0===t?void 0:t.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=A[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(r=null===(s=A[0])||void 0===s?void 0:s.target)||void 0===r?void 0:r.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{const e=A.view;e.file&&e.excalidrawRef&&e.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(A){A?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const A=A=>{if(1!=A.childElementCount)return;const e=A.getAttribute("data-path");if(!e)return;const t=this.app.vault.getAbstractFileByPath(e);t&&t instanceof obsidian.TFile&&this.isExcalidrawFile(t)&&A.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),A.firstChild)};this.fileExplorerObserver=new MutationObserver((e=>{e.filter((A=>A.addedNodes.length>0)).forEach((e=>{e.addedNodes.forEach((e=>{e instanceof Element&&e.querySelectorAll(".nav-file-title").forEach(A)}))}))}));const e=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(A),e.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t("CREATE_NEW"),(async A=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),A[CTRL_OR_CMD]?"new-pane":"active-pane")})),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{A.addItem((A=>{A.setTitle(t("CREATE_NEW")).setIcon(ICON_NAME).onClick((()=>{let A=e.path;e instanceof obsidian.TFile&&(A=obsidian.normalizePath(e.path.substr(0,e.path.lastIndexOf(e.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane",A)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{e instanceof obsidian.TFile&&"excalidraw"==e.extension&&A.addItem((A=>{A.setTitle(t("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(e,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{e instanceof obsidian.TFile&&"excalidraw"==e.extension&&A.addItem((A=>{A.setTitle(t("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(e,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-download-lib",name:t("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t("TRANSCLUDE"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t("TRANSCLUDE_MOST_RECENT"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const e=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return e instanceof obsidian.TFile&&(this.embedDrawing(e),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t("NEW_IN_POPOUT_WINDOW"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const A=async A=>{const e=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!e)return;const t=getEmbedFilename(e.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,e.file.path,t)).folder,n=await this.createDrawing(t,i);await this.embedDrawing(n),this.openDrawing(n,A)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t("NEW_IN_NEW_PANE_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("popout-window"),!0)}),this.addCommand({id:"export-svg",name:t("EXPORT_SVG"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.saveSVG(),!0)}}),this.addCommand({id:"search-text",name:t("SEARCH"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(search(e),!0)}}),this.addCommand({id:"fullscreen",name:t("TOGGLE_FULLSCREEN"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.isFullscreen()?e.exitFullscreen():e.gotoFullscreen(),!0)}}),this.addCommand({id:"export-png",name:t("EXPORT_PNG"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.savePNG(),!0)}}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t("TOGGLE_LOCK"),checkCallback:A=>{if(A)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.changeTextMode(e.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),!0)}}),this.addCommand({id:"delete-file",name:t("DELETE_FILE"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(e){this.ea.reset(),this.ea.setView(e);const A=this.ea.getViewSelectedElement();if("image"!==A.type)return new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0;const t=this.ea.getViewFileForImageElement(A);return t?(this.app.vault.delete(t),this.ea.deleteViewElements([A]),!0):(new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t("INSERT_LINK"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertLinkDialog.start(e.file.path,e.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t("INSERT_LINK_TO_ELEMENT"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard(),!0)}}),this.addCommand({id:"insert-image",name:t("INSERT_IMAGE"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertImageDialog.start(e),!0)}}),this.addCommand({id:"release-notes",name:t("READ_RELEASE_NOTES"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t("TRAY_MODE"),checkCallback:A=>{if(A){const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!A||!A.excalidrawRef)return!1;const e=A.excalidrawAPI.getAppState();return!e.zenModeEnabled&&!e.viewModeEnabled}const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!e||!e.excalidrawAPI||(e.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t("INSERT_MD"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertMDDialog.start(e),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t("INSERT_LATEX"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(insertLaTeXToView(e),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t("TOGGLE_MODE"),checkCallback:A=>{const e=this.app.workspace.getActiveFile();if(!e)return!1;const t=this.isExcalidrawFile(e);if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:t;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const A=i.leaf;return this.excalidrawFileModes[A.id||e.path]="markdown",void this.setMarkdownView(A)}const n=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(n&&t){const A=n.leaf;return this.excalidrawFileModes[A.id||e.path]="excalidraw",void this.setExcalidrawView(A)}}}),this.addCommand({id:"convert-to-excalidraw",name:t("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:A=>{const e=this.app.workspace.getActiveFile(),t=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!e||!t)return!1;const i=0===e.stat.size;if(A)return i;i&&(async()=>{await this.app.vault.modify(e,await this.getBlankDrawing()),this.setExcalidrawView(t.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t("CONVERT_EXCALIDRAW"),checkCallback:A=>A?this.app.vault.getFiles().filter((A=>"excalidraw"==A.extension)).length>0:(this.convertExcalidrawToMD(),!0)})}async convertSingleExcalidrawToMD(A,e=!1,t=!1){const i=await this.app.vault.read(A),n=A.name.substring(0,A.name.lastIndexOf(".excalidraw"))+(e?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian.normalizePath(A.path.substring(0,A.path.lastIndexOf(A.name))));log(a);const s=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&[".svg",".png"].forEach((e=>{const t=A.path.substring(0,A.path.lastIndexOf(".excalidraw"))+e,i=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(t));if(i&&i instanceof obsidian.TFile){const A=a.substring(0,a.lastIndexOf(".md"))+e;this.app.fileManager.renameFile(i,A)}})),t||this.app.vault.delete(A),s}async convertExcalidrawToMD(A=!1,e=!1){const t=this.app.vault.getFiles().filter((A=>"excalidraw"==A.extension));for(const i of t)this.convertSingleExcalidrawToMD(i,A,e);new obsidian.Notice(`Converted ${t.length} files.`)}registerMonkeyPatches(){this.registerEvent(app.workspace.on("editor-menu",((A,e,i)=>{if(!(i&&i instanceof obsidian.MarkdownView))return;const n=i.file,a=i.leaf;if(!i.file)return;const s=this.app.metadataCache.getFileCache(n);(null==s?void 0:s.frontmatter)&&s.frontmatter[FRONTMATTER_KEY]&&A.addItem((A=>A.setTitle(t("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[a.id||n.path]="excalidraw",this.setExcalidrawView(a)}))))}))),this.registerEvent(app.workspace.on("file-menu",((A,e,i,n)=>{if(!(n&&n.view instanceof obsidian.MarkdownView))return;if(!(e instanceof obsidian.TFile))return;const a=this.app.metadataCache.getFileCache(e);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&(A.addItem((A=>{A.setTitle(t("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[n.id||e.path]="excalidraw",this.setExcalidrawView(n)}))})),A.items.unshift(A.items.pop()))})));const A=this;this.register(around(obsidian.WorkspaceLeaf.prototype,{detach:e=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&A.excalidrawFileModes[this.id||i.file]&&delete A.excalidrawFileModes[this.id||i.file],e.apply(this)},setViewState:e=>function(t,...i){var n;if(A._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==A.excalidrawFileModes[this.id||t.state.file]){const n=A.app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return A.excalidrawFileModes[t.state.file]="excalidraw",e.apply(this,[n,...i])}}return e.apply(this,[t,...i])}}))}registerEventListeners(){const A=this;this.app.workspace.onLayoutReady((async()=>{A.registerEvent(A.app.vault.on("rename",(async(e,t)=>{e instanceof obsidian.TFile&&A.isExcalidrawFile(e)&&A.settings.keepInSync&&[".svg",".png",".excalidraw"].forEach((async i=>{const n=getIMGPathFromExcalidrawFile(t,i),a=A.app.vault.getAbstractFileByPath(obsidian.normalizePath(n));if(a&&a instanceof obsidian.TFile){const t=getIMGPathFromExcalidrawFile(e.path,i);await A.app.fileManager.renameFile(a,t)}}))}))),A.registerEvent(A.app.vault.on("modify",(async e=>{A.app.workspace.getLeavesOfType("excalidraw").forEach((async t=>{const i=t.view;if(i.file&&(i.file.path===e.path||"excalidraw"===e.extension&&`${e.path.substring(0,e.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(e instanceof obsidian.TFile))return;const t=this.excalidrawFiles.has(e);if(this.updateFileCache(e,void 0,!0),!t)return;const i=A.app.workspace.getLeavesOfType("excalidraw");for(let A=0;A{[".svg",".png",".excalidraw"].forEach((async t=>{const i=getIMGPathFromExcalidrawFile(e.path,t),n=A.app.vault.getAbstractFileByPath(obsidian.normalizePath(i));n&&n instanceof obsidian.TFile&&await A.app.vault.delete(n)}))}),500)}))),A.registerEvent(A.app.workspace.on("active-leaf-change",(async e=>{var t;const i=A.activeExcalidrawView,n=e.view instanceof ExcalidrawView?e.view:null;if(A.activeExcalidrawView=n,n&&(A.lastActiveExcalidrawFilePath=null===(t=n.file)||void 0===t?void 0:t.path),i&&i!=n&&(i.leaf!=e&&i.semaphores.dirty&&await i.save(!0),i.file&&A.triggerEmbedUpdates(i.file.path)),n&&(!i||i.leaf!=e)){const A=n.file;n.file&&setTimeout((()=>{var e;n&&n._loaded&&(null===(e=n.file)||void 0===e?void 0:e.path)===(null==A?void 0:A.path)&&(n.activeLoader||n.loadSceneFiles())}),2e3)}if(A.popScope&&(A.popScope(),A.popScope=null),n){const e=this.app.keymap.getRootScope(),t=e.register(["Mod"],"Enter",(()=>!0));e.keys.unshift(e.keys.pop()),A.popScope=()=>e.unregister(t)}}))),A.addFileSaveTriggerEventHandlers();const e=A.app.metadataCache;e.getCachedFiles().forEach((t=>{var i;const n=null===(i=e.getCache(t))||void 0===i?void 0:i.frontmatter;(n&&void 0!==n[FRONTMATTER_KEY]||t.match(/\.excalidraw$/))&&A.updateFileCache(A.app.vault.getAbstractFileByPath(t),n)})),this.registerEvent(e.on("changed",((A,e,t)=>this.updateFileCache(A,null==t?void 0:t.frontmatter))))}))}addFileSaveTriggerEventHandlers(){this.registerEvent(this.app.workspace.on("click",(A=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!A.target||"excalidraw__canvas"!==A.target.className&&!getParentOfClass(A.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()}))),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async A=>{1===A.length&&"childList"===A[0].type&&1===A[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const A=document.querySelector(".workspace-drawer.mod-left"),e=document.querySelector(".workspace-drawer.mod-right");if(A||e){const t=async A=>{"display: none;"===A[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},i={attributeOldValue:!0,attributeFilter:["style"]};A&&(this.workspaceDrawerLeftObserver=new MutationObserver(t),this.workspaceDrawerLeftObserver.observe(A,i)),e&&(this.workspaceDrawerRightObserver=new MutationObserver(t),this.workspaceDrawerRightObserver.observe(e,i))}}updateFileCache(A,e,t=!1){e&&void 0!==e[FRONTMATTER_KEY]?this.excalidrawFiles.add(A):t||"excalidraw"!==A.extension?this.excalidrawFiles.delete(A):this.excalidrawFiles.add(A)}onunload(){destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{this.setMarkdownView(A)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((A=>{delete A.excalidrawLib,delete A.reactDOM,delete A.react}))}async embedDrawing(A){const e=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(e&&e.file){const t=this.app.metadataCache.fileToLinktext(A,e.file.path,"excalidraw"===this.settings.embedType),i=e.editor;if("excalidraw"===this.settings.embedType)return i.replaceSelection(this.settings.embedWikiLink?`![[${t}]]`:`![](${encodeURI(t)})`),void i.focus();const n=getIMGPathFromExcalidrawFile(t,`.${this.settings.embedType.toLowerCase()}`),a=getIMGPathFromExcalidrawFile(A.path,`.${this.settings.embedType.toLowerCase()}`);this.app.vault.getAbstractFileByPath(a)||(await this.app.vault.create(a,""),await sleep$1(200)),i.replaceSelection(this.settings.embedWikiLink?`![[${n}]]\n%%[[${t}|🖋 Edit in Excalidraw]]%%`:`![](${encodeURI(n)})\n%%[🖋 Edit in Excalidraw](${encodeURI(t)})%%`),i.focus()}}async loadSettings(){this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),setLeftHandedMode(this.settings.isLeftHanded),this.settings.autosave=!0,this.settings.autosaveInterval=1e4}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(A){this.settings.library="deprecated",this.settings.library2=A}triggerEmbedUpdates(A){const e=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;if(!i)return;if(e.has(i))return;e.add(i);const n=i.createEvent("Event");n.initEvent(RERENDER_EVENT,!0,!1),i.querySelectorAll("div[class^='excalidraw-svg']"+(A?`[src='${A.replaceAll("'","\\'")}']`:"")).forEach((A=>A.dispatchEvent(n)))}))}openDrawing(A,e){let t;"popout-window"===e?t=app.workspace.openPopoutLeaf():(t=this.app.workspace.getLeaf(!1),"empty"!==t.view.getViewType()&&"new-pane"===e&&(t=getNewOrAdjacentLeaf(this,t))),t.setViewState({type:"excalidraw",state:{file:A.path}})}async getBlankDrawing(){const A=this.app.metadataCache.getFirstLinkpathDest(obsidian.normalizePath(this.settings.templateFilePath),"");if(A&&A instanceof obsidian.TFile&&("md"==A.extension&&!this.settings.compatibilityMode||"excalidraw"==A.extension&&this.settings.compatibilityMode)){const e=await this.app.vault.read(A);if(e)return this.settings.matchTheme?changeThemeOfExcalidrawMD(e):e}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const e=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(e,this.settings.compress)}`}async exportSceneToMD(A){var e,t;if(!A)return"";const i=null===(e=JSON_parse(A).elements)||void 0===e?void 0:e.filter((A=>"text"==A.type));let n,a="# Text Elements\n";for(const e of i)n=e.id,e.id.length>8&&(n=nanoid(),A=A.replaceAll(e.id,n)),a+=`${null!==(t=e.originalText)&&void 0!==t?t:e.text} ^${n}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(A),null,"\t"),this.settings.compress)}async createDrawing(A,e,t){const i=obsidian.normalizePath(e||this.settings.folder);await checkAndCreateFolder(this.app.vault,i);const n=getNewUniqueFilepath(this.app.vault,A,i),a=await this.app.vault.create(n,null!=t?t:await this.getBlankDrawing());let s=0;for(;a instanceof obsidian.TFile&&!this.isExcalidrawFile(a)&&s++<10;)await sleep$1(50);return s>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(A,e,t,i){const n=await this.createDrawing(A,t,i);return this.openDrawing(n,e),n.path}async setMarkdownView(A){const e=A.view.getState();await A.setViewState({type:"excalidraw",state:{file:null}}),await A.setViewState({type:"markdown",state:e,popstate:!0},{focus:!0})}async setExcalidrawView(A){await A.setViewState({type:"excalidraw",state:A.view.getState(),popstate:!0})}isExcalidrawFile(A){if("excalidraw"==A.extension)return!0;const e=A?this.app.metadataCache.getFileCache(A):null;return!!(null==e?void 0:e.frontmatter)&&!!e.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async A=>{if(!A)return;A=`${A}.excalidrawlib`;const e=obsidian.normalizePath(this.settings.folder);await checkAndCreateFolder(this.app.vault,e);const t=getNewUniqueFilepath(this.app.vault,A,e);this.app.vault.create(t,this.settings.library),new obsidian.Notice(`Exported library to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; +EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getRes:A=>A.matchAll(REGEX_LINK.EXPR),isTransclusion:A=>!!A.value[1],getLink:A=>A.value[3]?A.value[3]:A.value[6],isWikiLink:A=>!!A.value[3],getAliasOrLink:A=>REGEX_LINK.isWikiLink(A)?A.value[4]?A.value[4]:A.value[3]:A.value[5]?A.value[5]:A.value[6],getWrapLength:(A,e)=>{const t=parseInt(A.value[8]);return isNaN(t)?e>0?e:null:t}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=A=>null!==A.match(/```compressed\-json\n/gm),getDecompressedScene=A=>{let e,t=A.matchAll(DRAWING_COMPRESSED_REG);return e=t.next(),e.done&&(t=A.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),e=t.next()),e.value&&e.value.length>1?[decompress(e.value[2]),e]:[null,e]},changeThemeOfExcalidrawMD=A=>{const e=isCompressedMD(A);let t=e?getDecompressedScene(A)[0]:A;return t?(isObsidianThemeDark?1===(t.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(t.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),e?A.replace(DRAWING_COMPRESSED_REG,`$1${compress(t)}$3`):t):A};function getJSON(A){let e,t;if(isCompressedMD(A)){const[e,t]=getDecompressedScene(A);return e?{scene:e.substring(0,e.lastIndexOf("}")+1),pos:t.value.index}:{scene:A,pos:t.value?t.value.index:0}}if(e=A.matchAll(DRAWING_REG),t=e.next(),t.done&&(e=A.matchAll(DRAWING_REG_FALLBACK),t=e.next()),t.value&&t.value.length>1){const A=t.value[2];return{scene:A.substr(0,A.lastIndexOf("}")+1),pos:t.value.index}}return{scene:A,pos:t.value?t.value.index:0}}function getMarkdownDrawingSection(A,e){return e?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(A)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${A}\n\`\`\`\n%%`}const estimateMaxLineLen=(A,e)=>{if(!e||!A)return null;if(A===e)return null;let t=0;const i=A.split("\n");if(1===i.length)return null;for(const A of i)A.length>t&&(t=A.length);return t},wrap=(A,e)=>e?wrapText(A,e,!1,0):A;class ExcalidrawData{constructor(A){this.plugin=A,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=A.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var A,e;if(!this.scene||!this.scene.elements)return;const t=this.scene.elements;for(const i of t){if(i.boundElements){const A=new Map;i.boundElements.forEach((e=>{A.set(e.id,e.type)}));const e=Array.from(A,(([A,e])=>({id:A,type:e})));e.length!==i.boundElements.length&&(i.boundElements=e)}i.boundElementIds&&(i.boundElements||(i.boundElements=[]),i.boundElements=i.boundElements.concat(i.boundElementIds.map((A=>({type:"arrow",id:A})))),delete i.boundElementIds),"text"!==i.type||i.containerId||(i.containerId=null),null===i.x&&(i.x=0),null===i.y&&(i.y=0),null===(null===(A=i.startBinding)||void 0===A?void 0:A.focus)&&(i.startBinding.focus=0),null===(null===(e=i.endBinding)||void 0===e?void 0:e.focus)&&(i.endBinding.focus=0),null===i.fontSize&&(i.fontSize=20)}try{t.filter((A=>"text"===A.type&&A.containerId&&t.some((e=>e.id===A.containerId&&e.boundElements.length>0&&e.boundElements.some((e=>"text"===e.type&&e.id!==A.id&&e.id.length>8)))))).forEach((A=>{try{const e=t.filter((e=>e.id===A.containerId))[0],i=e.boundElements.filter((A=>!("text"===A.type&&!t.some((e=>e.id===A.id)))));e.boundElements=[{id:A.id,type:"text"}].concat(i)}catch(A){}})),t.filter((A=>A.boundElements&&A.boundElements.length>0)).forEach((A=>{const e=A.boundElements.filter((A=>t.some((e=>e.id===A.id))));e.length!==A.boundElements.length&&(A.boundElements=e)})),t.filter((A=>"text"===A.type&&A.containerId&&!t.some((e=>e.id===A.containerId)))).forEach((A=>{A.containerId=null}))}catch(A){}}async loadData(A,e,t){if(!e)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=e&&(this.files.clear(),this.equations.clear()),this.file=e,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.scene=null,this.plugin.settings.syncExcalidraw){const A=`${e.path.substring(0,e.path.lastIndexOf(".md"))}.excalidraw`,t=this.app.vault.getAbstractFileByPath(A);if(t&&t instanceof obsidian.TFile&&t.stat.mtime>e.stat.mtime){const A=await this.app.vault.read(t);this.scene=JSON.parse(A)}}let i=null;i=(()=>{const e=getJSON(A);if(-1===e.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(e.scene)),e})(),this.deletedElements=this.scene.elements.filter((A=>A.isDeleted)),this.scene.elements=this.scene.elements.filter((A=>!A.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.initializeNonInitializedFields();let n=(A=A.substring(0,i.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===n)return await this.setTextMode(t,!1),this.loaded=!0,!0;n+=A.match(/((^%%\n)?# Text Elements\n)/m)[0].length,A=A.substring(n),n=0;const a=" ^12345678\n\n".length;let r,s=A.matchAll(/\s\^(.{8})[\n]+/g);for(;!(r=s.next()).done;){const e=A.substring(n,r.value.index),t=r.value[1],i=this.scene.elements.filter((A=>A.id===t))[0];if(i)if("text"!==i.type)i.link!==e&&(i.link=e,i.version++,i.versionNonce++),this.elementLinks.set(t,e);else{const A=estimateMaxLineLen(i.text,i.originalText),n=await this.parse(e);this.textElements.set(t,{raw:e,parsed:n.parsed,wrapAt:A}),n.link&&(i.link=n.link),!i||i.rawText&&""!==i.rawText||(i.rawText=e)}n=r.value.index+a}for(s=(A=A.substring(A.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\n/gm);!(r=s.next()).done;){const A=new EmbeddedFile(this.plugin,this.file.path,r.value[2]);this.setFile(r.value[1],A)}for(s=A.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(r=s.next()).done;)this.setEquation(r.value[1],{latex:r.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(t,!0),this.loaded=!0,!0}async loadLegacyData(A,e){return!!e&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=e,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.scene=JSON.parse(A),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(A,e=!1){this.scene&&(this.textMode=A,await this.updateSceneTextElements(e))}updateTextElement(A,e,t,i=!1){if(i||e!=A.text){const i=_measureText(e,A.fontSize,A.fontFamily);A.text=e,A.originalText=t,A.containerId||(A.width=i.w),A.height=i.h,A.baseline=i.baseline}}async updateSceneTextElements(A=!1){var e,t,i,n;const a=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((A=>"text"===A.type));for(const e of a){const a=null!==(i=null!==(t=await this.getText(e.id,!1))&&void 0!==t?t:e.originalText)&&void 0!==i?i:e.text,r=null===(n=this.textElements.get(e.id))||void 0===n?void 0:n.wrapAt;this.updateTextElement(e,wrap(a,r),a,A)}}async getText(A,e=!0){const t=this.textElements.get(A);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(A,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed,wrapAt:t.wrapAt}),e?wrap(t.parsed,t.wrapAt):t.parsed):t.raw:null}findNewElementLinksInScene(){var A;const e=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"!==A.type&&A.link&&A.link.startsWith("[[")&&!this.elementLinks.has(A.id)));if(0===e.length)return!1;let t,i=JSON.stringify(this.scene);for(const A of e)t=A.id,A.id.length>8&&(t=nanoid(),i=i.replaceAll(A.id,t)),this.elementLinks.set(t,A.link);return this.scene=JSON.parse(i),!0}findNewTextElementsInScene(A={}){var e;this.selectedElementIds=A;const t=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((A=>"text"===A.type));let i,n=JSON.stringify(this.scene),a=!1;for(const A of t)if(i=A.id,A.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[A.id]&&(delete this.selectedElementIds[A.id],this.selectedElementIds[i]=!0),n=n.replaceAll(A.id,i),this.textElements.has(A.id)){const e=this.textElements.get(A.id);this.textElements.set(i,{raw:e.raw,parsed:e.parsed,wrapAt:e.wrapAt}),this.textElements.delete(A.id)}if(!this.textElements.has(i)){const e=A.rawText&&""!==A.rawText?A.rawText:A.text,t=estimateMaxLineLen(A.text,A.originalText);this.textElements.set(i,{raw:e,parsed:null,wrapAt:t}),this.parseasync(i,e,t)}}else if(!this.textElements.has(A.id)){const e=A.rawText&&""!==A.rawText?A.rawText:A.text,t=estimateMaxLineLen(A.text,A.originalText);this.textElements.set(i,{raw:e,parsed:null,wrapAt:t}),this.parseasync(i,e,t)}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var A;for(const e of this.elementLinks.keys()){const t=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"!==A.type&&A.id===e&&A.link&&A.link.startsWith("[[")));0===t.length?this.elementLinks.delete(e):this.elementLinks.set(e,t[0].link)}}async updateTextElementsFromScene(){var A,e,t;for(const i of this.textElements.keys()){const n=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"===A.type&&A.id===i));if(0===n.length)this.textElements.delete(i);else{const A=await this.getText(i,!1),a=this.scene.prevTextMode===TextMode.parsed?n[0].rawText:null!==(e=n[0].originalText)&&void 0!==e?e:n[0].text;if(A!==(null!==(t=n[0].originalText)&&void 0!==t?t:n[0].text)){const A=estimateMaxLineLen(n[0].text,n[0].originalText);this.textElements.set(i,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:A})}}}}async parseasync(A,e,t){this.textElements.set(A,{raw:e,parsed:(await this.parse(e)).parsed,wrapAt:t})}parseLinks(A,e,t){return A.substring(e,t.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(t)+(this.showLinkBrackets?"]]":"")}async getTransclusion(A){const e=getLinkParts(A,this.file),t=this.app.metadataCache.getFirstLinkpathDest(e.path,this.file.path);return await getTransclusion(e,this.app,t,this.plugin.settings.pageTransclusionCharLimit)}async parse(A){let e="",t=null,i=0;const n=REGEX_LINK.getRes(A);let a,r=!1,s=!1;for(A.match(REG_LINKINDEX_HYPERLINK)&&(t=A,s=!0);!(a=n.next()).done;){if(!t){const A=REGEX_LINK.getLink(a);t=A.match(REG_LINKINDEX_HYPERLINK)?A:`[[${A}]]`}if(REGEX_LINK.isTransclusion(a)){const t=(await this.getTransclusion(REGEX_LINK.getLink(a))).contents;e+=A.substring(i,a.value.index)+wrapText(t,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const t=this.parseLinks(A,i,a);t&&(e+=t,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}i=a.value.index+a.value[0].length}return e+=A.substring(i,A.length),r&&(e=this.linkPrefix+e),s&&(e=this.urlPrefix+e),{parsed:e,link:t}}quickParse(A){if((A=>{const e=REGEX_LINK.getRes(A);let t;for(;!(t=e.next()).done;)if(REGEX_LINK.isTransclusion(t))return!0;return!1})(A))return[null,null];let e="",t=null,i=0;const n=REGEX_LINK.getRes(A);let a,r=!1,s=!1;for(A.match(REG_LINKINDEX_HYPERLINK)&&(t=A,s=!0);!(a=n.next()).done;){if(!t){const A=REGEX_LINK.getLink(a);t=A.match(REG_LINKINDEX_HYPERLINK)?A:`[[${A}]]`}const n=this.parseLinks(A,i,a);n&&(e+=n,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),i=a.value.index+a.value[0].length}return e+=A.substring(i,A.length),r&&(e=this.linkPrefix+e),s&&(e=this.urlPrefix+e),[e,t]}generateMD(A=[]){let e="# Text Elements\n";for(const A of this.textElements.keys())e+=`${this.textElements.get(A).raw} ^${A}\n\n`;for(const A of this.elementLinks.keys())e+=`${this.elementLinks.get(A)} ^${A}\n\n`;if(e+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const A of this.equations.keys())e+=`${A}: $$${this.equations.get(A).latex}$$\n`;if(this.files.size>0)for(const A of this.files.keys())e+=`${A}: [[${this.files.get(A).linkParts.original}]]\n`;return e+=this.equations.size>0||this.files.size>0?"\n":"",e+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(A),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async syncFiles(){var A;let e=!1;const t=this.scene,i=t.elements.filter((A=>"image"===A.type)).map((A=>A.fileId));if(this.files.forEach(((A,t)=>{i.contains(t)||(this.files.delete(t),e=!0)})),this.equations.forEach(((A,t)=>{i.contains(t)||(this.equations.delete(t),e=!0)})),!t.files||t.files=={})return!1;const n=new Set;i.forEach((A=>{if(n.has(A)){const i=this.getFile(A),a=this.getEquation(A);if(i&&("md"!==i.file.extension||this.plugin.isExcalidrawFile(i.file)))return;const r=fileid();t.elements.filter((e=>e.fileId===A))[0].fileId=r,e=!0,n.add(r),i&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,i.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}n.add(A)}));for(const i of Object.keys(t.files))if(!this.hasFile(i)&&!this.hasEquation(i)){e=!0;let n=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;const a=t.files[i].mimeType;switch(a){case"image/png":default:n+=".png";break;case"image/jpeg":n+=".jpg";break;case"image/svg+xml":n+=".svg";break;case"image/gif":n+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,n)).filepath,s=t.files[i].dataURL;await this.app.vault.createBinary(r,getBinaryFileFromDataURL(s));const o=new EmbeddedFile(this.plugin,this.file.path,r);o.setImage(s,a,{height:0,width:0},"dark"===(null===(A=t.appState)||void 0===A?void 0:A.theme),"image/svg+xml"===a),this.setFile(i,o)}return e}async syncElements(A,e){this.scene=A;let t=!1;return this.compatibilityMode||(t=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),t=t||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),t||this.findNewTextElementsInScene(e)}async updateScene(A){this.scene=JSON_parse(A),this.updateElementLinksFromScene();const e=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!e&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(A){var e;return null===(e=this.textElements.get(A))||void 0===e?void 0:e.raw}getParsedText(A){const e=this.textElements.get(A);return e?[wrap(e.parsed,e.wrapAt),e.parsed,null]:[null,null,null]}setTextElement(A,e,t,i){const n=estimateMaxLineLen(e,t),[a,r]=this.quickParse(t);return a?(this.textElements.set(A,{raw:t,parsed:a,wrapAt:n}),[wrap(a,n),a,r]):(this.parse(t).then((e=>{const a=e.parsed;this.textElements.set(A,{raw:t,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(A,e,t){let i=estimateMaxLineLen(e,t);this.textElements.has(A)&&(i=this.textElements.get(A).wrapAt);const n=await this.parse(t);return this.textElements.set(A,{raw:t,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(A){this.textElements.delete(A)}getOpenMode(){const A=this.app.metadataCache.getFileCache(this.file);let e=this.plugin.settings.defaultMode;switch((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-default-mode"]&&(e=A.frontmatter["excalidraw-default-mode"]),e){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const A=this.app.metadataCache.getFileCache(this.file);let e=this.plugin.settings.linkOpacity;return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-linkbutton-opacity"]&&(e=A.frontmatter["excalidraw-linkbutton-opacity"]),e}getOnLoadScript(){const A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-onload-script"]?A.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const A=this.linkPrefix,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=e.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,A!=this.linkPrefix}setUrlPrefix(){const A=this.urlPrefix,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=e.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,A!=this.urlPrefix}setAutoexportPreferences(){const A=this.app.metadataCache.getFileCache(this.file);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-autoexport"])switch(A.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setShowLinkBrackets(){const A=this.showLinkBrackets,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=e.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,A!=this.showLinkBrackets}setFile(A,e){if(!e)return;if(this.files.set(A,e),!e.file)return;const t=e.linkParts.original.split("#");this.plugin.filesMaster.set(A,{path:e.file.path,blockrefData:1===t.length?null:t[1],hasSVGwithBitmap:e.isSVGwithBitmap})}getFiles(){return Object.values(this.files)}getFile(A){let e=this.files.get(A);if(e)return e;const t=this.plugin.filesMaster.get(A);return t?(e=new EmbeddedFile(this.plugin,this.file.path,t.blockrefData?t.path+"#"+t.blockrefData:t.path),this.files.set(A,e),e):e}getFileEntries(){return this.files.entries()}deleteFile(A){this.files.delete(A)}hasFile(A){if(this.files.has(A))return!0;if(this.plugin.filesMaster.has(A)){const e=this.plugin.filesMaster.get(A);if(!this.app.vault.getAbstractFileByPath(e.path))return this.plugin.filesMaster.delete(A),!0;const t=new EmbeddedFile(this.plugin,this.file.path,e.blockrefData?e.path+"#"+e.blockrefData:e.path);return this.files.set(A,t),!0}return!1}setEquation(A,e){this.equations.set(A,{latex:e.latex,isLoaded:e.isLoaded}),this.plugin.equationsMaster.set(A,e.latex)}getEquation(A){let e=this.equations.get(A);if(e)return e;const t=this.plugin.equationsMaster.get(A);return t?(this.equations.set(A,{latex:t,isLoaded:!1}),{latex:t,isLoaded:!1}):e}getEquationEntries(){return this.equations.entries()}deleteEquation(A){this.equations.delete(A)}hasEquation(A){return!!this.equations.has(A)||!!this.plugin.equationsMaster.has(A)&&(this.equations.set(A,{latex:this.plugin.equationsMaster.get(A),isLoaded:!1}),!0)}}const getTransclusion=async(A,e,t,i)=>{var n,a,r,s,o,l,c,d,h,g;if(!A.path)return{contents:A.original.trim(),lineNum:0};if(!(t&&t instanceof obsidian.TFile))return{contents:A.original.trim(),lineNum:0};const u=await e.vault.read(t);if(!A.ref)return i?{contents:u.substring(0,i).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const p=(await e.metadataCache.blockCache.getForFile({isCancelled:()=>!1},t)).blocks.filter((A=>"comment"!=A.node.type));if(!p)return{contents:A.original.trim(),lineNum:0};if(A.isBlockRef){let e=null===(n=p.filter((e=>e.node.id==A.ref))[0])||void 0===n?void 0:n.node;if(!e)return{contents:A.original.trim(),lineNum:0};["blockquote","listItem"].includes(e.type)&&(e=e.children[0]);const t=e.position.start.offset,i=e.position.start.line,r=(null===(a=e.children[e.children.length-1])||void 0===a?void 0:a.position.start.offset)-1;return{contents:u.substring(t,r).trim(),lineNum:i}}const w=p.filter((A=>0===A.display.search(/^#+\s/)));let m=null,f=0,B=null,E=1;for(let e=0;eE;)A++;return A===w.length&&w[A-1].node.depth>E?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:f}:(B=w[A].node.position.start.offset-1,{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m,B).trim(),lineNum:f})}const t=w[e].node.children[0],i=null===(s=null===(r=w[e].node.data)||void 0===r?void 0:r.hProperties)||void 0===s?void 0:s.dataHeading,n=null==t?void 0:t.children;!m&&((null===(o=null==t?void 0:t.value)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||(null===(l=null==t?void 0:t.title)||void 0===l?void 0:l.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||(null==i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||n&&(null===(d=null===(c=n[0])||void 0===c?void 0:c.value)||void 0===d?void 0:d.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref)&&(m=null===(h=w[e].node.children[0])||void 0===h?void 0:h.position.start.offset,E=w[e].node.depth,f=null===(g=w[e].node.children[0])||void 0===g?void 0:g.position.start.line)}return m?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:f}:{contents:A.original.trim(),lineNum:0}};class Prompt extends obsidian.Modal{constructor(A,e,t,i,n){super(A),this.prompt_text=e,this.default_value=t,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var A;let e=this.contentEl.createDiv();e.addClass("excalidraw-prompt-div"),this.prompt_desc&&(e=e.createDiv(),e.style.width="100%",e.createEl("p").innerHTML=this.prompt_desc);const t=e.createEl("form");t.addClass("excalidraw-prompt-form"),t.type="submit",t.onsubmit=A=>{A.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=t.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(A=this.default_value)&&void 0!==A?A:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(A){this.resolve=A,this.open()}}class GenericInputPrompt extends obsidian.Modal{constructor(A,e,t,i,n){super(A),this.header=e,this.didSubmit=!1,this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.submitEnterCallback=A=>{"Enter"===A.key&&(A.preventDefault(),this.submit())},this.placeholder=t,this.input=i,this.buttons=n,this.waitForClose=new Promise(((A,e)=>{this.resolvePromise=A,this.rejectPromise=e})),this.display(),this.open()}static Prompt(A,e,t,i,n){return new GenericInputPrompt(A,e,t,i,n).waitForClose}display(){this.contentEl.empty(),this.titleEl.textContent=this.header;const A=this.contentEl.createDiv();this.inputComponent=this.createInputField(A,this.placeholder,this.input),this.createButtonBar(A)}createInputField(A,e,t){const i=new obsidian.TextComponent(A);return i.inputEl.style.width="100%",i.setPlaceholder(null!=e?e:"").setValue(null!=t?t:"").onChange((A=>this.input=A)).inputEl.addEventListener("keydown",this.submitEnterCallback),i}createButton(A,e,t){const i=new obsidian.ButtonComponent(A);return i.setButtonText(e).onClick(t),i}createButtonBar(A){const e=A.createDiv();if(this.buttons&&this.buttons.length>0){let A=null;for(const t of this.buttons){const i=new obsidian.ButtonComponent(e);i.setButtonText(t.caption).onClick((A=>{const e=t.action(this.input);e&&(this.input=e),this.submit()})),A=null!=A?A:i}A&&(A.setCta().buttonEl.style.marginRight="0")}else this.createButton(e,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(e,"Cancel",this.cancelClickCallback),e.style.display="flex",e.style.flexDirection="row-reverse",e.style.justifyContent="flex-start",e.style.marginTop="1rem"}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var A,e;null===(e=null===(A=this.inputComponent)||void 0===A?void 0:A.inputEl)||void 0===e||e.removeEventListener("keydown",this.submitEnterCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian.FuzzySuggestModal{constructor(A,e,t,i,n){var a;super(A),this.displayItems=e,this.items=t,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((A,e)=>{this.resolvePromise=A,this.rejectPromise=e})),this.open()}static Suggest(A,e,t,i,n){return new GenericSuggester(A,e,t,i,n).promise}getItemText(A){return this.displayItems[this.items.indexOf(A)]}getItems(){return this.items}selectSuggestion(A,e){this.resolved=!0,super.selectSuggestion(A,e)}onChooseItem(A){this.resolved=!0,this.resolvePromise(A)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian.Modal{constructor(A,e,t,i,n){super(A.app),this.plugin=A,this.path=e,this.newPane=t,this.newWindow=i,this.view=n}onOpen(){this.createForm()}async onClose(){}openFile(A){A&&(this.newWindow?app.workspace.openPopoutLeaf():this.newPane?getNewOrAdjacentLeaf(this.plugin,this.view.leaf):this.view.leaf).openFile(A,{active:!0})}createForm(){this.titleEl.setText("New File"),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:"File does not exist. Do you want to create it?"}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(A=>{A.style.textAlign="right";const e=()=>this.path&&""!==this.path?!!this.view.file||(new obsidian.Notice("Unknown error. It seems as if your drawing was closed or the drawing file is missing"),!1):(new obsidian.Notice("Error: Filename for new file may not be empty"),!1),t=async A=>{if(!this.path.includes("/")){const A=new RegExp(`${this.view.file.name}$`,"g");this.path=this.view.file.path.replace(A,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,A)};A.createEl("button",{text:"Create Markdown"}).onclick=async()=>{if(!e)return;const A=await t("");this.openFile(A),this.close()},A.createEl("button",{text:"Create Excalidraw"}).onclick=async()=>{if(!e)return;const A=await t(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(A),this.close()},A.createEl("button",{text:"Never Mind"}).onclick=()=>{this.close()}}))}}class ScriptEngine{constructor(A){this.plugin=A,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const A=A=>{if(!A.endsWith(".svg"))return;const e=app.vault.getAbstractFileByPath(getIMGFilename(A,"md"));e&&e instanceof obsidian.TFile&&(this.unloadScript(this.getScriptName(e),e.path),this.loadScript(e))};this.plugin.registerEvent(app.vault.on("delete",(async e=>{e instanceof obsidian.TFile&&e.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(e),e.path),A(e.path))}))),this.plugin.registerEvent(app.vault.on("create",(async e=>{e instanceof obsidian.TFile&&e.path.startsWith(this.scriptPath)&&(this.loadScript(e),A(e.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(e,t)=>{if(!(e instanceof obsidian.TFile))return;const i=t.startsWith(this.scriptPath),n=e.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(t),t),A(t)),n&&(this.loadScript(e),A(e.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((A=>A.path.startsWith(this.scriptPath)&&"md"===A.extension));this.scriptPath=null}loadScripts(){var A;null===(A=this.getListofScripts())||void 0===A||A.forEach((A=>this.loadScript(A)))}getScriptName(A){let e="",t="";A instanceof obsidian.TFile?(e=A.basename,t=A.path):(e=splitFolderAndFilename(A).basename,t=A);const i=t.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+e:e}async addScriptIconToMap(A,e){const t=getIMGFilename(A,"svg"),i=app.vault.getAbstractFileByPath(t),n=i&&i instanceof obsidian.TFile?await app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap),this.scriptIconMap[A]={name:e,svgString:n},this.updateToolPannels()}loadScript(A){if("md"!==A.extension)return;const e=this.getScriptName(A);this.addScriptIconToMap(A.path,e),this.plugin.addCommand({id:e,name:`(Script) ${e}`,checkCallback:t=>{if(t)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const t=await app.vault.read(A);t&&this.executeScript(i,t,e)})(),!0)}})}unloadScripts(){const A=app.vault.getFiles().filter((A=>A.path.startsWith(this.scriptPath)));A.forEach((A=>{this.unloadScript(this.getScriptName(A),A.path)}))}unloadScript(A,e){if(!e.endsWith(".md"))return;delete this.scriptIconMap[e],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const t=`${PLUGIN_ID}:${A}`;app.commands.commands[t]&&delete app.commands.commands[t]}async executeScript(A,e,t){if(!A||!e||!t)return;this.plugin.ea.reset(),this.plugin.ea.setView(A),this.plugin.ea.activeScript=t;const i=Object.getPrototypeOf((async()=>{})).constructor;let n=null;return n=await new i("ea","utils",e)(this.plugin.ea,{inputPrompt:(A,e,t,i)=>ScriptEngine.inputPrompt(app,A,e,t,i),suggester:(A,e,t,i)=>ScriptEngine.suggester(app,A,e,t,i)}),this.plugin.ea.activeScript=null,n}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((A=>{var e,t;null===(t=null===(e=A.view.toolsPanelRef)||void 0===e?void 0:e.current)||void 0===t||t.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(A,e,t,i,n){try{return await GenericInputPrompt.Prompt(A,e,t,i,n)}catch(A){return}}static async suggester(A,e,t,i,n){try{return await GenericSuggester.Suggest(A,e,t,i,n)}catch(A){return}}}var t$c={d:(A,e)=>{for(var t in e)t$c.o(e,t)&&!t$c.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},r$d={};t$c.d(r$d,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(A,e,t){return Math.max(A,Math.min(e,t))}function n$c(A,e){return+A.toFixed(e>=0?e:0)}function a$c(A){const e=A%360;return e<0?e+360:e}function i$a(A){return void 0!==A?s$a(0,A,1):1}function o$b(A){return Math.floor(Math.random()*A)}function h$4(A){var e;const{Cmin:t,Cmax:i,H:n,delta:a}=function(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}(A),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*n),s:100*s,l:100*r,a:null!==(e=A.a)&&void 0!==e?e:1}}function u$8(A){const{h:e,s:t,l:i,a:n}=A,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(e/60%2-1)),l=a-s/2,c=e<60||300<=e&&e<360?s:120<=e&&e<240?0:o,d=240<=e&&e<360?0:60<=e&&e<180?s:o,h=e<120?0:180<=e&&e<300?s:o,[g,u,p]=[c,d,h].map((A=>255*(A+l)));return{r:g,g:u,b:p,a:null!=n?n:1}}function l$5(A){const[e,t,i,n]=Object.values(A).map((A=>parseInt(A,16)));return{r:e,g:t,b:i,a:n?n/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:A,s:e,l:t,a:i}){return[u$8({h:a$c(A),s:s$a(0,e,100),l:s$a(0,t,100),a:i$a(i)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:A,g:e,b:t,a:i}){return[{r:s$a(0,A,255),g:s$a(0,e,255),b:s$a(0,t,255),a:i$a(i)},"rgb"]}var p$3,v$2,m$1=function(A,e,t,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?A!==e||!n:!e.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(A,t):n?n.value=t:e.set(A,t),t},y$1=function(A,e,t,i){if("a"===t&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?A!==e||!i:!e.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?i:"a"===t?i.call(A):i?i.value:e.get(A)};class w$1{constructor(A){var e,t;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const i=w$1.Parsers.map((e=>e(A))).find((A=>"invalid"!==A[1]));i?(e=this,t=this,[{set value(A){m$1(e,p$3,A,"f")}}.value,{set value(A){m$1(t,v$2,A,"f")}}.value]=i):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:A=!1}={}){return function(A,e=!1){let{r:t,g:i,b:n,a:a}=A;a&&(a*=255),e&&([t,i,n,a]=[t,i,n,a].map((A=>A&&Math.round(A))));const[r,s,o,l]=[t,i,n,null!=a?a:255].map((A=>A.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),A)}stringRGB({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(y$1(this,p$3,"f")).map(((A,t)=>n$c(A,e[t])));return A?`rgba(${t}, ${i}, ${n}, ${a})`:`rgb(${t}, ${i}, ${n})`}stringHEX({alpha:A=!0}={}){const[e,t,i,n]=Object.values(this.hexa({round:!0}));return`#${e}${t}${i}${A?n:""}`}stringHSL({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hsla()).map(((A,t)=>n$c(A,e[t])));return A?`hsla(${t}, ${i}%, ${n}%, ${a})`:`hsl(${t}, ${i}%, ${n}%)`}hueTo(A){var e;const{h:t,s:i,l:n,a:a}=this.hsla(),r="number"==typeof A?a$c(A):Number(null!==(e=e$d[A].match(/\d{1,3}/))&&void 0!==e?e:t);return m$1(this,p$3,u$8({h:r,s:i,l:n,a:a}),"f"),this}hueBy(A){const{h:e,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:a$c(e+A),s:t,l:i,a:n}),"f"),this}saturationTo(A){const{h:e,l:t,a:i}=this.hsla();return m$1(this,p$3,u$8({h:e,s:s$a(0,A,100),l:t,a:i}),"f"),this}saturateBy(A){const{h:e,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:e,s:s$a(0,t+A,100),l:i,a:n}),"f"),this}desaturateBy(A){return this.saturateBy(-1*A)}lightnessTo(A){const{h:e,s:t,a:i}=this.hsla();return m$1(this,p$3,u$8({h:e,s:t,l:s$a(0,A,100),a:i}),"f"),this}lighterBy(A){const{h:e,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:e,s:t,l:s$a(0,i+A,100),a:n}),"f"),this}darkerBy(A){return this.lighterBy(-1*A)}alphaTo(A){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,A,1)}),"f"),this}alphaBy(A){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+A,1)}),"f"),this}invert({alpha:A=!1}={}){const{r:e,g:t,b:i,a:n}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-e,g:255-t,b:255-i,a:A?1-n:n},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(A){return this.hueBy(A)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(A){(A=A.filter(((A,e,t)=>t.indexOf(A)===e))).forEach((A=>A(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{r:e,g:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i&&"number"==typeof e}(A))return b$5(A);if("string"==typeof A){g$2.lastIndex=0;const e=g$2.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?2.55:.01):+A));return b$5({r:A,g:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{r:e,g:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i&&"string"==typeof e}(A))return[l$5(A),"hex"];if("string"==typeof A){c$a.lastIndex=0;const e=c$a.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map((A=>1===A.length?A.repeat(2):A));return[l$5({r:A,g:t,b:i,a:null!=n?n:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{h:e,s:t,l:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return d$2(A);if("string"==typeof A){f$3.lastIndex=0;const e=f$3.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?3.59:e<3?1:.01):+A));return d$2({h:A,s:t,l:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=A=>new w$1(A);r$d.QA;var O$1=r$d.ZP,B=r$d.qt;r$d.MX;var e$c={d:(A,e)=>{for(var t in e)e$c.o(e,t)&&!e$c.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},a$b={};function t$b(A){const e=A%360;return e<0?e+360:e}e$c.d(a$b,{Z:()=>n$b});const n$b=A=>{A.prototype.harmony=function({type:e="analogous",effect:t="tones",amount:i=5}={}){const{h:n,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===e&&(o=i,i=Math.max(2,Math.min(o,10))),e){case"analogous":return[-30,0,30].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"complementary":return[0,180].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"triad":return[0,120,240].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"monochromatic":{const e="tones"===t?a:r;let o=("tints"===t?100-e:e)/i;o="tints"===t?o:-1*o;const l=[e];for(let A=0;Anew A({h:n,s:e,l:r,a:s}))):l.map((e=>new A({h:n,s:a,l:e,a:s})))}}var o}};var r$c=a$b.Z,a$a={d:(A,e)=>{for(var t in e)a$a.o(e,t)&&!a$a.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$b={x:.96422,y:1,z:.82521};function u$7(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function s$9(A,e,t){return Math.max(A,Math.min(e,t))}function o$a(A){const e=A%360;return e<0?e+360:e}function l$4(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}function b$4(A){var e;const{Cmin:t,Cmax:i,H:n,delta:a}=l$4(A),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*n),s:100*s,l:100*r,a:null!==(e=A.a)&&void 0!==e?e:1}}function h$3(A){var e;const{Cmax:t,H:i,delta:n}=l$4(A),a=0===n?0:n/t;return{h:o$a(60*i),s:100*a,v:100*t,a:null!==(e=A.a)&&void 0!==e?e:1}}function v$1(A){const{h:e,a:t}=b$4(A),{r:i,g:n,b:a}=A;return{h:e,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:t}}function i$9(A){const[e,t,i]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}function m(A){const e=Object.values(i$9(A)).map(((A,e)=>A/(100*Object.values(r$b)[e]))).map((A=>A>n$a?Math.cbrt(A):(c$9*A+16)/116));return{l:116*e[1]-16,a:500*(e[0]-e[1]),b:200*(e[1]-e[2]),alpha:A.a}}function p$2(A){const{l:e,a:t,b:i}=m(A),n=180*Math.atan2(i,t)/Math.PI;return{l:e,c:Math.sqrt(Math.pow(t,2)+Math.pow(i,2)),h:o$a(n),a:A.a}}function f$2(A){const[e,t,i]=Object.values(i$9(A)).map((A=>A/100)),n=t/r$b.y,a=e&&t&&i?e+15*t+3*i:19,r=4*e/a,s=9*t/a,o=r$b.x+15*r$b.y+3*r$b.z,l=4*r$b.x/o,c=9*r$b.y/o;let d=n>n$a?116*Math.cbrt(n)-16:c$9*n,h=13*d*(r-l),g=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),g===Number(-0)&&(g=0),{l:d,u:h,v:g,a:A.a}}function M(A){const{x:e,y:t,z:i}=i$9(A),[n,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[e,t,i]);return{u:n,v:a,w:r,a:A.a}}function w(A){let{r:e,g:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(e,t);e-=r,t-=r,i&&t&&(i/=2,t/=2),r+=t,i+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,y:r,b:i,a:A.a}}function O(A){const{r:e,g:t,b:i,a:n}=A,a=1-Math.max(e,t,i)/255,[r,s,o]=1===a?[0,0,0]:[e,t,i].map((A=>100*(1-A/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}function j(A){const{h:e,s:t,v:i,a:n}=A,a=i/100,r=a*(t/100),s=r*(1-Math.abs(e/60%2-1)),o=a-r,l=e<60||300<=e&&e<360?r:120<=e&&e<240?0:s,c=240<=e&&e<360?0:60<=e&&e<180?r:s,d=e<120?0:180<=e&&e<300?r:s,[h,g,u]=[l,c,d].map((A=>255*(A+o)));return{r:h,g:g,b:u,a:null!=n?n:1}}function x(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return s$9(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}function y(A){const{l:e,a:t,b:i}=A,n=(e+16)/116,a=n+t/500,r=n-i/200,s=Object.values(r$b),[o,l,c]=[a,n,r].map(((A,e)=>(A>e$b?Math.pow(A,3):3*Math.pow(e$b,2)*(A-4/29))*s[e]*100));return x({x:o,y:l,z:c,a:A.alpha})}const k=A=>{A.prototype.mix=function({color:e="#fff",ratio:t=.5,colorspace:i="luv"}={}){const n=this.rgba(),a=(e instanceof A?e:new A(e)).rgba();let r,s;switch(t=s$9(0,t,1),i){case"hsl":r=Object.values(b$4(n)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(n)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(n)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(n)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(n)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(n)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(n)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(n)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(n)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(n)),s=Object.values(O(a));break;default:r=Object.values(n),s=Object.values(a)}const[o,l,c,d,h]=r.map(((A,e)=>r[e]*(1-t)+s[e]*t));switch(i){case"hsl":return new A(function(A){const{h:e,s:t,l:i,a:n}=A,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(e/60%2-1)),l=a-s/2,c=e<60||300<=e&&e<360?s:120<=e&&e<240?0:o,d=240<=e&&e<360?0:60<=e&&e<180?s:o,h=e<120?0:180<=e&&e<300?s:o,[g,u,p]=[c,d,h].map((A=>255*(A+l)));return{r:g,g:u,b:p,a:null!=n?n:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new A(j({h:o,s:l,v:c,a:d}));case"hwb":return new A(function(A){const{h:e,b:t,w:i,a:n}=A;return j({h:e,s:100===t?0:100-i/(100-t)*100,v:100-t,a:n})}({h:o,w:l,b:c,a:d}));case"lab":return new A(y({l:o,a:l,b:c,alpha:d}));case"lch":return new A(function(A){const{l:e,c:t,h:i}=A;return y({l:e,a:t*Math.cos(i*Math.PI/180),b:t*Math.sin(i*Math.PI/180),alpha:A.a})}({l:o,c:l,h:c,a:d}));case"luv":return new A(function(A){const{l:e,u:t,v:i}=A,n=e>c$9*n$a?Math.pow((e+16)/116,3):e/c$9,a=r$b.x+15*r$b.y+3*r$b.z,r=(52*e/(t&&e?t+13*e*(4*r$b.x/a):1)-1)/3,s=-5*n,o=n*(39*e/(i&&e?i+13*e*(9*r$b.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*n,z:100*(r*l+s),a:A.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new A(function(A){let{r:e,y:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(t,i);t-=r,i-=r,i&&r&&(i*=2,r*=2),e+=t,r+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,g:r,b:i,a:A.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new A(function(A){const{u:e,v:t,w:i}=A,[n,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[e,t,i]);return x({x:n,y:a,z:r,a:A.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new A(x({x:o,y:l,z:c,a:d}));case"cmyk":return new A(function(A){const{c:e,m:t,y:i,k:n,a:a}=A,[r,s,o]=[e,t,i].map((A=>255*(1-A/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new A({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$a={d:(A,e)=>{for(var t in e)r$a.o(e,t)&&!r$a.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},b$3={};r$a.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(A){return(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4)}function o$9(A,e=[0,0,0,1]){var t,i;return null!==(i=null===(t=A.match(/\d{1,3}/g))||void 0===t?void 0:t.map((A=>+A)))&&void 0!==i?i:e}const n$9=A=>{A.prototype.brightness=function({precision:A=4,percentage:e=!1}={}){const{r:t,g:i,b:n}=this.rgba(),a=+((.299*t+.587*i+.114*n)/255).toFixed(A);return e?100*a:a},A.prototype.luminance=function({precision:A=4,percentage:e=!1}={}){const{r:t,g:i,b:n}=this.rgba(),a=+(.2126*t$9(t)+.7152*t$9(i)+.0722*t$9(n)).toFixed(A);return e?100*a:a},A.prototype.contrast=function({bgColor:e="#fff",precision:t=4,ratio:i=!1}={}){const n=this.luminance(),a=(e instanceof A?e:new A(e)).luminance(),r=((Math.max(n,a)+.05)/(Math.min(n,a)+.05)).toFixed(t);return i?r+":1":+r},A.prototype.readableOn=function({bgColor:A="#fff",size:e="body",level:t="minimum"}={}){const i=this.contrast({bgColor:A});return"body"===e&&"enhanced"===t?i>=7:"large"===e&&"minimum"===t?i>=3:i>=4.5},A.prototype.equalTo=function(e="#fff"){const t=Object.values(this.rgba()),i=Object.values((e instanceof A?e:new A(e)).rgba());return t.toString()===i.toString()},A.prototype.isLight=function(){return this.brightness()>=.5},A.prototype.isDark=function(){return!this.isLight()},A.prototype.isCool=function(){const{h:A}=this.hsla();return 75<=A&&A<255},A.prototype.isWarm=function(){return!this.isCool()},A.prototype.isTinted=function(){return this.hsla().l>50},A.prototype.isShaded=function(){return this.hsla().l<50},A.prototype.isToned=function(){return this.hsla().s<100},A.prototype.isPureHue=function({reason:A=!0}={}){return this.isTinted()?!!A&&{pure:!1,reason:"tinted"}:this.isShaded()?!!A&&{pure:!1,reason:"shaded"}:this.isToned()?!!A&&{pure:!1,reason:"toned"}:!A||{pure:!0,reason:"N/A"}},A.prototype.closestCool=function(){const{h:A}=this.hsla();return this.isCool()?this:this.hueTo(A<75?75:254)},A.prototype.closestWarm=function(){const{h:A}=this.hsla();return this.isWarm()?this:this.hueTo(A<165?74:255)},A.prototype.closestPureHue=function(){const{h:e,a:t}=this.hsla(),{r:i,g:n,b:a,a:r}=function(A){const{h:e,s:t,l:i,a:n}=A,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(e/60%2-1)),l=a-s/2,c=e<60||300<=e&&e<360?s:120<=e&&e<240?0:o,d=240<=e&&e<360?0:60<=e&&e<180?s:o,h=e<120?0:180<=e&&e<300?s:o,[g,u,p]=[c,d,h].map((A=>255*(A+l)));return{r:g,g:u,b:p,a:null!=n?n:1}}({h:e,s:100,l:50,a:t});return new A({r:i,g:n,b:a,a:r})},A.prototype.closestWebSafe=function(){const{r:e,g:t,b:i,a:n}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:e,g:t,b:i,a:n};for(let A=0;A{for(var t in e)r$9.o(e,t)&&!r$9.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},g={};r$9.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(A,e=[0,0,0,1]){var t,i;return null!==(i=null===(t=A.match(/\d{1,3}/g))||void 0===t?void 0:t.map((A=>+A)))&&void 0!==i?i:e}const a$9=A=>{A.prototype.name=function({exact:A=!0}={}){const{r:e,g:t,b:i,a:n}=this.rgba();if(0===n)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(A){const A=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((e=>e$9[e]===A))}else{let A=Number.POSITIVE_INFINITY;for(let n=0;n{for(var t in e)t$8.o(e,t)&&!t$8.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$8=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function s$8(A,e,t){return Math.max(A,Math.min(e,t))}function u$6(A){const e=A%360;return e<0?e+360:e}function i$8(A){const{l:e,a:t,b:i}=function(A){const e=Object.values(function(A){const[e,t,i]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A)).map(((A,e)=>A/(100*Object.values(e$8)[e]))).map((A=>A>r$8?Math.cbrt(A):(o$8*A+16)/116));return{l:116*e[1]-16,a:500*(e[0]-e[1]),b:200*(e[1]-e[2]),alpha:A.a}}(A),n=180*Math.atan2(i,t)/Math.PI;return{l:e,c:Math.sqrt(Math.pow(t,2)+Math.pow(i,2)),h:u$6(n),a:A.a}}function h$2(A){const{l:e,c:t,h:i}=A;return function(A){const{l:e,a:t,b:i}=A,n=(e+16)/116,a=n+t/500,r=n-i/200,s=Object.values(e$8),[o,l,c]=[a,n,r].map(((A,e)=>(A>n$8?Math.pow(A,3):3*Math.pow(n$8,2)*(A-4/29))*s[e]*100));return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return s$8(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:o,y:l,z:c,a:A.alpha})}({l:e,a:t*Math.cos(i*Math.PI/180),b:t*Math.sin(i*Math.PI/180),alpha:A.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:A,c:e,h:t,a:i}){return[h$2({l:s$8(0,A,100),c:s$8(0,e,230),h:u$6(t),a:(n=i,void 0!==n?s$8(0,n,1):1)}),"lch"];var n}function f$1(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{l:e,c:t,h:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return p$1(A);if("string"==typeof A){l$2.lastIndex=0;const e=l$2.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?1:1===e?2.3:2===e?3.59:.01):+A));return p$1({l:A,c:t,h:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=A=>{A.prototype.lcha=function(){return i$8(this.rgba())},A.prototype.stringLCH=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.lcha()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`lcha(${t}%, ${i}, ${n}, ${a})`:`lch(${t}%, ${i}, ${n})`},A.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(A,e)=>{for(var t in e)t$7.o(e,t)&&!t$7.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$7=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function a$7(A,e,t){return Math.max(A,Math.min(e,t))}function u$5(A){const{l:e,u:t,v:i}=A,n=e>e$7*r$7?Math.pow((e+16)/116,3):e/e$7,a=(52*e/(t&&e?t+13*e*.20916005282038627:1)-1)/3,r=-5*n,s=n*(39*e/(i&&e?i+13*e*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return a$7(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:100*o,y:100*n,z:100*(a*o+r),a:A.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:A,u:e,v:t,a:i}){return[u$5({l:a$7(0,A,100),u:a$7(-100,e,100),v:a$7(-100,t,100),a:(n=i,void 0!==n?a$7(0,n,1):1)}),"luv"];var n}function i$7(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{l:e,u:t,v:i}=A;return void 0!==e&&void 0!==t&&null!=i}(A))return s$7(A);if("string"==typeof A){c$7.lastIndex=0;const e=c$7.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?1:.01):+A));return s$7({l:A,u:t,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=A=>{A.prototype.luva=function(){return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A)).map((A=>A/100)),n=t/1,a=e&&t&&i?e+15*t+3*i:19,r=4*e/a,s=9*t/a;let o=n>r$7?116*Math.cbrt(n)-16:e$7*n,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:A.a}}(this.rgba())},A.prototype.stringLUV=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.luva()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(luva ${t}%, ${i}%, ${n}%, ${a})`:`color(luv ${t}%, ${i}%, ${n}%)`},A.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(A,e)=>{for(var t in e)t$6.o(e,t)&&!t$6.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$6=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function s$6(A,e,t){return Math.max(A,Math.min(e,t))}function u$4(A){return void 0!==A?s$6(0,A,1):1}function i$6(A){const e=Object.values(function(A){const[e,t,i]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A)).map(((A,e)=>A/(100*Object.values(o$6)[e]))).map((A=>A>r$6?Math.cbrt(A):(e$6*A+16)/116));return{l:116*e[1]-16,a:500*(e[0]-e[1]),b:200*(e[1]-e[2]),alpha:A.a}}function l(A){const{l:e,a:t,b:i}=A,n=(e+16)/116,a=n+t/500,r=n-i/200,s=Object.values(o$6),[o,l,c]=[a,n,r].map(((A,e)=>(A>n$6?Math.pow(A,3):3*Math.pow(n$6,2)*(A-4/29))*s[e]*100));return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return s$6(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:o,y:l,z:c,a:A.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:A,a:e,b:t,alpha:i}){return[l({l:s$6(0,A,100),a:s$6(-160,e,160),b:s$6(-160,t,160),alpha:u$4(i)}),"lab"]}function f(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{l:e,a:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return b(A);if("string"==typeof A){p.lastIndex=0;const e=p.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?1:.01):+A));return b({l:A,a:t,b:i,alpha:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=A=>{A.prototype.laba=function(){return i$6(this.rgba())},A.prototype.stringLAB=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.laba()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`laba(${t}%, ${i}, ${n}, ${a})`:`lab(${t}%, ${i}, ${n})`},A.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(A,e)=>{for(var t in e)t$5.o(e,t)&&!t$5.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$5={};function r$5(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function o$5(A,e,t){return Math.max(A,Math.min(e,t))}function e$5(A){const{u:e,v:t,w:i}=A,[n,a,r]=r$5([[1.5,0,0],[0,1,0],[1.5,-3,2]],[e,t,i]);return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return o$5(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:n,y:a,z:r,a:A.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:A,v:e,w:t,a:i}){return[e$5({u:o$5(0,A,200/3*.96422),v:o$5(0,e,100),w:o$5(-48.211,t,191.2605),a:(n=i,void 0!==n?o$5(0,n,1):1)}),"uvw"];var n}function c$5(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{u:e,v:t,w:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return u$3(A);if("string"==typeof A){a$5.lastIndex=0;const e=a$5.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map((A=>A.includes("%")?.01*+A.slice(0,-1):+A));return u$3({u:A,v:t,w:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=A=>{A.prototype.uvwa=function(){return function(A){const{x:e,y:t,z:i}=function(A){const[e,t,i]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A),[n,a,r]=r$5([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[e,t,i]);return{u:n,v:a,w:r,a:A.a}}(this.rgba())},A.prototype.stringUVW=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.uvwa()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(uvwa ${t}, ${i}, ${n}, ${a})`:`color(uvw ${t}, ${i}, ${n})`},A.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(A,e)=>{for(var t in e)t$4.o(e,t)&&!t$4.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$4={};function r$4(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function o$4(A,e,t){return Math.max(A,Math.min(e,t))}function e$4(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=r$4([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=r$4([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return o$4(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:A,y:e,z:t,a:i}){return[e$4({x:o$4(0,A,96.422),y:o$4(0,e,100),z:o$4(0,t,82.521),a:(n=i,void 0!==n?o$4(0,n,1):1)}),"xyz"];var n}function c$4(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{x:e,y:t,z:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return s$4(A);if("string"==typeof A){a$4.lastIndex=0;const e=a$4.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map((A=>A.includes("%")?.01*+A.slice(0,-1):+A));return s$4({x:A,y:t,z:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=A=>{A.prototype.xyza=function(){return function(A){const[e,t,i]=r$4([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=r$4([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(this.rgba())},A.prototype.stringXYZ=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.xyza()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(xyza ${t}, ${i}, ${n}, ${a})`:`color(xyz ${t}, ${i}, ${n})`},A.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(A,e)=>{for(var t in e)t$3.o(e,t)&&!t$3.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$3={};function r$3(A,e,t){return Math.max(A,Math.min(e,t))}function a$3(A){const e=A%360;return e<0?e+360:e}function o$3(A){const{h:e,a:t}=function(A){var e;const{Cmin:t,Cmax:i,H:n,delta:a}=function(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}(A),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*n),s:100*s,l:100*r,a:null!==(e=A.a)&&void 0!==e?e:1}}(A),{r:i,g:n,b:a}=A;return{h:e,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:t}}function e$3(A){const{h:e,b:t,w:i,a:n}=A;return function(A){const{h:e,s:t,v:i,a:n}=A,a=i/100,r=a*(t/100),s=r*(1-Math.abs(e/60%2-1)),o=a-r,l=e<60||300<=e&&e<360?r:120<=e&&e<240?0:s,c=240<=e&&e<360?0:60<=e&&e<180?r:s,d=e<120?0:180<=e&&e<300?r:s,[h,g,u]=[l,c,d].map((A=>255*(A+o)));return{r:h,g:g,b:u,a:null!=n?n:1}}({h:e,s:100===t?0:100-i/(100-t)*100,v:100-t,a:n})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:A,w:e,b:t,a:i}){return[e$3({h:a$3(A),w:r$3(0,e,100),b:r$3(0,t,100),a:(n=i,void 0!==n?r$3(0,n,1):1)}),"hwb"];var n}function c$3(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{h:e,w:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return i$3(A);if("string"==typeof A){s$3.lastIndex=0;const e=s$3.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?3.59:e<3?1:.01):+A));return i$3({h:A,w:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=A=>{A.prototype.hwba=function(){return o$3(this.rgba())},A.prototype.stringHWB=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hwba()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`hwba(${a$3(t)}, ${i}%, ${n}%, ${a})`:`hwb(${a$3(t)}, ${i}%, ${n}%)`},A.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(A,e)=>{for(var t in e)t$2.o(e,t)&&!t$2.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$2={};function r$2(A,e,t){return Math.max(A,Math.min(e,t))}function s$2(A){const e=A%360;return e<0?e+360:e}function e$2(A){const{h:e,s:t,v:i,a:n}=A,a=i/100,r=a*(t/100),s=r*(1-Math.abs(e/60%2-1)),o=a-r,l=e<60||300<=e&&e<360?r:120<=e&&e<240?0:s,c=240<=e&&e<360?0:60<=e&&e<180?r:s,d=e<120?0:180<=e&&e<300?r:s,[h,g,u]=[l,c,d].map((A=>255*(A+o)));return{r:h,g:g,b:u,a:null!=n?n:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:A,s:e,v:t,a:i}){return[e$2({h:s$2(A),s:r$2(0,e,100),v:r$2(0,t,100),a:(n=i,void 0!==n?r$2(0,n,1):1)}),"hsv"];var n}function i$2(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{h:e,s:t,v:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return o$2(A);if("string"==typeof A){a$2.lastIndex=0;const e=a$2.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?3.59:e<3?1:.01):+A));return o$2({h:A,s:t,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=A=>{A.prototype.hsva=function(){return function(A){var e;const{Cmax:t,H:i,delta:n}=function(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}(A),a=0===n?0:n/t;return{h:s$2(60*i),s:100*a,v:100*t,a:null!==(e=A.a)&&void 0!==e?e:1}}(this.rgba())},A.prototype.stringHSV=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hsva()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`hsva(${s$2(t)}, ${i}%, ${n}%, ${a})`:`hsv(${s$2(t)}, ${i}%, ${n}%)`},A.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(A,e)=>{for(var t in e)t$1.o(e,t)&&!t$1.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},r$1={};function n$1(A,e,t){return Math.max(A,Math.min(e,t))}function o$1(A){let{r:e,y:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(t,i);t-=r,i-=r,i&&r&&(i*=2,r*=2),e+=t,r+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,g:r,b:i,a:A.a}}t$1.d(r$1,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:A,y:e,b:t,a:i}){return[o$1({r:n$1(0,A,255),y:n$1(0,e,255),b:n$1(0,t,255),a:(n=i,void 0!==n?n$1(0,n,1):1)}),"ryb"];var n}function s$1(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{r:e,y:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return e$1(A);if("string"==typeof A){a$1.lastIndex=0;const e=a$1.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?2.55:.01):+A));return e$1({r:A,y:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=A=>{A.prototype.ryba=function(){return function(A){let{r:e,g:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(e,t);e-=r,t-=r,i&&t&&(i/=2,t/=2),r+=t,i+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,y:r,b:i,a:A.a}}(this.rgba())},A.prototype.stringRYB=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.ryba()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(ryba ${t}, ${i}, ${n}, ${a})`:`color(ryb ${t}, ${i}, ${n})`},A.Parsers.push(s$1)};var c$1=r$1.Z,t={d:(A,e)=>{for(var i in e)t.o(e,i)&&!t.o(A,i)&&Object.defineProperty(A,i,{enumerable:!0,get:e[i]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n={};function e(A,e,t){return Math.max(A,Math.min(e,t))}function r(A){const{c:e,m:t,y:i,k:n,a:a}=A,[r,s,o]=[e,t,i].map((A=>255*(1-A/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:A,m:t,y:i,k:n,a:a}){return[r({c:e(0,A,100),m:e(0,t,100),y:e(0,i,100),k:e(0,n,100),a:(s=a,void 0!==s?e(0,s,1):1)}),"cmyk"];var s}function a(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{c:e,m:t,y:i,k:n}=A;return void 0!==e&&void 0!==t&&void 0!==i&&void 0!==n}(A))return o(A);if("string"==typeof A){c.lastIndex=0;const e=c.exec(A);if(e){const[A,t,i,n,a]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<4?1:.01):+A));return o({c:A,m:t,y:i,k:n,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=A=>{A.prototype.cmyka=function(){return function(A){const{r:e,g:t,b:i,a:n}=A,a=1-Math.max(e,t,i)/255,[r,s,o]=1===a?[0,0,0]:[e,t,i].map((A=>100*(1-A/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}(this.rgba())},A.prototype.stringCMYK=function({alpha:A=!0,precision:e=[0,0,0,0,1]}={}){const[t,i,n,a,r]=Object.values(this.cmyka()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`device-cmyk(${t}, ${i}, ${n}, ${a}, ${r})`:`device-cmyk(${t}, ${i}, ${n}, ${a})`},A.Parsers.push(a)};var s=n.Z;B([r$c,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const{determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText}=excalidrawLib,GAP=4;class ExcalidrawAutomate{constructor(A,e){this.targetView=null,this.mostRecentMarkdownSVG=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.activeScript=null,this.plugin=A,this.reset(),this.targetView=e}getAPI(A){return new ExcalidrawAutomate(this.plugin,A)}setFillStyle(A){switch(A){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(A){switch(A){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(A){return 0===A?(this.style.strokeSharpness="round","round"):(this.style.strokeSharpness="sharp","sharp")}setFontFamily(A){switch(A){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(A){return 0===A?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(A){const e=nanoid();return A.forEach((A=>{var t,i;null===(i=null===(t=this.elementsDict[A])||void 0===t?void 0:t.groupIds)||void 0===i||i.push(e)})),e}async toClipboard(A){const e=A?await getTemplate(this.plugin,A,!1,new EmbeddedFilesLoader(this.plugin),0):null;let t=e?e.elements:[];t=t.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:t}))}getElements(){const A=[],e=Object.keys(this.elementsDict);for(let t=0;t{const l=t+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+t%2*r/6+A,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*s-s/2+t%2*s/6+e])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((A=>{const e=getLineBox(A),n=t/e.w,a=i/e.h;let r;for(r=0;r500){const A=500/Math.max(a.size.width,a.size.height);a.size.width=A*a.size.width,a.size.height=A*a.size.height}return this.elementsDict[i]=this.boxedElement(i,"image",A,e,a.size.width,a.size.height),this.elementsDict[i].fileId=r,this.elementsDict[i].scale=[1,1],i}async addLaTex(A,e,t){const i=nanoid(),n=await tex2dataURL(t,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:t},this.elementsDict[i]=this.boxedElement(i,"image",A,e,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(A,e,t,i,n){if(!this.elementsDict[A]||!this.elementsDict[t])return;if(["line","arrow","freedraw"].includes(this.elementsDict[A].type)||["line","arrow","freedraw"].includes(this.elementsDict[t].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,r=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,s=(A,e)=>{switch(A){case"bottom":return[(e.x+(e.x+e.width))/2,e.y+e.height+a];case"left":return[e.x-a,(e.y+(e.y+e.height))/2];case"right":return[e.x+e.width+a,(e.y+(e.y+e.height))/2];default:return[(e.x+(e.x+e.width))/2,e.y-a]}};let o,l,c,d;const h=this.elementsDict[A],g=this.elementsDict[t];if(!e||!i){const A=h.x+h.width/2,t=g.x+g.width/2,n=h.y+h.height/2,a=g.y+g.height/2;if(!e){const e=intersectElementWithLine(h,[t,a],[A,n],4);0===e.length?[o,l]=[A,n]:[o,l]=e[0]}if(!i){const e=intersectElementWithLine(g,[A,n],[t,a],4);0===e.length?[c,d]=[t,a]:[c,d]=e[0]}}e&&([o,l]=s(e,this.elementsDict[A])),i&&([c,d]=s(i,this.elementsDict[t]));const u=r+2,p=[];for(let A=0;AMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(t.x+t.points[1][0]/2-n.width/2,t.y+t.points[1][1]/2-n.height,e);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,strokeSharpness:"sharp",fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(A){return this.plugin.isExcalidrawFile(A)}setView(A){if("active"==A){const A=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(A instanceof ExcalidrawView))return;this.targetView=A}if("first"==A){const A=app.workspace.getLeavesOfType("excalidraw");if(!A||0==A.length)return;this.targetView=A[0].view}return A instanceof ExcalidrawView&&(this.targetView=A),this.targetView}getExcalidrawAPI(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var A,e,t;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","getViewSelectedElements()"),[];const i=null===(t=null===(e=this.targetView)||void 0===e?void 0:e.excalidrawRef)||void 0===t?void 0:t.current;return i?null==i?void 0:i.getSceneElements():[]}deleteViewElements(A){var e,t,i;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewSelectedElements()"),!1;const n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),r=n.getAppState();return this.targetView.updateScene({elements:a.filter((e=>!A.includes(e))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const A=this.getViewSelectedElements();return A?A[0]:null}getViewSelectedElements(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(A){var e,t,i,n;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?A&&"image"===A.type?null===(n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawData)||void 0===i?void 0:i.getFile(A.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewSelectedElements()"),null)}copyViewElementsToEAforEditing(A){A.forEach((A=>{this.elementsDict[A.id]=cloneElement(A)}))}viewToggleFullScreen(A=!1){var e;if(app.isMobile)return void errorMessage("mobile not supported","viewToggleFullScreen()");if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");if(A){const A=this.getExcalidrawAPI();this.targetView.updateScene({appState:Object.assign({viewModeEnabled:!0},A.appState),commitToHistory:!1})}const t=this.targetView;t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen()}connectObjectWithViewSelectedElement(A,e,t,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(A,e,a,t,i),delete this.elementsDict[a],!0}async addElementsToView(A=!1,e=!0,t=!1){var i;if(!this.targetView||!(null===(i=this.targetView)||void 0===i?void 0:i._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const n=this.getElements();return await this.targetView.addElements(n,A,e,this.imagesDict,t)}registerThisAsViewEA(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(A){return new EmbeddedFilesLoader(this.plugin,A)}getExportSettings(A,e){return{withBackground:A,withTheme:e}}getBoundingBox(A){const e=getCommonBoundingBox(A);return{topX:e.minX,topY:e.minY,width:e.maxX-e.minX,height:e.maxY-e.minY}}getMaximumGroups(A){return getMaximumGroups(A)}getLargestElement(A){if(!A||0===A.length)return null;let e=A[0];const t=A=>A.height*A.width;let i=t(A[0]);for(let n=1;ni&&(i=a,e=A[n])}return e}getCommonGroupForElements(A){const e=A.map((A=>A.groupIds)).reduce(((A,e)=>e.filter((e=>A.includes(e)))));return e.length>0?e[0]:null}getElementsInTheSameGroupWithElement(A,e){if(!A||!e)return[];const t="text"===A.type&&A.containerId?e.filter((e=>e.id===A.containerId)):[];return 0===A.groupIds.length?1===t.length?[A,t[0]]:[A]:1===t.length?e.filter((e=>e.groupIds.some((e=>A.groupIds.includes(e)))||e===t[0])):e.filter((e=>e.groupIds.some((e=>A.groupIds.includes(e)))))}intersectElementWithLine(A,e,t,i){return intersectElementWithLine(A,e,t,i)}getScriptSettings(){var A;return this.activeScript?null!==(A=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==A?A:{}:null}async setScriptSettings(A){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=A,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(A){if(!(A&&A instanceof obsidian.TFile))return null;if(!this.targetView)return null;const e=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return e.openFile(A,{active:!0}),e}measureText(A){var e,t;const i=_measureText(A,this.style.fontSize,this.style.fontFamily);return{width:null!==(e=i.w)&&void 0!==e?e:0,height:null!==(t=i.h)&&void 0!==t?t:0}}verifyMinimumPluginVersion(A){return PLUGIN_VERSION===A||isVersionNewerThanOther(PLUGIN_VERSION,A)}isExcalidrawView(A){return A instanceof ExcalidrawView}selectElementsInView(A){var e;this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?A&&0!==A.length&&this.getExcalidrawAPI().selectElements(A):errorMessage("targetView not set","selectElementsInView()")}generateElementId(){return nanoid()}cloneElement(A){const e=JSON.parse(JSON.stringify(A));return e.id=nanoid(),e}moveViewElementToZIndex(A,e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((e=>e.id===A));if(0===a.length)return void errorMessage(`Element (id: ${A}) not found`,"moveViewElementToZIndex");if(e>=n.length)return void i.bringToFront(a);if(e<0)return void i.sendToBack(a);const r=n.indexOf(a[0]);n.splice(e,0,n.splice(r,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(A){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(A);return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}rgbToHexString(A){return O$1({r:A[0],g:A[1],b:A[2]}).stringHEX({alpha:!1})}hslToRgb(A){const e=O$1({h:A[0],s:A[1],l:A[2]});return[e.red,e.green,e.blue]}rgbToHsl(A){const e=O$1({r:A[0],g:A[1],b:A[2]});return[e.hue,e.saturation,e.lightness]}colorNameToHex(A){return COLOR_NAMES.has(A.toLowerCase().trim())?COLOR_NAMES.get(A.toLowerCase().trim()):A.trim()}getCM(A){if(A)return O$1(A);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}}async function initExcalidrawAutomate(A){await initFonts();const e=new ExcalidrawAutomate(A);return window.ExcalidrawAutomate=e,e}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(A){const e=[],[t,i]=A[0];for(let n=0;n-1||e.search("excalidraw-plugin: locked\n")>-1;await a.loadData(e,l,o?TextMode.parsed:TextMode.raw);let d=e.search("# Text Elements\n");-1==d&&(d=e.search("# Drawing\n"));let h=a.scene;t&&await i.loadSceneFiles(a,(A=>{if(A&&0!==A.length){for(const e of A)e.hasSVGwithBitmap&&(c=!0),a.scene.files[e.id]={mimeType:e.mimeType,id:e.id,dataURL:e.dataURL,created:e.created};h=scaleLoadedImage(a.scene,A).scene}}),n);let g=h.elements;if(s.hasGroupref){const e=s.hasSectionref?getTextElementsMatchingQuery(h.elements,["# "+s.sectionref],!0):h.elements.filter((A=>A.id===s.blockref));e.length>0&&(g=A.ea.getElementsInTheSameGroupWithElement(e[0],h.elements))}return{elements:g,appState:h.appState,frontmatter:e.substring(0,d),files:h.files,hasSVGwithBitmap:c}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:c}}async function createPNG(A,e=1,t,i,n,a,r,s=[],o,l,c){var d,h,g,u,p,w,m,f;i||(i=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const B=A?await getTemplate(o,A,!0,i,l):null;let E=null!==(d=null==B?void 0:B.elements)&&void 0!==d?d:[];return E=E.concat(s),await getPNG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(h=null==B?void 0:B.appState)||void 0===h?void 0:h.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(p=null===(u=null==B?void 0:B.appState)||void 0===u?void 0:u.viewBackgroundColor)&&void 0!==p?p:r},files:null!==(w=null==B?void 0:B.files)&&void 0!==w?w:{}},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,e)}async function createSVG(A,e=!1,t,i,n,a,r,s=[],o,l,c){var d,h,g,u,p,w,m,f;i||(i=new EmbeddedFilesLoader(o));const B=A?await getTemplate(o,A,!0,i,l):null;let E=null!==(d=null==B?void 0:B.elements)&&void 0!==d?d:[];E=E.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const C=await getSVG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(h=null==B?void 0:B.appState)||void 0===h?void 0:h.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(p=null===(u=null==B?void 0:B.appState)||void 0===u?void 0:u.viewBackgroundColor)&&void 0!==p?p:r},files:null!==(w=null==B?void 0:B.files)&&void 0!==w?w:{}},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c),b=getEmbeddedFilenameParts(A);if(!b.hasGroupref&&(b.hasBlockref||b.hasSectionref)){let A=b.hasSectionref?getTextElementsMatchingQuery(E,["# "+b.sectionref],!0):E.filter((A=>A.id===b.blockref));if(A.length>0){const e=A[0].containerId;e&&(A=A.concat(E.filter((A=>A.id===e))));const t=o.ea.getBoundingBox(A),i=o.ea.getBoundingBox(E);C.viewBox.baseVal.x=t.topX-i.topX,C.viewBox.baseVal.y=t.topY-i.topY,C.viewBox.baseVal.width=t.width+2*c,C.viewBox.baseVal.height=t.height+2*c}}return(null==B?void 0:B.hasSVGwithBitmap)&&C.setAttribute("hasbitmap","true"),e?embedFontsInSVG(C,o):C}function estimateLineBound(A){let e=1/0,t=1/0,i=-1/0,n=-1/0;for(const[a,r]of A)e=Math.min(e,a),t=Math.min(t,r),i=Math.max(i,a),n=Math.max(n,r);return[e,t,i,n]}function estimateBounds(A){const e=getCommonBoundingBox(A);return[e.minX,e.minY,e.maxX,e.maxY]}function repositionElementsToCursor(A,e,t=!1){const[i,n,a,r]=estimateBounds(A);let[s,o]=[0,0];return[s,o]=t?[e.x-(i+a)/2,e.y-(n+r)/2]:[e.x-i,e.y-n],A.forEach((A=>{A.x=A.x+s,A.y=A.y+o})),A}function errorMessage(A,e){switch(A){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:e,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:e,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:e,message:"unknown error"})}}const insertLaTeXToView=A=>{const e=A.plugin.app,t=A.plugin.ea;new Prompt(e,t$d("ENTER_LATEX"),"","\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async e=>{e&&(t.reset(),await t.addLaTex(0,0,e),t.setView(A),t.addElementsToView(!0,!1,!0))}))},search=async A=>{const e=A.plugin.ea;e.reset(),e.setView(A);const t=e.getViewElements().filter((A=>"text"===A.type));if(0===t.length)return;let i=await ScriptEngine.inputPrompt(A.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=n.next()).done;)r.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),r=r.concat(i.split(" ").filter((A=>0!==A.length))),e.targetView.selectElementsMatchingQuery(t,r)},getTextElementsMatchingQuery=(A,e,t=!1)=>A&&0!==A.length&&e&&0!==e.length?A.filter((A=>"text"===A.type&&e.some((e=>{if(t){const t=A.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!t||2!==t.length)&&t[1]===e.toLowerCase()}return A.rawText.toLowerCase().replaceAll("\n"," ").trim().match(e.toLowerCase())})))):[],cloneElement=A=>Object.assign(Object.assign({},A),{version:A.version+1,updated:Date.now(),versionNonce:Math.floor(1e9*Math.random())}),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian.Modal{constructor(A){super(A.app),this.plugin=A}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const A=await obsidian.request({url:URL$1});if(!A)return new obsidian.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian.MarkdownRenderer.renderMarkdown(A,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((A=>{A.setAttribute("id",A.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((A=>{A.removeAttribute("target")}))}catch(A){errorlog({where:"ScriptInstallPrompt.onOpen",error:A}),new obsidian.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function toVal(A){var e,t,i="";if("string"==typeof A||"number"==typeof A)i+=A;else if("object"==typeof A)if(Array.isArray(A))for(e=0;eReact__namespace.createElement("label",{className:clsx("ToolIcon ToolIcon_type_floating","ToolIcon_size_medium",{"is-mobile":A}),onClick:()=>{this.toolsRef.current.setTheme(e.theme),this.toolsRef.current.toggleVisibility(e.zenModeEnabled||A)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 166 267"},React__namespace.createElement("path",{fill:"transparent",d:"M0 0h165.742v267.245H0z"}),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#bd7efc",strokeWidth:"0",d:"M55.5 96.49 39.92 57.05 111.28 10l4.58 36.54L55.5 95.65"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M55.5 96.49c-5.79-14.66-11.59-29.33-15.58-39.44M55.5 96.49c-3.79-9.59-7.58-19.18-15.58-39.44m0 0C60.13 43.72 80.34 30.4 111.28 10M39.92 57.05C60.82 43.27 81.73 29.49 111.28 10m0 0c.97 7.72 1.94 15.45 4.58 36.54M111.28 10c1.14 9.12 2.29 18.24 4.58 36.54m0 0C95.41 63.18 74.96 79.82 55.5 95.65m60.36-49.11C102.78 57.18 89.71 67.82 55.5 95.65m0 0v.84m0-.84v.84"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#e2c4ff",strokeWidth:"0",d:"m111.234 10.06 44.51 42.07-40.66-5.08-3.85-36.99"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 10.06c11.83 11.18 23.65 22.36 44.51 42.07m-44.51-42.07 44.51 42.07m0 0c-13.07-1.63-26.13-3.27-40.66-5.08m40.66 5.08c-11.33-1.41-22.67-2.83-40.66-5.08m0 0c-1.17-11.29-2.35-22.58-3.85-36.99m3.85 36.99c-1.47-14.17-2.95-28.33-3.85-36.99m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#2f005e",strokeWidth:"0",d:"m10 127.778 45.77-32.99-15.57-38.08-30.2 71.07"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M10 127.778c16.85-12.14 33.7-24.29 45.77-32.99M10 127.778c16.59-11.95 33.17-23.91 45.77-32.99m0 0c-6.14-15.02-12.29-30.05-15.57-38.08m15.57 38.08c-4.08-9.98-8.16-19.96-15.57-38.08m0 0c-11.16 26.27-22.33 52.54-30.2 71.07m30.2-71.07c-10.12 23.81-20.23 47.61-30.2 71.07m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#410380",strokeWidth:"0",d:"m40.208 235.61 15.76-140.4-45.92 32.92 30.16 107.48"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.208 235.61c3.7-33.01 7.41-66.02 15.76-140.4m-15.76 140.4c3.38-30.16 6.77-60.32 15.76-140.4m0 0c-10.83 7.76-21.66 15.53-45.92 32.92m45.92-32.92c-11.69 8.38-23.37 16.75-45.92 32.92m0 0c6.84 24.4 13.69 48.8 30.16 107.48m-30.16-107.48c6.67 23.77 13.33 47.53 30.16 107.48m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#943feb",strokeWidth:"0",d:"m111.234 240.434-12.47 16.67-42.36-161.87 58.81-48.3 40.46 5.25-44.44 188.25"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 240.434c-3.79 5.06-7.57 10.12-12.47 16.67m12.47-16.67c-4.43 5.93-8.87 11.85-12.47 16.67m0 0c-16.8-64.17-33.59-128.35-42.36-161.87m42.36 161.87c-9.74-37.2-19.47-74.41-42.36-161.87m0 0c15.03-12.35 30.07-24.7 58.81-48.3m-58.81 48.3c22.49-18.47 44.97-36.94 58.81-48.3m0 0c9.48 1.23 18.95 2.46 40.46 5.25m-40.46-5.25c13.01 1.69 26.02 3.38 40.46 5.25m0 0c-10.95 46.41-21.91 92.82-44.44 188.25m44.44-188.25c-12.2 51.71-24.41 103.42-44.44 188.25m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#6212b3",strokeWidth:"0",d:"m40.379 235.667 15.9-140.21 42.43 161.79-58.33-21.58"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.379 235.667c4.83-42.62 9.67-85.25 15.9-140.21m-15.9 140.21c5.84-51.52 11.69-103.03 15.9-140.21m0 0c10.98 41.87 21.96 83.74 42.43 161.79m-42.43-161.79c13.28 50.63 26.56 101.25 42.43 161.79m0 0c-11.8-4.37-23.6-8.74-58.33-21.58m58.33 21.58c-21.73-8.04-43.47-16.08-58.33-21.58m0 0s0 0 0 0m0 0s0 0 0 0"}))))),this.plugin=A,this.toolsRef=e}}class ActionButton extends React__namespace.Component{constructor(A){super(A),this.toastMessageTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{width:"fit-content",padding:"2px",margin:"4px"},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:A=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0),this.props.action(A)},onPointerDown:()=>{this.toastMessageTimeout=window.setTimeout((()=>{var A;return null===(A=this.props.view.excalidrawAPI)||void 0===A?void 0:A.setToastMessage(this.props.title)}),300)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const ICONS={exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),exportSVG:React__namespace.createElement("svg",{viewBox:"0 0 28 28"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"S")),exportPNG:React__namespace.createElement("svg",{viewBox:"0 0 28 28"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"P")),exportExcalidraw:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},React__namespace.createElement("g",{transform:"translate(30,5)"},React__namespace.createElement("path",{d:"M14.45 1.715c-2.723 2.148-6.915 5.797-10.223 8.93l-2.61 2.445.477 3.207c.258 1.75.738 5.176 1.031 7.582.332 2.406.66 4.668.773 4.996.145.438 0 .656-.406.656-.699 0-.734-.183 1.176 5.832.7 2.297 1.363 4.414 1.434 4.633.074.254.367.363.699.254.332-.145.515-.438.406-.691-.113-.293.074-.586.367-.696.403-.144.367-.437-.258-1.492-.992-1.64-3.53-15.64-3.675-20.164-.11-3.207-.11-3.242 1.25-5.066 1.324-1.786 4.375-4.485 9.078-7.91 1.324-.985 2.648-2.079 3.015-2.446.551-.656.809-.472 5.442 4.414 2.683 2.805 5.664 5.688 6.617 6.414l1.766 1.313-1.36 2.844c-.734 1.53-3.715 7.437-6.656 13.054-6.137 11.813-4.887 10.68-12.02 10.79l-4.632.038-1.547 1.75c-1.617 1.86-1.836 2.551-1.063 3.72.293.398.512 1.054.512 1.456 0 .656.258.766 1.73.84.918.035 1.762.145 1.875.254.11.11.258 2.371.368 5.031l.144 4.813-2.46 5.25C1.616 72.516 0 76.527 0 77.84c0 .691.148 1.273.293 1.273.367 0 .367-.035 15.332-30.988 6.95-14.363 13.531-27.89 14.633-30.113 1.101-2.227 2.094-4.266 2.168-4.559.074-.328-2.461-2.844-6.508-6.379C22.281 3.864 19.082.95 18.785.621c-.844-1.023-2.094-.695-4.336 1.094zM15.7 43.64c-1.692 3.246-1.766 3.28-6.4 3.5-4.081.218-4.152.183-4.152-.582 0-.438-.148-1.024-.332-1.313-.222-.328-.074-.914.442-1.715l.808-1.238h3.676c2.024-.04 4.34-.184 5.149-.328.808-.149 1.507-.219 1.578-.184.074.035-.293.875-.77 1.86zm-3.09 5.832c-.294.765-1.067 2.37-1.692 3.574-1.027 2.043-1.137 2.113-1.395 1.277-.148-.511-.257-2.008-.296-3.355-.036-2.66-.11-2.625 2.98-2.809l.992-.035zm0 0"}),React__namespace.createElement("path",{d:"M15.55 10.39c-.66.473-.843.95-.843 2.153 0 1.422.11 1.64 1.102 2.039.992.402 1.25.367 2.39-.398 1.508-1.024 1.543-1.278.442-2.918-.957-1.422-1.914-1.676-3.09-.875zm2.098 1.313c.586 1.02.22 1.785-.882 1.785-.993 0-1.434-.984-.883-1.968.441-.801 1.285-.727 1.765.183zm0 0M38.602 18.594c0 .183-.22.363-.477.363-.219 0-.844 1.023-1.324 2.262-1.469 3.793-16.176 32.629-16.211 31.718 0-.472-.223-.8-.59-.8-.516 0-.59.289-.367 1.71.219 1.641.074 2.008-5.149 12.071-2.941 5.723-6.101 11.703-7.02 13.305-.956 1.68-1.69 3.5-1.765 4.265-.11 1.313.035 1.496 3.235 4.23 1.84 1.606 4.191 3.61 5.222 4.52 4.63 4.196 6.801 5.871 7.387 5.762.883-.145 14.523-14.328 14.559-15.129 0-.367-.66-5.906-1.47-12.324-1.398-10.938-2.722-23.734-2.573-24.973.109-.765-.442-4.633-.844-6.308-.332-1.313-.184-1.86 2.46-7.84 1.544-3.535 3.567-7.875 4.45-9.625.844-1.75 1.582-3.281 1.582-3.39 0-.11-.258-.18-.55-.18-.298 0-.555.144-.555.363zm-8.454 27.234c.403 2.55 1.211 8.676 1.801 13.598 1.14 9.043 2.461 19.07 2.832 21.62.219 1.278.07 1.532-2.316 4.157-4.156 4.629-8.567 9.188-10.074 10.356l-1.399 1.093-7.168-6.636c-6.617-6.051-7.168-6.672-6.765-7.403.222-.398 2.097-3.789 4.156-7.508 2.058-3.718 4.777-8.68 6.027-11.011 1.29-2.371 2.465-4.41 2.684-4.52.258-.148.332 3.535.258 11.375-.149 11.703-.11 11.739 1.066 11.485.148 0 .258-5.907.258-13.09V56.293l3.86-7.656c2.132-4.23 3.898-7.621 3.972-7.586.07.039.441 2.187.808 4.777zm0 0"}))),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"}))},FIRST_RUN='\nThe Excalidraw Obsidian plugin is much more than "just" a drawing tool. To help you get started here\'s a showcase of the key Excalidraw plugin features.\n\nIf you\'d like to learn more, please subscribe to my YouTube channel: [Visual PKM](https://www.youtube.com/channel/UCC0gns4a9fhVkGkngvSumAQ) where I regularly share videos about Obsidian-Excalidraw and about tools and techniques for Visual Personal Knowledge Management.\n\nThank you & Enjoy!\n\n
\n\n
\n',RELEASE_NOTES={Intro:'I want to help you keep up with all the updates. After installing each release, you\'ll be prompted with a summary of new features and fixes. You can disable these popup messages in plugin settings.\n\nI develop this plugin as a hobby, spending most of my free time doing this. If you\'d like to contribute to the on-going work, I have a simple membership scheme with Bronze, Silver and Gold tiers. Many of you have already bought me a coffee. THANK YOU! It really means a lot to me! If you find this plugin valuable, please consider supporting me.\n\n
\n',"1.7.19":`\n# QoL improvements\n- Reintroduced the help button. I also added the help button to the Tray (in Tray Mode) and moved help to the canvas action panel (in non-TrayMode) because in Obsidian 0.16.0 the status bar hides the help icon.\n- Resetting the canvas with the "Reset Canvas" button will now preserve your custom color palette.\n- I updated the [Set background color of unlclosed line object](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20background%20color%20of%20unclosed%20line%20object%20by%20adding%20a%20shadow%20clone.md) script. The script will now add background color to open freedraw objects as well. You no longer need to convert freedraw objects to lines before setting the background color. Check the Script Engine library to download the update.\n\n# New in Excalidraw Automate\n- I added the [ColorMaster](https://github.com/lbragile/ColorMaster#readme) library to ExcalidrawAutomate. You can get a CM object by calling ${String.fromCharCode(96)}ExcalidrawAutomate.getCM()${String.fromCharCode(96)}. Color master introduces many new ways to manipulate colors from script. I will publish scripts that make use of this new functionality including supporting videos on my YouTube channel in the coming days.\n`,"1.7.18":"\n## Critical fix\n- duplicating text elements, adding text elements from the library, and pasting excalidraw text elements results in a corrupted file!!","1.7.17":`\n## Fixed\n- Block transclusions sometimes got lost when switching between RAW mode and PREVIEW mode. [#769](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/769)\n\n## New\n- Added feature to disable "new Excalidraw version" notification [#770](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/770)\n- Added option to export both light- and dark-themed images at the same time. If this is enabled Excalidraw will create two files "filename.dark.png" and "filename.light.png" (or .svg depending on your other settings). See practical use case here: [Aadam's Notes](https://notes.aadam.dev/SBYNtPHqsTW9Ck1Kuoxsu/)\n- Added custom export padding for PNG images. Use the frontmatter key ${String.fromCharCode(96)}excalidraw-export-padding${String.fromCharCode(96)} to set the padding at a file level, or set padding for all your files in plugin settings. The new feature replaces the old "SVG Padding" option and applies to both SVG and PNG exports.\n\n## ExcalidrawAutomate\n- Added ${String.fromCharCode(96)}padding${String.fromCharCode(96)} to the createPNG function call.\n${String.fromCharCode(96,96,96)}typescript\nasync createPNG(\n templatePath?: string,\n scale: number = 1,\n exportSettings?: ExportSettings,\n loader?: EmbeddedFilesLoader,\n theme?: string,\n padding?: number,\n)\n${String.fromCharCode(96,96,96)}\n`,"1.7.16":"\n## Fixed\n- Excalidraw canvas is empty after saving the drawing and re-opening it at a later time. If you accidentally paste Excalidraw elements from the clipboard as the contents of a text element, in certain situations this can corrupt the Excalidraw file and as a result, Excalidraw will load an empty-looking drawing the next time. Changing to markdown view, these files can be repaired, however, to avoid accidental data loss, I have prevented pasting of excalidraw clipboard contents as text elements. [#768](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/768)\n\n## New\n- Add zoom % display in tray-mode [737](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/737)\n","1.7.15":"\n## Fixed\n- Canvas turns white when adding point for curved line [#760](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/760), [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738), [#5602](https://github.com/excalidraw/excalidraw/issues/5602)\n","1.7.14":`\n
\n\n
\n\n## New\n- The ${String.fromCharCode(96)}Copy markdown link for selected element to clipboard${String.fromCharCode(96)} action in the Obsidian menu is now more intelligent. If multiple elements are selected it will copy the Element Reference for the largest element. \n- When referencing an element in a link pointing to an Excalidraw file using the elementId or the section header as the block reference e.g. ${String.fromCharCode(96)}[[file#^elementID]]${String.fromCharCode(96)}, you can now add the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#^group=elementID]]${String.fromCharCode(96)} and the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#area=Section heading]]${String.fromCharCode(96)}.\n - If the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix is found, Excalidraw will select the group of elements in the same group as the element referenced by the elementID or heading section.\n - If the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix is found, excalidraw will insert a cutout of the image around the referenced element.\n - The ${String.fromCharCode(96)}area=${String.fromCharCode(96)} selector is not supported when embedding Excalidraw as PNG into your markdown documents.\n- I added "Toggle left-handed mode" to the Command Palette. The action is only visible if tray-mode is enabled. It will move the tray from left to right and back. [749](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/749)\n\n## Fixed\n- Zooming with CTRL+Wheel will no longer trigger hover preview.\n- When editing text in a text element CTRL+C will not launch the hover preview in case the mouse pointer is over the text element being edited. Hover preview will only show if the element is not in editing mode.\n- ExcalidrawAutomate did not reliably save changes. This caused issues for example in the "Add link to an existing file and open" script. [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n- Create a new folder not working when clicking on a link in Erxcalidraw that points to a file that is in a folder that does not yet exist. [741](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/741)\n- Downgraded to React 17 due to various stability issues, including [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738) and [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n\n## New in Excalidraw Automate\n- I added two new Excalidraw Automate functions\n${String.fromCharCode(96,96,96)}typescript\n/**\n * Gets the groupId for the group that contains all the elements, or null if such a group does not exist\n * @param elements \n * @returns null or the groupId\n*/\ngetCommonGroupForElements(elements: ExcalidrawElement[]): string;\n\n/**\n * Gets all the elements from elements[] that share one or more groupIds with element.\n * @param element \n * @param elements - typically all the non-deleted elements in the scene \n * @returns \n*/\ngetElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}`,"1.7.13":`\n## Fix from Excalidraw.com\n- Resize multiple elements from center ([#5560](https://github.com/excalidraw/excalidraw/pull/5560))\n\n## Obsidian 0.16.0 compatibility (getting ready, because 0.16.0 will be available to insiders soon)\n- ${String.fromCharCode(96)}Install or update Excalidraw Scripts${String.fromCharCode(96)} was only available via the page header button. Because the page header is hidden by default, the install script action is now available through the pane menu and through the command palette as well.\n- ${String.fromCharCode(96)}Open selected text as link${String.fromCharCode(96)} page header button is now also available via the pane menu\n- ${String.fromCharCode(96)}Open in Adjacent Pane${String.fromCharCode(96)} and ${String.fromCharCode(96)}Open in Main Workspace${String.fromCharCode(96)} Excalidraw plugin settings is fixed\n`,"1.7.12":`\n## New from Excalidraw.com:\n- Showing a mid-point for lines and arrows. By touching the mid-point you can easily add an additional point to a two-point line. This is especially helpful when working on a tablet with touch input. ([#5534](https://github.com/excalidraw/excalidraw/pull/5534))\n- Lock angle when editing a line or an arrow with SHIFT pressed. Pressing SHIFT will restrict the edited point to snap to certain discrete angles. ([#5527](https://github.com/excalidraw/excalidraw/pull/5527))\n\n## Fixed:\n- Clicking Obsidian search-results pointing to an element on the canvas works again ([#734](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/734))\n- The feature to allow resizing and rotation of lines and arrows consisting of 3 or more points by showing the bounding box when selected is back ([#5554](https://github.com/excalidraw/excalidraw/pull/5554))\n\n## New\n- You can now use the following frontmatter key to allow/prevent automatic export of PNG/SVG images at a file level. This frontmatter will override export settings for the given file. ([#732](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/732)\n${String.fromCharCode(96)}excalidraw-autoexport: none|both|svg|png${String.fromCharCode(96)}\n`,"1.7.11":`\n## Fixed\n- Markdown files embed into the Excalidraw canvas crashed when the embedded markdown file included a nested Markdown embed with a block reference (i.e. the markdown document you are dropping into Excalidraw included a quote you referenced from another file using a ${String.fromCharCode(96)}[[other-file#^blockref]]${String.fromCharCode(96)} block or section reference. \n- Horizontal flipping of arrows and lines broke in 1.7.10. ([#726](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/726))\n`,"1.7.10":'\n## New from Excalidraw.com\n- Improved handling of arrows and lines. ([#5501](https://github.com/excalidraw/excalidraw/pull/5501))\n\n## Fixed\n- When opening a document in view-mode or zen-mode the panel buttons no longer flash up for a moment before switching to the desired mode. ([#479](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/479))\n- The "blinding white screen" no longer flashes up while loading the scene if the scene is dark ([#241](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/241))\n\n## Under the hood\n- Finalized migration to React 18 (no longer showing an error about React 17 compatibility mode in console log)\n',"1.7.9":'\n## New features and fixes from Excalidraw.com:\n- The right-click context menu is now scrollable on smaller screens ([#4030](https://github.com/excalidraw/excalidraw/pull/4030), [#5520](https://github.com/excalidraw/excalidraw/pull/5520))\n- Holding down the shift key while rotating an object will rotate it at discrete angles. Rotation is continuous without the SHIFT key. ([#5500](https://github.com/excalidraw/excalidraw/pull/5500))\n- Improved cursor alignment when resizing an element proportionally (maintain aspect ratio) by holding SHIFT during resizing. ([#5513](https://github.com/excalidraw/excalidraw/pull/5515))\n- Improved freedraw performance during editing (now has proper canvas caching), and no more blurry freedraw shapes when exporting on a higher scale. ([#5481](https://github.com/excalidraw/excalidraw/pull/5481))\n- Sidebar stencil library now correctly scrolls vertically ([#5459](https://github.com/excalidraw/excalidraw/pull/5459))\n\n## New in Obsidian:\n- Fullscreen mode on iPad. When there are multiple work panes open, clicking the fullscreen action in the Excalidraw Obsidian menu will hide the other work panes and make Excalidraw fullscreen.\n\n## Fixes in Obsidian:\n- Drag&Drop an image from a web browser into Excalidraw ([#697](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/697))\n- On Obsidian Mobile 1.3.0, when the drawing included an embedded image, switching from markdown-view to Excalidraw-view caused the drawing to disappear (it had to be recovered from backup or synchronization history). ([#715](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/715))\n- When working on a mobile device (tablet and phone) and using two work panes (one for drawing and the other for editing a markdown document) if you switched focus from the drawing to the markdown document auto-zoom changed the zoom level of the drawing. ([#723](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/723)), ([#705](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/705))\n- Actions on the Command Palette to create a new drawing in a new pane or reusing an existing adjacent pane; on the main workspace or in the Hover Editor or Popout window, were not working well. See related settings in plugin settings under "Links and transclusions" ([#718](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/718))\n- There was a problem with links with section references when the header contained space characters ([#704](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/704))\n- I added additional controls to avoid the fantom warnings about a problem with saving the Excalidraw file. Hopefully, from now on, you\'ll see this error less frequently ([#701](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/701))\n',"1.7.8":'\n# Optimized for Obsidian 0.15.5\n- I reworked how the plugin treats the "More options" menu because the old approach was interfering with Obsidian\n- Did thorough testing of handling of work panes on link click. There are two settings (open in the adjacent pane, and open in the main workspace), and three broad scenarios (Excalidraw in a work pane in the main Obsidian window, Excalidraw in a hover editor, and Excalidraw in an Obsidian popout window). All should work correctly now.\n',"1.7.7":`\n# New\n- Optimized for Obsidian 0.15.4\n- On a desktop, you can now use the META key when clicking on a link and it will open the link in a new popout Window.\n- ([#685](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/685)) Markdown embeds will now display correctly in Excalidraw even if they include photos and recursive markdown embeds. Unfortunately due to the limitations of Safari the inversion of colors on iPads in dark mode will not work well.\nSee an 18 second long demo video [here](https://user-images.githubusercontent.com/14358394/177213263-2a7ef1ca-0614-4190-8955-e830ca6b424b.mp4).\n\n\n# Fixed\n- ([#683](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/683)) Copy/Paste Markdown embeds to create another instance of the embed, thus you can reference different sections of the document in your drawing (something I broke in 1.7.6)\n- ([#684](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/684)) Transclusions incorrectly did not pick up subsections of a section. To understand this change, imagine for example the following document:\n${String.fromCharCode(96,96,96)}markdown\n# A\nabc\n# B\nxyz\n## b1\n123\n## b2\n456\n# C\n${String.fromCharCode(96,96,96)}\nWhen you transclude ${String.fromCharCode(96)}![[document#B]]${String.fromCharCode(96)} you expect the following result\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n\nb1\n123\n\nb2\n456\n${String.fromCharCode(96,96,96)}\nUntil this fix you only got\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n${String.fromCharCode(96,96,96)}`,"1.7.6":`\nThis release is the same as 1.7.5 except for two minor fixes\n- a fix for ExcaliBrain, becuase 1.7.5 broke ExcaliBrain.\n- I left out the release note from 1.7.5.\n\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.5":`\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.4":"\n- Obsidian 0.15.3 support dragging and dropping work panes between Obsidian windows.\n- Addressed Obsidian changes affecting the more-options menu.\n- Addressed incompatibility with Obsidian Mobile 1.2.2.\n","1.7.3":"\nObsidian 0.15.3 support for dragging and dropping work panes between Obsidian windows.\n","1.7.2":"\nDue to some of the changes to the code, I highly recommend restarting Obsidian after installing this update to Excalidraw.\n\n# Fixed\n- Stability improvements\n- Opening links in new panes and creating new drawings from the file explorer works properly again\n\n# New feature\n- Two new command palette actions:\n - Create a new drawing - IN A POPOUT WINDOW\n - Create a new drawing - IN A POPOUT WINDOW - and embed into active document\n![image|600](https://user-images.githubusercontent.com/14358394/175137800-88789f5d-f8e8-4371-a356-84f443aa6a50.png)\n- Added setting to prefer opening the link in the popout window or in the main workspace.\n![image|800](https://user-images.githubusercontent.com/14358394/175076326-1c8eee53-e512-4025-aedb-07881a732c69.png)\n","1.7.1":"\nSupport for Obsidian 0.15.0 popout windows. While there are no new features (apart from the popout window support) under the hood there were some major changes required to make this happen.\n","1.7.0":"\nThis is the first test version of Excalidraw Obsidian supporting Obsidian 0.15.0 popout windows. The current technical solution is not really sustainable, it's more of a working concept. I don't expect any real big issues with this version - on the contrary, this works much better with Obsidian 0.15.0 popout windows, but some of the features aren't working as expected in the Obsidian popouts yet. Also as a consequence of Obsidian 0.15.0 compatibility, multiple hover previews are no longer supported.\n","1.6.34":"\nWith 0.15.1 Obsidian is implementing some exciting, but significant changes to how windows are managed. I need to make some heavy/invasive changes to Excalidraw to adapt. The next version of the Excalidraw Plugin will require Obsidian 0.15.1 or newer. If you are not signed up for Obsidian Insider Builds, you will need to wait few weeks until the new Obsidian version will be made public.\n\n# Fixed\n- Error saving when the attachments folder exists but with a different letter case (i.e. ATTACHMENTS instead of attachments) [658](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/658). I added more error tolerance. As a general rule, however, I recommend treating file paths as case-sensitive as some platforms like iOS or LINUX have case-sensitive filenames, and synchronizing your Vault to these platforms will cause you headaches in the future.\n- Text detached from the container if you immediately clicked the text-align buttons on the properties pane while still editing the text in the container for the very first time. [#657](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/657).\n- Can't add text to the second container if the first container has text and the second container is centered around the first one. [#5300](https://github.com/excalidraw/excalidraw/issues/5300)\n","1.6.33":`\n# Fixed\n- Under some special circumstances when you embedded a drawing (guest) into another drawing (host), the host did not update when you modified the guest, until you closed Excalidraw completely and reopened the host. [#637](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/637)\n\n# New\n- ExcalidrawAutomate ${String.fromCharCode(96)}addLabelToLine${String.fromCharCode(96)} adds a text label to a line or arrow. Currently this function only works with simple straight 2-point (start & end) lines.\n${String.fromCharCode(96,96,96)}typescript\naddLabelToLine(lineId: string, label: string): string\n${String.fromCharCode(96,96,96)}\n- ExcalidrawAutomate ${String.fromCharCode(96)}ConnectObjects${String.fromCharCode(96)} now returns the ID of the arrow that was created.`,"1.6.32":"\n## Fixed\n- Filenames of embedded images and markdown documents did not get updated if the drawing was open in a work-pane while you changed the filename of the embedded file (image or markdown document) [632](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/632).\n- When you created a new text element and immediately dragged it, sometimes autosave interrupted the drag action and Excalidraw dropped the element you were dragging [630](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/630)\n- In some edge cases when you had the drawing open on your desktop and you also opened the same image on your tablet, Sync seemed to work in the background but the changes did not appear on the desktop until you closed and opened the drawing again. [629](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/629)\n- LaTeX support: Excalidraw must download a javascript library from one of the hosting sites for MathJax tex2svg. It seems that some people do not have access to the URL recommended in the first place by [MathJax](https://docs.mathjax.org/en/latest/web/start.html). If LaTeX formulas do not render correctly in Excalidraw, try changing the source server under Compatibility Settings in Excalidraw Plugin Settings. [628](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/628)","1.6.31":"\nMinor update:\n\n## Fixes\n- Color picker hotkeys were not working. They are working again [627](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/627)\n- I updated MathJax (LaTeX) to the newest (3.2.1) release.","1.6.30":"\n## Fixed\n- The load stencil library button stopped working after 1.6.29 due to an error in the core Excalidraw package. It is now fixed. [#625](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/625).\n- On iPad (probably other Obsidian mobile devices as well) after opening the command palette the positioning of the pointer was off. From now on, the pointer is automatically re-calibrated every 5 seconds.\n- I improved shared-vault collaboration sync. If the open file has not been saved for the last 5 minutes (i.e. you are not working on the drawing actively), and a newer remote version of the file is received via sync, then the remote file will simply overwrite the local file (i.e. the behavior of Excalidraw Obsidian prior to implementing Shared (Multiplayer) Vault Synchronization support in 1.6.29). This solution will support active collaboration when parties participating are actively editing the drawing, but also caters to the scenario when you open a drawing on one device (e.g. your desktop) and once you are finished editing you do not close the drawing, but simply put your PC to sleep... then later you edit the same drawing on your tablet. When you turn your desktop PC on the next time, the changes you've made on your tablet will be synchronized by Obsidian sync. In this case the changes from your tablet should be honored. If you have not edited the open drawing for more then 5 minutes (like in this scenario) there is no value in running the file comparison between the local version and the received one. This approach reduces the probability of running into sync conflicts.","1.6.29":"\n## New\n- I implemented sync support inspired by the new [Obsidian Multiplayer Sync](https://youtu.be/ZyCPhbd51eo) feature (available in insider build v0.14.10). \n - To manage expectations, this is not real-time collaboration like on Excalidraw.com. Synchronization is delayed by the frequency of the autosave timer (every 10 secs) and the speed of Obsidian sync. Also if a file has conflicting versions, Obsidian sync may delay the delivery of the changed file.\n - Even if you are not using multiplayer Obsidian Vaults, you may benefit from the improved synchronization, for example when using the freedraw tool on your tablet or phone, and in parallel editing the same drawing (e.g. typing text) on your desktop. I frequently do this in a mind-mapping scenario.\n - If the same Excalidraw sketch is open on multiple devices then Excalidraw will try to merge changes into the open drawing, thus parallel modifications on different devices are possible. If the same element is edited by multiple parties at the same time, then the foreign (received) version will be honored and the local changes lost. \n\n## Fixed:\n- Default embed width setting stopped working. [#622](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/622)\n- The link tooltip gets stuck on screen after Excalidraw closes [#621](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/621)\n- Layout error when using the Workspaces core plugin. [#28](https://github.com/zsviczian/excalibrain/issues/28)","1.6.28":'\n## New\n- When dropping a link from a DataView query into Excalidraw the link will honor your "New link format" preferences in Obsidian. It will add the "shortest path when possible", if that is your setting. If the link includes a block or section reference, then the link will automatically include an alias, such that only the filename is displayed (shortest path possible allowing) [#610](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/610)\n- If Excalidraw is in a Hover Editor and you open a link in another pane by CTRL+SHIFT+Click then the new page will open in the main workspace, and not in a split pane in the hover editor.\n\n## Fixed\n- New text elements get de-selected after auto-save [#609](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/609)\n- Update opacity of bound text when the opacity of the container is updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)\n- ExcalidrawAutomate: openFileInNewOrAdjacentLeaf() function. This also caused an error when clicking a link in Excalidraw in a hover window, when there were no leaves in the main workspace view.',"1.6.27":"\n## New Features\n- While these new features are benefitial for all Excalidraw Automation projects, the current changes are mainly in support of the [ExcaliBrain](https://youtu.be/O2s-h5VKCas) integration. See detailed [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.27) on GitHub.\n","1.6.26":`\n## Fixed\n- Dragging multiple files onto the canvas will now correctly [#589](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/589)\n - add multiple links\n - or if you hold the CTRL/(SHIFT on Mac) while dropping the files, then adding multiple images\n- Dropped images and links were not selectable with the selection tool until the file was saved. This is now fixed.\n- Display the linked block/section on link-hover instead of the full page. [#597](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/597)\n- Hover preview without CTRL/CMD works again. Requires configuration in plugin settings. [#595](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/595)\n- If you embed the same markdown document into a drawing multiple times, you can now display different sections of the document in each embedded object. [#601](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/601).\n- If you make a copy of an equation and edit this copy, the original equation will remain unchanged [#593](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/593)\n\n## New Features\n- When you drag files from Dataview-results onto the canvas the obsidian:// urls will be converted into wiki links.[#599](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/599)\n- I added one more frontmatter key: ${String.fromCharCode(96)}excalidraw-linkbutton-opacity: ${String.fromCharCode(96)} This sets the opacity of the blue link-button in the top right corner of the element, overriding the respective setting in plugin settings. Valid values are numbers between 0 and 1, where 0 means the button is fully transparent.\n\n## New Excalidraw Automate Features\n- As part of building the new [ExcaliBrain](https://youtu.be/O2s-h5VKCas) plugin, I've added a number of integration features. See the GitHub [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.26) for details.\n`,"1.6.25":`\n## Fixed\n- Pinch-zoom in view mode was broken ([#5001](https://github.com/excalidraw/excalidraw/pull/5001))\n- The add image button on iPad was not working ([#5038](https://github.com/excalidraw/excalidraw/pull/5038) & [#584](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/584))\n\n## New Features\n- If Excalidraw is open in a [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) when opening a link in a new pane Excalidraw will now open the link in the main workspace and not by splitting the view inside the hover-editor. \n- Excalidraw ScriptEngine settings\n - Script Engine settings now render HTML descriptions\n - If the ${String.fromCharCode(96)}height${String.fromCharCode(96)} property of a text setting is set, the corresponding text input field will be rendered as a textArea with the specified height.\n`,"1.6.24":"\n## Fixed\n- Link fixes:\n - Shift+Click on an element link (i.e. a link attached to a rectangle, ellipse, etc) did not open the link in a new leaf.\n - Clicking a link and opening it in a new leaf will now make the new leaf active and focused after the click.\n- Pointer calibration:\n - Opening an Excalidraw drawing with the [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) and dragging the editor to another location corrupted the calibration of the pointer in Excalidraw. Similarly, when rearranging workspace panes by dragging, Excalidraw lost pointer calibration.\n\n## New Features\n### From Excalidraw.com\n- Element locking: The lock and unlock action is in the context menu.\n\n### Plugin\n- Any element that has a link, ctrl/cmd+clicking anywhere on the object will trigger the link action. You no longer have to go to the link icon. ([#541](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/541#issuecomment-1075578365))\n","1.6.23":`\n## Fixed:\n- I have received some user feedback about cases where the text separated from the sticky note. This version comes with a cleanup algorithm that will try to automatically resolve these issues.\n- Autosave did not notice changes in a very obscure case, when you opened a drawing, resized an element, and without deselecting the element you immediately closed the drawing. ([565](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/565))\n- CTRL+Enter to create a task did not work in hover-editor when opened from Excalidraw. Now it does! Thanks @pjeby! ([567](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/567))\n\n## New Features\n- If you have the [Obsidian-Latex](https://github.com/xldenis/obsidian-latex) plugin installed, from now Excalidraw will also process the ${String.fromCharCode(96)}preambles.sty${String.fromCharCode(96)} file. ( [563](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/563))\n- I added a new setting ${String.fromCharCode(96)}Embed & Export >> If found, use the already exported image for preview${String.fromCharCode(96)}. This setting works in conjunction with the ${String.fromCharCode(96)}Auto-export SVG/PNG${String.fromCharCode(96)} settings. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See release notes for a [demo video](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.22).\n`,"1.6.22":'\n## Fixed:\n- "Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document" did not work as intended when an Excalidraw pane was already open. [#559](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/559)\n- [Obsidian-hover-editor](https://github.com/nothingislost/obsidian-hover-editor) related improvements [#555](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/555):\n - hovering triggered many hover preview windows in quick succession, and in some cases raised dozens of errors in the Developer Console\n - hover-editors were not visible in Excalidraw fullscreen mode\n\n## Minor new features:\n- Activating the eraser with key "e" will toggle the active tool and back. So for example if you are drawing a freedraw shape, you can press "e" to delete a few strokes, then press "e" again to continue drawing. On desktop PCs many styluses allow you to configure the pen button to trigger keypress "e". \n- New setting to enable penMode by default.\n- I increased the file size limit for images you paste into Excalidraw from 2MB to 20MB. You should however avoid very large images as they will impact the overall performance of the canvas. ([#557](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/557))\n',"1.6.21":`\nBefore I move on to implementing further features, I spent this week with further stabilizing and debugging the plugin. Hopefully this will result in a smoother, better experince for you all.\n\n## Fixed\n- Links in drawings (e.g. text elements or embedded images) were sometimes not updating when the source file was moved or renamed in your Vault. The issue happend when you had the drawing and the linked file open in panes next to each other. This has led to broken links. ([#546](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/546))\n- To remove complexity and potential error, I have hidden the autosave settings. From now, autosave is now always enabled. Excalidraw will attempt to save your drawing every 10 seconds, or if you are actively engaged in drawing a shape at that very moment (e.g. you are busy with a freedraw line), then autosave will save the drawing at the earliest next opportunity. I imlemented further triggers to save the drawing when there are changes in the drawing and you click outside the drawing canvas. There was a rare error involving text elements, that when happened blocked saving of the file. This error is now properly handeled. Also from now, you will receive a warning message if for any reason save encountered problems. \n- If you have two heading sections in your drawing, e.g. ${String.fromCharCode(96)}# Section abc${String.fromCharCode(96)} and ${String.fromCharCode(96)}# Section abc def${String.fromCharCode(96)}, then referencing ${String.fromCharCode(96)}[[#Section abc]]${String.fromCharCode(96)} in a link will highlight both text elements when clicking the link. These section references now work as expected. ([#530](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/530))`,"1.6.20":`\n
\n\n
\n\n## Fixed\n- ${String.fromCharCode(96)}ExcalidrawAutomate.create()${String.fromCharCode(96)} threw an error [539](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/539)\n\n## New Features\n### From excalidraw.com\n- Bind/unbind text to/from container [4935](https://github.com/excalidraw/excalidraw/pull/4935)\n\n### Plugin\nFrontmatter tags to customize image export at a file level [519](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/519). If these keys are present they will override the default excalidraw embed and export settings.\n- ${String.fromCharCode(96)}excalidraw-export-transparent: true${String.fromCharCode(96)}\n - true == Transparent / false == with background. \n- ${String.fromCharCode(96)}excalidraw-export-dark${String.fromCharCode(96)}\n - true == Dark mode / false == light mode.\n- ${String.fromCharCode(96)}excalidraw-export-svgpadding${String.fromCharCode(96)}\n - This only affects export to SVG. Specify the export padding for the image\n- ${String.fromCharCode(96)}excalidraw-export-pngscale${String.fromCharCode(96)}\n - This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.\n`,"1.6.19":"\nThis is a minor update fixing left-handed mode on iOS, and deploying improvements to the new Excalidraw Eraser.\n","1.6.18":`\n
\n\n
\n\n## Fixed\n- Modifying properties of a text element in tray mode. [496](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/496)\n- Friendly page aliases with iframely should work more reliably now.\n- I further improved resilience of loading from a damaged Excalidraw.md file.\n\n## New Features\n### From excalidraw.com\n- Added Eraser [4887](https://github.com/excalidraw/excalidraw/pull/4887)\n\n### Plugin\n- New setting for default transcluded-text line-wrap length. This is the default value for "wrapAt" in ${String.fromCharCode(96)}![[file#^block]]{wrapAt}${String.fromCharCode(96)}. Wrapping text using this feature will insert linebreaks in the transcluded text. An alternative approach is to transclude text inside sticky notes, in which case Excalidraw will automatically take care of text wrapping depending on the sticky note's width. [228](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/228)\n- New command palette action to toggle fullscreen mode, so you can assign a hotkey.\n- I added basic support for left-handed users. Enable it in plugin settings under the "Display" section. Currently, only affects the position of the tray in tray-mode. [510](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/510)\n- More flexible filename settings. ⚠ Due to the change, current settings may behave slightly differently compared to before. ⚠ [470](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/470)\n`,"1.6.17":`\n
\n\n
\n\n## Fixed\n- Freedraw shape's background color was missing in the SVG export. [#443](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/443)\n- In rare cases, when you only changed the background color of the drawing or edited the dimensions of an embedded markdown document, or changed an existing LaTeX formula, and then moved to another document in the vault, these changes did not get saved. [#503](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/503)\n- I resolved an Excalidraw Automate glitch with word wrapping in containers. EA generated containers with fixed line breaks. The same error also affected the conversion of drawings from the "legacy" Excalidraw.com file format.\n- When you allow/disable autosave in settings, this change will immediately take effect for all open Excalidraw workspace leaves. Until now autosave was activated only after you closed and reopened the Excalidraw view. [#502](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/502)\n- When you create a text element containing a ${String.fromCharCode(96,96,96)}[[markdown link]]${String.fromCharCode(96,96,96)} in raw mode, the new link was parsed nonetheless, and sometimes the link disappeared, leaving only the parsed text without the actual link. Creating links in raw-mode now works correctly.\n\n## New Features\n- The most recent 5 custom colors from the canvas are now added as color options to the element stroke and element background palette. [#4843](https://github.com/excalidraw/excalidraw/pull/4843)\n- Vertical text alignment for text in sticky notes [#4852](https://github.com/excalidraw/excalidraw/pull/4852)\n- Markdown embeds into Excalidraw now receive default styling, including that of tables, blockquotes, and code blocks. I also added a new setting and corresponding frontmatter-key to set the border-color for the embedded markdown document. You can override plugin settings at the document level by adding ${String.fromCharCode(96,96,96)}excalidraw-border-color: steelblue${String.fromCharCode(96,96,96)} to the markdown document you want to embed into your drawing. Valid values are css-color-name|#HEXcolor|any-other-html-standard-format.\n- In Obsidian search, when the text you were searching for is found in an Excalidraw document, clicking the link in search-results will open the drawing with the matching text element selected and zoomed.\n- Excalidraw now supports linking to text elements on the canvas and linking to non-text objects. \n1) You can reference text headings just the same as markdown headings in a document\ni.e. you have a text element that includes a valid markdown heading:\n${String.fromCharCode(96,96,96)}markdown\n# My Heading\ndetails...\n${String.fromCharCode(96,96,96)}\nor \n${String.fromCharCode(96,96,96)}markdown\ntext element text\n# my reference\n${String.fromCharCode(96,96,96)}\nYou can reference these like this respectively: ${String.fromCharCode(96,96,96)}[[#My Heading|display alias]]${String.fromCharCode(96,96,96)} and ${String.fromCharCode(96,96,96)}[[#my reference|alias]]${String.fromCharCode(96,96,96)}\n\n![image](https://user-images.githubusercontent.com/14358394/156890231-5a23bcb3-40a4-4ad7-b366-74c328620159.png)\n\n2) You can also reference element ids similar to block references\n- Links take this form ${String.fromCharCode(96,96,96)}[[#^elementID|alias]]${String.fromCharCode(96,96,96)}\n- Linking is supported by a new action on the Obsidian Tools Panel\n![image](https://user-images.githubusercontent.com/14358394/156894011-6442c3d6-aaff-43a8-bd77-513e450484ba.png)\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.17)\n`,"1.6.16":'\n
\n\n
\n\n\n## Fixed\n- CMD+Drag from the Obsidian File Manager does not work on Mac. You can now use SHIFT+Drag to embed an image or markdown document into a scene. ([#468](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/468))\n- Excalidraw Compressed JSON is now cut to smaller chunks (64 characters per paragraph, instead of the earlier 1024 characters). This should address search performance issues. ([#484](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/484))\n\n## New Features\n- I added the Obsidian Tools Panel\n - Click the Obsidian button to access the panel.\n - The tools panel contains key plugin commands and user / downloaded Excalidraw scripts.\n - Drag the panel with the handle at the top. Single click on the top to collapse the panel.\n - On Mobile press and hold the drag handle before dragging, to avoid activating the Obsidian slide in menus.\n - On Mobile long touch individual buttons on the panel to access tooltips.\n - Reinstall Excalidraw scripts to get the icons.\n- If you hold down SHIFT while resizing a sticky note, the text size will scale instead of text wrapping. ([Excalidraw tweet](https://twitter.com/aakansha1216/status/1496116528890417155?s=20&t=taXjA6I9Nd0T-C0wYBsG5g))\n- SVG export now includes links ([#4791](https://github.com/excalidraw/excalidraw/pull/4791))\n- Added full screen mode for Obsidian Mobile\n- Release notes\n - disable popup in settings\n - access release notes via the command palette, or the button on the tools panel\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.16)\n\n[![support-membership](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/support-tiers.jpg)](https://ko-fi.com/zsolt)\n'};class ReleaseNotes extends obsidian.Modal{constructor(A,e,t){super(A),this.plugin=e,this.version=t}onOpen(){var A;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(A=this.version)&&void 0!==A?A:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let A=this.plugin.settings.previousRelease;A=this.version===A?"0.0.0":A;const e=this.version?Object.keys(RELEASE_NOTES).filter((e=>"Intro"===e||isVersionNewerThanOther(e,A))).map((A=>`# ${A}\n${RELEASE_NOTES[A]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(A=>{A.style.textAlign="right",A.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}const dark='({scriptIconMap:A})))}setPreviewMode(A){this.setState((()=>({isPreviewMode:A})))}setFullscreen(A){this.setState((()=>({isFullscreen:A})))}setExcalidrawViewMode(A){this.setState((()=>({excalidrawViewMode:A})))}toggleVisibility(A){this.setTopCenter(A),this.setState((A=>({visible:!A.visible})))}setTheme(A){this.setState((e=>({theme:A})))}setTopCenter(A){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(A?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(A?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(A=0,e=0){this.setState((()=>{const{offsetTop:t,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,r=t-A,s=i-e,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-n+d,{top:r{A.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((A=>({minimized:!A.minimized})))},onPointerDown:A=>{const e=A=>{A.preventDefault(),this.pos1=this.pos3-A.clientX,this.pos2=this.pos4-A.clientY,this.pos3=A.clientX,this.pos4=A.clientY,this.updatePosition(this.pos2,this.pos1)},t=()=>{var A,i;null===(A=this.props.view.ownerDocument)||void 0===A||A.removeEventListener("pointerup",t),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",e)};A.preventDefault(),this.penDownX=this.pos3=A.clientX,this.penDownY=this.pos4=A.clientY,this.props.view.ownerDocument.addEventListener("pointerup",t),this.props.view.ownerDocument.addEventListener("pointermove",e)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"svg",title:t$d("EXPORT_SVG"),action:()=>{this.props.view.saveSVG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"svg")}`)},icon:ICONS.exportSVG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"png",title:t$d("EXPORT_PNG"),action:()=>{this.props.view.savePNG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"png")}`)},icon:ICONS.exportPNG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"excalidraw",title:t$d("EXPORT_EXCALIDRAW"),action:()=>{this.props.view.exportExcalidraw()},icon:ICONS.exportExcalidraw,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:()=>{this.props.centerPointer(),insertLaTeXToView(this.props.view)},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:A=>{this.props.view.copyLinkToSelectedElementToClipboard(A[CTRL_OR_CMD]?"group=":A.shiftKey?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(A){if(0===Object.keys(this.state.scriptIconMap).length)return"";const e=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,t=t=>A?t.startsWith(e):!t.startsWith(e);return 0===Object.keys(this.state.scriptIconMap).filter((A=>t(A))).length?"":React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,A?"Downloaded":"User"," Scripts"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.keys(this.state.scriptIconMap).filter((A=>t(A))).sort().map((e=>React__namespace.createElement(ActionButton,{key:e,title:A?this.state.scriptIconMap[e].name.replace("Downloaded/",""):this.state.scriptIconMap[e].name,action:async()=>{const A=this.props.view.app.vault.getAbstractFileByPath(e);A&&A instanceof obsidian.TFile&&this.props.view.plugin.scriptEngine.executeScript(this.props.view,await this.props.view.plugin.app.vault.read(A),this.props.view.plugin.scriptEngine.getScriptName(A))},icon:this.state.scriptIconMap[e].svgString?React__namespace.createElement("img",{src:`data:image/svg+xml,${encodeURIComponent("dark"===this.state.theme?this.state.scriptIconMap[e].svgString.replace("e.filter((e=>{if(t&&e.type!==t)return!1;const[i,n,a,r]=rotatedDimensions(e);return i<=A.x&&i+a>=A.x&&n<=A.y&&n+r>=A.y})),getTextElementAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return{id:null,text:null};const i=getElementsAtPointer(A,t.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((A=>{const t=e.textMode===TextMode.parsed?e.excalidrawData.getRawText(A.id):A.text;return!!t&&(!!t.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(t).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(A,t.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(A,t.getSceneElements()).filter((A=>A.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0};var TextMode;!function(A){A.parsed="parsed",A.raw="raw"}(TextMode||(TextMode={}));const addFiles=async(A,e,t)=>{if(!A||0===A.length||!e)return;const i=e.excalidrawAPI;if(!i)return;if(A=A.filter((A=>A&&A.size&&A.size.height>0&&A.size.width>0)),0===A.length)return;const n=scaleLoadedImage(e.getScene(),A);void 0===t&&(t=n.scene.appState.theme),n.dirty&&await e.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of A)if(e.excalidrawData.hasFile(i.id)&&e.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,t,i.hasSVGwithBitmap),e.excalidrawData.hasEquation(i.id)){const A=e.excalidrawData.getEquation(i.id).latex;e.excalidrawData.setEquation(i.id,{latex:A,isLoaded:!0})}i.addFiles(A)},warningUnknowSeriousError=()=>{new obsidian.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian.TextFileView{constructor(A,e){super(A),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.metaKeyDown=!1,this.ctrlKeyDown=!1,this.shiftKeyDown=!1,this.altKeyDown=!1,this.semaphores={viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var A;return null!==(A=this.hookServer)&&void 0!==A?A:this.plugin.ea},this.preventReloadResetTimer=null,this.fullscreenModalObserver=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.plugin=e,this.excalidrawData=new ExcalidrawData(e),this.hookServer=e.ea}setHookServer(A){this.hookServer=A||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,t=app.vault.getAbstractFileByPath(obsidian.normalizePath(e));t&&t instanceof obsidian.TFile?app.vault.modify(t,JSON.stringify(A,null,"\t")):app.vault.create(e,JSON.stringify(A,null,"\t"))}async exportExcalidraw(){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async A=>{if(!A)return;A=`${A}.excalidraw`;const e=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(e);const t=getNewUniqueFilepath(app.vault,A,e);app.vault.create(t,JSON.stringify(this.getScene(),null,"\t")),new obsidian.Notice(`Exported to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(A,e){const t={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},A),{appState:Object.assign(Object.assign({},A.appState),{theme:null!=e?e:getExportTheme(this.plugin,this.file,A.appState.theme)})}),t,getExportPadding(this.plugin,this.file))}async saveSVG(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=async(e,t)=>{const i=app.vault.getAbstractFileByPath(obsidian.normalizePath(e)),n=await this.svg(A,t);if(!n)return;const a=(new XMLSerializer).serializeToString(embedFontsInSVG(n,this.plugin));i&&i instanceof obsidian.TFile?await app.vault.modify(i,a):await app.vault.create(e,a)};this.plugin.settings.autoExportLightAndDark?(await e(getIMGFilename(this.file.path,"dark.svg"),"dark"),await e(getIMGFilename(this.file.path,"light.svg"),"light")):await e(getIMGFilename(this.file.path,"svg"))}async png(A,e){const t={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},A),{appState:Object.assign(Object.assign({},A.appState),{theme:null!=e?e:getExportTheme(this.plugin,this.file,A.appState.theme)})}),t,getExportPadding(this.plugin,this.file),getPNGScale(this.plugin,this.file))}async savePNG(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=async(e,t)=>{const i=app.vault.getAbstractFileByPath(obsidian.normalizePath(e)),n=await this.png(A,t);n&&(i&&i instanceof obsidian.TFile?await app.vault.modifyBinary(i,await n.arrayBuffer()):await app.vault.createBinary(e,await n.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await e(getIMGFilename(this.file.path,"dark.png"),"dark"),await e(getIMGFilename(this.file.path,"light.png"),"light")):await e(getIMGFilename(this.file.path,"png"))}async save(A=!0,e=!1){if(this.isLoaded&&!this.semaphores.saving)if(this.semaphores.saving=!0,this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const t=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||e),i=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(i):await this.excalidrawData.syncElements(i,this.excalidrawAPI.getAppState().selectedElementIds)&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((A=>A.isDeleted))),t&&(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=A,await super.save(),this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),A)){const A=this;this.preventReloadResetTimer=setTimeout((()=>A.semaphores.preventReload=!1),2e3)}if(!this.semaphores.autosaving&&!this.semaphores.viewunload){const A=this.excalidrawData.autoexportPreference;(A===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||A===AutoexportPreference.both||A===AutoexportPreference.svg)&&await this.saveSVG(),(A===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||A===AutoexportPreference.both||A===AutoexportPreference.png)&&await this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(A){errorlog({where:"ExcalidrawView.save",fn:this.save,error:A}),warningUnknowSeriousError()}this.semaphores.saving=!1}else this.semaphores.saving=!1}getViewData(){if(!this.getScene)return this.data;if(!this.excalidrawData.loaded)return this.data;const A=this.getScene();if(!this.compatibilityMode){let A=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==A&&(A=this.data.search(/(%%\n)?# Drawing\n/)),-1==A)return this.data;let e=this.data.substring(0,A).replace(/excalidraw-plugin:\s.*\n/,"excalidraw-plugin: "+(this.textMode===TextMode.raw?"raw\n":"parsed\n"));const t=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;e.match(t)&&(e=e.replace(t,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const i=e+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((A=>A.isDeleted)));return this.excalidrawData.disableCompression=!1,i}return this.compatibilityMode?JSON.stringify(A,null,"\t"):this.data}addFullscreenchangeEvent(){this.contentEl.onfullscreenchange=()=>{this.plugin.settings.zoomToFitOnResize&&this.zoomToFit(),this.isFullscreen()||(this.clearFullscreenObserver(),this.contentEl.removeAttribute("style")),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(this.isFullscreen())}}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((A=>{A[0].containerEl.style.display=A[1]})),this.hiddenMobileLeaves=[])}gotoFullscreen(){var A;if(this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef){if(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),app.isMobile){obsidian.Platform.isIosApp&&(this.restoreMobileLeaves(),app.workspace.getLayout().main.children.filter((A=>"leaf"===A.type)).forEach((A=>{const e=app.workspace.getLeafById(A.id);e!==this.leaf&&(this.hiddenMobileLeaves.push([e,e.containerEl.style.display]),e.containerEl.style.display="none")})));const A=document.createElement("style");A.id="excalidraw-full-screen",A.textContent="\n .workspace-leaf-content .view-content {\n padding: 0px !important;\n }\n .view-header {\n height: 1px !important;\n }\n .status-bar {\n display: none !important;\n }";const e=document.getElementById(A.id);e&&document.head.removeChild(e),document.head.appendChild(A)}this.contentEl.requestFullscreen(),null===(A=this.excalidrawWrapperRef.current.firstElementChild)||void 0===A||A.focus(),this.contentEl.setAttribute("style","padding:0px;margin:0px;"),this.fullscreenModalObserver=new MutationObserver((A=>{if(1!==A.length)return;if(!A[0].addedNodes||1!==A[0].addedNodes.length)return;const e=A[0].addedNodes[0];if(e.nodeType!==Node.ELEMENT_NODE)return;const t=e;t.classList.contains("modal-container")&&(this.contentEl.appendChild(t),t.querySelector("input").focus())})),this.fullscreenModalObserver.observe(this.ownerDocument.body,{childList:!0,subtree:!1})}}clearFullscreenObserver(){this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}isFullscreen(){return this.hiddenMobileLeaves.length>0||this.ownerDocument.fullscreenEnabled&&this.ownerDocument.fullscreenElement===this.contentEl}exitFullscreen(){if(console.log("Exit Fullscreen"),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1),app.isMobile){this.restoreMobileLeaves();const A=document.getElementById("excalidraw-full-screen");A&&document.head.removeChild(A)}this.ownerDocument.exitFullscreen()}async handleLinkClick(A,e){var t,i,n,a;const r=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&this.ownerDocument.body.removeChild(r);const s=this.getSelectedTextElement(),o=(null==s?void 0:s.id)?null:this.getSelectedImageElement(),l=(null==o?void 0:o.id)||(null==s?void 0:s.id)?null:this.getSelectedElementWithLink();let c=null,d=null,h=null;if((null==s?void 0:s.id)||(null==l?void 0:l.id)){if(h=null!==(t=null==l?void 0:l.text)&&void 0!==t?t:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(s.id):s.text,!h)return;if(h=h.replaceAll("\n",""),this.getHookServer().onLinkClickHook){const A=null!==(i=s.id)&&void 0!==i?i:l.id,t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,e,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id!==null",fn:this.getHookServer().onLinkClickHook,error:A})}}if(h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");const n=REGEX_LINK.getRes(h).next();if(!n.value){const A=h.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!A.value||A.value.length<2)return;const e=app.workspace.getLeavesOfType("search");if(0==e.length)return;return e[0].view.setQuery(`tag:${A.value[1]}`),app.workspace.revealLeaf(e[0]),void(this.isFullscreen()&&this.exitFullscreen())}if(h=REGEX_LINK.getLink(n),h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");if(h.search("#")>-1){const A=getLinkParts(h,this.file);d=`#${A.isBlockRef?"^":""}${A.ref}`,h=A.path}if(h.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);c=A.app.metadataCache.getFirstLinkpathDest(h,A.file.path)}if(null==o?void 0:o.id){if(this.excalidrawData.hasEquation(o.fileId)){const A=this.excalidrawData.getEquation(o.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),A,"").openAndGetValue((async e=>{e&&e!==A&&(this.excalidrawData.setEquation(o.fileId,{latex:e,isLoaded:!1}),await this.save(!1),await updateEquation(e,o.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(o.fileId)){if(e.altKey){const A=this.excalidrawData.getFile(o.fileId);if("md"===A.file.extension&&!this.plugin.isExcalidrawFile(A.file))return void new Prompt(app,"Customize the link",A.linkParts.original,"","Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT").openAndGetValue((async e=>{e&&A.linkParts.original!==e&&(A.resetImage(this.file.path,e),await this.save(!1),await this.loadSceneFiles(),this.setDirty(2))}))}h=this.excalidrawData.getFile(o.fileId).file.path,c=this.excalidrawData.getFile(o.fileId).file}}if(h){if(this.getHookServer().onLinkClickHook){const A=null!==(a=null!==(n=o.id)&&void 0!==n?n:s.id)&&void 0!==a?a:l.id,t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,e,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id===null",fn:this.getHookServer().onLinkClickHook,error:A})}}try{if(e.shiftKey&&this.isFullscreen()&&this.exitFullscreen(),!c)return void new NewFileActions(this.plugin,h,e.shiftKey,!app.isMobile&&e.metaKey,A).open();const t=!app.isMobile&&(e.metaKey&&this.linksAlwaysOpenInANewPane||e.metaKey)?app.workspace.openPopoutLeaf():e.shiftKey||this.linksAlwaysOpenInANewPane?getNewOrAdjacentLeaf(this.plugin,A.leaf):A.leaf;await t.openFile(c,d?{active:!1,eState:{subpath:d}}:void 0)}catch(A){new obsidian.Notice(A,4e3)}}else new obsidian.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4)}onResize(){var A,e;if(this.plugin.leafChangeTimeout)return;const t=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&t&&"text"!==(null===(e=null===(A=t.getAppState())||void 0===A?void 0:A.editingElement)||void 0===e?void 0:e.type)&&this.zoomToFit(!1)}getSceneVersion(A){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(A.filter((A=>!A.isDeleted)))}onload(){const A=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||A||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const e=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=e,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=A=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("disk",t$d("FORCE_SAVE"),(async()=>{this.semaphores.autosaving||(this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,new obsidian.Notice("Save successful",1e3))})),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(A=>this.handleLinkClick(this,A))),app.isMobile||this.addAction("fullscreen","Press ESC to exit fullscreen mode",(()=>this.gotoFullscreen()));const t=this;app.workspace.onLayoutReady((async()=>{t.contentEl.addClass("excalidraw-view"),await t.addSlidingPanesListner(),t.addParentMoveObserver(),t.onKeyUp=A=>{t.ctrlKeyDown=A[CTRL_OR_CMD],t.shiftKeyDown=A.shiftKey,t.altKeyDown=A.altKey,t.metaKeyDown=A.metaKey},t.onKeyDown=A=>{this.ctrlKeyDown=A[CTRL_OR_CMD],this.shiftKeyDown=A.shiftKey,this.altKeyDown=A.altKey,this.metaKeyDown=A.metaKey},t.ownerWindow.addEventListener("keydown",t.onKeyDown,!1),t.ownerWindow.addEventListener("keyup",t.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const A=this;this.slidingPanesListner=()=>{A.refresh&&A.refresh()};let e=app.workspace.rootSplit;for(;!e;)await sleep(50),e=app.workspace.rootSplit;e.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var A;this.slidingPanesListner&&(null===(A=app.workspace.rootSplit.containerEl)||void 0===A||A.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var A;const e=null!==(A=getParentOfClass(this.containerEl,"popover"))&&void 0!==A?A:getParentOfClass(this.containerEl,"workspace-leaf");if(!e)return;const t=e.classList.contains("popover");this.offsetLeft=e.offsetLeft,this.offsetTop=e.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async A=>{const e=A[0].target;if(!(e instanceof HTMLElement))return;const{offsetLeft:t,offsetTop:n}=e;t===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=t,i.offsetTop=n)})),this.parentMoveObserver.observe(e,{attributeOldValue:!0,attributeFilter:t?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(A){const e=this.excalidrawAPI;if(!this.excalidrawRef||!e)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const t=e.getAppState();this.excalidrawData.scene.theme=A,this.updateScene({appState:Object.assign(Object.assign({},t),{theme:A}),commitToHistory:!1})}async changeTextMode(A,e=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=A,A===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(A===TextMode.parsed);const t=this.excalidrawAPI;t&&e&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(!1),t.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const A=async()=>{var e;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval));const t=this.excalidrawAPI;if(!t)return void warningUnknowSeriousError();const i=t.getAppState(),n=null!==i.editingElement;this.refresh(),this.semaphores.dirty&&this.semaphores.dirty==(null===(e=this.file)||void 0===e?void 0:e.path)&&this.plugin.settings.autosave&&!this.semaphores.forceSaving&&!n&&null===i.draggingElement?(this.autosaveTimer=null,this.semaphores.autosaving=!0,this.excalidrawRef&&await this.save(),this.semaphores.autosaving=!1,this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval)):this.autosaveTimer=setTimeout(A,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty?1e3:this.plugin.settings.autosaveInterval)};this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.plugin.settings.autosave&&(this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval))}onunload(){var A,e,t,i,n,a;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,null===(A=this.ownerWindow)||void 0===A||A.removeEventListener("keydown",this.onKeyDown,!1),null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(A){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:A})}const r=null===(i=null===(t=this.containerEl)||void 0===t?void 0:t.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(r)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null),this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}async reload(A=!1,e){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const t=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!t)return;const i=e&&e===this.file;i&&(this.data=await app.vault.read(e),this.preventAutozoom()),A?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}async zoomToElementId(A,e){let t=0;for(;!this.excalidrawAPI&&t++<100;)await sleep(50);const i=this.excalidrawAPI;if(!i)return;const n=i.getSceneElements();let a=n.filter((e=>e.id===A));if(0!==a.length){if(e){const A=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],n);A.length>0&&(a=A)}this.preventAutozoom(),this.zoomToElements(!i.getAppState().viewModeEnabled,a)}}setEphemeralState(A){if(!A)return;const e=this;let t=null;A.match&&A.match.content&&A.match.matches&&1===A.match.matches.length&&2===A.match.matches[0].length&&(t=[A.match.content.substring(A.match.matches[0][0],A.match.matches[0][1])]);const i=getEmbeddedFilenameParts(A.subpath);i.hasBlockref&&setTimeout((()=>e.zoomToElementId(i.blockref,i.hasGroupref)),300),i.hasSectionref?t=[`# ${i.sectionref}`]:A.line&&A.line>0&&(t=[this.data.split("\n")[A.line-1]]),t&&setTimeout((async()=>{let A=0;for(;!e.excalidrawAPI&&A++<100;)await sleep(50);const n=e.excalidrawAPI;if(!n)return;const a=n.getSceneElements();e.selectElementsMatchingQuery(a,t,!n.getAppState().viewModeEnabled,i.hasSectionref,i.hasGroupref)}),300),super.setEphemeralState(A)}clear(){const A=this.excalidrawAPI;this.excalidrawRef&&A&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,A.resetScene(),A.history.clear(),this.previousSceneVersion=0)}async setViewData(A,e=!1){this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),this.isLoaded=!1,e&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,A=this.data=A.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(A,this.file),this.plugin.settings.compatibilityMode||new obsidian.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const e=getTextMode(A);this.changeTextMode(e,!1);try{if(!await this.excalidrawData.loadData(A,this.file,this.textMode))return}catch(A){return errorlog({where:"ExcalidrawView.setViewData",error:A}),new obsidian.Notice(`Error loading drawing:\n${A.message}${"Cannot read property 'index' of undefined"===A.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4),void this.setMarkdownView()}}await this.loadDrawing(!0);const e=this.excalidrawData.getOnLoadScript();if(e){const A=this,t=this.file.basename+"-onlaod-script",i=()=>{A.excalidrawAPI?A.plugin.scriptEngine.executeScript(A,e,t):setTimeout(i,200)};i()}this.isLoaded=!0}))}async loadSceneFiles(){if(!this.excalidrawAPI)return;const A=new EmbeddedFilesLoader(this.plugin),e=A=>{this.nextLoader=null,this.activeLoader=A,A.loadSceneFiles(this.excalidrawData,((A,t)=>{A&&(addFiles(A,this,t),this.activeLoader=null,this.nextLoader?e(this.nextLoader):this.excalidrawData.getFiles().some((A=>{if(A&&!A.file&&A.attemptCounter<30){const A=this,e=this.file.path;return setTimeout((async()=>{A&&A.excalidrawAPI&&e===A.file.path&&A.loadSceneFiles()}),2e3),!0}return!1})))}),0)};this.activeLoader?this.nextLoader=A:e(A)}async synchronizeWithData(A){let e=0;for(;this.semaphores.saving&&e++<30;)await sleep(100);if(e>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let t=!1;try{const e=A.deletedElements.map((A=>A.id)),i=this.excalidrawAPI.getSceneElements().filter((A=>!e.contains(A.id))),n=i.map((A=>A.id)),a=e=>{switch(e.type){case"text":this.excalidrawData.textElements.set(e.id,A.textElements.get(e.id));break;case"image":A.getFile(e.fileId)?(this.excalidrawData.setFile(e.fileId,A.getFile(e.fileId)),t=!0):A.getEquation(e.fileId)&&(this.excalidrawData.setEquation(e.fileId,A.getEquation(e.fileId)),t=!0)}A.elementLinks.has(e.id)&&this.excalidrawData.elementLinks.set(e.id,A.elementLinks.get(e.id))};A.scene.elements.forEach(((e,r,s)=>{const o=i.filter((A=>A.id===e.id))[0];if(o&&(o.versionA.view.file===this.file)).length>0}setDirty(A){var e;this.semaphores.dirty=null===(e=this.file)||void 0===e?void 0:e.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),app.isMobile||obsidian.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){const A=this.excalidrawAPI;if(!A)return;this.semaphores.dirty=null;const e=A.getSceneElements();e&&(this.previousSceneVersion=this.getSceneVersion(e)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var A;const e=this.excalidrawAPI;if(!e)return;const t=e.getAppState(),i=null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current;i&&(i.setTheme(t.theme),i.setExcalidrawViewMode(t.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(A){return"excalidraw"===A}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}onPaneMenu(A,e){this.excalidrawAPI&&this.getViewSelectedElements().some((A=>"text"===A.type))&&A.addItem((A=>{A.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((A=>{this.handleLinkClick(this,A)}))})),this.compatibilityMode?A.addItem((A=>{A.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):A.addItem((A=>{A.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})).addItem((A=>{A.setTitle(t$d("EXPORT_EXCALIDRAW")).setIcon(ICON_NAME).onClick((async()=>{this.exportExcalidraw()})).setSection("pane")})),A.addItem((A=>{A.setTitle(t$d("SAVE_AS_PNG")).setIcon("save-png").setSection("pane").onClick((async A=>{if(this.getScene&&this.file)if(A[CTRL_OR_CMD]){const A=await this.png(this.getScene());if(!A)return;const e=new FileReader;e.readAsDataURL(A);const t=this;e.onloadend=function(){download(null,e.result,`${t.file.basename}.png`)}}else this.savePNG()})).setSection("pane")})).addItem((A=>{A.setTitle(t$d("SAVE_AS_SVG")).setIcon("save-svg").setSection("pane").onClick((async A=>{if(this.getScene&&this.file){if(A[CTRL_OR_CMD]){let A=await this.svg(this.getScene());return A?(A=embedFontsInSVG(A,this.plugin),void download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`)):null}this.saveSVG()}}))})).addItem((A=>{A.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(A,e)}async getLibrary(){var A;const e=this.plugin.getStencilLibrary();return(null==e?void 0:e.library)?e.library:null!==(A=null==e?void 0:e.libraryItems)&&void 0!==A?A:[]}async instantiateExcalidraw(A){for(;!this.semaphores.scriptsReady;)await sleep(50);const e=this.plugin.getPackage(this.ownerWindow).react,t=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const i=e.createElement((()=>{let t={x:0,y:0};const i=e.useRef(null),n=e.useRef(null),[a,r]=e.useState({width:void 0,height:void 0});let s=null,o=null,l=null,c=0,d=!1;this.toolsPanelRef=n,this.obsidianMenu=new ObsidianMenu(this.plugin,n);const h=()=>{let A,e;const t=new Promise(((t,i)=>{A=t,e=i}));return t.resolve=A,t.reject=e,t},g=e.useMemo((()=>({current:{readyPromise:h()}})),[]);e.useEffect((()=>{g.current.readyPromise.then((A=>{var e;this.excalidrawAPI=A,A.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.loadSceneFiles(),this.updateContainerSize(null,!0),null===(e=this.excalidrawWrapperRef.current.firstElementChild)||void 0===e||e.focus(),this.addFullscreenchangeEvent(),this.initializeToolsIconPanelAfterLoading()}))}),[g]),this.excalidrawRef=g,this.excalidrawWrapperRef=i,e.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const A=()=>{try{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(A){errorlog({where:"Excalidraw React-Wrapper, onResize",error:A})}};return this.ownerWindow.addEventListener("resize",A),()=>{var e;return null===(e=this.ownerWindow)||void 0===e?void 0:e.removeEventListener("resize",A)}}),[i]),this.getSelectedTextElement=()=>{var A;const e=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(s){const A=s;return s=null,A}return{id:null,text:null}}const t=e.getSceneElements().filter((A=>A.id===Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if("text"===t[0].type)return{id:t[0].id,text:t[0].text};if("image"===t[0].type)return{id:null,text:null};const i=null===(A=t[0].boundElements)||void 0===A?void 0:A.filter((A=>"text"===A.type));if((null==i?void 0:i.length)>0){const A=e.getSceneElements().filter((A=>A.id===i[0].id));if(A.length>0)return{id:A[0].id,text:A[0].text}}if(0===t[0].groupIds.length)return{id:null,text:null};const n=t[0].groupIds[0],a=e.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(n)})).filter((A=>"text"===A.type));return 0===a.length?{id:null,text:null}:{id:t[0].id,text:t[0].text}},this.getSelectedImageElement=()=>{const A=this.excalidrawAPI;if(!A)return{id:null,fileId:null};if(A.getAppState().viewModeEnabled){if(o){const A=o;return o=null,A}return{id:null,fileId:null}}const e=A.getSceneElements().filter((e=>e.id==Object.keys(A.getAppState().selectedElementIds)[0]));if(0===e.length)return{id:null,fileId:null};if("image"==e[0].type)return{id:e[0].id,fileId:e[0].fileId};if("text"===e[0].type)return{id:null,fileId:null};if(0===e[0].groupIds.length)return{id:null,fileId:null};const t=e[0].groupIds[0],i=A.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(t)})).filter((A=>"image"==A.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const A=this.excalidrawAPI;if(!A)return{id:null,text:null};if(A.getAppState().viewModeEnabled){if(l){const A=l;return l=null,A}return{id:null,text:null}}const e=A.getSceneElements().filter((e=>e.id==Object.keys(A.getAppState().selectedElementIds)[0]));if(0===e.length)return{id:null,text:null};if(e[0].link)return{id:e[0].id,text:e[0].link};if(0===e[0].groupIds.length)return{id:null,text:null};const t=e[0].groupIds[0],i=A.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(t)})).filter((A=>A.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(A,e,i=!0)=>{var n,a,r,s,o;const l=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!l)return;const c=l.getAppState(),d=this.plugin.ea;d.reset(),d.style.strokeColor=null!==(n=c.currentItemStrokeColor)&&void 0!==n?n:"black",d.style.opacity=null!==(a=c.currentItemOpacity)&&void 0!==a?a:1,d.style.fontFamily=null!==(r=null!=e?e:c.currentItemFontFamily)&&void 0!==r?r:1,d.style.fontSize=null!==(s=c.currentItemFontSize)&&void 0!==s?s:20,d.style.textAlign=null!==(o=c.currentItemTextAlign)&&void 0!==o?o:"left";const h=d.addText(t.x,t.y,A);return await this.addElements(d.getElements(),!1,i),h},this.addElements=async(A,e=!1,i=!1,n,a=!1)=>{const r=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!r)return!1;const s=A.filter((A=>"text"==A.type));for(let A=0;AA.id)),l=r.getSceneElements(),c=[];for(let e=0;eA.id===t))[0],c.push(t))}const d=a?l.concat(A.filter((A=>!c.includes(A.id)))):A.filter((A=>!c.includes(A.id))).concat(l);if(await this.updateScene({elements:d,commitToHistory:!0},!1,!0),n&&n!=={}){const A=[];Object.keys(n).forEach((e=>{if(A.push({mimeType:n[e].mimeType,id:n[e].id,dataURL:n[e].dataURL,created:n[e].created}),n[e].file){const A=new EmbeddedFile(this.plugin,this.file.path,n[e].file),t=r.getAppState();A.setImage(n[e].dataURL,n[e].mimeType,n[e].size,"dark"===t.theme,n[e].hasSVGwithBitmap),this.excalidrawData.setFile(n[e].id,A)}n[e].latex&&this.excalidrawData.setEquation(n[e].id,{latex:n[e].latex,isLoaded:!0})})),r.addFiles(A)}return i?await this.save(!1):this.setDirty(5),!0},this.getScene=()=>{const A=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!A)return null;const e=A.getSceneElements(),t=A.getAppState(),i=A.getFiles();if(i){const A=e.filter((A=>"image"===A.type)).map((A=>A.fileId)),t=Object.keys(i).filter((e=>!A.contains(e)));t.forEach((A=>delete i[A]))}return{type:"excalidraw",version:2,source:"https://excalidraw.com",elements:e,appState:{theme:t.theme,viewBackgroundColor:t.viewBackgroundColor,currentItemStrokeColor:t.currentItemStrokeColor,currentItemBackgroundColor:t.currentItemBackgroundColor,currentItemFillStyle:t.currentItemFillStyle,currentItemStrokeWidth:t.currentItemStrokeWidth,currentItemStrokeStyle:t.currentItemStrokeStyle,currentItemRoughness:t.currentItemRoughness,currentItemOpacity:t.currentItemOpacity,currentItemFontFamily:t.currentItemFontFamily,currentItemFontSize:t.currentItemFontSize,currentItemTextAlign:t.currentItemTextAlign,currentItemStrokeSharpness:t.currentItemStrokeSharpness,currentItemStartArrowhead:t.currentItemStartArrowhead,currentItemEndArrowhead:t.currentItemEndArrowhead,currentItemLinearStrokeSharpness:t.currentItemLinearStrokeSharpness,gridSize:t.gridSize,colorPalette:t.colorPalette},prevTextMode:this.prevTextMode,files:i}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const A=this.excalidrawAPI;(null==g?void 0:g.current)&&A&&A.refresh()};let u={x:0,y:0},p=null;this.clearHoverPreview=()=>{if(p){const A=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(A),p=null}};const w=A=>{var e,t,i,n,a;const r=null===(e=app.dragManager.draggable)||void 0===e?void 0:e.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(t=app.dragManager.draggable)||void 0===t?void 0:t.type)?"link":(null===(i=A.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=A.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=A.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let m=!1;const f=()=>{if(s=getTextElementAtPointer(t,this),s&&s.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(s=null)}if(o=getImageElementAtPointer(t,this),o&&o.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(o=null)}if(l=getElementWithLinkAtPointer(t,this),l&&l.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(l=null)}};let B=null;const E=(A,e)=>{var i,n;if(!B)return;if(null===(n=null===(i=this.excalidrawAPI)||void 0===i?void 0:i.getAppState())||void 0===n?void 0:n.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!A){if(!t)return;A="";const i=getTextElementAtPointer(t,this);if(i&&i.text){e=this.excalidrawAPI.getSceneElements().filter((A=>A.id===i.id))[0];const t=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(i.id):i.text;if(!t)return;if(t.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(t).next();if(!n.value)return;if((A=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const i=getImageElementAtPointer(t,this);if(e=this.excalidrawAPI.getSceneElements().filter((A=>A.id===i.id))[0],!i||!i.fileId)return;if(!this.excalidrawData.hasFile(i.fileId))return;const n=this.excalidrawData.getFile(i.fileId),a=n.linkParts.ref?`#${n.linkParts.isBlockRef?"^":""}${n.linkParts.ref}`:"";A=this.excalidrawData.getFile(i.fileId).file.path+a}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(e,A,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:A})}if(this.semaphores.hoverSleep)return;const a=app.metadataCache.getFirstLinkpathDest(A.split("#")[0],this.file.path);if(!a)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${a.path}"]`))return;this.semaphores.hoverSleep=!0;const r=this;if(setTimeout((()=>r.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=A,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,app.workspace.trigger("hover-link",{event:B,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),u=t,this.isFullscreen()){const A=this;setTimeout((()=>{var e,t,i,n;const r=null!==(n=null===(i=null===(t=null===(e=this.ownerDocument.querySelector(`div.popover-title[data-path="${a.path}"]`))||void 0===e?void 0:e.parentElement)||void 0===t?void 0:t.parentElement)||void 0===i?void 0:i.parentElement)&&void 0!==n?n:this.ownerDocument.body.querySelector("div.popover");r&&A.contentEl.append(r)}),400)}},{Excalidraw:C}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,b=e.createElement("div",{className:"excalidraw-wrapper",ref:i,key:"abc",tabIndex:0,onKeyDown:A=>{A.target!==b.ref.current&&(this.isFullscreen()&&A.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!A[CTRL_OR_CMD]||A.shiftKey||A.altKey||E())},onPointerDown:A=>{(A[CTRL_OR_CMD]||A.metaKey)&&(this.plugin.settings.allowCtrlClick||A.metaKey)&&setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(this,A)}))},onMouseMove:A=>{B=A.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:A=>{const e=w(A.dataTransfer);if(e)return A.dataTransfer.dropEffect=e,A.preventDefault(),!1},onDragLeave:()=>{}},e.createElement(C,{ref:g,width:a.width,height:a.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:{saveFileToDisk:!1},saveAsImage:!1,saveToActiveFile:!1}},initState:null==A?void 0:A.appState,initialData:A,detectScroll:!0,onPointerUpdate:A=>{if(t=A.pointer,p&&(Math.abs(u.x-A.pointer.x)>50||Math.abs(u.y-A.pointer.y)>50)&&this.clearHoverPreview(),m){if(!d&&"down"===A.button){if(d=!0,this.ctrlKeyDown||this.metaKeyDown)return void f();const A=(new Date).getTime();return A-c<600&&f(),void(c=A)}"up"===A.button&&(d=!1),(this.ctrlKeyDown||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&E()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,onChange:(A,e)=>{if(m=e.viewModeEnabled,this.semaphores.justLoaded)return this.semaphores.justLoaded=!1,this.semaphores.preventAutozoom||this.zoomToFit(!1),this.previousSceneVersion=this.getSceneVersion(A),void(this.previousBackgroundColor=e.viewBackgroundColor);if(!this.semaphores.dirty&&null===e.editingElement&&null===e.editingLinearElement){const t=this.getSceneVersion(A);((t>0||0===t&&A.length>0)&&t!==this.previousSceneVersion||e.viewBackgroundColor!==this.previousBackgroundColor)&&(this.previousSceneVersion=t,this.previousBackgroundColor=e.viewBackgroundColor,this.setDirty(6))}},onLibraryChange:A=>{(async()=>{const e={type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:A};this.plugin.setStencilLibrary(e),await this.plugin.saveSettings()})()},renderTopRightUI:this.obsidianMenu.renderButton,onPaste:A=>{if(A.elements){const A=this;setTimeout((()=>A.save(!1)),300)}return!0},onThemeChange:async A=>{var e;this.excalidrawData.scene.appState.theme=A,this.loadSceneFiles(),null===(e=null==n?void 0:n.current)||void 0===e||e.setTheme(A)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:A=>{const e=this.excalidrawAPI;if(!e)return!1;const i=e.getAppState();t=viewportCoordsToSceneCoords({clientX:A.clientX,clientY:A.clientY},i);const n=app.dragManager.draggable,a=(e,i,a)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:A,draggable:n,type:e,payload:{files:i,text:a},excalidrawFile:this.file,view:this,pointerPosition:t})}catch(A){return new obsidian.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:A}),!1}};switch(A[CTRL_OR_CMD]=A.shiftKey||A[CTRL_OR_CMD],null==n?void 0:n.type){case"file":if(!a("file",[n.file],null)){if(n.file.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(A[CTRL_OR_CMD]&&(IMAGE_TYPES.contains(n.file.extension)||"md"===n.file.extension)){const A=this.plugin.ea;return A.reset(),A.setView(this),(async()=>{A.canvas.theme=e.getAppState().theme,await A.addImage(t.x,t.y,n.file),A.addElementsToView(!1,!1,!0)})(),!1}this.addText(`[[${app.metadataCache.fileToLinktext(n.file,this.file.path,!0)}]]`)}return!1;case"files":return a("file",n.files,null)||(async()=>{if(A[CTRL_OR_CMD]){const A=this.plugin.ea;A.reset(),A.setView(this),A.canvas.theme=e.getAppState().theme;let i=0;for(const e of n.files)(IMAGE_TYPES.contains(e.extension)||"md"===e.extension)&&(await A.addImage(t.x+50*i,t.y+50*i,e),i++,await A.addElementsToView(!1,!1,!0))}else{for(const A of n.files)await this.addText(`[[${app.metadataCache.fileToLinktext(A,this.file.path,!0)}]]`,void 0,!1),t.y+=2*i.currentItemFontSize;this.save(!1)}})(),!1}if(A.dataTransfer.types.includes("Files")){if(A.dataTransfer.types.includes("text/plain")){const e=A.dataTransfer.getData("text");if(e&&a("text",null,e))return!1}return!0}if(A.dataTransfer.types.includes("text/plain")){const e=A.dataTransfer.getData("text");if(!e)return!0;if(!a("text",null,e)){if(this.plugin.settings.iframelyAllowed&&e.match(/^https?:\/\/\S*$/))return(async()=>{var A;const t=await this.addText(e),i=`http://iframely.server.crestify.com/iframely?url=${e}`,n=JSON.parse(await obsidian.request({url:i}));if(!n||n.error||!(null===(A=n.meta)||void 0===A?void 0:A.title))return!1;const a=this.plugin.ea;a.reset(),a.setView(this);const r=a.getViewElements().filter((A=>A.id===t));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${n.meta.title}](${e})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))})(),!1;if(e.startsWith("obsidian://open?vault=")){const t=A.dataTransfer.getData("text/html");if(t){const A=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===A.length){const e=decodeURIComponent(A[1]).split("#"),t=app.vault.getAbstractFileByPath(e[0]);if(t&&t instanceof obsidian.TFile){const A=app.metadataCache.fileToLinktext(t,this.file.path);return void this.addText(`[[${A+(e.length>1?"#"+e[1]+"|"+A:"")}]]`)}return this.addText(`[[${decodeURIComponent(A[1])}]]`),!1}}const i=e.split("file=");if(2===i.length)return this.addText(`[[${decodeURIComponent(i[1])}]]`),!1}this.addText(e.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!a("unknown",null,null)},onBeforeTextEdit:A=>{var e;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(e=A.originalText)&&void 0!==e?e:A.text;return this.excalidrawData.getRawText(A.id)||A.rawText},onBeforeTextSubmit:(A,e,t,i)=>{const n=this.excalidrawAPI;if(!n)return[null,null,null];const a="PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED";if(e.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((async()=>{const e=this.excalidrawAPI.getSceneElements(),t=e.filter((e=>e.id===A.id));if(1===t.length){const A=cloneElement(t[0]);A.rawText=a,e[e.indexOf(t[0])]=A,this.excalidrawData.setTextElement(A.id,a,a,(()=>{})),await this.updateScene({elements:e}),n.history.clear()}})),[a,a,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(A.id),this.setDirty(7),[null,null,null];const r=A.containerId;if(e!==A.text||t!==A.originalText||!this.excalidrawData.getRawText(A.id)){this.setDirty(8);const[i,a,s]=this.excalidrawData.setTextElement(A.id,e,t,(async(e,t)=>{if(this.textMode===TextMode.raw)return;const i=this.excalidrawAPI.getSceneElements(),a=i.filter((e=>e.id===A.id));if(1===a.length){const A=cloneElement(a[0]);this.excalidrawData.updateTextElement(A,e,t,!0),i[i.indexOf(a[0])]=A,await this.updateScene({elements:i}),A.containerId&&this.updateContainerSize(A.containerId)}n.history.clear()}));return i?(r&&this.updateContainerSize(r,!0),this.textMode===TextMode.raw?[e,t,s]:e===i?s?[i,a,s]:[null,null,null]:(n.history.clear(),[i,a,s])):[null,null,null]}return r&&this.updateContainerSize(r,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(A.id):[null,null,null]},onLinkOpen:async(A,e)=>{var t;if(e.preventDefault(),!A)return;const i=A.link;if(!i||""===i)return;const n=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");n&&this.ownerDocument.body.removeChild(n);const a=null===(t=null==e?void 0:e.detail)||void 0===t?void 0:t.nativeEvent;if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(A,A.link,a,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:e})}i.startsWith("md://")||i.startsWith("[[")?(async()=>{const A=i.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!A)return;let e=A.groups.link,t=null;if(e.search("#")>-1){const A=getLinkParts(e,this.file);t=`#${A.isBlockRef?"^":""}${A.ref}`,e=A.path}if(e.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);const n=app.metadataCache.getFirstLinkpathDest(e,this.file.path),r=a.shiftKey||a[CTRL_OR_CMD]||this.linksAlwaysOpenInANewPane||a.metaKey;if(r&&this.isFullscreen()&&this.exitFullscreen(),n)if(n===this.file){if(t)return void this.setEphemeralState({subpath:t});this.zoomToFit(!1)}else try{const A=r?a.metaKey&&!app.isMobile?app.workspace.openPopoutLeaf():getNewOrAdjacentLeaf(this.plugin,this.leaf):this.leaf;await A.openFile(n,t?{active:!1,eState:{subpath:t}}:{active:!1})}catch(A){new obsidian.Notice(A,4e3)}else new NewFileActions(this.plugin,e,r,!app.isMobile&&a.metaKey,this).open()})():window.open(i)},onLinkHover:(A,e)=>{if(A&&(this.plugin.settings.hoverPreviewWithoutCTRL||e[CTRL_OR_CMD])){B=e,B.ctrlKey=!0;const t=A.link;if(!t||""===t)return;if(t.startsWith("md://")||t.startsWith("[[")){const e=t.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!e)return;let i=e.groups.link;E(i,A)}}},onViewModeChange:A=>{var e,t;if(null===(t=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)||void 0===t||t.setExcalidrawViewMode(A),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(A,this,this.getHookServer())}catch(A){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:A})}}}),e.createElement(ToolsPanel,{ref:n,visible:!1,view:this,centerPointer:()=>{const A=this.excalidrawAPI;if(!g||!g.current||!A)return;const e=A.getAppState(),{width:i,height:n}=e;t=viewportCoordsToSceneCoords({clientX:i/2,clientY:n/2},e)}})),v=e.useRef(new ResizeObserver((A=>{if(!n||!n.current)return;const{width:e,height:t}=A[0].contentRect,i=n.current.onRightEdge?n.current.previousWidth-e:0,a=n.current.onBottomEdge?n.current.previousHeight-t:0;n.current.updatePosition(a,i)})));return e.useEffect((()=>((null==n?void 0:n.current)&&v.current.observe(n.current.containerRef.current),()=>{v.current.unobserve(n.current.containerRef.current)})),[n,v]),e.createElement(e.Fragment,null,b)}));t.render(i,this.contentEl,(()=>{}))}updateContainerSize(A,e=!1){const t=this.excalidrawAPI;if(!t)return;const i=()=>{const e=A?t.getSceneElements().filter((e=>e.id===A)):t.getSceneElements().filter((A=>{var e;return null===(e=A.boundElements)||void 0===e?void 0:e.map((A=>A.type)).includes("text")}));e.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),t.updateContainerSize(e)),this.initialContainerSizeUpdate=!1};e?setTimeout((()=>i()),50):i()}zoomToFit(A=!0){const e=this.excalidrawAPI;if(!e||!this.excalidrawRef||this.semaphores.isEditingText)return;const t=this.plugin.settings.zoomToFitMaxLevel,i=e.getSceneElements().filter((A=>A.width<1e4&&A.height<1e4));A?setTimeout((()=>e.zoomToFit(i,t,this.isFullscreen()?0:.05)),100):e.zoomToFit(i,t,this.isFullscreen()?0:.05)}async toggleTrayMode(){const A=this.excalidrawAPI;if(!A)return!1;const e=A.getAppState();A.updateScene({appState:{trayModeEnabled:!e.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!e.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(A,e,t=!0,i=!1,n=!1){let a=getTextElementsMatchingQuery(A.filter((A=>"text"===A.type)),e,i);if(0!==a.length){if(n){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],A);e.length>0&&(a=e)}this.zoomToElements(t,a)}else new obsidian.Notice("I could not find a matching text element")}zoomToElements(A,e){const t=this.excalidrawAPI;if(!t)return;const i=this.plugin.settings.zoomToFitMaxLevel;this.ownerWindow,A&&t.selectElements(e),t.zoomToFit(e,i,.05)}getViewSelectedElements(){var A;const e=this.excalidrawAPI;if(!e)return[];const t=null===(A=e.getAppState())||void 0===A?void 0:A.selectedElementIds;if(!t)return[];const i=Object.keys(t);if(!i)return[];const n=e.getSceneElements().filter((A=>i.includes(A.id))),a=n.filter((A=>A.boundElements&&A.boundElements.filter((A=>"text"===A.type)).length>0)).map((A=>A.boundElements.filter((A=>"text"===A.type)).map((A=>A.id))[0])),r=n.map((A=>A.id)).concat(a);return e.getSceneElements().filter((A=>r.contains(A.id)))}async copyLinkToSelectedElementToClipboard(A){const e=this.getViewSelectedElements();if(e.length<1)return void new obsidian.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let t;if(2===e.length){const A=e.filter((A=>"text"===A.type));1===A.length&&A[0].containerId&&1===e.filter((A=>A.boundElements.some((A=>"text"===A.type)))).length&&(t=A[0].id)}t||(t=1===e.length?e[0].id:this.plugin.ea.getLargestElement(e).id);const i=await ScriptEngine.inputPrompt(app,"Set link alias","Leave empty if you do not want to set an alias","");navigator.clipboard.writeText(`[[${this.file.path}#^${A}${t}${i?`|${i}`:""}]]`),new obsidian.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}async updateScene(A,e=!1,t=!1){const i=this.excalidrawAPI;if(!i)return;const n=A.elements&&e;n&&(A.elements=i.restore(A).elements);try{i.updateScene(A)}catch(e){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:e,scene:A,willDoSecondAttempt:!n}),n)warningUnknowSeriousError();else try{A.elements=i.restore(A).elements,i.updateScene(A)}catch(e){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:e,scene:A}),warningUnknowSeriousError()}}}}function getTextMode(A){return A.search("excalidraw-plugin: parsed\n")>-1||A.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",isLeftHanded:!1,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!1,previousRelease:"1.6.13",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js"},fragWithHTML=A=>createFragment((e=>e.createDiv().innerHTML=A));class ExcalidrawSettingTab extends obsidian.PluginSettingTab{constructor(A,e){super(A,e),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.reloadMathJax=!1,this.plugin=e}applySettingsUpdate(A=!1){A&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestReloadDrawings){const A=app.workspace.getLeavesOfType("excalidraw");for(const e of A)e.view instanceof ExcalidrawView&&(await e.view.save(!1),await e.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var A;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:e}=this;this.containerEl.empty();const t=e.createDiv("coffee");t.addClass("ex-coffee-div"),t.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian.Setting(e).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showReleaseNotes).onChange((async A=>{this.plugin.settings.showReleaseNotes=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showNewVersionNotification).onChange((async A=>{this.plugin.settings.showNewVersionNotification=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((A=>A.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async A=>{this.plugin.settings.folder=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async A=>{this.plugin.settings.embedUseExcalidrawFolder=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((A=>A.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async A=>{this.plugin.settings.templateFilePath=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((A=>A.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async A=>{this.plugin.settings.scriptFolderPath=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.compress).onChange((async A=>{this.plugin.settings.compress=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),e.createDiv("",(A=>{A.innerHTML=t$d("FILENAME_DESC")}));const i=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,n=e.createEl("p",{text:""});let a,r,s,o,l;n.innerHTML=i(),new obsidian.Setting(e).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((A=>A.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async e=>{this.plugin.settings.drawingFilenamePrefix=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilenamePrefix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async A=>{this.plugin.settings.drawingEmbedPrefixWithFilename=A,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((A=>A.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async e=>{this.plugin.settings.drawingFilnameEmbedPostfix=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((A=>A.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async e=>{this.plugin.settings.drawingFilenameDateTime=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilenameDateTime),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async A=>{this.plugin.settings.useExcalidrawExtension=A,n.innerHTML=i(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian.Setting(e).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.isLeftHanded).onChange((async A=>{this.plugin.settings.isLeftHanded=A,setLeftHandedMode(A),setTimeout((()=>setLeftHandedMode(A))),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchTheme).onChange((async A=>{this.plugin.settings.matchTheme=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchThemeAlways).onChange((async A=>{this.plugin.settings.matchThemeAlways=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchThemeTrigger).onChange((async A=>{this.plugin.settings.matchThemeTrigger=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((A=>A.addOption("normal","Normal Mode").addOption("zen","Zen Mode").addOption("view","View Mode").setValue(this.plugin.settings.defaultMode).onChange((async A=>{this.plugin.settings.defaultMode=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((A=>A.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async A=>{this.plugin.settings.defaultPenMode=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async A=>{this.plugin.settings.zoomToFitOnResize=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((A=>A.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async A=>{a.innerText=` ${A.toString()}`,this.plugin.settings.zoomToFitMaxLevel=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{a=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(A=>A.innerHTML=t$d("LINKS_DESC"))),new obsidian.Setting(e).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.openInAdjacentPane).onChange((async A=>{this.plugin.settings.openInAdjacentPane=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.openInMainWorkspace).onChange((async A=>{this.plugin.settings.openInMainWorkspace=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showLinkBrackets).onChange((async A=>{this.plugin.settings.showLinkBrackets=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((A=>A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((A=>{this.plugin.settings.linkPrefix=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((A=>A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((async A=>{this.plugin.settings.urlPrefix=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((A=>A.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async A=>{r.innerText=` ${A.toString()}`,this.plugin.settings.linkOpacity=A,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(A=>{r=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian.Setting(e).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async A=>{this.plugin.settings.hoverPreviewWithoutCTRL=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.allowCtrlClick).onChange((async A=>{this.plugin.settings.allowCtrlClick=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.forceWrap).onChange((async A=>{this.plugin.settings.forceWrap=A,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian.Setting(e).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((A=>A.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=t,A.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((A=>A.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=t,A.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.iframelyAllowed).onChange((async A=>{this.plugin.settings.iframelyAllowed=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian.Setting(e).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((A=>A.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=t,this.requestReloadDrawings=!0,A.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((A=>A.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=t,this.requestReloadDrawings=!0,A.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async A=>{A.addOption("Virgil","Virgil"),A.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((A=>["ttf","woff","woff2"].contains(A.extension))).forEach((e=>{A.addOption(e.path,e.name)})),A.setValue(this.plugin.settings.mdFont).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=A,this.applySettingsUpdate(!0)}))})),new obsidian.Setting(e).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((A=>A.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((A=>A.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((A=>A.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=A,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian.Setting(e).setName(t$d("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_SVG_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.displaySVGInPreview).onChange((async A=>{this.plugin.settings.displaySVGInPreview=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async A=>{this.plugin.settings.displayExportedImageIfAvailable=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async A=>{this.plugin.settings.previewMatchObsidianTheme=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((A=>A.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async A=>{this.plugin.settings.width=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(e).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async A=>{s=A,s.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?s.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?s.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),s.setValue(this.plugin.settings.embedType).onChange((async A=>{this.plugin.settings.embedType=A,this.applySettingsUpdate()}))})),new obsidian.Setting(e).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.embedWikiLink).onChange((async A=>{this.plugin.settings.embedWikiLink=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((A=>A.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async A=>{o.innerText=` ${A.toString()}`,this.plugin.settings.pngExportScale=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{o=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian.Setting(e).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.exportWithBackground).onChange((async A=>{this.plugin.settings.exportWithBackground=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(e).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((A=>A.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async A=>{l.innerText=` ${A.toString()}`,this.plugin.settings.exportPaddingSVG=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{l=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian.Setting(e).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.exportWithTheme).onChange((async A=>{this.plugin.settings.exportWithTheme=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian.Setting(e).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.keepInSync).onChange((async A=>{this.plugin.settings.keepInSync=A,this.applySettingsUpdate()}))));const c=A=>{let e=0;for(e=0;eA.setValue(this.plugin.settings.autoexportSVG).onChange((async A=>{A?s.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(s.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),c("SVG")),this.plugin.settings.autoexportSVG=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoexportPNG).onChange((async A=>{A?s.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(s.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),c("PNG")),this.plugin.settings.autoexportPNG=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async A=>{this.plugin.settings.autoExportLightAndDark=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian.Setting(e).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.compatibilityMode).onChange((async A=>{this.plugin.settings.compatibilityMode=A,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async A=>{this.plugin.settings.autoexportExcalidraw=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.syncExcalidraw).onChange((async A=>{this.plugin.settings.syncExcalidraw=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((A=>{A.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((A=>{this.plugin.settings.mathjaxSourceURL=A,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian.Setting(e).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.fieldSuggester).onChange((async A=>{this.plugin.settings.fieldSuggester=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalFileType).onChange((async A=>{this.plugin.settings.experimentalFileType=A,this.plugin.experimentalFileTypeDisplayToggle(A),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((A=>A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async A=>{this.plugin.settings.experimentalFileTag=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalLivePreview).onChange((async A=>{this.plugin.settings.experimentalLivePreview=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async A=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async A=>{A.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((A=>["ttf","woff","woff2"].contains(A.extension))).forEach((e=>{A.addOption(e.path,e.name)})),A.setValue(this.plugin.settings.experimantalFourthFont).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=A,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))}));const d=null===(A=this.plugin.scriptEngine.getListofScripts())||void 0===A?void 0:A.map((A=>this.plugin.scriptEngine.getScriptName(A)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&d){const A=(A,e)=>{const t=this.plugin.settings.scriptEngineSettings[A][e];return"object"==typeof t?t.height:null},t=(A,e)=>{const t=this.plugin.settings.scriptEngineSettings[A][e];return"object"==typeof t?t.value:t},i=(A,e,t)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[A][e]?this.plugin.settings.scriptEngineSettings[A][e].value=t:this.plugin.settings.scriptEngineSettings[A][e]=t},n=(A,n,a)=>{new obsidian.Setting(e).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addToggle((e=>e.setValue(t(A,n)).onChange((async e=>{i(A,n,e),this.applySettingsUpdate()}))))},a=(n,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((A=>{s.forEach((e=>A.addOption(e.toString(),e.toString()))),A.setValue(t(n,a)).onChange((async A=>{i(n,a,A),this.applySettingsUpdate()}))})):A(n,a)?new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((e=>{e.inputEl.style.minHeight=A(n,a),e.inputEl.style.minWidth="400px",e.setValue(t(n,a)).onChange((async A=>{i(n,a,A),this.applySettingsUpdate()}))})):new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((A=>A.setValue(t(n,a)).onChange((async A=>{i(n,a,A),this.applySettingsUpdate()}))))},r=(A,n,a)=>{new obsidian.Setting(e).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addText((e=>e.setPlaceholder("Enter a number").setValue(t(A,n).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?e.setValue(t(A,n).toString()):(i(A,n,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((A=>d.contains(A))).forEach((A=>{const e=this.plugin.settings.scriptEngineSettings[A],t=Object.values(e);0===t.length||t.length>0&&0===t.map((A=>A.hidden?0:1)).reduce(((A,e)=>A+e))||(this.containerEl.createEl("h3",{text:A}),Object.keys(e).forEach((t=>{var i;const s=e[t];switch(typeof(null!==(i=s.value)&&void 0!==i?i:s)){case"boolean":s.hidden||n(A,t,s.description);break;case"string":s.hidden||a(A,t,s.description,s.valueset);break;case"number":s.hidden||r(A,t,s.description)}})))}))}}}var openDialogAction;!function(A){A[A.openFile=0]="openFile",A[A.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian.FuzzySuggestModal{constructor(A,e){super(A),this.app=A,this.action=openDialogAction.openFile,this.plugin=e,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=A=>{"Enter"==A.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>this.plugin.isExcalidrawFile(A)))}getItemText(A){return A.path}onChooseItem(A){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(A,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(A)}}start(A,e){switch(this.action=A,this.onNewPane=e,A){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A),this.app=A,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((A=>!A.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(A){return A.path+(A.alias?`|${A.alias}`:"")}onChooseItem(A){let e=A.path;A.file&&(e=this.app.metadataCache.fileToLinktext(A.file,this.drawingPath,!0)),this.addText(`[[${e+(A.alias?`|${A.alias}`:"")}]]`)}start(A,e){this.addText=e,this.drawingPath=A,this.open()}}class InsertImageDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A.app),this.plugin=A,this.app=A.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>(IMAGE_TYPES.contains(A.extension)||this.plugin.isExcalidrawFile(A))&&!A.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(A){return A.path}onChooseItem(A){const e=this.plugin.ea;e.reset(),e.setView(this.view),e.canvas.theme=this.view.excalidrawAPI.getAppState().theme,(async()=>{await e.addImage(0,0,A),e.addElementsToView(!0,!1,!0)})()}start(A){this.view=A,this.open()}}class InsertMDDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A.app),this.plugin=A,this.app=A.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>"md"===A.extension&&!this.plugin.isExcalidrawFile(A)))}getItemText(A){return A.path}onChooseItem(A){const e=this.plugin.ea;e.reset(),e.setView(this.view),(async()=>{await e.addImage(0,0,A),e.addElementsToView(!0,!1,!0)})()}start(A){this.view=A,this.open()}}function around(A,e){const t=Object.keys(e).map((t=>around1(A,t,e[t])));return 1===t.length?t[0]:function(){t.forEach((A=>A()))}}function around1(A,e,t){const i=A[e],n=A.hasOwnProperty(e);let a=t(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(r,a),A[e]=r,s;function r(...t){return a===i&&A[e]===r&&s(),a.apply(this,t)}function s(){A[e]===r&&(n?A[e]=i:delete A[e]),a!==i&&(a=i,Object.setPrototypeOf(r,i||Function))}}let plugin,vault,metadataCache;const getDefaultWidth=A=>{const e=parseInt(A.settings.width);return isNaN(e)||0===e||null===e?"400":A.settings.width},initializeMarkdownPostProcessor=A=>{plugin=A,vault=A.app.vault,metadataCache=A.app.metadataCache},getIMG=async A=>{var e;let t=A.file;if(!A.file){const i=vault.getAbstractFileByPath(null===(e=A.fname)||void 0===e?void 0:e.split("#")[0]);if(!(i&&i instanceof obsidian.TFile))return null;t=i}const i=getEmbeddedFilenameParts(A.fname);A.style=A.style.replaceAll(" ","-");const n=hasExportTheme(plugin,t)?getExportTheme(plugin,t,"light"):void 0,a={withBackground:getWithBackground(plugin,t),withTheme:!!n||plugin.settings.exportWithTheme},r=createEl("img");let s=`max-width:${A.fwidth}px !important; width:100%;`;A.fheight&&(s+=`height:${A.fheight}px;`),r.setAttribute("style",s),r.addClass(A.style);const o=null!=n?n:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";o&&(a.withTheme=!0);const l=new EmbeddedFilesLoader(plugin,o?"dark"===o:void 0);if(!plugin.settings.displaySVGInPreview){const e=parseInt(A.fwidth),n=e>=2400?5:e>=1800?4:e>=1200?3:e>=600?2:1,s=i.hasGroupref?void 0:await getQuickImagePreview(plugin,t.path,"png"),c=null!=s?s:await createPNG(i.hasGroupref?i.filepath+i.linkpartReference:t.path,n,a,l,o,null,null,[],plugin,0);return c?(r.src=URL.createObjectURL(c),r):null}if(!i.hasBlockref&&!i.hasSectionref){const A=await getQuickImagePreview(plugin,t.path,"svg");if(A)return r.setAttribute("src",svgToBase64(A)),r}const c=(await createSVG(i.hasGroupref||i.hasBlockref||i.hasSectionref?i.filepath+i.linkpartReference:t.path,!0,a,l,o,null,null,[],plugin,0,getExportPadding(plugin,t))).outerHTML;let d=null;const h=document.createElement("div");h.innerHTML=c;const g=h.firstChild;return g instanceof SVGSVGElement&&(d=g),d?(d=embedFontsInSVG(d,plugin),d.removeAttribute("width"),d.removeAttribute("height"),r.setAttribute("src",svgToBase64(d.outerHTML)),r):null},createImageDiv=async A=>{const e=await getIMG(A);return createDiv(A.style,(t=>{t.append(e),t.setAttribute("src",A.fname),A.fwidth&&t.setAttribute("w",A.fwidth),A.fheight&&t.setAttribute("h",A.fheight),t.onClickEvent((A=>{if(A.target instanceof Element&&"img"!=A.target.tagName.toLowerCase())return;const e=t.getAttribute("src");if(e){const t=e.match(/([^#]*)(.*)/);if(!t)return;plugin.openDrawing(vault.getAbstractFileByPath(t[1]),A[CTRL_OR_CMD]?"new-pane":A.metaKey&&!app.isMobile?"popout-window":"active-pane",!0,t[2])}})),t.addEventListener(RERENDER_EVENT,(async A=>{A.stopPropagation(),t.empty();const e=await getIMG({fname:t.getAttribute("src"),fwidth:t.getAttribute("w"),fheight:t.getAttribute("h"),style:t.getAttribute("class")});t.append(e)}))}))},processReadingMode=async(A,e)=>{var t;for(const i of A){const A=null===(t=i.getAttribute("src"))||void 0===t?void 0:t.split("#")[0];if(!A)continue;const n=metadataCache.getFirstLinkpathDest(A,e.sourcePath);if(n&&n instanceof obsidian.TFile&&plugin.isExcalidrawFile(n)){if(isTextOnlyEmbed(i))continue;i.parentElement.replaceChild(await processInternalEmbed(i,n),i)}}},processInternalEmbed=async(A,e)=>{const t={fname:"",fheight:"",fwidth:"",style:""},i=A.getAttribute("src");if(!i)return;t.fwidth=A.getAttribute("width")?A.getAttribute("width"):getDefaultWidth(plugin),t.fheight=A.getAttribute("height");let n=A.getAttribute("alt");t.style="excalidraw-svg",processAltText(i.split("#")[0],n,t);const a=getEmbeddedFilenameParts(i);return t.fname=(null==e?void 0:e.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),t.file=e,await createImageDiv(t)},processAltText=(A,e,t)=>{var i,n;if(e&&!e.startsWith(A)){const a=e.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);t.fwidth=null!==(i=a[2])&&void 0!==i?i:t.fwidth,t.fheight=null!==(n=a[3])&&void 0!==n?n:t.fheight,a[4]&&!a[4].startsWith(A)&&(t.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(t.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=A=>{const e=A.getAttribute("src");if(!e)return!0;const t=getEmbeddedFilenameParts(e);return!(t.hasArearef||t.hasGroupref)&&(t.hasBlockref||t.hasSectionref)},tmpObsidianWYSIWYG=async(A,e)=>{const t=app.vault.getAbstractFileByPath(e.sourcePath);t instanceof obsidian.TFile&&plugin.isExcalidrawFile(t)&&(e.remainingNestLevel<4||setTimeout((async()=>{let i=0;for(;!A.parentElement&&i++<=50;)await sleep(50);if(!A.parentElement)return;let n=A;for(;!n.hasClass("internal-embed")&&n.parentElement;)n=n.parentElement;const a={fname:e.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};if(a.file=t,!n.hasClass("internal-embed")){A.empty();const e=A.parentElement;if(!e.hasClass("markdown-preview-section"))return;if(e.hasAttribute("ready"))return void e.removeChild(A);e.setAttribute("ready","");const t=await createImageDiv(a);return void A.appendChild(t)}if(isTextOnlyEmbed(n))return;if(A.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const r=await processInternalEmbed(n,t);n.appendChild(r);let s=null;const o=new MutationObserver((A=>{var e;["alt","width","height"].contains(null===(e=A[0])||void 0===e?void 0:e.attributeName)&&(s&&clearTimeout(s),s=setTimeout((async()=>{s=null,n.empty();const A=await processInternalEmbed(n,t);n.appendChild(A)}),500))}));o.observe(n,{attributes:!0})})))},markdownPostProcessor=async(A,e)=>{var t;const i=A.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(t=e.frontmatter)||void 0===t?void 0:t.hasOwnProperty("excalidraw-plugin"))?A.style.display="none":await processReadingMode(i,e):tmpObsidianWYSIWYG(A,e)},hoverEvent=A=>{A.linktext?(plugin.hover.linkText=A.linktext,plugin.hover.sourcePath=A.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async A=>{if(0==A.length)return;if(!plugin.hover.linkText)return;const e=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!e)return;if(!(e instanceof obsidian.TFile))return;if("excalidraw"!==e.extension)return;const t=getIMGFilename(e.path,"svg"),i=vault.getAbstractFileByPath(t);if(i&&i instanceof obsidian.TFile)return;const n=getIMGFilename(e.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian.TFile)return;if(!plugin.hover.linkText)return;if(1!=A.length)return;if(1!=A[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!A[0].addedNodes[0].classNames)return;const r=A[0].addedNodes[0];r.empty();const s=await getIMG({file:e,fname:e.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async A=>{A.appendChild(s),A.setAttribute("src",e.path),A.onClickEvent((e=>{e.stopImmediatePropagation();const t=A.getAttribute("src");t&&plugin.openDrawing(vault.getAbstractFileByPath(t),e[CTRL_OR_CMD]?"new-pane":e.metaKey&&!app.isMobile?"popout-window":"active-pane")}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.strokeSharpness",code:"[string]",desc:"'round' | 'sharp'",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toCliboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: string; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile): Promise;",desc:null,after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[]):void;",desc:"Elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: [{caption:string, action:Function}]);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"}];class FieldSuggester extends obsidian.EditorSuggest{constructor(A){super(A.app),this.getSuggestions=A=>{const e=A.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((A=>A.field)).filter((A=>A.toLowerCase().includes(e)))},this.plugin=A}onTrigger(A,e,t){var i,n,a,r,s;if(this.plugin.settings.fieldSuggester){const t=e.getLine(A.line).substring(0,A.ch),o=null!==(r=null!==(n=null===(i=t.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=t.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=t.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=t.match(/^excalidraw-(.*)$/)?"excalidraw":t.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:A,start:{ch:A.ch-o.length,line:A.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(A,e){const t=A.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((e=>e.field===A));e.createEl("b",{text:t}),e.createEl("br"),i.code&&e.createEl("code",{text:i.code}),i.desc&&e.createDiv("div",(A=>A.innerHTML=i.desc))}selectSuggestion(A){var e;const{context:t}=this;if(t){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${A}${null===(e=i.find((e=>e.field===A)))||void 0===e?void 0:e.after}`;if(t.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const A=this.latestTriggerInfo.end;A.ch+=n.length,t.editor.setCursor(A)}}}}class ExcalidrawPlugin extends obsidian.Plugin{constructor(A,e){super(A,e),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(A){if(A===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(A))return this.packageMap.get(A);const{react:e,reactDOM:t,excalidrawLib:i}=A.eval.call(A,`(function() {\n ${lzString.exports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(A,{react:e,reactDOM:t,excalidrawLib:i}),{react:e,reactDOM:t,excalidrawLib:i}}async onload(){if(obsidian.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian.addIcon("disk",DISK_ICON),obsidian.addIcon("save-png",PNG_ICON),obsidian.addIcon("save-svg",SVG_ICON),await this.loadSettings(),this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(A=>new ExcalidrawView(A,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const A=this.settings.imageElementNotice;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,A?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const A=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(A)}))}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const A=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),e=""===A.dataURL?VIRGIL_DATAURL:A.dataURL;this.fourthFontDef=A.fontDef;const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;if(!i)return;if(t.has(i))return;t.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${e}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const A=this;this.app.workspace.onLayoutReady((async()=>{await obsidian.loadMathJax();try{A.mathjaxDiv&&(document.body.removeChild(A.mathjaxDiv),A.mathjax=null,A.mathjaxLoaderFinished=!1),A.mathjaxDiv=document.body.createDiv(),A.mathjaxDiv.title="Excalidraw MathJax Support",A.mathjaxDiv.style.display="none";const e=A.mathjaxDiv.createEl("iframe");e.title="Excalidraw MathJax Support";const t=e.contentWindow.document,i=t.createElement("script");i.type="text/javascript",i.onload=()=>{const t=e.contentWindow;t.MathJax.startup.pagePromise.then((async()=>{const e=app.vault.getAbstractFileByPath("preamble.sty"),i=e&&e instanceof obsidian.TFile?await app.vault.read(e):null;try{i&&await t.MathJax.tex2svg(i)}catch(e){errorlog({where:A.loadMathJax,description:"Unexpected error while loading preamble.sty",error:e})}A.mathjax=t.MathJax,A.mathjaxLoaderFinished=!0}))},i.src=A.settings.mathjaxSourceURL,t.head.appendChild(i)}catch(e){new obsidian.Notice("Excalidraw: Error initializing LaTeX support"),A.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const A=this;this.app.workspace.onLayoutReady((()=>{let e;for(e of app.workspace.getLeavesOfType("markdown"))e.view instanceof obsidian.MarkdownView&&A.isExcalidrawFile(e.view.file)&&(A.excalidrawFileModes[e.id||e.view.file.path]="excalidraw",A.setExcalidrawView(e))}))}registerInstallCodeblockProcessor(){const A=async(A,e)=>{let t=null;try{const A=e.parentElement.querySelector(`a[href="#${e.previousElementSibling.getAttribute("data-heading")}"]`);A.style.paddingRight="10px",t=A.parentElement.createEl("button",null,(A=>{A.setText(t$d("UPDATE_SCRIPT")),A.addClass("mod-cta"),A.style.backgroundColor="var(--interactive-success)",A.style.display="none"}))}catch(e){errorlog({where:"this.registerInstallCodeblockProcessor",source:A,error:e})}A=A.trim(),e.createEl("button",null,(async e=>{const i=A=>{switch(t&&(t.style.display="none"),A){case"CHECKING":e.setText(t$d("CHECKING_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":e.setText(t$d("INSTALL_SCRIPT")),e.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":e.setText(t$d("UPTODATE_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":e.setText(t$d("UPDATE_SCRIPT")),e.style.backgroundColor="var(--interactive-success)",t&&(t.style.display=null);break;case"ERROR":e.setText(t$d("UNABLETOCHECK_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)"}};e.addClass("mod-cta");let n=A;try{n=decodeURI(A)}catch(e){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:A,error:e})}const a=n.substring(n.lastIndexOf("/")+1),r=`${this.settings.scriptFolderPath}/Downloaded`,s=`${r}/${a}`,o=getIMGFilename(s,"svg");let l=this.app.vault.getAbstractFileByPath(s),c=this.app.vault.getAbstractFileByPath(o);if(i(l?"CHECKING":"INSTALL"),e.onclick=async()=>{const e=async(A,e,t)=>{const i=await obsidian.request({url:A});return!i||i.startsWith("404: Not Found")?null:(e?await this.app.vault.modify(e,i):(await checkAndCreateFolder(r),e=await this.app.vault.create(t,i)),e)};try{if(l=await e(A,l,s),!l)throw i("ERROR"),"File not found";c=await e(getIMGFilename(A,"svg"),c,o),i("UPTODATE"),new obsidian.Notice(`Installed: ${l.basename}`)}catch(A){new obsidian.Notice(`Error installing script: ${a}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:A})}},t&&(t.onclick=e.onclick),!(l&&l instanceof obsidian.TFile))return;const d=new Map;JSON.parse(await obsidian.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((A=>d.set(A.fname,A.mtime)));const h=(A,e)=>{if(0===d.size||!d.has(A))return"ERROR";const t=d.get(A);return!e||t>e.stat.mtime?"UPDATE":"UPTODATE"},g=h(a,l),u=h(getIMGFilename(a,"svg"),c&&c instanceof obsidian.TFile?c:null);i("UPTODATE"===g&&"UPTODATE"===u||"UPTODATE"===g&&"ERROR"===u?"UPTODATE":"ERROR"===g?"ERROR":"UPDATE"===g||"UPDATE"===u?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(e,t)=>{t.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),t.empty(),A(e,t)})),A(e,t)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async A=>{var e,t,i,n,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(e=A[0])||void 0===e?void 0:e.oldValue)===(null===(i=null===(t=A[0])||void 0===t?void 0:t.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=A[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=A[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{const e=A.view;e.file&&e.excalidrawRef&&e.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(A){A?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const A=A=>{if(1!=A.childElementCount)return;const e=A.getAttribute("data-path");if(!e)return;const t=this.app.vault.getAbstractFileByPath(e);t&&t instanceof obsidian.TFile&&this.isExcalidrawFile(t)&&A.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),A.firstChild)};this.fileExplorerObserver=new MutationObserver((e=>{const t=e.filter((A=>A.addedNodes.length>0));t.forEach((e=>{e.addedNodes.forEach((e=>{e instanceof Element&&e.querySelectorAll(".nav-file-title").forEach(A)}))}))}));const e=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(A),e.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async A=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),A[CTRL_OR_CMD]?"new-pane":"active-pane")})),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{A.addItem((A=>{A.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((()=>{let A=e.path;e instanceof obsidian.TFile&&(A=obsidian.normalizePath(e.path.substr(0,e.path.lastIndexOf(e.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane",A)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{e instanceof obsidian.TFile&&"excalidraw"==e.extension&&A.addItem((A=>{A.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(e,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{e instanceof obsidian.TFile&&"excalidraw"==e.extension&&A.addItem((A=>{A.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(e,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const e=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return e instanceof obsidian.TFile&&(this.embedDrawing(e),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:A=>{if(A)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const A=async A=>{const e=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!e)return;const t=getEmbedFilename(e.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,e.file.path,t)).folder,n=await this.createDrawing(t,i);await this.embedDrawing(n),this.openDrawing(n,A,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:e=>e?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("popout-window"),!0)}),this.addCommand({id:"export-svg",name:t$d("EXPORT_SVG"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.saveSVG(),!0)}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(search(e),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.isFullscreen()?e.exitFullscreen():e.gotoFullscreen(),!0)}}),this.addCommand({id:"export-png",name:t$d("EXPORT_PNG"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.savePNG(),!0)}}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:A=>{if(A)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!e||e.compatibilityMode||(e.changeTextMode(e.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(e){this.ea.reset(),this.ea.setView(e);const A=this.ea.getViewSelectedElement();if("image"!==A.type)return new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0;const t=this.ea.getViewFileForImageElement(A);return t?(this.app.vault.delete(t),this.ea.deleteViewElements([A]),!0):(new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertLinkDialog.start(e.file.path,e.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:A=>{if(A){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const A=this.app.workspace.getActiveViewOfType(ExcalidrawView),e=null==A?void 0:A.excalidrawAPI;return!!e&&!!e.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const A=this.settings.isLeftHanded;await this.loadSettings(!1),this.settings.isLeftHanded=!A,this.saveSettings(),setLeftHandedMode(!A),setTimeout((()=>setLeftHandedMode(!A)))})(),!0}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertImageDialog.start(e),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:A=>{if(A){const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!A||!A.excalidrawRef)return!1;const e=A.excalidrawAPI.getAppState();return!e.zenModeEnabled&&!e.viewModeEnabled}const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!e||!e.excalidrawAPI||(e.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertMDDialog.start(e),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(insertLaTeXToView(e),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:A=>{const e=this.app.workspace.getActiveFile();if(!e)return!1;const t=this.isExcalidrawFile(e);if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:t;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const A=i.leaf;return this.excalidrawFileModes[A.id||e.path]="markdown",void this.setMarkdownView(A)}const n=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(n&&t){const A=n.leaf;return this.excalidrawFileModes[A.id||e.path]="excalidraw",void this.setExcalidrawView(A)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:A=>{const e=this.app.workspace.getActiveFile(),t=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!e||!t)return!1;const i=0===e.stat.size;if(A)return i;i&&(async()=>{await this.app.vault.modify(e,await this.getBlankDrawing()),this.setExcalidrawView(t.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:A=>{if(A){const A=this.app.vault.getFiles().filter((A=>"excalidraw"==A.extension));return A.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(A,e=!1,t=!1){const i=await this.app.vault.read(A),n=A.name.substring(0,A.name.lastIndexOf(".excalidraw"))+(e?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian.normalizePath(A.path.substring(0,A.path.lastIndexOf(A.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&EXPORT_TYPES.forEach((e=>{const t=A.path.substring(0,A.path.lastIndexOf(".excalidraw"))+e,i=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(t));if(i&&i instanceof obsidian.TFile){const A=a.substring(0,a.lastIndexOf(".md"))+e;this.app.fileManager.renameFile(i,A)}})),t||this.app.vault.delete(A),r}async convertExcalidrawToMD(A=!1,e=!1){const t=this.app.vault.getFiles().filter((A=>"excalidraw"==A.extension));for(const i of t)this.convertSingleExcalidrawToMD(i,A,e);new obsidian.Notice(`Converted ${t.length} files.`)}registerMonkeyPatches(){this.registerEvent(app.workspace.on("editor-menu",((A,e,t)=>{if(!(t&&t instanceof obsidian.MarkdownView))return;const i=t.file,n=t.leaf;if(!t.file)return;const a=this.app.metadataCache.getFileCache(i);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&A.addItem((A=>A.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[n.id||i.path]="excalidraw",this.setExcalidrawView(n)}))))}))),this.registerEvent(app.workspace.on("file-menu",((A,e,t,i)=>{if(!(i&&i.view instanceof obsidian.MarkdownView))return;if(!(e instanceof obsidian.TFile))return;const n=this.app.metadataCache.getFileCache(e);(null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]&&(A.addItem((A=>{A.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[i.id||e.path]="excalidraw",this.setExcalidrawView(i)}))})),A.items.unshift(A.items.pop()))})));const A=this;this.register(around(obsidian.WorkspaceLeaf.prototype,{detach:e=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&A.excalidrawFileModes[this.id||i.file]&&delete A.excalidrawFileModes[this.id||i.file],e.apply(this)},setViewState:e=>function(t,...i){var n;if(A._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==A.excalidrawFileModes[this.id||t.state.file]){const n=app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return A.excalidrawFileModes[t.state.file]="excalidraw",e.apply(this,[n,...i])}}return e.apply(this,[t,...i])}}))}registerEventListeners(){const A=this;this.app.workspace.onLayoutReady((async()=>{A.registerEvent(app.vault.on("rename",(async(e,t)=>{e instanceof obsidian.TFile&&A.isExcalidrawFile(e)&&A.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async A=>{const i=getIMGFilename(t,A),n=app.vault.getAbstractFileByPath(obsidian.normalizePath(i));if(n&&n instanceof obsidian.TFile){const t=getIMGFilename(e.path,A);await app.fileManager.renameFile(n,t)}}))}))),A.registerEvent(app.vault.on("modify",(async e=>{app.workspace.getLeavesOfType("excalidraw").forEach((async t=>{const i=t.view;if(i.file&&(i.file.path===e.path||"excalidraw"===e.extension&&`${e.path.substring(0,e.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(e instanceof obsidian.TFile))return;const t=this.excalidrawFiles.has(e);if(this.updateFileCache(e,void 0,!0),!t)return;const i=app.workspace.getLeavesOfType("excalidraw");for(let A=0;A{[EXPORT_TYPES,"excalidraw"].flat().forEach((async A=>{const t=getIMGFilename(e.path,A),i=app.vault.getAbstractFileByPath(obsidian.normalizePath(t));i&&i instanceof obsidian.TFile&&await app.vault.delete(i)}))}),500)}))),A.registerEvent(app.workspace.on("active-leaf-change",(async e=>{var t;A.leafChangeTimeout&&clearTimeout(this.leafChangeTimeout),A.leafChangeTimeout=setTimeout((()=>{A.leafChangeTimeout=null}),1e3);const i=A.activeExcalidrawView,n=e.view instanceof ExcalidrawView?e.view:null;if(A.activeExcalidrawView=n,n&&(A.lastActiveExcalidrawFilePath=null===(t=n.file)||void 0===t?void 0:t.path),i&&i!=n&&(i.leaf!=e&&i.semaphores.dirty&&await i.save(!0),i.file&&A.triggerEmbedUpdates(i.file.path)),n&&(!i||i.leaf!=e)){const A=n.file;n.file&&setTimeout((()=>{var e;n&&n._loaded&&(null===(e=n.file)||void 0===e?void 0:e.path)===(null==A?void 0:A.path)&&(n.activeLoader||n.loadSceneFiles())}),2e3)}if(A.popScope&&(A.popScope(),A.popScope=null),n){const e=this.app.keymap.getRootScope(),t=e.register(["Mod"],"Enter",(()=>!0));e.keys.unshift(e.keys.pop()),A.popScope=()=>e.unregister(t)}}))),A.addFileSaveTriggerEventHandlers();const e=app.metadataCache;e.getCachedFiles().forEach((t=>{var i;const n=null===(i=e.getCache(t))||void 0===i?void 0:i.frontmatter;(n&&void 0!==n[FRONTMATTER_KEY]||t.match(/\.excalidraw$/))&&A.updateFileCache(app.vault.getAbstractFileByPath(t),n)})),this.registerEvent(e.on("changed",((A,e,t)=>this.updateFileCache(A,null==t?void 0:t.frontmatter))))}))}addFileSaveTriggerEventHandlers(){this.registerEvent(this.app.workspace.on("click",(A=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!A.target||"excalidraw__canvas"!==A.target.className&&!getParentOfClass(A.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()}))),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async A=>{1===A.length&&"childList"===A[0].type&&1===A[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const A=document.querySelector(".workspace-drawer.mod-left"),e=document.querySelector(".workspace-drawer.mod-right");if(A||e){const t=async A=>{"display: none;"===A[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},i={attributeOldValue:!0,attributeFilter:["style"]};A&&(this.workspaceDrawerLeftObserver=new MutationObserver(t),this.workspaceDrawerLeftObserver.observe(A,i)),e&&(this.workspaceDrawerRightObserver=new MutationObserver(t),this.workspaceDrawerRightObserver.observe(e,i))}}updateFileCache(A,e,t=!1){e&&void 0!==e[FRONTMATTER_KEY]?this.excalidrawFiles.add(A):t||"excalidraw"!==A.extension?this.excalidrawFiles.delete(A):this.excalidrawFiles.add(A)}onunload(){destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{this.setMarkdownView(A)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((A=>{delete A.excalidrawLib,delete A.reactDOM,delete A.react}))}async embedDrawing(A){const e=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(e&&e.file){const t=this.app.metadataCache.fileToLinktext(A,e.file.path,"excalidraw"===this.settings.embedType),i=e.editor;if("excalidraw"===this.settings.embedType)return i.replaceSelection(this.settings.embedWikiLink?`![[${t}]]`:`![](${encodeURI(t)})`),void i.focus();let n=this.settings.autoExportLightAndDark?getExportTheme(this,A,this.settings.exportWithTheme&&isObsidianThemeDark()?"dark":"light"):"";n=""===n?"":n+".";const a=getIMGFilename(t,n+this.settings.embedType.toLowerCase()),r=getIMGFilename(A.path,n+this.settings.embedType.toLowerCase()),s="dark."===n?"light.":"dark.",o=getIMGFilename(t,s+this.settings.embedType.toLowerCase());this.app.vault.getAbstractFileByPath(r)||(await this.app.vault.create(r,""),await sleep$1(200)),i.replaceSelection(this.settings.embedWikiLink?`![[${a}]]\n%%[[${t}|🖋 Edit in Excalidraw]]${o?", and the [["+o+"|"+s.split(".")[0]+" exported image]]":""}%%`:`![](${encodeURI(a)})\n%%[🖋 Edit in Excalidraw](${encodeURI(t)})${o?", and the ["+s.split(".")[0]+" exported image]("+encodeURI(o)+")":""}%%`),i.focus()}}async loadSettings(A=!0){this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),A&&setLeftHandedMode(this.settings.isLeftHanded),this.settings.autosave=!0,this.settings.autosaveInterval=1e4}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(A){this.settings.library="deprecated",this.settings.library2=A}triggerEmbedUpdates(A){const e=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;if(!i)return;if(e.has(i))return;e.add(i);const n=i.createEvent("Event");n.initEvent(RERENDER_EVENT,!0,!1),i.querySelectorAll("div[class^='excalidraw-svg']"+(A?`[src='${A.replaceAll("'","\\'")}']`:"")).forEach((A=>A.dispatchEvent(n)))}))}openDrawing(A,e,t=!1,i){let n;"popout-window"===e?n=app.workspace.openPopoutLeaf():(n=this.app.workspace.getLeaf(!1),"empty"!==n.view.getViewType()&&"new-pane"===e&&(n=getNewOrAdjacentLeaf(this,n))),n.openFile(A,i&&""!==i?{active:t,eState:{subpath:i}}:{active:t})}async getBlankDrawing(){const A=this.app.metadataCache.getFirstLinkpathDest(obsidian.normalizePath(this.settings.templateFilePath),"");if(A&&A instanceof obsidian.TFile&&("md"==A.extension&&!this.settings.compatibilityMode||"excalidraw"==A.extension&&this.settings.compatibilityMode)){const e=await this.app.vault.read(A);if(e)return this.settings.matchTheme?changeThemeOfExcalidrawMD(e):e}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const e=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(e,this.settings.compress)}`}async exportSceneToMD(A){var e,t;if(!A)return"";const i=null===(e=JSON_parse(A).elements)||void 0===e?void 0:e.filter((A=>"text"==A.type));let n,a="# Text Elements\n";for(const e of i)n=e.id,e.id.length>8&&(n=nanoid(),A=A.replaceAll(e.id,n)),a+=`${null!==(t=e.originalText)&&void 0!==t?t:e.text} ^${n}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(A),null,"\t"),this.settings.compress)}async createDrawing(A,e,t){const i=obsidian.normalizePath(e||this.settings.folder);await checkAndCreateFolder(i);const n=getNewUniqueFilepath(this.app.vault,A,i),a=await this.app.vault.create(n,null!=t?t:await this.getBlankDrawing());let r=0;for(;a instanceof obsidian.TFile&&!this.isExcalidrawFile(a)&&r++<10;)await sleep$1(50);return r>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(A,e,t,i){const n=await this.createDrawing(A,t,i);return this.openDrawing(n,e,!0),n.path}async setMarkdownView(A){const e=A.view.getState();await A.setViewState({type:"excalidraw",state:{file:null}}),await A.setViewState({type:"markdown",state:e,popstate:!0},{focus:!0})}async setExcalidrawView(A){await A.setViewState({type:"excalidraw",state:A.view.getState(),popstate:!0})}isExcalidrawFile(A){if("excalidraw"==A.extension)return!0;const e=A?this.app.metadataCache.getFileCache(A):null;return!!(null==e?void 0:e.frontmatter)&&!!e.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async A=>{if(!A)return;A=`${A}.excalidrawlib`;const e=obsidian.normalizePath(this.settings.folder);await checkAndCreateFolder(e);const t=getNewUniqueFilepath(this.app.vault,A,e);this.app.vault.create(t,this.settings.library),new obsidian.Notice(`Exported library to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; diff --git a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json index fe78b48..b892f7f 100644 --- a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +++ b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json @@ -1,8 +1,8 @@ { "id": "obsidian-excalidraw-plugin", "name": "Excalidraw", - "version": "1.7.8", - "minAppVersion": "0.15.5", + "version": "1.7.19", + "minAppVersion": "0.15.6", "description": "An Obsidian plugin to edit and view Excalidraw drawings", "author": "Zsolt Viczian", "authorUrl": "https://zsolt.blog", diff --git a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css index a9283e6..56e28b4 100644 --- a/notes/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +++ b/notes/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css @@ -1 +1,222 @@ -.App{font-family:sans-serif;text-align:center}.excalidraw-wrapper{height:100%;margin:0px;background-color:#fff}.context-menu-option__shortcut{background-color:transparent!important}.block-language-excalidraw{text-align:center}.excalidraw .github-corner{display:none}img.excalidraw-svg-right-wrap{float:right;margin:0px 0px 20px 20px}img.excalidraw-svg-left-wrap{float:left;margin:0px 35px 20px 0px}img.excalidraw-svg-right{float:right}.excalidraw-svg-center{text-align:center}img.excalidraw-svg-left{float:left}div.excalidraw-svg-right,div.excalidraw-svg-left{display:table;width:100%}button.ToolIcon_type_button[title=Export]{display:none}.excalidraw-prompt-div{display:flex;max-width:800px}.excalidraw-prompt-form{display:flex;flex-grow:1}.excalidraw-prompt-input{flex-grow:1}li[data-testid]{border:0!important;margin:0!important;padding:0!important;width:100%!important}.excalidraw .context-menu-option-separator{margin:4px!important}.excalidraw .popover{padding:0!important;border-color:transparent!important;border:0!important;box-shadow:0!important;background-color:transparent!important}.disable-zen-mode--visible{color:var(--text-primary-color)}.disable-zen-mode{width:9em!important}.ex-coffee-div{text-align:center;margin-bottom:20px}.excalidraw-scriptengine-install td>img{width:100%;max-width:800px}.excalidraw-scriptengine-install img.coffee{width:130px}.excalidraw-scriptengine-install tr{vertical-align:top}.excalidraw-scriptengine-install table{max-width:130ch}.excalidraw-scriptengine-install td.label{min-width:11ch;font-weight:bold;padding-right:5px}.excalidraw-scriptengine-install td.data{width:100%}.modal-content.excalidraw-scriptengine-install{max-width:130ch;user-select:text}.excalidraw-scriptengine-install .modal{max-height:90%}.excalidraw-prompt-center{text-align:center}.excalidraw-prompt-center.filepath{text-align:center;font-weight:bold;margin-bottom:2em}.excalidraw-dirty{color:red}.workspace-leaf-content .excalidraw-view{padding:0px 1px}.excalidraw-videoWrapper{max-width:600px}.excalidraw-videoWrapper div{position:relative;padding-bottom:56.25%;height:0;margin:0 auto}.excalidraw-videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}.excalidraw-release{padding-right:5px;margin-right:-5px;max-width:130ch;user-select:text}.excalidraw-release .modal{max-height:90%}.excalidraw .Island .scrollbar{--scrollbar-thumb-bg: silver}.excalidraw .ToolIcon__icon img{height:1em}.excalidraw-scriptengine-install tbody>tr>td>div>img{height:20px;background-color:silver;padding:2px}.excalidraw-scriptengine-install tbody>tr>td>div{width:50px;display:inline-block}.excalidraw-release p>a>img{width:100%} +.App { + font-family: sans-serif; + text-align: center; + } + + .excalidraw-wrapper { + height: 100%; + margin: 0px; + background-color: white; + } + + .context-menu-option__shortcut { + background-color: transparent !important; + } + +.block-language-excalidraw { + text-align:center; +} + +.excalidraw .github-corner { + display: none; +} + +img.excalidraw-svg-right-wrap { + float: right; + margin: 0px 0px 20px 20px; +} + +img.excalidraw-svg-left-wrap { + float: left; + margin: 0px 35px 20px 0px; +} + +img.excalidraw-svg-right { + float: right; +} + +.excalidraw-svg-center { + text-align: center; +} + +img.excalidraw-svg-left { + float: left; +} + +div.excalidraw-svg-right, +div.excalidraw-svg-left { + display: table; + width: 100%; +} + +button.ToolIcon_type_button[title="Export"] { + display:none; +} + +.excalidraw-prompt-div { + display: flex; + max-width: 800px; +} + +.excalidraw-prompt-form { + display: flex; + flex-grow: 1; +} + +.excalidraw-prompt-input { + flex-grow: 1; +} + +li[data-testid] { + border: 0 !important; + margin: 0 !important; + padding: 0 !important; + width: 100% !important; +} + +.excalidraw .context-menu-option-separator { + margin: 4px !important; +} + +.excalidraw .popover { + padding: 0 !important; + border-color: transparent !important; + border: 0 !important; + box-shadow: 0 !important; + background-color: transparent !important; +} + +.disable-zen-mode--visible { + color: var(--text-primary-color); +} + +.disable-zen-mode { + width: 9em !important; +} + +.ex-coffee-div { + text-align: center; + margin-bottom: 20px; + +} + +.excalidraw-scriptengine-install td>img { + width: 100%; + max-width:800px; +} + +.excalidraw-scriptengine-install img.coffee { + width: 130px; +} + +.excalidraw-scriptengine-install tr { + vertical-align: top; +} + +.excalidraw-scriptengine-install table { + max-width: 130ch; +} + +.excalidraw-scriptengine-install td.label { + min-width: 11ch; + font-weight: bold; + padding-right: 5px; +} + +.excalidraw-scriptengine-install td.data { + width: 100%; +} + +.excalidraw-scriptengine-install .modal-content { + max-width: 130ch; + user-select: text; +} + +.excalidraw-scriptengine-install .modal { + max-height:90%; + width: auto; +} + +.excalidraw-prompt-center { + text-align: center !important; +} + +.excalidraw-prompt-center button { + margin: 0 10px; +} + +.excalidraw-prompt-center.filepath { + text-align: center; + font-weight: bold; + margin-bottom: 2em; +} + +.excalidraw-dirty { + color: red; +} + +.workspace-leaf-content .excalidraw-view { + padding: 0px 1px; /*1px so on ipad swipe in from left and right still works*/ +} + +.excalidraw-videoWrapper { + max-width:600px +} +.excalidraw-videoWrapper div { + position: relative; + padding-bottom: 56.25%; + height: 0; + margin: 0 auto; +} + +.excalidraw-videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.excalidraw-release .modal-content{ + padding-right: 5px; + margin-right: -5px; + user-select: text; +} + +.excalidraw-release .modal { + max-height: 90%; + width: auto; + max-width: 130ch; +} + +.excalidraw .Island .scrollbar { + --scrollbar-thumb-bg: silver; +} + +.excalidraw .ToolIcon__icon img{ + height: 1em; +} + +.excalidraw-scriptengine-install tbody>tr>td>div>img { + height:20px; + background-color: silver; + padding: 2px; +} + +.excalidraw-scriptengine-install tbody>tr>td>div { + width: 50px; + display: inline-block; +} + +.excalidraw-release p>a>img { + width: 100% +} + +.excalidraw .context-menu-option { + box-shadow: none; +} + +textarea.excalidraw-wysiwyg { + border-color: transparent !important; + border-radius: 0 !important; +} \ No newline at end of file diff --git a/notes/.obsidian/plugins/obsidian-gist/main.js b/notes/.obsidian/plugins/obsidian-gist/main.js index 3b40e89..b73c168 100644 --- a/notes/.obsidian/plugins/obsidian-gist/main.js +++ b/notes/.obsidian/plugins/obsidian-gist/main.js @@ -7,7 +7,7 @@ if you want to view the source visit the plugins github repository var obsidian = require('obsidian'); -/*! ***************************************************************************** +/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -32,62 +32,20 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } -// This file replaces `index.js` in bundlers like webpack or Rollup, - -if (process.env.NODE_ENV !== 'production') { - // All bundlers will remove this block in the production bundle. - if ( - typeof navigator !== 'undefined' && - navigator.product === 'ReactNative' && - typeof crypto === 'undefined' - ) { - throw new Error( - 'React Native does not have a built-in secure random generator. ' + - 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' + - 'For secure IDs, import `react-native-get-random-values` ' + - 'before Nano ID.' - ) - } - if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') { - throw new Error( - 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' + - ' before importing Nano ID to fix IE 11 support' - ) - } - if (typeof crypto === 'undefined') { - throw new Error( - 'Your browser does not have secure random generator. ' + - 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.' - ) - } -} - -let nanoid = (size = 21) => { - let id = ''; - let bytes = crypto.getRandomValues(new Uint8Array(size)); - - // A compact alternative for `for (var i = 0; i < step; i++)`. - while (size--) { - // It is incorrect to use bytes exceeding the alphabet size. - // The following mask reduces the random byte in the 0-255 value - // range to the 0-63 value range. Therefore, adding hacks, such - // as empty string fallback or magic numbers, is unneccessary because - // the bitmask trims bytes down to the alphabet size. - let byte = bytes[size] & 63; +let nanoid = (size = 21) => + crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { + byte &= 63; if (byte < 36) { - // `0-9a-z` id += byte.toString(36); } else if (byte < 62) { - // `A-Z` id += (byte - 26).toString(36).toUpperCase(); - } else if (byte < 63) { - id += '_'; - } else { + } else if (byte > 62) { id += '-'; + } else { + id += '_'; } - } - return id -}; + return id + }, ''); const pluginName = "obsidian-gist"; const obsidianAppOrigin = 'app://obsidian.md'; @@ -284,4 +242,4 @@ class GistSettingTab extends obsidian.PluginSettingTab { } module.exports = GistPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguYnJvd3Nlci5qcyIsInNyYy9naXN0X3Byb2Nlc3Nvci50cyIsInNyYy9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpudWxsLCJuYW1lcyI6WyJQbHVnaW4iLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxP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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguYnJvd3Nlci5qcyIsInNyYy9naXN0X3Byb2Nlc3Nvci50cyIsInNyYy9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpudWxsLCJuYW1lcyI6WyJQbHVnaW4iLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxP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 diff --git a/notes/.obsidian/plugins/obsidian-gist/manifest.json b/notes/.obsidian/plugins/obsidian-gist/manifest.json index df49b4a..6d67c65 100644 --- a/notes/.obsidian/plugins/obsidian-gist/manifest.json +++ b/notes/.obsidian/plugins/obsidian-gist/manifest.json @@ -1,8 +1,8 @@ { "id": "obsidian-gist", "name": "Gist", - "version": "0.8.1", - "minAppVersion": "0.9.12", + "version": "0.9.0", + "minAppVersion": "0.15.0", "description": "This is a plugin to display the GitHub Gist.", "author": "Jun Lin", "authorUrl": "https://github.com/linjunpop/obsidian-gist", diff --git a/notes/.obsidian/plugins/obsidian-git/data.json b/notes/.obsidian/plugins/obsidian-git/data.json index ef9b233..f8e50bc 100644 --- a/notes/.obsidian/plugins/obsidian-git/data.json +++ b/notes/.obsidian/plugins/obsidian-git/data.json @@ -3,6 +3,7 @@ "autoCommitMessage": "vault backup: {{date}}", "commitDateFormat": "YYYY-MM-DD HH:mm:ss", "autoSaveInterval": 0, + "autoPushInterval": 0, "autoPullInterval": 0, "autoPullOnBoot": false, "disablePush": false, @@ -12,10 +13,13 @@ "showStatusBar": true, "updateSubmodules": false, "syncMethod": "merge", - "gitPath": "", "customMessageOnAutoBackup": false, "autoBackupAfterFileChange": false, "treeStructure": false, "refreshSourceControl": true, - "basePath": "" + "basePath": "", + "differentIntervalCommitAndPush": false, + "changedFilesInStatusBar": false, + "username": "", + "showedMobileNotice": true } \ No newline at end of file diff --git a/notes/.obsidian/plugins/obsidian-git/main.js b/notes/.obsidian/plugins/obsidian-git/main.js index 21bb8f0..4d5d509 100644 --- a/notes/.obsidian/plugins/obsidian-git/main.js +++ b/notes/.obsidian/plugins/obsidian-git/main.js @@ -1,6 +1,6 @@ /* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD -if you want to view the source visit the plugins github repository (https://github.com/phibr0/obsidian-dictionary) +if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) */ var __create = Object.create; @@ -27,6 +27,9 @@ var __spreadValues = (a, b) => { }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[Object.keys(fn)[0]])(fn = 0)), res; +}; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; @@ -67,9 +70,7201 @@ var __async = (__this, __arguments, generator) => { }); }; +// node_modules/base64-js/index.js +var require_base64_js = __commonJS({ + "node_modules/base64-js/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + exports.byteLength = byteLength; + exports.toByteArray = toByteArray; + exports.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + var i; + var len; + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) + validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i2; + for (i2 = 0; i2 < len2; i2 += 4) { + tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num2) { + return lookup[num2 >> 18 & 63] + lookup[num2 >> 12 & 63] + lookup[num2 >> 6 & 63] + lookup[num2 & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i2 = start; i2 < end; i2 += 3) { + tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { + parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="); + } + return parts.join(""); + } + } +}); + +// node_modules/ieee754/index.js +var require_ieee754 = __commonJS({ + "node_modules/ieee754/index.js"(exports) { + init_polyfill_buffer(); + exports.read = function(buffer2, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer2[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + exports.write = function(buffer2, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer2[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { + } + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer2[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { + } + buffer2[offset + i - d] |= s * 128; + }; + } +}); + +// node_modules/buffer/index.js +var require_buffer = __commonJS({ + "node_modules/buffer/index.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var base64 = require_base64_js(); + var ieee754 = require_ieee754(); + var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; + exports.Buffer = Buffer3; + exports.SlowBuffer = SlowBuffer; + exports.INSPECT_MAX_BYTES = 50; + var K_MAX_LENGTH = 2147483647; + exports.kMaxLength = K_MAX_LENGTH; + Buffer3.TYPED_ARRAY_SUPPORT = typedArraySupport(); + if (!Buffer3.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { + console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."); + } + function typedArraySupport() { + try { + const arr = new Uint8Array(1); + const proto = { foo: function() { + return 42; + } }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e) { + return false; + } + } + Object.defineProperty(Buffer3.prototype, "parent", { + enumerable: true, + get: function() { + if (!Buffer3.isBuffer(this)) + return void 0; + return this.buffer; + } + }); + Object.defineProperty(Buffer3.prototype, "offset", { + enumerable: true, + get: function() { + if (!Buffer3.isBuffer(this)) + return void 0; + return this.byteOffset; + } + }); + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer3.prototype); + return buf; + } + function Buffer3(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError('The "string" argument must be of type string. Received type number'); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); + } + Buffer3.poolSize = 8192; + function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + if (value == null) { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type number'); + } + const valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer3.from(valueOf, encodingOrOffset, length); + } + const b = fromObject(value); + if (b) + return b; + if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { + return Buffer3.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length); + } + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + Buffer3.from = function(value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); + }; + Object.setPrototypeOf(Buffer3.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer3, Uint8Array); + function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + } + function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== void 0) { + return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); + } + Buffer3.alloc = function(size, fill, encoding) { + return alloc(size, fill, encoding); + }; + function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); + } + Buffer3.allocUnsafe = function(size) { + return allocUnsafe(size); + }; + Buffer3.allocUnsafeSlow = function(size) { + return allocUnsafe(size); + }; + function fromString(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer3.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + const length = byteLength(string, encoding) | 0; + let buf = createBuffer(length); + const actual = buf.write(string, encoding); + if (actual !== length) { + buf = buf.slice(0, actual); + } + return buf; + } + function fromArrayLike(array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0; + const buf = createBuffer(length); + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; + } + function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy2 = new Uint8Array(arrayView); + return fromArrayBuffer(copy2.buffer, copy2.byteOffset, copy2.byteLength); + } + return fromArrayLike(arrayView); + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + let buf; + if (byteOffset === void 0 && length === void 0) { + buf = new Uint8Array(array); + } else if (length === void 0) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + Object.setPrototypeOf(buf, Buffer3.prototype); + return buf; + } + function fromObject(obj) { + if (Buffer3.isBuffer(obj)) { + const len = checked(obj.length) | 0; + const buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== void 0) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); + } + return length | 0; + } + function SlowBuffer(length) { + if (+length != length) { + length = 0; + } + return Buffer3.alloc(+length); + } + Buffer3.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer3.prototype; + }; + Buffer3.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) + a = Buffer3.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) + b = Buffer3.from(b, b.offset, b.byteLength); + if (!Buffer3.isBuffer(a) || !Buffer3.isBuffer(b)) { + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); + } + if (a === b) + return 0; + let x = a.length; + let y = b.length; + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + if (x < y) + return -1; + if (y < x) + return 1; + return 0; + }; + Buffer3.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } + }; + Buffer3.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer3.alloc(0); + } + let i; + if (length === void 0) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + const buffer2 = Buffer3.allocUnsafe(length); + let pos = 0; + for (i = 0; i < list.length; ++i) { + let buf = list[i]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer2.length) { + if (!Buffer3.isBuffer(buf)) + buf = Buffer3.from(buf); + buf.copy(buffer2, pos); + } else { + Uint8Array.prototype.set.call(buffer2, buf, pos); + } + } else if (!Buffer3.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer2, pos); + } + pos += buf.length; + } + return buffer2; + }; + function byteLength(string, encoding) { + if (Buffer3.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string); + } + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) + return 0; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer3.byteLength = byteLength; + function slowToString(encoding, start, end) { + let loweredCase = false; + if (start === void 0 || start < 0) { + start = 0; + } + if (start > this.length) { + return ""; + } + if (end === void 0 || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ""; + } + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ""; + } + if (!encoding) + encoding = "utf8"; + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + case "ascii": + return asciiSlice(this, start, end); + case "latin1": + case "binary": + return latin1Slice(this, start, end); + case "base64": + return base64Slice(this, start, end); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } + } + Buffer3.prototype._isBuffer = true; + function swap(b, n, m) { + const i = b[n]; + b[n] = b[m]; + b[m] = i; + } + Buffer3.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; + }; + Buffer3.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; + }; + Buffer3.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; + }; + Buffer3.prototype.toString = function toString() { + const length = this.length; + if (length === 0) + return ""; + if (arguments.length === 0) + return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + Buffer3.prototype.toLocaleString = Buffer3.prototype.toString; + Buffer3.prototype.equals = function equals2(b) { + if (!Buffer3.isBuffer(b)) + throw new TypeError("Argument must be a Buffer"); + if (this === b) + return true; + return Buffer3.compare(this, b) === 0; + }; + Buffer3.prototype.inspect = function inspect() { + let str = ""; + const max = exports.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + if (this.length > max) + str += " ... "; + return ""; + }; + if (customInspectSymbol) { + Buffer3.prototype[customInspectSymbol] = Buffer3.prototype.inspect; + } + Buffer3.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer3.from(target, target.offset, target.byteLength); + } + if (!Buffer3.isBuffer(target)) { + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target); + } + if (start === void 0) { + start = 0; + } + if (end === void 0) { + end = target ? target.length : 0; + } + if (thisStart === void 0) { + thisStart = 0; + } + if (thisEnd === void 0) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError("out of range index"); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) + return 0; + let x = thisEnd - thisStart; + let y = end - start; + const len = Math.min(x, y); + const thisCopy = this.slice(thisStart, thisEnd); + const targetCopy = target.slice(start, end); + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + if (x < y) + return -1; + if (y < x) + return 1; + return 0; + }; + function bidirectionalIndexOf(buffer2, val, byteOffset, encoding, dir) { + if (buffer2.length === 0) + return -1; + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer2.length - 1; + } + if (byteOffset < 0) + byteOffset = buffer2.length + byteOffset; + if (byteOffset >= buffer2.length) { + if (dir) + return -1; + else + byteOffset = buffer2.length - 1; + } else if (byteOffset < 0) { + if (dir) + byteOffset = 0; + else + return -1; + } + if (typeof val === "string") { + val = Buffer3.from(val, encoding); + } + if (Buffer3.isBuffer(val)) { + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer2, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 255; + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer2, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer2, val, byteOffset); + } + } + return arrayIndexOf(buffer2, [val], byteOffset, encoding, dir); + } + throw new TypeError("val must be string, number or Buffer"); + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + if (encoding !== void 0) { + encoding = String(encoding).toLowerCase(); + if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i2) { + if (indexSize === 1) { + return buf[i2]; + } else { + return buf.readUInt16BE(i2 * indexSize); + } + } + let i; + if (dir) { + let foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) + foundIndex = i; + if (i - foundIndex + 1 === valLength) + return foundIndex * indexSize; + } else { + if (foundIndex !== -1) + i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) + byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + let found = true; + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) + return i; + } + } + return -1; + } + Buffer3.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + Buffer3.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + Buffer3.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + const strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + let i; + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) + return i; + buf[offset + i] = parsed; + } + return i; + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + Buffer3.prototype.write = function write(string, offset, length, encoding) { + if (offset === void 0) { + encoding = "utf8"; + length = this.length; + offset = 0; + } else if (length === void 0 && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === void 0) + encoding = "utf8"; + } else { + encoding = length; + length = void 0; + } + } else { + throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); + } + const remaining = this.length - offset; + if (length === void 0 || length > remaining) + length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + if (!encoding) + encoding = "utf8"; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + case "base64": + return base64Write(this, string, offset, length); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + Buffer3.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + const res = []; + let i = start; + while (i < end) { + const firstByte = buf[i]; + let codePoint = null; + let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 192) === 128) { + tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; + if (tempCodePoint > 127) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; + if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + codePoint = 65533; + bytesPerSequence = 1; + } else if (codePoint > 65535) { + codePoint -= 65536; + res.push(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + res.push(codePoint); + i += bytesPerSequence; + } + return decodeCodePointsArray(res); + } + var MAX_ARGUMENTS_LENGTH = 4096; + function decodeCodePointsArray(codePoints) { + const len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); + } + let res = ""; + let i = 0; + while (i < len) { + res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); + } + return res; + } + function asciiSlice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 127); + } + return ret; + } + function latin1Slice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; + } + function hexSlice(buf, start, end) { + const len = buf.length; + if (!start || start < 0) + start = 0; + if (!end || end < 0 || end > len) + end = len; + let out = ""; + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out; + } + function utf16leSlice(buf, start, end) { + const bytes = buf.slice(start, end); + let res = ""; + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; + } + Buffer3.prototype.slice = function slice(start, end) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) + start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) + end = 0; + } else if (end > len) { + end = len; + } + if (end < start) + end = start; + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer3.prototype); + return newBuf; + }; + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) + throw new RangeError("offset is not uint"); + if (offset + ext > length) + throw new RangeError("Trying to access beyond buffer length"); + } + Buffer3.prototype.readUintLE = Buffer3.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + return val; + }; + Buffer3.prototype.readUintBE = Buffer3.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength2, this.length); + } + let val = this[offset + --byteLength2]; + let mul = 1; + while (byteLength2 > 0 && (mul *= 256)) { + val += this[offset + --byteLength2] * mul; + } + return val; + }; + Buffer3.prototype.readUint8 = Buffer3.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + return this[offset]; + }; + Buffer3.prototype.readUint16LE = Buffer3.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + Buffer3.prototype.readUint16BE = Buffer3.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + Buffer3.prototype.readUint32LE = Buffer3.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; + }; + Buffer3.prototype.readUint32BE = Buffer3.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + Buffer3.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const lo = first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24; + const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last2 * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }); + Buffer3.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const hi = first2 * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }); + Buffer3.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer3.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let i = byteLength2; + let mul = 1; + let val = this[offset + --i]; + while (i > 0 && (mul *= 256)) { + val += this[offset + --i] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer3.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + if (!(this[offset] & 128)) + return this[offset]; + return (255 - this[offset] + 1) * -1; + }; + Buffer3.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset] | this[offset + 1] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer3.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset + 1] | this[offset] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer3.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + Buffer3.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + Buffer3.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last2 << 24); + return (BigInt(val) << BigInt(32)) + BigInt(first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24); + }); + Buffer3.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = (first2 << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2); + }); + Buffer3.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); + }; + Buffer3.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); + }; + Buffer3.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); + }; + Buffer3.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); + }; + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer3.isBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + } + Buffer3.prototype.writeUintLE = Buffer3.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let mul = 1; + let i = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeUintBE = Buffer3.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let i = byteLength2 - 1; + let mul = 1; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeUint8 = Buffer3.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 255, 0); + this[offset] = value & 255; + return offset + 1; + }; + Buffer3.prototype.writeUint16LE = Buffer3.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer3.prototype.writeUint16BE = Buffer3.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer3.prototype.writeUint32LE = Buffer3.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 255; + return offset + 4; + }; + Buffer3.prototype.writeUint32BE = Buffer3.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + function wrtBigUInt64LE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; + } + function wrtBigUInt64BE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; + } + Buffer3.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer3.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer3.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = 0; + let mul = 1; + let sub = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = byteLength2 - 1; + let mul = 1; + let sub = 0; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 127, -128); + if (value < 0) + value = 255 + value + 1; + this[offset] = value & 255; + return offset + 1; + }; + Buffer3.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer3.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer3.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; + }; + Buffer3.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + if (value < 0) + value = 4294967295 + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + Buffer3.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + Buffer3.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + if (offset < 0) + throw new RangeError("Index out of range"); + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + Buffer3.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + Buffer3.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + Buffer3.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + Buffer3.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; + Buffer3.prototype.copy = function copy2(target, targetStart, start, end) { + if (!Buffer3.isBuffer(target)) + throw new TypeError("argument should be a Buffer"); + if (!start) + start = 0; + if (!end && end !== 0) + end = this.length; + if (targetStart >= target.length) + targetStart = target.length; + if (!targetStart) + targetStart = 0; + if (end > 0 && end < start) + end = start; + if (end === start) + return 0; + if (target.length === 0 || this.length === 0) + return 0; + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) + throw new RangeError("Index out of range"); + if (end < 0) + throw new RangeError("sourceEnd out of bounds"); + if (end > this.length) + end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + const len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === "function") { + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart); + } + return len; + }; + Buffer3.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== void 0 && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer3.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === void 0 ? this.length : end >>> 0; + if (!val) + val = 0; + let i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + const bytes = Buffer3.isBuffer(val) ? val : Buffer3.from(val, encoding); + const len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + return this; + }; + var errors = {}; + function E(sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor() { + super(); + Object.defineProperty(this, "message", { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }); + this.name = `${this.name} [${sym}]`; + this.stack; + delete this.name; + } + get code() { + return sym; + } + set code(value) { + Object.defineProperty(this, "code", { + configurable: true, + enumerable: true, + value, + writable: true + }); + } + toString() { + return `${this.name} [${sym}]: ${this.message}`; + } + }; + } + E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) { + if (name) { + return `${name} is outside of buffer bounds`; + } + return "Attempt to access memory outside buffer bounds"; + }, RangeError); + E("ERR_INVALID_ARG_TYPE", function(name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}`; + }, TypeError); + E("ERR_OUT_OF_RANGE", function(str, range, input) { + let msg = `The value of "${str}" is out of range.`; + let received = input; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received); + } + received += "n"; + } + msg += ` It must be ${range}. Received ${received}`; + return msg; + }, RangeError); + function addNumericalSeparator(val) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; + } + function checkBounds(buf, offset, byteLength2) { + validateNumber(offset, "offset"); + if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } + } + function checkIntBI(value, min, max, buf, offset, byteLength2) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength2 > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`; + } + } else { + range = `>= ${min}${n} and <= ${max}${n}`; + } + throw new errors.ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); + } + function validateNumber(value, name) { + if (typeof value !== "number") { + throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value); + } + } + function boundsError(value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type); + throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value); + } + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS(); + } + throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value); + } + var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + function base64clean(str) { + str = str.split("=")[0]; + str = str.trim().replace(INVALID_BASE64_RE, ""); + if (str.length < 2) + return ""; + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; + } + function utf8ToBytes(string, units) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } else if (i + 1 === length) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } + leadSurrogate = codePoint; + continue; + } + if (codePoint < 56320) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + leadSurrogate = codePoint; + continue; + } + codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; + } else if (leadSurrogate) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + } + leadSurrogate = null; + if (codePoint < 128) { + if ((units -= 1) < 0) + break; + bytes.push(codePoint); + } else if (codePoint < 2048) { + if ((units -= 2) < 0) + break; + bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128); + } else if (codePoint < 65536) { + if ((units -= 3) < 0) + break; + bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) + break; + bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else { + throw new Error("Invalid code point"); + } + } + return bytes; + } + function asciiToBytes(str) { + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + byteArray.push(str.charCodeAt(i) & 255); + } + return byteArray; + } + function utf16leToBytes(str, units) { + let c, hi, lo; + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) + break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); + } + function blitBuffer(src, dst, offset, length) { + let i; + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) + break; + dst[i + offset] = src[i]; + } + return i; + } + function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; + } + function numberIsNaN(obj) { + return obj !== obj; + } + var hexSliceLookupTable = function() { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i = 0; i < 16; ++i) { + const i16 = i * 16; + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; + }(); + function defineBigIntMethod(fn) { + return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn; + } + function BufferBigIntNotDefined() { + throw new Error("BigInt not supported"); + } + } +}); + +// polyfill_buffer.js +var import_obsidian, buffer, Buffer2; +var init_polyfill_buffer = __esm({ + "polyfill_buffer.js"() { + import_obsidian = __toModule(require("obsidian")); + if (import_obsidian.Platform.isMobileApp) { + buffer = require_buffer().Buffer; + } else { + buffer = global.Buffer; + } + Buffer2 = buffer; + } +}); + +// node_modules/async-lock/lib/index.js +var require_lib = __commonJS({ + "node_modules/async-lock/lib/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var AsyncLock2 = function(opts) { + opts = opts || {}; + this.Promise = opts.Promise || Promise; + this.queues = Object.create(null); + this.domainReentrant = opts.domainReentrant || false; + if (this.domainReentrant) { + if (typeof process === "undefined" || typeof process.domain === "undefined") { + throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill."); + } + this.domains = Object.create(null); + } + this.timeout = opts.timeout || AsyncLock2.DEFAULT_TIMEOUT; + this.maxOccupationTime = opts.maxOccupationTime || AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME; + if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) { + this.maxPending = opts.maxPending; + } else { + this.maxPending = AsyncLock2.DEFAULT_MAX_PENDING; + } + }; + AsyncLock2.DEFAULT_TIMEOUT = 0; + AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME = 0; + AsyncLock2.DEFAULT_MAX_PENDING = 1e3; + AsyncLock2.prototype.acquire = function(key2, fn, cb, opts) { + if (Array.isArray(key2)) { + return this._acquireBatch(key2, fn, cb, opts); + } + if (typeof fn !== "function") { + throw new Error("You must pass a function to execute"); + } + var deferredResolve = null; + var deferredReject = null; + var deferred2 = null; + if (typeof cb !== "function") { + opts = cb; + cb = null; + deferred2 = new this.Promise(function(resolve, reject) { + deferredResolve = resolve; + deferredReject = reject; + }); + } + opts = opts || {}; + var resolved = false; + var timer = null; + var occupationTimer = null; + var self3 = this; + var done = function(locked, err, ret) { + if (occupationTimer) { + clearTimeout(occupationTimer); + occupationTimer = null; + } + if (locked) { + if (!!self3.queues[key2] && self3.queues[key2].length === 0) { + delete self3.queues[key2]; + } + if (self3.domainReentrant) { + delete self3.domains[key2]; + } + } + if (!resolved) { + if (!deferred2) { + if (typeof cb === "function") { + cb(err, ret); + } + } else { + if (err) { + deferredReject(err); + } else { + deferredResolve(ret); + } + } + resolved = true; + } + if (locked) { + if (!!self3.queues[key2] && self3.queues[key2].length > 0) { + self3.queues[key2].shift()(); + } + } + }; + var exec = function(locked) { + if (resolved) { + return done(locked); + } + if (timer) { + clearTimeout(timer); + timer = null; + } + if (self3.domainReentrant && locked) { + self3.domains[key2] = process.domain; + } + if (fn.length === 1) { + var called = false; + try { + fn(function(err, ret) { + if (!called) { + called = true; + done(locked, err, ret); + } + }); + } catch (err) { + if (!called) { + called = true; + done(locked, err); + } + } + } else { + self3._promiseTry(function() { + return fn(); + }).then(function(ret) { + done(locked, void 0, ret); + }, function(error) { + done(locked, error); + }); + } + }; + if (self3.domainReentrant && !!process.domain) { + exec = process.domain.bind(exec); + } + if (!self3.queues[key2]) { + self3.queues[key2] = []; + exec(true); + } else if (self3.domainReentrant && !!process.domain && process.domain === self3.domains[key2]) { + exec(false); + } else if (self3.queues[key2].length >= self3.maxPending) { + done(false, new Error("Too many pending tasks in queue " + key2)); + } else { + var taskFn = function() { + exec(true); + }; + if (opts.skipQueue) { + self3.queues[key2].unshift(taskFn); + } else { + self3.queues[key2].push(taskFn); + } + var timeout = opts.timeout || self3.timeout; + if (timeout) { + timer = setTimeout(function() { + timer = null; + done(false, new Error("async-lock timed out in queue " + key2)); + }, timeout); + } + } + var maxOccupationTime = opts.maxOccupationTime || self3.maxOccupationTime; + if (maxOccupationTime) { + occupationTimer = setTimeout(function() { + if (!!self3.queues[key2]) { + done(false, new Error("Maximum occupation time is exceeded in queue " + key2)); + } + }, maxOccupationTime); + } + if (deferred2) { + return deferred2; + } + }; + AsyncLock2.prototype._acquireBatch = function(keys, fn, cb, opts) { + if (typeof cb !== "function") { + opts = cb; + cb = null; + } + var self3 = this; + var getFn = function(key2, fn2) { + return function(cb2) { + self3.acquire(key2, fn2, cb2, opts); + }; + }; + var fnx = keys.reduceRight(function(prev, key2) { + return getFn(key2, prev); + }, fn); + if (typeof cb === "function") { + fnx(cb); + } else { + return new this.Promise(function(resolve, reject) { + if (fnx.length === 1) { + fnx(function(err, ret) { + if (err) { + reject(err); + } else { + resolve(ret); + } + }); + } else { + resolve(fnx()); + } + }); + } + }; + AsyncLock2.prototype.isBusy = function(key2) { + if (!key2) { + return Object.keys(this.queues).length > 0; + } else { + return !!this.queues[key2]; + } + }; + AsyncLock2.prototype._promiseTry = function(fn) { + try { + return this.Promise.resolve(fn()); + } catch (e) { + return this.Promise.reject(e); + } + }; + module2.exports = AsyncLock2; + } +}); + +// node_modules/async-lock/index.js +var require_async_lock = __commonJS({ + "node_modules/async-lock/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + module2.exports = require_lib(); + } +}); + +// node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "node_modules/inherits/inherits_browser.js"(exports, module2) { + init_polyfill_buffer(); + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); + +// node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/safe-buffer/index.js"(exports, module2) { + init_polyfill_buffer(); + var buffer2 = require_buffer(); + var Buffer3 = buffer2.Buffer; + function copyProps(src, dst) { + for (var key2 in src) { + dst[key2] = src[key2]; + } + } + if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) { + module2.exports = buffer2; + } else { + copyProps(buffer2, exports); + exports.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer3(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer3.prototype); + copyProps(Buffer3, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer3(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer3(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer3(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer2.SlowBuffer(size); + }; + } +}); + +// node_modules/sha.js/hash.js +var require_hash = __commonJS({ + "node_modules/sha.js/hash.js"(exports, module2) { + init_polyfill_buffer(); + var Buffer3 = require_safe_buffer().Buffer; + function Hash2(blockSize, finalSize) { + this._block = Buffer3.alloc(blockSize); + this._finalSize = finalSize; + this._blockSize = blockSize; + this._len = 0; + } + Hash2.prototype.update = function(data, enc) { + if (typeof data === "string") { + enc = enc || "utf8"; + data = Buffer3.from(data, enc); + } + var block = this._block; + var blockSize = this._blockSize; + var length = data.length; + var accum = this._len; + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i]; + } + accum += remainder; + offset += remainder; + if (accum % blockSize === 0) { + this._update(block); + } + } + this._len += length; + return this; + }; + Hash2.prototype.digest = function(enc) { + var rem = this._len % this._blockSize; + this._block[rem] = 128; + this._block.fill(0, rem + 1); + if (rem >= this._finalSize) { + this._update(this._block); + this._block.fill(0); + } + var bits = this._len * 8; + if (bits <= 4294967295) { + this._block.writeUInt32BE(bits, this._blockSize - 4); + } else { + var lowBits = (bits & 4294967295) >>> 0; + var highBits = (bits - lowBits) / 4294967296; + this._block.writeUInt32BE(highBits, this._blockSize - 8); + this._block.writeUInt32BE(lowBits, this._blockSize - 4); + } + this._update(this._block); + var hash2 = this._hash(); + return enc ? hash2.toString(enc) : hash2; + }; + Hash2.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); + }; + module2.exports = Hash2; + } +}); + +// node_modules/sha.js/sha1.js +var require_sha1 = __commonJS({ + "node_modules/sha.js/sha1.js"(exports, module2) { + init_polyfill_buffer(); + var inherits = require_inherits_browser(); + var Hash2 = require_hash(); + var Buffer3 = require_safe_buffer().Buffer; + var K = [ + 1518500249, + 1859775393, + 2400959708 | 0, + 3395469782 | 0 + ]; + var W = new Array(80); + function Sha1() { + this.init(); + this._w = W; + Hash2.call(this, 64, 56); + } + inherits(Sha1, Hash2); + Sha1.prototype.init = function() { + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + this._e = 3285377520; + return this; + }; + function rotl1(num2) { + return num2 << 1 | num2 >>> 31; + } + function rotl5(num2) { + return num2 << 5 | num2 >>> 27; + } + function rotl30(num2) { + return num2 << 30 | num2 >>> 2; + } + function ft(s, b, c, d) { + if (s === 0) + return b & c | ~b & d; + if (s === 2) + return b & c | b & d | c & d; + return b ^ c ^ d; + } + Sha1.prototype._update = function(M) { + var W2 = this._w; + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; + for (var i = 0; i < 16; ++i) + W2[i] = M.readInt32BE(i * 4); + for (; i < 80; ++i) + W2[i] = rotl1(W2[i - 3] ^ W2[i - 8] ^ W2[i - 14] ^ W2[i - 16]); + for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20); + var t = rotl5(a) + ft(s, b, c, d) + e + W2[j] + K[s] | 0; + e = d; + d = c; + c = rotl30(b); + b = a; + a = t; + } + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + }; + Sha1.prototype._hash = function() { + var H = Buffer3.allocUnsafe(20); + H.writeInt32BE(this._a | 0, 0); + H.writeInt32BE(this._b | 0, 4); + H.writeInt32BE(this._c | 0, 8); + H.writeInt32BE(this._d | 0, 12); + H.writeInt32BE(this._e | 0, 16); + return H; + }; + module2.exports = Sha1; + } +}); + +// node_modules/crc-32/crc32.js +var require_crc32 = __commonJS({ + "node_modules/crc-32/crc32.js"(exports) { + init_polyfill_buffer(); + var CRC32; + (function(factory) { + if (typeof DO_NOT_EXPORT_CRC === "undefined") { + if (typeof exports === "object") { + factory(exports); + } else if (typeof define === "function" && define.amd) { + define(function() { + var module3 = {}; + factory(module3); + return module3; + }); + } else { + factory(CRC32 = {}); + } + } else { + factory(CRC32 = {}); + } + })(function(CRC322) { + CRC322.version = "1.2.2"; + function signed_crc_table() { + var c = 0, table = new Array(256); + for (var n = 0; n != 256; ++n) { + c = n; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + table[n] = c; + } + return typeof Int32Array !== "undefined" ? new Int32Array(table) : table; + } + var T0 = signed_crc_table(); + function slice_by_16_tables(T) { + var c = 0, v = 0, n = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096); + for (n = 0; n != 256; ++n) + table[n] = T[n]; + for (n = 0; n != 256; ++n) { + v = T[n]; + for (c = 256 + n; c < 4096; c += 256) + v = table[c] = v >>> 8 ^ T[v & 255]; + } + var out = []; + for (n = 1; n != 16; ++n) + out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256); + return out; + } + var TT = slice_by_16_tables(T0); + var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4]; + var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9]; + var Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14]; + function crc32_bstr(bstr, seed) { + var C = seed ^ -1; + for (var i = 0, L = bstr.length; i < L; ) + C = C >>> 8 ^ T0[(C ^ bstr.charCodeAt(i++)) & 255]; + return ~C; + } + function crc32_buf(B, seed) { + var C = seed ^ -1, L = B.length - 15, i = 0; + for (; i < L; ) + C = Tf[B[i++] ^ C & 255] ^ Te[B[i++] ^ C >> 8 & 255] ^ Td[B[i++] ^ C >> 16 & 255] ^ Tc[B[i++] ^ C >>> 24] ^ Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^ T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^ T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]]; + L += 15; + while (i < L) + C = C >>> 8 ^ T0[(C ^ B[i++]) & 255]; + return ~C; + } + function crc32_str(str, seed) { + var C = seed ^ -1; + for (var i = 0, L = str.length, c = 0, d = 0; i < L; ) { + c = str.charCodeAt(i++); + if (c < 128) { + C = C >>> 8 ^ T0[(C ^ c) & 255]; + } else if (c < 2048) { + C = C >>> 8 ^ T0[(C ^ (192 | c >> 6 & 31)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } else if (c >= 55296 && c < 57344) { + c = (c & 1023) + 64; + d = str.charCodeAt(i++) & 1023; + C = C >>> 8 ^ T0[(C ^ (240 | c >> 8 & 7)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 2 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d & 63)) & 255]; + } else { + C = C >>> 8 ^ T0[(C ^ (224 | c >> 12 & 15)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 6 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } + } + return ~C; + } + CRC322.table = T0; + CRC322.bstr = crc32_bstr; + CRC322.buf = crc32_buf; + CRC322.str = crc32_str; + }); + } +}); + +// node_modules/pako/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/pako/lib/utils/common.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key2) { + return Object.prototype.hasOwnProperty.call(obj, key2); + } + exports.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports.setTyped = function(on) { + if (on) { + exports.Buf8 = Uint8Array; + exports.Buf16 = Uint16Array; + exports.Buf32 = Int32Array; + exports.assign(exports, fnTyped); + } else { + exports.Buf8 = Array; + exports.Buf16 = Array; + exports.Buf32 = Array; + exports.assign(exports, fnUntyped); + } + }; + exports.setTyped(TYPED_OK); + } +}); + +// node_modules/pako/lib/zlib/trees.js +var require_trees = __commonJS({ + "node_modules/pako/lib/zlib/trees.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]; + var extra_dbits = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]; + var extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]; + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits(s, tree[c * 2], tree[c * 2 + 1]); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + } + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + } + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + } + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[1]; + s.heap[1] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1); + m = s.heap[1]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[1] = node++; + pqdownheap(s, tree, 1); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[1]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + } + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + } + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + } + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last2) { + send_bits(s, (STORED_BLOCK << 1) + (last2 ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last2) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last2); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last2 ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last2 ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last2) { + bi_windup(s); + } + } + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; + } + exports._tr_init = _tr_init; + exports._tr_stored_block = _tr_stored_block; + exports._tr_flush_block = _tr_flush_block; + exports._tr_tally = _tr_tally; + exports._tr_align = _tr_align; + } +}); + +// node_modules/pako/lib/zlib/adler32.js +var require_adler32 = __commonJS({ + "node_modules/pako/lib/zlib/adler32.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module2.exports = adler32; + } +}); + +// node_modules/pako/lib/zlib/crc32.js +var require_crc322 = __commonJS({ + "node_modules/pako/lib/zlib/crc32.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc322(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module2.exports = crc322; + } +}); + +// node_modules/pako/lib/zlib/messages.js +var require_messages = __commonJS({ + "node_modules/pako/lib/zlib/messages.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + module2.exports = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version" + }; + } +}); + +// node_modules/pako/lib/zlib/deflate.js +var require_deflate = __commonJS({ + "node_modules/pako/lib/zlib/deflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var trees = require_trees(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var msg = require_messages(); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last2) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last2); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc322(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + } + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + } + function deflate_stored(s, flush2) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; + } + function deflate_fast(s, flush2) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_slow(s, flush2) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush2) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_huff(s, flush2) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table; + configuration_table = [ + new Config(0, 0, 0, 0, deflate_stored), + new Config(4, 4, 8, 4, deflate_fast), + new Config(4, 5, 16, 8, deflate_fast), + new Config(4, 6, 32, 32, deflate_fast), + new Config(4, 4, 16, 16, deflate_slow), + new Config(8, 16, 32, 32, deflate_slow), + new Config(8, 16, 128, 128, deflate_slow), + new Config(8, 32, 128, 256, deflate_slow), + new Config(32, 128, 258, 1024, deflate_slow), + new Config(32, 258, 258, 4096, deflate_slow) + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + } + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; + } + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate2(strm, flush2) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush2 > Z_BLOCK || flush2 < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush2 !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush2; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16)); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } else { + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush2) <= rank(old_flush) && flush2 !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush2 !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush2) : s.strategy === Z_RLE ? deflate_rle(s, flush2) : configuration_table[s.level].func(s, flush2); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush2 === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush2 !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush2 === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush2 !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + } + function deflateEnd(strm) { + var status2; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status2 = strm.state.status; + if (status2 !== INIT_STATE && status2 !== EXTRA_STATE && status2 !== NAME_STATE && status2 !== COMMENT_STATE && status2 !== HCRC_STATE && status2 !== BUSY_STATE && status2 !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status2 === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + } + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + } + exports.deflateInit = deflateInit; + exports.deflateInit2 = deflateInit2; + exports.deflateReset = deflateReset; + exports.deflateResetKeep = deflateResetKeep; + exports.deflateSetHeader = deflateSetHeader; + exports.deflate = deflate2; + exports.deflateEnd = deflateEnd; + exports.deflateSetDictionary = deflateSetDictionary; + exports.deflateInfo = "pako deflate (from Nodeca project)"; + } +}); + +// node_modules/pako/lib/utils/strings.js +var require_strings = __commonJS({ + "node_modules/pako/lib/utils/strings.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + var q; + _utf8len[254] = _utf8len[254] = 1; + exports.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + } +}); + +// node_modules/pako/lib/zlib/zstream.js +var require_zstream = __commonJS({ + "node_modules/pako/lib/zlib/zstream.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module2.exports = ZStream; + } +}); + +// node_modules/pako/lib/deflate.js +var require_deflate2 = __commonJS({ + "node_modules/pako/lib/deflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var zlib_deflate = require_deflate(); + var utils = require_common(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) + return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_deflate.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status2 = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status2, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_deflate.deflate(strm, _mode); + if (status2 !== Z_STREAM_END && status2 !== Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status2 = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status2) { + if (status2 === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function deflate2(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate2(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate2(input, options); + } + exports.Deflate = Deflate; + exports.deflate = deflate2; + exports.deflateRaw = deflateRaw; + exports.gzip = gzip; + } +}); + +// node_modules/pako/lib/zlib/inffast.js +var require_inffast = __commonJS({ + "node_modules/pako/lib/zlib/inffast.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var BAD = 30; + var TYPE = 12; + module2.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last2; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last2 = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last2 && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last2 ? 5 + (last2 - _in) : 5 - (_in - last2); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + } +}); + +// node_modules/pako/lib/zlib/inftrees.js +var require_inftrees = __commonJS({ + "node_modules/pako/lib/zlib/inftrees.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module2.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root > max) { + root = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root < min) { + root = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + end = 19; + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root; + drop = 0; + low = -1; + used = 1 << root; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root && (huff & mask) !== low) { + if (drop === 0) { + drop = root; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root; + return 0; + }; + } +}); + +// node_modules/pako/lib/zlib/inflate.js +var require_inflate = __commonJS({ + "node_modules/pako/lib/zlib/inflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var utils = require_common(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var inflate_fast = require_inffast(); + var inflate_table = require_inftrees(); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + } + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + } + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix; + var distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + } + function updatewindow(strm, src, end, copy2) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy2 >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy2) { + dist = copy2; + } + utils.arraySet(state.window, src, end - copy2, dist, state.wnext); + copy2 -= dist; + if (copy2) { + utils.arraySet(state.window, src, end - copy2, copy2, 0); + state.wnext = copy2; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate2(strm, flush2) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy2; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc322(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA; + case EXTRA: + if (state.flags & 1024) { + copy2 = state.length; + if (copy2 > have) { + copy2 = have; + } + if (copy2) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet(state.head.extra, input, next, copy2, len); + } + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + state.length -= copy2; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush2 === Z_BLOCK || flush2 === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush2 === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy2 = state.length; + if (copy2) { + if (copy2 > have) { + copy2 = have; + } + if (copy2 > left) { + copy2 = left; + } + if (copy2 === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy2, put); + have -= copy2; + next += copy2; + left -= copy2; + put += copy2; + state.length -= copy2; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy2 = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy2 > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy2--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy2 = _out - left; + if (state.offset > copy2) { + copy2 = state.offset - copy2; + if (copy2 > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy2 > state.wnext) { + copy2 -= state.wnext; + from = state.wsize - copy2; + } else { + from = state.wnext - copy2; + } + if (copy2 > state.length) { + copy2 = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy2 = state.length; + } + if (copy2 > left) { + copy2 = left; + } + left -= copy2; + state.length -= copy2; + do { + output[put++] = from_source[from++]; + } while (--copy2); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = state.flags ? crc322(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush2 !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = state.flags ? crc322(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush2 === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + } + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + } + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + } + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + } + exports.inflateReset = inflateReset; + exports.inflateReset2 = inflateReset2; + exports.inflateResetKeep = inflateResetKeep; + exports.inflateInit = inflateInit; + exports.inflateInit2 = inflateInit2; + exports.inflate = inflate2; + exports.inflateEnd = inflateEnd; + exports.inflateGetHeader = inflateGetHeader; + exports.inflateSetDictionary = inflateSetDictionary; + exports.inflateInfo = "pako inflate (from Nodeca project)"; + } +}); + +// node_modules/pako/lib/zlib/constants.js +var require_constants = __commonJS({ + "node_modules/pako/lib/zlib/constants.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + module2.exports = { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_BUF_ERROR: -5, + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + Z_BINARY: 0, + Z_TEXT: 1, + Z_UNKNOWN: 2, + Z_DEFLATED: 8 + }; + } +}); + +// node_modules/pako/lib/zlib/gzheader.js +var require_gzheader = __commonJS({ + "node_modules/pako/lib/zlib/gzheader.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module2.exports = GZheader; + } +}); + +// node_modules/pako/lib/inflate.js +var require_inflate2 = __commonJS({ + "node_modules/pako/lib/inflate.js"(exports) { + init_polyfill_buffer(); + "use strict"; + var zlib_inflate = require_inflate(); + var utils = require_common(); + var strings = require_strings(); + var c = require_constants(); + var msg = require_messages(); + var ZStream = require_zstream(); + var GZheader = require_gzheader(); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) + return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_inflate.inflateInit2(this.strm, opt.windowBits); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + } + } + } + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status2, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status2 === c.Z_NEED_DICT && dictionary) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status2 === c.Z_BUF_ERROR && allowBufError === true) { + status2 = c.Z_OK; + allowBufError = false; + } + if (status2 !== c.Z_STREAM_END && status2 !== c.Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status2 === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== c.Z_STREAM_END); + if (status2 === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status2 = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status2) { + if (status2 === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function inflate2(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate2(input, options); + } + exports.Inflate = Inflate; + exports.inflate = inflate2; + exports.inflateRaw = inflateRaw; + exports.ungzip = inflate2; + } +}); + +// node_modules/pako/index.js +var require_pako = __commonJS({ + "node_modules/pako/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var assign2 = require_common().assign; + var deflate2 = require_deflate2(); + var inflate2 = require_inflate2(); + var constants = require_constants(); + var pako2 = {}; + assign2(pako2, deflate2, inflate2, constants); + module2.exports = pako2; + } +}); + +// node_modules/ignore/index.js +var require_ignore = __commonJS({ + "node_modules/ignore/index.js"(exports, module2) { + init_polyfill_buffer(); + function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; + } + var EMPTY = ""; + var SPACE = " "; + var ESCAPE = "\\"; + var REGEX_TEST_BLANK_LINE = /^\s+$/; + var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; + var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; + var REGEX_SPLITALL_CRLF = /\r?\n/g; + var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + var SLASH = "/"; + var KEY_IGNORE = typeof Symbol !== "undefined" ? Symbol.for("node-ignore") : "node-ignore"; + var define2 = (object, key2, value) => Object.defineProperty(object, key2, { value }); + var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + var RETURN_FALSE = () => false; + var sanitizeRange = (range) => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY); + var cleanRangeBackSlash = (slashes) => { + const { length } = slashes; + return slashes.slice(0, length - length % 2); + }; + var REPLACERS = [ + [ + /\\?\s+$/, + (match) => match.indexOf("\\") === 0 ? SPACE : EMPTY + ], + [ + /\\\s/g, + () => SPACE + ], + [ + /[\\$.|*+(){^]/g, + (match) => `\\${match}` + ], + [ + /(?!\\)\?/g, + () => "[^/]" + ], + [ + /^\//, + () => "^" + ], + [ + /\//g, + () => "\\/" + ], + [ + /^\^*\\\*\\\*\\\//, + () => "^(?:.*\\/)?" + ], + [ + /^(?=[^^])/, + function startingReplacer() { + return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; + } + ], + [ + /\\\/\\\*\\\*(?=\\\/|$)/g, + (_, index2, str) => index2 + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" + ], + [ + /(^|[^\\]+)\\\*(?=.+)/g, + (_, p1) => `${p1}[^\\/]*` + ], + [ + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + [ + /\\\\/g, + () => ESCAPE + ], + [ + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" + ], + [ + /(?:[^*])$/, + (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` + ], + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; + } + ] + ]; + var regexCache = Object.create(null); + var makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern]; + if (!source) { + source = REPLACERS.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); + regexCache[pattern] = source; + } + return ignoreCase ? new RegExp(source, "i") : new RegExp(source); + }; + var isString = (subject) => typeof subject === "string"; + var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && pattern.indexOf("#") !== 0; + var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF); + var IgnoreRule = class { + constructor(origin, pattern, negative, regex2) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex2; + } + }; + var createRule = (pattern, ignoreCase) => { + const origin = pattern; + let negative = false; + if (pattern.indexOf("!") === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); + const regex2 = makeRegex(pattern, ignoreCase); + return new IgnoreRule(origin, pattern, negative, regex2); + }; + var throwError = (message, Ctor) => { + throw new Ctor(message); + }; + var checkPath = (path2, originalPath, doThrow) => { + if (!isString(path2)) { + return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); + } + if (!path2) { + return doThrow(`path must not be empty`, TypeError); + } + if (checkPath.isNotRelative(path2)) { + const r = "`path.relative()`d"; + return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); + } + return true; + }; + var isNotRelative = (path2) => REGEX_TEST_INVALID_PATH.test(path2); + checkPath.isNotRelative = isNotRelative; + checkPath.convert = (p) => p; + var Ignore = class { + constructor({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define2(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + this._initCache(); + } + _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); + } + _addPattern(pattern) { + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } + } + add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); + if (this._added) { + this._initCache(); + } + return this; + } + addPattern(pattern) { + return this.add(pattern); + } + _testOne(path2, checkUnignored) { + let ignored = false; + let unignored = false; + this._rules.forEach((rule) => { + const { negative } = rule; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + const matched = rule.regex.test(path2); + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + return { + ignored, + unignored + }; + } + _test(originalPath, cache, checkUnignored, slices) { + const path2 = originalPath && checkPath.convert(originalPath); + checkPath(path2, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError); + return this._t(path2, cache, checkUnignored, slices); + } + _t(path2, cache, checkUnignored, slices) { + if (path2 in cache) { + return cache[path2]; + } + if (!slices) { + slices = path2.split(SLASH); + } + slices.pop(); + if (!slices.length) { + return cache[path2] = this._testOne(path2, checkUnignored); + } + const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); + return cache[path2] = parent.ignored ? parent : this._testOne(path2, checkUnignored); + } + ignores(path2) { + return this._test(path2, this._ignoreCache, false).ignored; + } + createFilter() { + return (path2) => !this.ignores(path2); + } + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + test(path2) { + return this._test(path2, this._testCache, true); + } + }; + var factory = (options) => new Ignore(options); + var isPathValid = (path2) => checkPath(path2 && checkPath.convert(path2), path2, RETURN_FALSE); + factory.isPathValid = isPathValid; + factory.default = factory; + module2.exports = factory; + if (typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) { + const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); + checkPath.convert = makePosix; + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = (path2) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path2) || isNotRelative(path2); + } + } +}); + +// node_modules/pify/index.js +var require_pify = __commonJS({ + "node_modules/pify/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + var processFn = (fn, options) => function(...args) { + const P = options.promiseModule; + return new P((resolve, reject) => { + if (options.multiArgs) { + args.push((...result) => { + if (options.errorFirst) { + if (result[0]) { + reject(result); + } else { + result.shift(); + resolve(result); + } + } else { + resolve(result); + } + }); + } else if (options.errorFirst) { + args.push((error, result) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + } else { + args.push(resolve); + } + fn.apply(this, args); + }); + }; + module2.exports = (input, options) => { + options = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, options); + const objType = typeof input; + if (!(input !== null && (objType === "object" || objType === "function"))) { + throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${input === null ? "null" : objType}\``); + } + const filter = (key2) => { + const match = (pattern) => typeof pattern === "string" ? key2 === pattern : pattern.test(key2); + return options.include ? options.include.some(match) : !options.exclude.some(match); + }; + let ret; + if (objType === "function") { + ret = function(...args) { + return options.excludeMain ? input(...args) : processFn(input, options).apply(this, args); + }; + } else { + ret = Object.create(Object.getPrototypeOf(input)); + } + for (const key2 in input) { + const property = input[key2]; + ret[key2] = typeof property === "function" && filter(key2) ? processFn(property, options) : property; + } + return ret; + }; + } +}); + +// node_modules/clean-git-ref/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/clean-git-ref/lib/index.js"(exports, module2) { + init_polyfill_buffer(); + "use strict"; + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function replaceAll(str, search, replacement) { + search = search instanceof RegExp ? search : new RegExp(escapeRegExp(search), "g"); + return str.replace(search, replacement); + } + var CleanGitRef = { + clean: function clean(value) { + if (typeof value !== "string") { + throw new Error("Expected a string, received: " + value); + } + value = replaceAll(value, "./", "/"); + value = replaceAll(value, "..", "."); + value = replaceAll(value, " ", "-"); + value = replaceAll(value, /^[~^:?*\\\-]/g, ""); + value = replaceAll(value, /[~^:?*\\]/g, "-"); + value = replaceAll(value, /[~^:?*\\\-]$/g, ""); + value = replaceAll(value, "@{", "-"); + value = replaceAll(value, /\.$/g, ""); + value = replaceAll(value, /\/$/g, ""); + value = replaceAll(value, /\.lock$/g, ""); + return value; + } + }; + module2.exports = CleanGitRef; + } +}); + +// node_modules/diff3/onp.js +var require_onp = __commonJS({ + "node_modules/diff3/onp.js"(exports, module2) { + init_polyfill_buffer(); + module2.exports = function(a_, b_) { + var a = a_, b = b_, m = a.length, n = b.length, reverse = false, ed = null, offset = m + 1, path2 = [], pathposi = [], ses = [], lcs = "", SES_DELETE = -1, SES_COMMON = 0, SES_ADD = 1; + var tmp1, tmp2; + var init3 = function() { + if (m >= n) { + tmp1 = a; + tmp2 = m; + a = b; + b = tmp1; + m = n; + n = tmp2; + reverse = true; + offset = m + 1; + } + }; + var P = function(x, y, k) { + return { + "x": x, + "y": y, + "k": k + }; + }; + var seselem = function(elem, t) { + return { + "elem": elem, + "t": t + }; + }; + var snake = function(k, p, pp) { + var r, x, y; + if (p > pp) { + r = path2[k - 1 + offset]; + } else { + r = path2[k + 1 + offset]; + } + y = Math.max(p, pp); + x = y - k; + while (x < m && y < n && a[x] === b[y]) { + ++x; + ++y; + } + path2[k + offset] = pathposi.length; + pathposi[pathposi.length] = new P(x, y, r); + return y; + }; + var recordseq = function(epc) { + var x_idx, y_idx, px_idx, py_idx, i; + x_idx = y_idx = 1; + px_idx = py_idx = 0; + for (i = epc.length - 1; i >= 0; --i) { + while (px_idx < epc[i].x || py_idx < epc[i].y) { + if (epc[i].y - epc[i].x > py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(b[py_idx], SES_DELETE); + } else { + ses[ses.length] = new seselem(b[py_idx], SES_ADD); + } + ++y_idx; + ++py_idx; + } else if (epc[i].y - epc[i].x < py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(a[px_idx], SES_ADD); + } else { + ses[ses.length] = new seselem(a[px_idx], SES_DELETE); + } + ++x_idx; + ++px_idx; + } else { + ses[ses.length] = new seselem(a[px_idx], SES_COMMON); + lcs += a[px_idx]; + ++x_idx; + ++y_idx; + ++px_idx; + ++py_idx; + } + } + } + }; + init3(); + return { + SES_DELETE: -1, + SES_COMMON: 0, + SES_ADD: 1, + editdistance: function() { + return ed; + }, + getlcs: function() { + return lcs; + }, + getses: function() { + return ses; + }, + compose: function() { + var delta, size, fp, p, r, epc, i, k; + delta = n - m; + size = m + n + 3; + fp = {}; + for (i = 0; i < size; ++i) { + fp[i] = -1; + path2[i] = -1; + } + p = -1; + do { + ++p; + for (k = -p; k <= delta - 1; ++k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + for (k = delta + p; k >= delta + 1; --k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + fp[delta + offset] = snake(delta, fp[delta - 1 + offset] + 1, fp[delta + 1 + offset]); + } while (fp[delta + offset] !== n); + ed = delta + 2 * p; + r = path2[delta + offset]; + epc = []; + while (r !== -1) { + epc[epc.length] = new P(pathposi[r].x, pathposi[r].y, null); + r = pathposi[r].k; + } + recordseq(epc); + } + }; + }; + } +}); + +// node_modules/diff3/diff3.js +var require_diff3 = __commonJS({ + "node_modules/diff3/diff3.js"(exports, module2) { + init_polyfill_buffer(); + var onp = require_onp(); + function longestCommonSubsequence(file1, file2) { + var diff2 = new onp(file1, file2); + diff2.compose(); + var ses = diff2.getses(); + var root; + var prev; + var file1RevIdx = file1.length - 1, file2RevIdx = file2.length - 1; + for (var i = ses.length - 1; i >= 0; --i) { + if (ses[i].t === diff2.SES_COMMON) { + if (prev) { + prev.chain = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = prev.chain; + } else { + root = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = root; + } + file1RevIdx--; + file2RevIdx--; + } else if (ses[i].t === diff2.SES_DELETE) { + file1RevIdx--; + } else if (ses[i].t === diff2.SES_ADD) { + file2RevIdx--; + } + } + var tail = { + file1index: -1, + file2index: -1, + chain: null + }; + if (!prev) { + return tail; + } + prev.chain = tail; + return root; + } + function diffIndices(file1, file2) { + var result = []; + var tail1 = file1.length; + var tail2 = file2.length; + for (var candidate = longestCommonSubsequence(file1, file2); candidate !== null; candidate = candidate.chain) { + var mismatchLength1 = tail1 - candidate.file1index - 1; + var mismatchLength2 = tail2 - candidate.file2index - 1; + tail1 = candidate.file1index; + tail2 = candidate.file2index; + if (mismatchLength1 || mismatchLength2) { + result.push({ + file1: [tail1 + 1, mismatchLength1], + file2: [tail2 + 1, mismatchLength2] + }); + } + } + result.reverse(); + return result; + } + function diff3MergeIndices(a, o, b) { + var i; + var m1 = diffIndices(o, a); + var m2 = diffIndices(o, b); + var hunks = []; + function addHunk(h, side2) { + hunks.push([h.file1[0], side2, h.file1[1], h.file2[0], h.file2[1]]); + } + for (i = 0; i < m1.length; i++) { + addHunk(m1[i], 0); + } + for (i = 0; i < m2.length; i++) { + addHunk(m2[i], 2); + } + hunks.sort(function(x, y) { + return x[0] - y[0]; + }); + var result = []; + var commonOffset = 0; + function copyCommon(targetOffset) { + if (targetOffset > commonOffset) { + result.push([1, commonOffset, targetOffset - commonOffset]); + commonOffset = targetOffset; + } + } + for (var hunkIndex = 0; hunkIndex < hunks.length; hunkIndex++) { + var firstHunkIndex = hunkIndex; + var hunk = hunks[hunkIndex]; + var regionLhs = hunk[0]; + var regionRhs = regionLhs + hunk[2]; + while (hunkIndex < hunks.length - 1) { + var maybeOverlapping = hunks[hunkIndex + 1]; + var maybeLhs = maybeOverlapping[0]; + if (maybeLhs > regionRhs) + break; + regionRhs = Math.max(regionRhs, maybeLhs + maybeOverlapping[2]); + hunkIndex++; + } + copyCommon(regionLhs); + if (firstHunkIndex == hunkIndex) { + if (hunk[4] > 0) { + result.push([hunk[1], hunk[3], hunk[4]]); + } + } else { + var regions = { + 0: [a.length, -1, o.length, -1], + 2: [b.length, -1, o.length, -1] + }; + for (i = firstHunkIndex; i <= hunkIndex; i++) { + hunk = hunks[i]; + var side = hunk[1]; + var r = regions[side]; + var oLhs = hunk[0]; + var oRhs = oLhs + hunk[2]; + var abLhs = hunk[3]; + var abRhs = abLhs + hunk[4]; + r[0] = Math.min(abLhs, r[0]); + r[1] = Math.max(abRhs, r[1]); + r[2] = Math.min(oLhs, r[2]); + r[3] = Math.max(oRhs, r[3]); + } + var aLhs = regions[0][0] + (regionLhs - regions[0][2]); + var aRhs = regions[0][1] + (regionRhs - regions[0][3]); + var bLhs = regions[2][0] + (regionLhs - regions[2][2]); + var bRhs = regions[2][1] + (regionRhs - regions[2][3]); + result.push([ + -1, + aLhs, + aRhs - aLhs, + regionLhs, + regionRhs - regionLhs, + bLhs, + bRhs - bLhs + ]); + } + commonOffset = regionRhs; + } + copyCommon(o.length); + return result; + } + function diff3Merge2(a, o, b) { + var result = []; + var files = [a, o, b]; + var indices = diff3MergeIndices(a, o, b); + var okLines = []; + function flushOk() { + if (okLines.length) { + result.push({ + ok: okLines + }); + } + okLines = []; + } + function pushOk(xs) { + for (var j = 0; j < xs.length; j++) { + okLines.push(xs[j]); + } + } + function isTrueConflict(rec) { + if (rec[2] != rec[6]) + return true; + var aoff = rec[1]; + var boff = rec[5]; + for (var j = 0; j < rec[2]; j++) { + if (a[j + aoff] != b[j + boff]) + return true; + } + return false; + } + for (var i = 0; i < indices.length; i++) { + var x = indices[i]; + var side = x[0]; + if (side == -1) { + if (!isTrueConflict(x)) { + pushOk(files[0].slice(x[1], x[1] + x[2])); + } else { + flushOk(); + result.push({ + conflict: { + a: a.slice(x[1], x[1] + x[2]), + aIndex: x[1], + o: o.slice(x[3], x[3] + x[4]), + oIndex: x[3], + b: b.slice(x[5], x[5] + x[6]), + bIndex: x[5] + } + }); + } + } else { + pushOk(files[side].slice(x[1], x[1] + x[2])); + } + } + flushOk(); + return result; + } + module2.exports = diff3Merge2; + } +}); + // node_modules/ms/index.js var require_ms = __commonJS({ "node_modules/ms/index.js"(exports, module2) { + init_polyfill_buffer(); var s = 1e3; var m = s * 60; var h = m * 60; @@ -80,13 +7275,13 @@ var require_ms = __commonJS({ options = options || {}; var type = typeof val; if (type === "string" && val.length > 0) { - return parse(val); + return parse2(val); } else if (type === "number" && isFinite(val)) { return options.long ? fmtLong(val) : fmtShort(val); } throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); }; - function parse(str) { + function parse2(str) { str = String(str); if (str.length > 100) { return; @@ -180,8 +7375,9 @@ var require_ms = __commonJS({ }); // node_modules/debug/src/common.js -var require_common = __commonJS({ +var require_common2 = __commonJS({ "node_modules/debug/src/common.js"(exports, module2) { + init_polyfill_buffer(); function setup(env) { createDebug.debug = createDebug; createDebug.default = createDebug; @@ -226,18 +7422,18 @@ var require_common = __commonJS({ if (typeof args[0] !== "string") { args.unshift("%O"); } - let index = 0; + let index2 = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { if (match === "%%") { return "%"; } - index++; + index2++; const formatter = createDebug.formatters[format]; if (typeof formatter === "function") { - const val = args[index]; + const val = args[index2]; match = formatter.call(self3, val); - args.splice(index, 1); - index--; + args.splice(index2, 1); + index2--; } return match; }); @@ -345,6 +7541,7 @@ var require_common = __commonJS({ // node_modules/debug/src/browser.js var require_browser = __commonJS({ "node_modules/debug/src/browser.js"(exports, module2) { + init_polyfill_buffer(); exports.formatArgs = formatArgs; exports.save = save; exports.load = load; @@ -453,15 +7650,15 @@ var require_browser = __commonJS({ } const c = "color: " + this.color; args.splice(1, 0, c, "color: inherit"); - let index = 0; + let index2 = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, (match) => { if (match === "%%") { return; } - index++; + index2++; if (match === "%c") { - lastC = index; + lastC = index2; } }); args.splice(lastC, 0, c); @@ -495,7 +7692,7 @@ var require_browser = __commonJS({ } catch (error) { } } - module2.exports = require_common()(exports); + module2.exports = require_common2()(exports); var { formatters } = module2.exports; formatters.j = function(v) { try { @@ -507,339 +7704,43 @@ var require_browser = __commonJS({ } }); -// node_modules/has-flag/index.js -var require_has_flag = __commonJS({ - "node_modules/has-flag/index.js"(exports, module2) { - "use strict"; - module2.exports = (flag, argv = process.argv) => { - const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf("--"); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); - }; - } -}); - -// node_modules/supports-color/index.js -var require_supports_color = __commonJS({ - "node_modules/supports-color/index.js"(exports, module2) { - "use strict"; - var os = require("os"); - var tty = require("tty"); - var hasFlag = require_has_flag(); - var { env } = process; - var forceColor; - if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { - forceColor = 0; - } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { - forceColor = 1; - } - if ("FORCE_COLOR" in env) { - if (env.FORCE_COLOR === "true") { - forceColor = 1; - } else if (env.FORCE_COLOR === "false") { - forceColor = 0; - } else { - forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); - } - } - function translateLevel(level) { - if (level === 0) { - return false; - } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; - } - function supportsColor(haveStream, streamIsTTY) { - if (forceColor === 0) { - return 0; - } - if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { - return 3; - } - if (hasFlag("color=256")) { - return 2; - } - if (haveStream && !streamIsTTY && forceColor === void 0) { - return 0; - } - const min = forceColor || 0; - if (env.TERM === "dumb") { - return min; - } - if (process.platform === "win32") { - const osRelease = os.release().split("."); - if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - return 1; - } - if ("CI" in env) { - if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { - return 1; - } - return min; - } - if ("TEAMCITY_VERSION" in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - if (env.COLORTERM === "truecolor") { - return 3; - } - if ("TERM_PROGRAM" in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); - switch (env.TERM_PROGRAM) { - case "iTerm.app": - return version >= 3 ? 3 : 2; - case "Apple_Terminal": - return 2; - } - } - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - if ("COLORTERM" in env) { - return 1; - } - return min; - } - function getSupportLevel(stream) { - const level = supportsColor(stream, stream && stream.isTTY); - return translateLevel(level); - } - module2.exports = { - supportsColor: getSupportLevel, - stdout: translateLevel(supportsColor(true, tty.isatty(1))), - stderr: translateLevel(supportsColor(true, tty.isatty(2))) - }; - } -}); - -// node_modules/debug/src/node.js -var require_node = __commonJS({ - "node_modules/debug/src/node.js"(exports, module2) { - var tty = require("tty"); - var util = require("util"); - exports.init = init2; - exports.log = log; - exports.formatArgs = formatArgs; - exports.save = save; - exports.load = load; - exports.useColors = useColors; - exports.destroy = util.deprecate(() => { - }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); - exports.colors = [6, 2, 3, 4, 5, 1]; - try { - const supportsColor = require_supports_color(); - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } - } catch (error) { - } - exports.inspectOpts = Object.keys(process.env).filter((key2) => { - return /^debug_/i.test(key2); - }).reduce((obj, key2) => { - const prop = key2.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - let val = process.env[key2]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === "null") { - val = null; - } else { - val = Number(val); - } - obj[prop] = val; - return obj; - }, {}); - function useColors() { - return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); - } - function formatArgs(args) { - const { namespace: name, useColors: useColors2 } = this; - if (useColors2) { - const c = this.color; - const colorCode = "[3" + (c < 8 ? c : "8;5;" + c); - const prefix = ` ${colorCode};1m${name} `; - args[0] = prefix + args[0].split("\n").join("\n" + prefix); - args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + ""); - } else { - args[0] = getDate() + name + " " + args[0]; - } - } - function getDate() { - if (exports.inspectOpts.hideDate) { - return ""; - } - return new Date().toISOString() + " "; - } - function log(...args) { - return process.stderr.write(util.format(...args) + "\n"); - } - function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - delete process.env.DEBUG; - } - } - function load() { - return process.env.DEBUG; - } - function init2(debug2) { - debug2.inspectOpts = {}; - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug2.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } - } - module2.exports = require_common()(exports); - var { formatters } = module2.exports; - formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); - }; - formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); - }; - } -}); - -// node_modules/debug/src/index.js -var require_src = __commonJS({ - "node_modules/debug/src/index.js"(exports, module2) { - if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { - module2.exports = require_browser(); - } else { - module2.exports = require_node(); - } - } -}); - // node_modules/@kwsites/file-exists/dist/src/index.js -var require_src2 = __commonJS({ +var require_src = __commonJS({ "node_modules/@kwsites/file-exists/dist/src/index.js"(exports) { + init_polyfill_buffer(); "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var fs_1 = require("fs"); - var debug_1 = __importDefault2(require_src()); - var log = debug_1.default("@kwsites/file-exists"); - function check(path3, isFile, isDirectory) { - log(`checking %s`, path3); + var debug_1 = __importDefault2(require_browser()); + var log2 = debug_1.default("@kwsites/file-exists"); + function check(path2, isFile, isDirectory) { + log2(`checking %s`, path2); try { - const stat = fs_1.statSync(path3); + const stat = fs_1.statSync(path2); if (stat.isFile() && isFile) { - log(`[OK] path represents a file`); + log2(`[OK] path represents a file`); return true; } if (stat.isDirectory() && isDirectory) { - log(`[OK] path represents a directory`); + log2(`[OK] path represents a directory`); return true; } - log(`[FAIL] path represents something other than a file or directory`); + log2(`[FAIL] path represents something other than a file or directory`); return false; } catch (e) { if (e.code === "ENOENT") { - log(`[FAIL] path is not accessible: %o`, e); + log2(`[FAIL] path is not accessible: %o`, e); return false; } - log(`[FATAL] %o`, e); + log2(`[FATAL] %o`, e); throw e; } } - function exists2(path3, type = exports.READABLE) { - return check(path3, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); + function exists2(path2, type = exports.READABLE) { + return check(path2, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); } exports.exists = exists2; exports.FILE = 1; @@ -851,6 +7752,7 @@ var require_src2 = __commonJS({ // node_modules/@kwsites/file-exists/dist/index.js var require_dist = __commonJS({ "node_modules/@kwsites/file-exists/dist/index.js"(exports) { + init_polyfill_buffer(); "use strict"; function __export3(m) { for (var p in m) @@ -858,20 +7760,21 @@ var require_dist = __commonJS({ exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); - __export3(require_src2()); + __export3(require_src()); } }); // node_modules/@kwsites/promise-deferred/dist/index.js var require_dist2 = __commonJS({ "node_modules/@kwsites/promise-deferred/dist/index.js"(exports) { + init_polyfill_buffer(); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDeferred = exports.deferred = void 0; function deferred2() { let done; let fail; - let status = "pending"; + let status2 = "pending"; const promise2 = new Promise((_done, _fail) => { done = _done; fail = _fail; @@ -879,22 +7782,22 @@ var require_dist2 = __commonJS({ return { promise: promise2, done(result) { - if (status === "pending") { - status = "resolved"; + if (status2 === "pending") { + status2 = "resolved"; done(result); } }, fail(error) { - if (status === "pending") { - status = "rejected"; + if (status2 === "pending") { + status2 = "rejected"; fail(error); } }, get fulfilled() { - return status !== "pending"; + return status2 !== "pending"; }, get status() { - return status; + return status2; } }; } @@ -904,2829 +7807,13 @@ var require_dist2 = __commonJS({ } }); -// node_modules/diff2html/lib/types.js -var require_types = __commonJS({ - "node_modules/diff2html/lib/types.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.DiffStyleType = exports.LineMatchingType = exports.OutputFormatType = exports.LineType = void 0; - var LineType; - (function(LineType2) { - LineType2["INSERT"] = "insert"; - LineType2["DELETE"] = "delete"; - LineType2["CONTEXT"] = "context"; - })(LineType = exports.LineType || (exports.LineType = {})); - exports.OutputFormatType = { - LINE_BY_LINE: "line-by-line", - SIDE_BY_SIDE: "side-by-side" - }; - exports.LineMatchingType = { - LINES: "lines", - WORDS: "words", - NONE: "none" - }; - exports.DiffStyleType = { - WORD: "word", - CHAR: "char" - }; - } -}); - -// node_modules/diff2html/lib/utils.js -var require_utils = __commonJS({ - "node_modules/diff2html/lib/utils.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.hashCode = exports.unifyPath = exports.escapeForRegExp = void 0; - var specials = [ - "-", - "[", - "]", - "/", - "{", - "}", - "(", - ")", - "*", - "+", - "?", - ".", - "\\", - "^", - "$", - "|" - ]; - var regex = RegExp("[" + specials.join("\\") + "]", "g"); - function escapeForRegExp(str) { - return str.replace(regex, "\\$&"); - } - exports.escapeForRegExp = escapeForRegExp; - function unifyPath(path3) { - return path3 ? path3.replace(/\\/g, "/") : path3; - } - exports.unifyPath = unifyPath; - function hashCode(text2) { - var i, chr, len; - var hash2 = 0; - for (i = 0, len = text2.length; i < len; i++) { - chr = text2.charCodeAt(i); - hash2 = (hash2 << 5) - hash2 + chr; - hash2 |= 0; - } - return hash2; - } - exports.hashCode = hashCode; - } -}); - -// node_modules/diff2html/lib/diff-parser.js -var require_diff_parser = __commonJS({ - "node_modules/diff2html/lib/diff-parser.js"(exports) { - "use strict"; - var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) - ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parse = void 0; - var types_1 = require_types(); - var utils_1 = require_utils(); - function getExtension(filename, language) { - var filenameParts = filename.split("."); - return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; - } - function startsWithAny(str, prefixes) { - return prefixes.reduce(function(startsWith, prefix) { - return startsWith || str.startsWith(prefix); - }, false); - } - var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; - function getFilename(line, linePrefix, extraPrefix) { - var prefixes = extraPrefix !== void 0 ? __spreadArray2(__spreadArray2([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes; - var FilenameRegExp = linePrefix ? new RegExp("^".concat((0, utils_1.escapeForRegExp)(linePrefix), ' "?(.+?)"?$')) : new RegExp('^"?(.+?)"?$'); - var _a2 = FilenameRegExp.exec(line) || [], _b = _a2[1], filename = _b === void 0 ? "" : _b; - var matchingPrefix = prefixes.find(function(p) { - return filename.indexOf(p) === 0; - }); - var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; - return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); - } - function getSrcFilename(line, srcPrefix) { - return getFilename(line, "---", srcPrefix); - } - function getDstFilename(line, dstPrefix) { - return getFilename(line, "+++", dstPrefix); - } - function parse(diffInput, config) { - if (config === void 0) { - config = {}; - } - var files = []; - var currentFile = null; - var currentBlock = null; - var oldLine = null; - var oldLine2 = null; - var newLine = null; - var possibleOldName = null; - var possibleNewName = null; - var oldFileNameHeader = "--- "; - var newFileNameHeader = "+++ "; - var hunkHeaderPrefix = "@@"; - var oldMode = /^old mode (\d{6})/; - var newMode = /^new mode (\d{6})/; - var deletedFileMode = /^deleted file mode (\d{6})/; - var newFileMode = /^new file mode (\d{6})/; - var copyFrom = /^copy from "?(.+)"?/; - var copyTo = /^copy to "?(.+)"?/; - var renameFrom = /^rename from "?(.+)"?/; - var renameTo = /^rename to "?(.+)"?/; - var similarityIndex = /^similarity index (\d+)%/; - var dissimilarityIndex = /^dissimilarity index (\d+)%/; - var index = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; - var binaryFiles = /^Binary files (.*) and (.*) differ/; - var binaryDiff = /^GIT binary patch/; - var combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; - var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; - var combinedNewFile = /^new file mode (\d{6})/; - var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; - var diffLines = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); - function saveBlock() { - if (currentBlock !== null && currentFile !== null) { - currentFile.blocks.push(currentBlock); - currentBlock = null; - } - } - function saveFile() { - if (currentFile !== null) { - if (!currentFile.oldName && possibleOldName !== null) { - currentFile.oldName = possibleOldName; - } - if (!currentFile.newName && possibleNewName !== null) { - currentFile.newName = possibleNewName; - } - if (currentFile.newName) { - files.push(currentFile); - currentFile = null; - } - } - possibleOldName = null; - possibleNewName = null; - } - function startFile() { - saveBlock(); - saveFile(); - currentFile = { - blocks: [], - deletedLines: 0, - addedLines: 0 - }; - } - function startBlock(line) { - saveBlock(); - var values; - if (currentFile !== null) { - if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { - currentFile.isCombined = false; - oldLine = parseInt(values[1], 10); - newLine = parseInt(values[2], 10); - } else if (values = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)) { - currentFile.isCombined = true; - oldLine = parseInt(values[1], 10); - oldLine2 = parseInt(values[2], 10); - newLine = parseInt(values[3], 10); - } else { - if (line.startsWith(hunkHeaderPrefix)) { - console.error("Failed to parse lines, starting in 0!"); - } - oldLine = 0; - newLine = 0; - currentFile.isCombined = false; - } - } - currentBlock = { - lines: [], - oldStartLine: oldLine, - oldStartLine2: oldLine2, - newStartLine: newLine, - header: line - }; - } - function createLine(line) { - if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) - return; - var currentLine = { - content: line - }; - var addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; - var deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; - if (startsWithAny(line, addedPrefixes)) { - currentFile.addedLines++; - currentLine.type = types_1.LineType.INSERT; - currentLine.oldNumber = void 0; - currentLine.newNumber = newLine++; - } else if (startsWithAny(line, deletedPrefixes)) { - currentFile.deletedLines++; - currentLine.type = types_1.LineType.DELETE; - currentLine.oldNumber = oldLine++; - currentLine.newNumber = void 0; - } else { - currentLine.type = types_1.LineType.CONTEXT; - currentLine.oldNumber = oldLine++; - currentLine.newNumber = newLine++; - } - currentBlock.lines.push(currentLine); - } - function existHunkHeader(line, lineIdx) { - var idx = lineIdx; - while (idx < diffLines.length - 3) { - if (line.startsWith("diff")) { - return false; - } - if (diffLines[idx].startsWith(oldFileNameHeader) && diffLines[idx + 1].startsWith(newFileNameHeader) && diffLines[idx + 2].startsWith(hunkHeaderPrefix)) { - return true; - } - idx++; - } - return false; - } - diffLines.forEach(function(line, lineIndex) { - if (!line || line.startsWith("*")) { - return; - } - var values; - var prevLine = diffLines[lineIndex - 1]; - var nxtLine = diffLines[lineIndex + 1]; - var afterNxtLine = diffLines[lineIndex + 2]; - if (line.startsWith("diff")) { - startFile(); - var gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; - if (values = gitDiffStart.exec(line)) { - possibleOldName = getFilename(values[1], void 0, config.dstPrefix); - possibleNewName = getFilename(values[2], void 0, config.srcPrefix); - } - if (currentFile === null) { - throw new Error("Where is my file !!!"); - } - currentFile.isGitDiff = true; - return; - } - if (!currentFile || !currentFile.isGitDiff && currentFile && line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) && afterNxtLine.startsWith(hunkHeaderPrefix)) { - startFile(); - } - if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) { - return; - } - if (currentFile && (typeof config.diffMaxChanges === "number" && currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges || typeof config.diffMaxLineLength === "number" && line.length > config.diffMaxLineLength)) { - currentFile.isTooBig = true; - currentFile.addedLines = 0; - currentFile.deletedLines = 0; - currentFile.blocks = []; - currentBlock = null; - var message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; - startBlock(message); - return; - } - if (line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) || line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader)) { - if (currentFile && !currentFile.oldName && line.startsWith("--- ") && (values = getSrcFilename(line, config.srcPrefix))) { - currentFile.oldName = values; - currentFile.language = getExtension(currentFile.oldName, currentFile.language); - return; - } - if (currentFile && !currentFile.newName && line.startsWith("+++ ") && (values = getDstFilename(line, config.dstPrefix))) { - currentFile.newName = values; - currentFile.language = getExtension(currentFile.newName, currentFile.language); - return; - } - } - if (currentFile && (line.startsWith(hunkHeaderPrefix) || currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock)) { - startBlock(line); - return; - } - if (currentBlock && (line.startsWith("+") || line.startsWith("-") || line.startsWith(" "))) { - createLine(line); - return; - } - var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); - if (currentFile === null) { - throw new Error("Where is my file !!!"); - } - if (values = oldMode.exec(line)) { - currentFile.oldMode = values[1]; - } else if (values = newMode.exec(line)) { - currentFile.newMode = values[1]; - } else if (values = deletedFileMode.exec(line)) { - currentFile.deletedFileMode = values[1]; - currentFile.isDeleted = true; - } else if (values = newFileMode.exec(line)) { - currentFile.newFileMode = values[1]; - currentFile.isNew = true; - } else if (values = copyFrom.exec(line)) { - if (doesNotExistHunkHeader) { - currentFile.oldName = values[1]; - } - currentFile.isCopy = true; - } else if (values = copyTo.exec(line)) { - if (doesNotExistHunkHeader) { - currentFile.newName = values[1]; - } - currentFile.isCopy = true; - } else if (values = renameFrom.exec(line)) { - if (doesNotExistHunkHeader) { - currentFile.oldName = values[1]; - } - currentFile.isRename = true; - } else if (values = renameTo.exec(line)) { - if (doesNotExistHunkHeader) { - currentFile.newName = values[1]; - } - currentFile.isRename = true; - } else if (values = binaryFiles.exec(line)) { - currentFile.isBinary = true; - currentFile.oldName = getFilename(values[1], void 0, config.srcPrefix); - currentFile.newName = getFilename(values[2], void 0, config.dstPrefix); - startBlock("Binary file"); - } else if (binaryDiff.test(line)) { - currentFile.isBinary = true; - startBlock(line); - } else if (values = similarityIndex.exec(line)) { - currentFile.unchangedPercentage = parseInt(values[1], 10); - } else if (values = dissimilarityIndex.exec(line)) { - currentFile.changedPercentage = parseInt(values[1], 10); - } else if (values = index.exec(line)) { - currentFile.checksumBefore = values[1]; - currentFile.checksumAfter = values[2]; - values[3] && (currentFile.mode = values[3]); - } else if (values = combinedIndex.exec(line)) { - currentFile.checksumBefore = [values[2], values[3]]; - currentFile.checksumAfter = values[1]; - } else if (values = combinedMode.exec(line)) { - currentFile.oldMode = [values[2], values[3]]; - currentFile.newMode = values[1]; - } else if (values = combinedNewFile.exec(line)) { - currentFile.newFileMode = values[1]; - currentFile.isNew = true; - } else if (values = combinedDeletedFile.exec(line)) { - currentFile.deletedFileMode = values[1]; - currentFile.isDeleted = true; - } - }); - saveBlock(); - saveFile(); - return files; - } - exports.parse = parse; - } -}); - -// node_modules/diff/lib/diff/base.js -var require_base = __commonJS({ - "node_modules/diff/lib/diff/base.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = Diff; - function Diff() { - } - Diff.prototype = { - diff: function diff(oldString, newString) { - var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - var callback = options.callback; - if (typeof options === "function") { - callback = options; - options = {}; - } - this.options = options; - var self3 = this; - function done(value) { - if (callback) { - setTimeout(function() { - callback(void 0, value); - }, 0); - return true; - } else { - return value; - } - } - oldString = this.castInput(oldString); - newString = this.castInput(newString); - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - var newLen = newString.length, oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ - newPos: -1, - components: [] - }]; - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - return done([{ - value: this.join(newString), - count: newString.length - }]); - } - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = void 0; - var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - if (addPath) { - bestPath[diagonalPath - 1] = void 0; - } - var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - if (!canAdd && !canRemove) { - bestPath[diagonalPath] = void 0; - continue; - } - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self3.pushComponent(basePath.components, void 0, true); - } else { - basePath = addPath; - basePath.newPos++; - self3.pushComponent(basePath.components, true, void 0); - } - _oldPos = self3.extractCommon(basePath, newString, oldString, diagonalPath); - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self3, basePath.components, newString, oldString, self3.useLongestToken)); - } else { - bestPath[diagonalPath] = basePath; - } - } - editLength++; - } - if (callback) { - (function exec() { - setTimeout(function() { - if (editLength > maxEditLength) { - return callback(); - } - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - if (ret) { - return ret; - } - } - } - }, - pushComponent: function pushComponent(components, added, removed) { - var last2 = components[components.length - 1]; - if (last2 && last2.added === added && last2.removed === removed) { - components[components.length - 1] = { - count: last2.count + 1, - added, - removed - }; - } else { - components.push({ - count: 1, - added, - removed - }); - } - }, - extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - if (commonCount) { - basePath.components.push({ - count: commonCount - }); - } - basePath.newPos = newPos; - return oldPos; - }, - equals: function equals(left, right) { - if (this.options.comparator) { - return this.options.comparator(left, right); - } else { - return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); - } - }, - removeEmpty: function removeEmpty(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); - } - } - return ret; - }, - castInput: function castInput(value) { - return value; - }, - tokenize: function tokenize(value) { - return value.split(""); - }, - join: function join2(chars) { - return chars.join(""); - } - }; - function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function(value2, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value2.length ? oldValue : value2; - }); - component.value = diff.join(value); - } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); - } - newPos += component.count; - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } - var lastComponent = components[componentLen - 1]; - if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); - } - return components; - } - function clonePath(path3) { - return { - newPos: path3.newPos, - components: path3.components.slice(0) - }; - } - } -}); - -// node_modules/diff/lib/diff/character.js -var require_character = __commonJS({ - "node_modules/diff/lib/diff/character.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffChars = diffChars; - exports.characterDiff = void 0; - var _base = _interopRequireDefault(require_base()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var characterDiff = new _base["default"](); - exports.characterDiff = characterDiff; - function diffChars(oldStr, newStr, options) { - return characterDiff.diff(oldStr, newStr, options); - } - } -}); - -// node_modules/diff/lib/util/params.js -var require_params = __commonJS({ - "node_modules/diff/lib/util/params.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.generateOptions = generateOptions; - function generateOptions(options, defaults) { - if (typeof options === "function") { - defaults.callback = options; - } else if (options) { - for (var name in options) { - if (options.hasOwnProperty(name)) { - defaults[name] = options[name]; - } - } - } - return defaults; - } - } -}); - -// node_modules/diff/lib/diff/word.js -var require_word = __commonJS({ - "node_modules/diff/lib/diff/word.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffWords = diffWords; - exports.diffWordsWithSpace = diffWordsWithSpace; - exports.wordDiff = void 0; - var _base = _interopRequireDefault(require_base()); - var _params = require_params(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; - var reWhitespace = /\S/; - var wordDiff = new _base["default"](); - exports.wordDiff = wordDiff; - wordDiff.equals = function(left, right) { - if (this.options.ignoreCase) { - left = left.toLowerCase(); - right = right.toLowerCase(); - } - return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); - }; - wordDiff.tokenize = function(value) { - var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); - for (var i = 0; i < tokens.length - 1; i++) { - if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { - tokens[i] += tokens[i + 2]; - tokens.splice(i + 1, 2); - i--; - } - } - return tokens; - }; - function diffWords(oldStr, newStr, options) { - options = (0, _params.generateOptions)(options, { - ignoreWhitespace: true - }); - return wordDiff.diff(oldStr, newStr, options); - } - function diffWordsWithSpace(oldStr, newStr, options) { - return wordDiff.diff(oldStr, newStr, options); - } - } -}); - -// node_modules/diff/lib/diff/line.js -var require_line = __commonJS({ - "node_modules/diff/lib/diff/line.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffLines = diffLines; - exports.diffTrimmedLines = diffTrimmedLines; - exports.lineDiff = void 0; - var _base = _interopRequireDefault(require_base()); - var _params = require_params(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var lineDiff = new _base["default"](); - exports.lineDiff = lineDiff; - lineDiff.tokenize = function(value) { - var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; - if (i % 2 && !this.options.newlineIsToken) { - retLines[retLines.length - 1] += line; - } else { - if (this.options.ignoreWhitespace) { - line = line.trim(); - } - retLines.push(line); - } - } - return retLines; - }; - function diffLines(oldStr, newStr, callback) { - return lineDiff.diff(oldStr, newStr, callback); - } - function diffTrimmedLines(oldStr, newStr, callback) { - var options = (0, _params.generateOptions)(callback, { - ignoreWhitespace: true - }); - return lineDiff.diff(oldStr, newStr, options); - } - } -}); - -// node_modules/diff/lib/diff/sentence.js -var require_sentence = __commonJS({ - "node_modules/diff/lib/diff/sentence.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffSentences = diffSentences; - exports.sentenceDiff = void 0; - var _base = _interopRequireDefault(require_base()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var sentenceDiff = new _base["default"](); - exports.sentenceDiff = sentenceDiff; - sentenceDiff.tokenize = function(value) { - return value.split(/(\S.+?[.!?])(?=\s+|$)/); - }; - function diffSentences(oldStr, newStr, callback) { - return sentenceDiff.diff(oldStr, newStr, callback); - } - } -}); - -// node_modules/diff/lib/diff/css.js -var require_css = __commonJS({ - "node_modules/diff/lib/diff/css.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffCss = diffCss; - exports.cssDiff = void 0; - var _base = _interopRequireDefault(require_base()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var cssDiff = new _base["default"](); - exports.cssDiff = cssDiff; - cssDiff.tokenize = function(value) { - return value.split(/([{}:;,]|\s+)/); - }; - function diffCss(oldStr, newStr, callback) { - return cssDiff.diff(oldStr, newStr, callback); - } - } -}); - -// node_modules/diff/lib/diff/json.js -var require_json = __commonJS({ - "node_modules/diff/lib/diff/json.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffJson = diffJson; - exports.canonicalize = canonicalize; - exports.jsonDiff = void 0; - var _base = _interopRequireDefault(require_base()); - var _line = require_line(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function _typeof2(obj2) { - return typeof obj2; - }; - } else { - _typeof = function _typeof2(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof(obj); - } - var objectPrototypeToString = Object.prototype.toString; - var jsonDiff = new _base["default"](); - exports.jsonDiff = jsonDiff; - jsonDiff.useLongestToken = true; - jsonDiff.tokenize = _line.lineDiff.tokenize; - jsonDiff.castInput = function(value) { - var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { - return typeof v === "undefined" ? undefinedReplacement : v; - } : _this$options$stringi; - return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); - }; - jsonDiff.equals = function(left, right) { - return _base["default"].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); - }; - function diffJson(oldObj, newObj, options) { - return jsonDiff.diff(oldObj, newObj, options); - } - function canonicalize(obj, stack, replacementStack, replacer, key2) { - stack = stack || []; - replacementStack = replacementStack || []; - if (replacer) { - obj = replacer(key2, obj); - } - var i; - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; - } - } - var canonicalizedObj; - if (objectPrototypeToString.call(obj) === "[object Array]") { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key2); - } - stack.pop(); - replacementStack.pop(); - return canonicalizedObj; - } - if (obj && obj.toJSON) { - obj = obj.toJSON(); - } - if (_typeof(obj) === "object" && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); - var sortedKeys = [], _key; - for (_key in obj) { - if (obj.hasOwnProperty(_key)) { - sortedKeys.push(_key); - } - } - sortedKeys.sort(); - for (i = 0; i < sortedKeys.length; i += 1) { - _key = sortedKeys[i]; - canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); - } - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; - } - return canonicalizedObj; - } - } -}); - -// node_modules/diff/lib/diff/array.js -var require_array = __commonJS({ - "node_modules/diff/lib/diff/array.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffArrays = diffArrays; - exports.arrayDiff = void 0; - var _base = _interopRequireDefault(require_base()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var arrayDiff = new _base["default"](); - exports.arrayDiff = arrayDiff; - arrayDiff.tokenize = function(value) { - return value.slice(); - }; - arrayDiff.join = arrayDiff.removeEmpty = function(value) { - return value; - }; - function diffArrays(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); - } - } -}); - -// node_modules/diff/lib/patch/parse.js -var require_parse = __commonJS({ - "node_modules/diff/lib/patch/parse.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.parsePatch = parsePatch; - function parsePatch(uniDiff) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], list = [], i = 0; - function parseIndex() { - var index = {}; - list.push(index); - while (i < diffstr.length) { - var line = diffstr[i]; - if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { - break; - } - var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); - if (header) { - index.index = header[1]; - } - i++; - } - parseFileHeader(index); - parseFileHeader(index); - index.hunks = []; - while (i < diffstr.length) { - var _line = diffstr[i]; - if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { - break; - } else if (/^@@/.test(_line)) { - index.hunks.push(parseHunk()); - } else if (_line && options.strict) { - throw new Error("Unknown line " + (i + 1) + " " + JSON.stringify(_line)); - } else { - i++; - } - } - } - function parseFileHeader(index) { - var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); - if (fileHeader) { - var keyPrefix = fileHeader[1] === "---" ? "old" : "new"; - var data = fileHeader[2].split(" ", 2); - var fileName = data[0].replace(/\\\\/g, "\\"); - if (/^".*"$/.test(fileName)) { - fileName = fileName.substr(1, fileName.length - 2); - } - index[keyPrefix + "FileName"] = fileName; - index[keyPrefix + "Header"] = (data[1] || "").trim(); - i++; - } - } - function parseHunk() { - var chunkHeaderIndex = i, chunkHeaderLine = diffstr[i++], chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); - var hunk = { - oldStart: +chunkHeader[1], - oldLines: typeof chunkHeader[2] === "undefined" ? 1 : +chunkHeader[2], - newStart: +chunkHeader[3], - newLines: typeof chunkHeader[4] === "undefined" ? 1 : +chunkHeader[4], - lines: [], - linedelimiters: [] - }; - if (hunk.oldLines === 0) { - hunk.oldStart += 1; - } - if (hunk.newLines === 0) { - hunk.newStart += 1; - } - var addCount = 0, removeCount = 0; - for (; i < diffstr.length; i++) { - if (diffstr[i].indexOf("--- ") === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf("+++ ") === 0 && diffstr[i + 2].indexOf("@@") === 0) { - break; - } - var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? " " : diffstr[i][0]; - if (operation === "+" || operation === "-" || operation === " " || operation === "\\") { - hunk.lines.push(diffstr[i]); - hunk.linedelimiters.push(delimiters[i] || "\n"); - if (operation === "+") { - addCount++; - } else if (operation === "-") { - removeCount++; - } else if (operation === " ") { - addCount++; - removeCount++; - } - } else { - break; - } - } - if (!addCount && hunk.newLines === 1) { - hunk.newLines = 0; - } - if (!removeCount && hunk.oldLines === 1) { - hunk.oldLines = 0; - } - if (options.strict) { - if (addCount !== hunk.newLines) { - throw new Error("Added line count did not match for hunk at line " + (chunkHeaderIndex + 1)); - } - if (removeCount !== hunk.oldLines) { - throw new Error("Removed line count did not match for hunk at line " + (chunkHeaderIndex + 1)); - } - } - return hunk; - } - while (i < diffstr.length) { - parseIndex(); - } - return list; - } - } -}); - -// node_modules/diff/lib/util/distance-iterator.js -var require_distance_iterator = __commonJS({ - "node_modules/diff/lib/util/distance-iterator.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = _default; - function _default(start, minLine, maxLine) { - var wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1; - return function iterator() { - if (wantForward && !forwardExhausted) { - if (backwardExhausted) { - localOffset++; - } else { - wantForward = false; - } - if (start + localOffset <= maxLine) { - return localOffset; - } - forwardExhausted = true; - } - if (!backwardExhausted) { - if (!forwardExhausted) { - wantForward = true; - } - if (minLine <= start - localOffset) { - return -localOffset++; - } - backwardExhausted = true; - return iterator(); - } - }; - } - } -}); - -// node_modules/diff/lib/patch/apply.js -var require_apply = __commonJS({ - "node_modules/diff/lib/patch/apply.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.applyPatch = applyPatch; - exports.applyPatches = applyPatches; - var _parse = require_parse(); - var _distanceIterator = _interopRequireDefault(require_distance_iterator()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - function applyPatch(source, uniDiff) { - var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - if (typeof uniDiff === "string") { - uniDiff = (0, _parse.parsePatch)(uniDiff); - } - if (Array.isArray(uniDiff)) { - if (uniDiff.length > 1) { - throw new Error("applyPatch only works with a single input."); - } - uniDiff = uniDiff[0]; - } - var lines = source.split(/\r\n|[\n\v\f\r\x85]/), delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], hunks = uniDiff.hunks, compareLine = options.compareLine || function(lineNumber, line2, operation2, patchContent) { - return line2 === patchContent; - }, errorCount = 0, fuzzFactor = options.fuzzFactor || 0, minLine = 0, offset = 0, removeEOFNL, addEOFNL; - function hunkFits(hunk2, toPos2) { - for (var j2 = 0; j2 < hunk2.lines.length; j2++) { - var line2 = hunk2.lines[j2], operation2 = line2.length > 0 ? line2[0] : " ", content2 = line2.length > 0 ? line2.substr(1) : line2; - if (operation2 === " " || operation2 === "-") { - if (!compareLine(toPos2 + 1, lines[toPos2], operation2, content2)) { - errorCount++; - if (errorCount > fuzzFactor) { - return false; - } - } - toPos2++; - } - } - return true; - } - for (var i = 0; i < hunks.length; i++) { - var hunk = hunks[i], maxLine = lines.length - hunk.oldLines, localOffset = 0, toPos = offset + hunk.oldStart - 1; - var iterator = (0, _distanceIterator["default"])(toPos, minLine, maxLine); - for (; localOffset !== void 0; localOffset = iterator()) { - if (hunkFits(hunk, toPos + localOffset)) { - hunk.offset = offset += localOffset; - break; - } - } - if (localOffset === void 0) { - return false; - } - minLine = hunk.offset + hunk.oldStart + hunk.oldLines; - } - var diffOffset = 0; - for (var _i = 0; _i < hunks.length; _i++) { - var _hunk = hunks[_i], _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; - diffOffset += _hunk.newLines - _hunk.oldLines; - for (var j = 0; j < _hunk.lines.length; j++) { - var line = _hunk.lines[j], operation = line.length > 0 ? line[0] : " ", content = line.length > 0 ? line.substr(1) : line, delimiter = _hunk.linedelimiters[j]; - if (operation === " ") { - _toPos++; - } else if (operation === "-") { - lines.splice(_toPos, 1); - delimiters.splice(_toPos, 1); - } else if (operation === "+") { - lines.splice(_toPos, 0, content); - delimiters.splice(_toPos, 0, delimiter); - _toPos++; - } else if (operation === "\\") { - var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; - if (previousOperation === "+") { - removeEOFNL = true; - } else if (previousOperation === "-") { - addEOFNL = true; - } - } - } - } - if (removeEOFNL) { - while (!lines[lines.length - 1]) { - lines.pop(); - delimiters.pop(); - } - } else if (addEOFNL) { - lines.push(""); - delimiters.push("\n"); - } - for (var _k = 0; _k < lines.length - 1; _k++) { - lines[_k] = lines[_k] + delimiters[_k]; - } - return lines.join(""); - } - function applyPatches(uniDiff, options) { - if (typeof uniDiff === "string") { - uniDiff = (0, _parse.parsePatch)(uniDiff); - } - var currentIndex = 0; - function processIndex() { - var index = uniDiff[currentIndex++]; - if (!index) { - return options.complete(); - } - options.loadFile(index, function(err, data) { - if (err) { - return options.complete(err); - } - var updatedContent = applyPatch(data, index, options); - options.patched(index, updatedContent, function(err2) { - if (err2) { - return options.complete(err2); - } - processIndex(); - }); - }); - } - processIndex(); - } - } -}); - -// node_modules/diff/lib/patch/create.js -var require_create = __commonJS({ - "node_modules/diff/lib/patch/create.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.structuredPatch = structuredPatch; - exports.formatPatch = formatPatch; - exports.createTwoFilesPatch = createTwoFilesPatch; - exports.createPatch = createPatch; - var _line = require_line(); - function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); - } - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) - return Array.from(iter); - } - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) - return _arrayLikeToArray(arr); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } - return arr2; - } - function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - if (!options) { - options = {}; - } - if (typeof options.context === "undefined") { - options.context = 4; - } - var diff = (0, _line.diffLines)(oldStr, newStr, options); - diff.push({ - value: "", - lines: [] - }); - function contextLines(lines) { - return lines.map(function(entry) { - return " " + entry; - }); - } - var hunks = []; - var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; - var _loop = function _loop2(i2) { - var current = diff[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n"); - current.lines = lines; - if (current.added || current.removed) { - var _curRange; - if (!oldRangeStart) { - var prev = diff[i2 - 1]; - oldRangeStart = oldLine; - newRangeStart = newLine; - if (prev) { - curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; - oldRangeStart -= curRange.length; - newRangeStart -= curRange.length; - } - } - (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) { - return (current.added ? "+" : "-") + entry; - }))); - if (current.added) { - newLine += lines.length; - } else { - oldLine += lines.length; - } - } else { - if (oldRangeStart) { - if (lines.length <= options.context * 2 && i2 < diff.length - 2) { - var _curRange2; - (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); - } else { - var _curRange3; - var contextSize = Math.min(lines.length, options.context); - (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); - var hunk = { - oldStart: oldRangeStart, - oldLines: oldLine - oldRangeStart + contextSize, - newStart: newRangeStart, - newLines: newLine - newRangeStart + contextSize, - lines: curRange - }; - if (i2 >= diff.length - 2 && lines.length <= options.context) { - var oldEOFNewline = /\n$/.test(oldStr); - var newEOFNewline = /\n$/.test(newStr); - var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; - if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { - curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file"); - } - if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { - curRange.push("\\ No newline at end of file"); - } - } - hunks.push(hunk); - oldRangeStart = 0; - newRangeStart = 0; - curRange = []; - } - } - oldLine += lines.length; - newLine += lines.length; - } - }; - for (var i = 0; i < diff.length; i++) { - _loop(i); - } - return { - oldFileName, - newFileName, - oldHeader, - newHeader, - hunks - }; - } - function formatPatch(diff) { - var ret = []; - if (diff.oldFileName == diff.newFileName) { - ret.push("Index: " + diff.oldFileName); - } - ret.push("==================================================================="); - ret.push("--- " + diff.oldFileName + (typeof diff.oldHeader === "undefined" ? "" : " " + diff.oldHeader)); - ret.push("+++ " + diff.newFileName + (typeof diff.newHeader === "undefined" ? "" : " " + diff.newHeader)); - for (var i = 0; i < diff.hunks.length; i++) { - var hunk = diff.hunks[i]; - if (hunk.oldLines === 0) { - hunk.oldStart -= 1; - } - if (hunk.newLines === 0) { - hunk.newStart -= 1; - } - ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@"); - ret.push.apply(ret, hunk.lines); - } - return ret.join("\n") + "\n"; - } - function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); - } - function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { - return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); - } - } -}); - -// node_modules/diff/lib/util/array.js -var require_array2 = __commonJS({ - "node_modules/diff/lib/util/array.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.arrayEqual = arrayEqual; - exports.arrayStartsWith = arrayStartsWith; - function arrayEqual(a, b) { - if (a.length !== b.length) { - return false; - } - return arrayStartsWith(a, b); - } - function arrayStartsWith(array, start) { - if (start.length > array.length) { - return false; - } - for (var i = 0; i < start.length; i++) { - if (start[i] !== array[i]) { - return false; - } - } - return true; - } - } -}); - -// node_modules/diff/lib/patch/merge.js -var require_merge = __commonJS({ - "node_modules/diff/lib/patch/merge.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.calcLineCount = calcLineCount; - exports.merge = merge; - var _create = require_create(); - var _parse = require_parse(); - var _array = require_array2(); - function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); - } - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) - return Array.from(iter); - } - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) - return _arrayLikeToArray(arr); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } - return arr2; - } - function calcLineCount(hunk) { - var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines), oldLines = _calcOldNewLineCount.oldLines, newLines = _calcOldNewLineCount.newLines; - if (oldLines !== void 0) { - hunk.oldLines = oldLines; - } else { - delete hunk.oldLines; - } - if (newLines !== void 0) { - hunk.newLines = newLines; - } else { - delete hunk.newLines; - } - } - function merge(mine, theirs, base) { - mine = loadPatch(mine, base); - theirs = loadPatch(theirs, base); - var ret = {}; - if (mine.index || theirs.index) { - ret.index = mine.index || theirs.index; - } - if (mine.newFileName || theirs.newFileName) { - if (!fileNameChanged(mine)) { - ret.oldFileName = theirs.oldFileName || mine.oldFileName; - ret.newFileName = theirs.newFileName || mine.newFileName; - ret.oldHeader = theirs.oldHeader || mine.oldHeader; - ret.newHeader = theirs.newHeader || mine.newHeader; - } else if (!fileNameChanged(theirs)) { - ret.oldFileName = mine.oldFileName; - ret.newFileName = mine.newFileName; - ret.oldHeader = mine.oldHeader; - ret.newHeader = mine.newHeader; - } else { - ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); - ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); - ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); - ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); - } - } - ret.hunks = []; - var mineIndex = 0, theirsIndex = 0, mineOffset = 0, theirsOffset = 0; - while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { - var mineCurrent = mine.hunks[mineIndex] || { - oldStart: Infinity - }, theirsCurrent = theirs.hunks[theirsIndex] || { - oldStart: Infinity - }; - if (hunkBefore(mineCurrent, theirsCurrent)) { - ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); - mineIndex++; - theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; - } else if (hunkBefore(theirsCurrent, mineCurrent)) { - ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); - theirsIndex++; - mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; - } else { - var mergedHunk = { - oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), - oldLines: 0, - newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), - newLines: 0, - lines: [] - }; - mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); - theirsIndex++; - mineIndex++; - ret.hunks.push(mergedHunk); - } - } - return ret; - } - function loadPatch(param, base) { - if (typeof param === "string") { - if (/^@@/m.test(param) || /^Index:/m.test(param)) { - return (0, _parse.parsePatch)(param)[0]; - } - if (!base) { - throw new Error("Must provide a base reference or pass in a patch"); - } - return (0, _create.structuredPatch)(void 0, void 0, base, param); - } - return param; - } - function fileNameChanged(patch) { - return patch.newFileName && patch.newFileName !== patch.oldFileName; - } - function selectField(index, mine, theirs) { - if (mine === theirs) { - return mine; - } else { - index.conflict = true; - return { - mine, - theirs - }; - } - } - function hunkBefore(test, check) { - return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; - } - function cloneHunk(hunk, offset) { - return { - oldStart: hunk.oldStart, - oldLines: hunk.oldLines, - newStart: hunk.newStart + offset, - newLines: hunk.newLines, - lines: hunk.lines - }; - } - function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { - var mine = { - offset: mineOffset, - lines: mineLines, - index: 0 - }, their = { - offset: theirOffset, - lines: theirLines, - index: 0 - }; - insertLeading(hunk, mine, their); - insertLeading(hunk, their, mine); - while (mine.index < mine.lines.length && their.index < their.lines.length) { - var mineCurrent = mine.lines[mine.index], theirCurrent = their.lines[their.index]; - if ((mineCurrent[0] === "-" || mineCurrent[0] === "+") && (theirCurrent[0] === "-" || theirCurrent[0] === "+")) { - mutualChange(hunk, mine, their); - } else if (mineCurrent[0] === "+" && theirCurrent[0] === " ") { - var _hunk$lines; - (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine))); - } else if (theirCurrent[0] === "+" && mineCurrent[0] === " ") { - var _hunk$lines2; - (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their))); - } else if (mineCurrent[0] === "-" && theirCurrent[0] === " ") { - removal(hunk, mine, their); - } else if (theirCurrent[0] === "-" && mineCurrent[0] === " ") { - removal(hunk, their, mine, true); - } else if (mineCurrent === theirCurrent) { - hunk.lines.push(mineCurrent); - mine.index++; - their.index++; - } else { - conflict(hunk, collectChange(mine), collectChange(their)); - } - } - insertTrailing(hunk, mine); - insertTrailing(hunk, their); - calcLineCount(hunk); - } - function mutualChange(hunk, mine, their) { - var myChanges = collectChange(mine), theirChanges = collectChange(their); - if (allRemoves(myChanges) && allRemoves(theirChanges)) { - if ((0, _array.arrayStartsWith)(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { - var _hunk$lines3; - (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges)); - return; - } else if ((0, _array.arrayStartsWith)(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { - var _hunk$lines4; - (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges)); - return; - } - } else if ((0, _array.arrayEqual)(myChanges, theirChanges)) { - var _hunk$lines5; - (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges)); - return; - } - conflict(hunk, myChanges, theirChanges); - } - function removal(hunk, mine, their, swap) { - var myChanges = collectChange(mine), theirChanges = collectContext(their, myChanges); - if (theirChanges.merged) { - var _hunk$lines6; - (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged)); - } else { - conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); - } - } - function conflict(hunk, mine, their) { - hunk.conflict = true; - hunk.lines.push({ - conflict: true, - mine, - theirs: their - }); - } - function insertLeading(hunk, insert2, their) { - while (insert2.offset < their.offset && insert2.index < insert2.lines.length) { - var line = insert2.lines[insert2.index++]; - hunk.lines.push(line); - insert2.offset++; - } - } - function insertTrailing(hunk, insert2) { - while (insert2.index < insert2.lines.length) { - var line = insert2.lines[insert2.index++]; - hunk.lines.push(line); - } - } - function collectChange(state) { - var ret = [], operation = state.lines[state.index][0]; - while (state.index < state.lines.length) { - var line = state.lines[state.index]; - if (operation === "-" && line[0] === "+") { - operation = "+"; - } - if (operation === line[0]) { - ret.push(line); - state.index++; - } else { - break; - } - } - return ret; - } - function collectContext(state, matchChanges) { - var changes = [], merged = [], matchIndex = 0, contextChanges = false, conflicted = false; - while (matchIndex < matchChanges.length && state.index < state.lines.length) { - var change = state.lines[state.index], match = matchChanges[matchIndex]; - if (match[0] === "+") { - break; - } - contextChanges = contextChanges || change[0] !== " "; - merged.push(match); - matchIndex++; - if (change[0] === "+") { - conflicted = true; - while (change[0] === "+") { - changes.push(change); - change = state.lines[++state.index]; - } - } - if (match.substr(1) === change.substr(1)) { - changes.push(change); - state.index++; - } else { - conflicted = true; - } - } - if ((matchChanges[matchIndex] || "")[0] === "+" && contextChanges) { - conflicted = true; - } - if (conflicted) { - return changes; - } - while (matchIndex < matchChanges.length) { - merged.push(matchChanges[matchIndex++]); - } - return { - merged, - changes - }; - } - function allRemoves(changes) { - return changes.reduce(function(prev, change) { - return prev && change[0] === "-"; - }, true); - } - function skipRemoveSuperset(state, removeChanges, delta) { - for (var i = 0; i < delta; i++) { - var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); - if (state.lines[state.index + i] !== " " + changeContent) { - return false; - } - } - state.index += delta; - return true; - } - function calcOldNewLineCount(lines) { - var oldLines = 0; - var newLines = 0; - lines.forEach(function(line) { - if (typeof line !== "string") { - var myCount = calcOldNewLineCount(line.mine); - var theirCount = calcOldNewLineCount(line.theirs); - if (oldLines !== void 0) { - if (myCount.oldLines === theirCount.oldLines) { - oldLines += myCount.oldLines; - } else { - oldLines = void 0; - } - } - if (newLines !== void 0) { - if (myCount.newLines === theirCount.newLines) { - newLines += myCount.newLines; - } else { - newLines = void 0; - } - } - } else { - if (newLines !== void 0 && (line[0] === "+" || line[0] === " ")) { - newLines++; - } - if (oldLines !== void 0 && (line[0] === "-" || line[0] === " ")) { - oldLines++; - } - } - }); - return { - oldLines, - newLines - }; - } - } -}); - -// node_modules/diff/lib/convert/dmp.js -var require_dmp = __commonJS({ - "node_modules/diff/lib/convert/dmp.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.convertChangesToDMP = convertChangesToDMP; - function convertChangesToDMP(changes) { - var ret = [], change, operation; - for (var i = 0; i < changes.length; i++) { - change = changes[i]; - if (change.added) { - operation = 1; - } else if (change.removed) { - operation = -1; - } else { - operation = 0; - } - ret.push([operation, change.value]); - } - return ret; - } - } -}); - -// node_modules/diff/lib/convert/xml.js -var require_xml = __commonJS({ - "node_modules/diff/lib/convert/xml.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.convertChangesToXML = convertChangesToXML; - function convertChangesToXML(changes) { - var ret = []; - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - if (change.added) { - ret.push(""); - } else if (change.removed) { - ret.push(""); - } - ret.push(escapeHTML(change.value)); - if (change.added) { - ret.push(""); - } else if (change.removed) { - ret.push(""); - } - } - return ret.join(""); - } - function escapeHTML(s) { - var n = s; - n = n.replace(/&/g, "&"); - n = n.replace(//g, ">"); - n = n.replace(/"/g, """); - return n; - } - } -}); - -// node_modules/diff/lib/index.js -var require_lib = __commonJS({ - "node_modules/diff/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "Diff", { - enumerable: true, - get: function get() { - return _base["default"]; - } - }); - Object.defineProperty(exports, "diffChars", { - enumerable: true, - get: function get() { - return _character.diffChars; - } - }); - Object.defineProperty(exports, "diffWords", { - enumerable: true, - get: function get() { - return _word.diffWords; - } - }); - Object.defineProperty(exports, "diffWordsWithSpace", { - enumerable: true, - get: function get() { - return _word.diffWordsWithSpace; - } - }); - Object.defineProperty(exports, "diffLines", { - enumerable: true, - get: function get() { - return _line.diffLines; - } - }); - Object.defineProperty(exports, "diffTrimmedLines", { - enumerable: true, - get: function get() { - return _line.diffTrimmedLines; - } - }); - Object.defineProperty(exports, "diffSentences", { - enumerable: true, - get: function get() { - return _sentence.diffSentences; - } - }); - Object.defineProperty(exports, "diffCss", { - enumerable: true, - get: function get() { - return _css.diffCss; - } - }); - Object.defineProperty(exports, "diffJson", { - enumerable: true, - get: function get() { - return _json.diffJson; - } - }); - Object.defineProperty(exports, "canonicalize", { - enumerable: true, - get: function get() { - return _json.canonicalize; - } - }); - Object.defineProperty(exports, "diffArrays", { - enumerable: true, - get: function get() { - return _array.diffArrays; - } - }); - Object.defineProperty(exports, "applyPatch", { - enumerable: true, - get: function get() { - return _apply.applyPatch; - } - }); - Object.defineProperty(exports, "applyPatches", { - enumerable: true, - get: function get() { - return _apply.applyPatches; - } - }); - Object.defineProperty(exports, "parsePatch", { - enumerable: true, - get: function get() { - return _parse.parsePatch; - } - }); - Object.defineProperty(exports, "merge", { - enumerable: true, - get: function get() { - return _merge.merge; - } - }); - Object.defineProperty(exports, "structuredPatch", { - enumerable: true, - get: function get() { - return _create.structuredPatch; - } - }); - Object.defineProperty(exports, "createTwoFilesPatch", { - enumerable: true, - get: function get() { - return _create.createTwoFilesPatch; - } - }); - Object.defineProperty(exports, "createPatch", { - enumerable: true, - get: function get() { - return _create.createPatch; - } - }); - Object.defineProperty(exports, "convertChangesToDMP", { - enumerable: true, - get: function get() { - return _dmp.convertChangesToDMP; - } - }); - Object.defineProperty(exports, "convertChangesToXML", { - enumerable: true, - get: function get() { - return _xml.convertChangesToXML; - } - }); - var _base = _interopRequireDefault(require_base()); - var _character = require_character(); - var _word = require_word(); - var _line = require_line(); - var _sentence = require_sentence(); - var _css = require_css(); - var _json = require_json(); - var _array = require_array(); - var _apply = require_apply(); - var _parse = require_parse(); - var _merge = require_merge(); - var _create = require_create(); - var _dmp = require_dmp(); - var _xml = require_xml(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - } -}); - -// node_modules/diff2html/lib/rematch.js -var require_rematch = __commonJS({ - "node_modules/diff2html/lib/rematch.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.newMatcherFn = exports.newDistanceFn = exports.levenshtein = void 0; - function levenshtein(a, b) { - if (a.length === 0) { - return b.length; - } - if (b.length === 0) { - return a.length; - } - var matrix = []; - var i; - for (i = 0; i <= b.length; i++) { - matrix[i] = [i]; - } - var j; - for (j = 0; j <= a.length; j++) { - matrix[0][j] = j; - } - for (i = 1; i <= b.length; i++) { - for (j = 1; j <= a.length; j++) { - if (b.charAt(i - 1) === a.charAt(j - 1)) { - matrix[i][j] = matrix[i - 1][j - 1]; - } else { - matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); - } - } - } - return matrix[b.length][a.length]; - } - exports.levenshtein = levenshtein; - function newDistanceFn(str) { - return function(x, y) { - var xValue = str(x).trim(); - var yValue = str(y).trim(); - var lev = levenshtein(xValue, yValue); - return lev / (xValue.length + yValue.length); - }; - } - exports.newDistanceFn = newDistanceFn; - function newMatcherFn(distance) { - function findBestMatch(a, b, cache) { - if (cache === void 0) { - cache = new Map(); - } - var bestMatchDist = Infinity; - var bestMatch; - for (var i = 0; i < a.length; ++i) { - for (var j = 0; j < b.length; ++j) { - var cacheKey = JSON.stringify([a[i], b[j]]); - var md = void 0; - if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { - md = distance(a[i], b[j]); - cache.set(cacheKey, md); - } - if (md < bestMatchDist) { - bestMatchDist = md; - bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; - } - } - } - return bestMatch; - } - function group(a, b, level, cache) { - if (level === void 0) { - level = 0; - } - if (cache === void 0) { - cache = new Map(); - } - var bm = findBestMatch(a, b, cache); - if (!bm || a.length + b.length < 3) { - return [[a, b]]; - } - var a1 = a.slice(0, bm.indexA); - var b1 = b.slice(0, bm.indexB); - var aMatch = [a[bm.indexA]]; - var bMatch = [b[bm.indexB]]; - var tailA = bm.indexA + 1; - var tailB = bm.indexB + 1; - var a2 = a.slice(tailA); - var b2 = b.slice(tailB); - var group1 = group(a1, b1, level + 1, cache); - var groupMatch = group(aMatch, bMatch, level + 1, cache); - var group2 = group(a2, b2, level + 1, cache); - var result = groupMatch; - if (bm.indexA > 0 || bm.indexB > 0) { - result = group1.concat(result); - } - if (a.length > tailA || b.length > tailB) { - result = result.concat(group2); - } - return result; - } - return group; - } - exports.newMatcherFn = newMatcherFn; - } -}); - -// node_modules/diff2html/lib/render-utils.js -var require_render_utils = __commonJS({ - "node_modules/diff2html/lib/render-utils.js"(exports) { - "use strict"; - var __assign2 = exports && exports.__assign || function() { - __assign2 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign2.apply(this, arguments); - }; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.diffHighlight = exports.getFileIcon = exports.getHtmlId = exports.filenameDiff = exports.deconstructLine = exports.escapeForHtml = exports.toCSSClass = exports.defaultRenderConfig = exports.CSSLineClass = void 0; - var jsDiff = __importStar2(require_lib()); - var utils_1 = require_utils(); - var rematch = __importStar2(require_rematch()); - var types_1 = require_types(); - exports.CSSLineClass = { - INSERTS: "d2h-ins", - DELETES: "d2h-del", - CONTEXT: "d2h-cntx", - INFO: "d2h-info", - INSERT_CHANGES: "d2h-ins d2h-change", - DELETE_CHANGES: "d2h-del d2h-change" - }; - exports.defaultRenderConfig = { - matching: types_1.LineMatchingType.NONE, - matchWordsThreshold: 0.25, - maxLineLengthHighlight: 1e4, - diffStyle: types_1.DiffStyleType.WORD - }; - var separator = "/"; - var distance = rematch.newDistanceFn(function(change) { - return change.value; - }); - var matcher = rematch.newMatcherFn(distance); - function isDevNullName(name) { - return name.indexOf("dev/null") !== -1; - } - function removeInsElements(line) { - return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ""); - } - function removeDelElements(line) { - return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ""); - } - function toCSSClass(lineType) { - switch (lineType) { - case types_1.LineType.CONTEXT: - return exports.CSSLineClass.CONTEXT; - case types_1.LineType.INSERT: - return exports.CSSLineClass.INSERTS; - case types_1.LineType.DELETE: - return exports.CSSLineClass.DELETES; - } - } - exports.toCSSClass = toCSSClass; - function prefixLength(isCombined) { - return isCombined ? 2 : 1; - } - function escapeForHtml(str) { - return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); - } - exports.escapeForHtml = escapeForHtml; - function deconstructLine(line, isCombined, escape) { - if (escape === void 0) { - escape = true; - } - var indexToSplit = prefixLength(isCombined); - return { - prefix: line.substring(0, indexToSplit), - content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) - }; - } - exports.deconstructLine = deconstructLine; - function filenameDiff(file) { - var oldFilename = (0, utils_1.unifyPath)(file.oldName); - var newFilename = (0, utils_1.unifyPath)(file.newName); - if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { - var prefixPaths = []; - var suffixPaths = []; - var oldFilenameParts = oldFilename.split(separator); - var newFilenameParts = newFilename.split(separator); - var oldFilenamePartsSize = oldFilenameParts.length; - var newFilenamePartsSize = newFilenameParts.length; - var i = 0; - var j = oldFilenamePartsSize - 1; - var k = newFilenamePartsSize - 1; - while (i < j && i < k) { - if (oldFilenameParts[i] === newFilenameParts[i]) { - prefixPaths.push(newFilenameParts[i]); - i += 1; - } else { - break; - } - } - while (j > i && k > i) { - if (oldFilenameParts[j] === newFilenameParts[k]) { - suffixPaths.unshift(newFilenameParts[k]); - j -= 1; - k -= 1; - } else { - break; - } - } - var finalPrefix = prefixPaths.join(separator); - var finalSuffix = suffixPaths.join(separator); - var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); - var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); - if (finalPrefix.length && finalSuffix.length) { - return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; - } else if (finalPrefix.length) { - return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}"; - } else if (finalSuffix.length) { - return "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; - } - return oldFilename + " \u2192 " + newFilename; - } else if (!isDevNullName(newFilename)) { - return newFilename; - } else { - return oldFilename; - } - } - exports.filenameDiff = filenameDiff; - function getHtmlId(file) { - return "d2h-".concat((0, utils_1.hashCode)(filenameDiff(file)).toString().slice(-6)); - } - exports.getHtmlId = getHtmlId; - function getFileIcon(file) { - var templateName = "file-changed"; - if (file.isRename) { - templateName = "file-renamed"; - } else if (file.isCopy) { - templateName = "file-renamed"; - } else if (file.isNew) { - templateName = "file-added"; - } else if (file.isDeleted) { - templateName = "file-deleted"; - } else if (file.newName !== file.oldName) { - templateName = "file-renamed"; - } - return templateName; - } - exports.getFileIcon = getFileIcon; - function diffHighlight(diffLine1, diffLine2, isCombined, config) { - if (config === void 0) { - config = {}; - } - var _a2 = __assign2(__assign2({}, exports.defaultRenderConfig), config), matching = _a2.matching, maxLineLengthHighlight = _a2.maxLineLengthHighlight, matchWordsThreshold = _a2.matchWordsThreshold, diffStyle = _a2.diffStyle; - var line1 = deconstructLine(diffLine1, isCombined, false); - var line2 = deconstructLine(diffLine2, isCombined, false); - if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { - return { - oldLine: { - prefix: line1.prefix, - content: escapeForHtml(line1.content) - }, - newLine: { - prefix: line2.prefix, - content: escapeForHtml(line2.content) - } - }; - } - var diff = diffStyle === "char" ? jsDiff.diffChars(line1.content, line2.content) : jsDiff.diffWordsWithSpace(line1.content, line2.content); - var changedWords = []; - if (diffStyle === "word" && matching === "words") { - var removed = diff.filter(function(element2) { - return element2.removed; - }); - var added = diff.filter(function(element2) { - return element2.added; - }); - var chunks = matcher(added, removed); - chunks.forEach(function(chunk) { - if (chunk[0].length === 1 && chunk[1].length === 1) { - var dist = distance(chunk[0][0], chunk[1][0]); - if (dist < matchWordsThreshold) { - changedWords.push(chunk[0][0]); - changedWords.push(chunk[1][0]); - } - } - }); - } - var highlightedLine = diff.reduce(function(highlightedLine2, part) { - var elemType = part.added ? "ins" : part.removed ? "del" : null; - var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; - var escapedValue = escapeForHtml(part.value); - return elemType !== null ? "".concat(highlightedLine2, "<").concat(elemType).concat(addClass, ">").concat(escapedValue, "") : "".concat(highlightedLine2).concat(escapedValue); - }, ""); - return { - oldLine: { - prefix: line1.prefix, - content: removeInsElements(highlightedLine) - }, - newLine: { - prefix: line2.prefix, - content: removeDelElements(highlightedLine) - } - }; - } - exports.diffHighlight = diffHighlight; - } -}); - -// node_modules/diff2html/lib/file-list-renderer.js -var require_file_list_renderer = __commonJS({ - "node_modules/diff2html/lib/file-list-renderer.js"(exports) { - "use strict"; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.render = void 0; - var renderUtils = __importStar2(require_render_utils()); - var baseTemplatesPath = "file-summary"; - var iconsBaseTemplatesPath = "icon"; - function render(diffFiles, hoganUtils) { - var files = diffFiles.map(function(file) { - return hoganUtils.render(baseTemplatesPath, "line", { - fileHtmlId: renderUtils.getHtmlId(file), - oldName: file.oldName, - newName: file.newName, - fileName: renderUtils.filenameDiff(file), - deletedLines: "-" + file.deletedLines, - addedLines: "+" + file.addedLines - }, { - fileIcon: hoganUtils.template(iconsBaseTemplatesPath, renderUtils.getFileIcon(file)) - }); - }).join("\n"); - return hoganUtils.render(baseTemplatesPath, "wrapper", { - filesNumber: diffFiles.length, - files - }); - } - exports.render = render; - } -}); - -// node_modules/diff2html/lib/line-by-line-renderer.js -var require_line_by_line_renderer = __commonJS({ - "node_modules/diff2html/lib/line-by-line-renderer.js"(exports) { - "use strict"; - var __assign2 = exports && exports.__assign || function() { - __assign2 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign2.apply(this, arguments); - }; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.defaultLineByLineRendererConfig = void 0; - var Rematch = __importStar2(require_rematch()); - var renderUtils = __importStar2(require_render_utils()); - var types_1 = require_types(); - exports.defaultLineByLineRendererConfig = __assign2(__assign2({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); - var genericTemplatesPath = "generic"; - var baseTemplatesPath = "line-by-line"; - var iconsBaseTemplatesPath = "icon"; - var tagsBaseTemplatesPath = "tag"; - var LineByLineRenderer = function() { - function LineByLineRenderer2(hoganUtils, config) { - if (config === void 0) { - config = {}; - } - this.hoganUtils = hoganUtils; - this.config = __assign2(__assign2({}, exports.defaultLineByLineRendererConfig), config); - } - LineByLineRenderer2.prototype.render = function(diffFiles) { - var _this = this; - var diffsHtml = diffFiles.map(function(file) { - var diffs; - if (file.blocks.length) { - diffs = _this.generateFileHtml(file); - } else { - diffs = _this.generateEmptyDiff(); - } - return _this.makeFileDiffHtml(file, diffs); - }).join("\n"); - return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); - }; - LineByLineRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { - if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) - return ""; - var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, "file-diff"); - var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); - var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, "file"); - var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file)); - return fileDiffTemplate.render({ - file, - fileHtmlId: renderUtils.getHtmlId(file), - diffs, - filePath: filePathTemplate.render({ - fileDiffName: renderUtils.filenameDiff(file) - }, { - fileIcon: fileIconTemplate, - fileTag: fileTagTemplate - }) - }); - }; - LineByLineRenderer2.prototype.generateEmptyDiff = function() { - return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { - contentClass: "d2h-code-line", - CSSLineClass: renderUtils.CSSLineClass - }); - }; - LineByLineRenderer2.prototype.generateFileHtml = function(file) { - var _this = this; - var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function(e) { - return renderUtils.deconstructLine(e.content, file.isCombined).content; - })); - return file.blocks.map(function(block) { - var lines = _this.hoganUtils.render(genericTemplatesPath, "block-header", { - CSSLineClass: renderUtils.CSSLineClass, - blockHeader: file.isTooBig ? block.header : renderUtils.escapeForHtml(block.header), - lineClass: "d2h-code-linenumber", - contentClass: "d2h-code-line" - }); - _this.applyLineGroupping(block).forEach(function(_a2) { - var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; - if (oldLines.length && newLines.length && !contextLines.length) { - _this.applyRematchMatching(oldLines, newLines, matcher).map(function(_a3) { - var oldLines2 = _a3[0], newLines2 = _a3[1]; - var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; - lines += left2; - lines += right2; - }); - } else if (contextLines.length) { - contextLines.forEach(function(line) { - var _a3 = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; - lines += _this.generateSingleLineHtml({ - type: renderUtils.CSSLineClass.CONTEXT, - prefix, - content, - oldNumber: line.oldNumber, - newNumber: line.newNumber - }); - }); - } else if (oldLines.length || newLines.length) { - var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; - lines += left; - lines += right; - } else { - console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); - } - }); - return lines; - }).join("\n"); - }; - LineByLineRenderer2.prototype.applyLineGroupping = function(block) { - var blockLinesGroups = []; - var oldLines = []; - var newLines = []; - for (var i = 0; i < block.lines.length; i++) { - var diffLine = block.lines[i]; - if (diffLine.type !== types_1.LineType.INSERT && newLines.length || diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0) { - blockLinesGroups.push([[], oldLines, newLines]); - oldLines = []; - newLines = []; - } - if (diffLine.type === types_1.LineType.CONTEXT) { - blockLinesGroups.push([[diffLine], [], []]); - } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) { - blockLinesGroups.push([[], [], [diffLine]]); - } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) { - newLines.push(diffLine); - } else if (diffLine.type === types_1.LineType.DELETE) { - oldLines.push(diffLine); - } - } - if (oldLines.length || newLines.length) { - blockLinesGroups.push([[], oldLines, newLines]); - oldLines = []; - newLines = []; - } - return blockLinesGroups; - }; - LineByLineRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher) { - var comparisons = oldLines.length * newLines.length; - var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { - return elem.content.length; - }))); - var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); - return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]]; - }; - LineByLineRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { - var fileHtml = { - right: "", - left: "" - }; - var maxLinesNumber = Math.max(oldLines.length, newLines.length); - for (var i = 0; i < maxLinesNumber; i++) { - var oldLine = oldLines[i]; - var newLine = newLines[i]; - var diff = oldLine !== void 0 && newLine !== void 0 ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; - var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { - prefix: diff.oldLine.prefix, - content: diff.oldLine.content, - type: renderUtils.CSSLineClass.DELETE_CHANGES - } : __assign2(__assign2({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; - var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { - prefix: diff.newLine.prefix, - content: diff.newLine.content, - type: renderUtils.CSSLineClass.INSERT_CHANGES - } : __assign2(__assign2({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; - var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; - fileHtml.left += left; - fileHtml.right += right; - } - return fileHtml; - }; - LineByLineRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { - return { - left: this.generateSingleLineHtml(oldLine), - right: this.generateSingleLineHtml(newLine) - }; - }; - LineByLineRenderer2.prototype.generateSingleLineHtml = function(line) { - if (line === void 0) - return ""; - var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath, "numbers", { - oldNumber: line.oldNumber || "", - newNumber: line.newNumber || "" - }); - return this.hoganUtils.render(genericTemplatesPath, "line", { - type: line.type, - lineClass: "d2h-code-linenumber", - contentClass: "d2h-code-line", - prefix: line.prefix === " " ? " " : line.prefix, - content: line.content, - lineNumber: lineNumberHtml - }); - }; - return LineByLineRenderer2; - }(); - exports.default = LineByLineRenderer; - } -}); - -// node_modules/diff2html/lib/side-by-side-renderer.js -var require_side_by_side_renderer = __commonJS({ - "node_modules/diff2html/lib/side-by-side-renderer.js"(exports) { - "use strict"; - var __assign2 = exports && exports.__assign || function() { - __assign2 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign2.apply(this, arguments); - }; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.defaultSideBySideRendererConfig = void 0; - var Rematch = __importStar2(require_rematch()); - var renderUtils = __importStar2(require_render_utils()); - var types_1 = require_types(); - exports.defaultSideBySideRendererConfig = __assign2(__assign2({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); - var genericTemplatesPath = "generic"; - var baseTemplatesPath = "side-by-side"; - var iconsBaseTemplatesPath = "icon"; - var tagsBaseTemplatesPath = "tag"; - var SideBySideRenderer = function() { - function SideBySideRenderer2(hoganUtils, config) { - if (config === void 0) { - config = {}; - } - this.hoganUtils = hoganUtils; - this.config = __assign2(__assign2({}, exports.defaultSideBySideRendererConfig), config); - } - SideBySideRenderer2.prototype.render = function(diffFiles) { - var _this = this; - var diffsHtml = diffFiles.map(function(file) { - var diffs; - if (file.blocks.length) { - diffs = _this.generateFileHtml(file); - } else { - diffs = _this.generateEmptyDiff(); - } - return _this.makeFileDiffHtml(file, diffs); - }).join("\n"); - return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); - }; - SideBySideRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { - if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) - return ""; - var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, "file-diff"); - var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); - var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, "file"); - var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file)); - return fileDiffTemplate.render({ - file, - fileHtmlId: renderUtils.getHtmlId(file), - diffs, - filePath: filePathTemplate.render({ - fileDiffName: renderUtils.filenameDiff(file) - }, { - fileIcon: fileIconTemplate, - fileTag: fileTagTemplate - }) - }); - }; - SideBySideRenderer2.prototype.generateEmptyDiff = function() { - return { - right: "", - left: this.hoganUtils.render(genericTemplatesPath, "empty-diff", { - contentClass: "d2h-code-side-line", - CSSLineClass: renderUtils.CSSLineClass - }) - }; - }; - SideBySideRenderer2.prototype.generateFileHtml = function(file) { - var _this = this; - var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function(e) { - return renderUtils.deconstructLine(e.content, file.isCombined).content; - })); - return file.blocks.map(function(block) { - var fileHtml = { - left: _this.makeHeaderHtml(block.header, file), - right: _this.makeHeaderHtml("") - }; - _this.applyLineGroupping(block).forEach(function(_a2) { - var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; - if (oldLines.length && newLines.length && !contextLines.length) { - _this.applyRematchMatching(oldLines, newLines, matcher).map(function(_a3) { - var oldLines2 = _a3[0], newLines2 = _a3[1]; - var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; - fileHtml.left += left2; - fileHtml.right += right2; - }); - } else if (contextLines.length) { - contextLines.forEach(function(line) { - var _a3 = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; - var _b2 = _this.generateLineHtml({ - type: renderUtils.CSSLineClass.CONTEXT, - prefix, - content, - number: line.oldNumber - }, { - type: renderUtils.CSSLineClass.CONTEXT, - prefix, - content, - number: line.newNumber - }), left2 = _b2.left, right2 = _b2.right; - fileHtml.left += left2; - fileHtml.right += right2; - }); - } else if (oldLines.length || newLines.length) { - var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; - fileHtml.left += left; - fileHtml.right += right; - } else { - console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); - } - }); - return fileHtml; - }).reduce(function(accomulated, html2) { - return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; - }, { left: "", right: "" }); - }; - SideBySideRenderer2.prototype.applyLineGroupping = function(block) { - var blockLinesGroups = []; - var oldLines = []; - var newLines = []; - for (var i = 0; i < block.lines.length; i++) { - var diffLine = block.lines[i]; - if (diffLine.type !== types_1.LineType.INSERT && newLines.length || diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0) { - blockLinesGroups.push([[], oldLines, newLines]); - oldLines = []; - newLines = []; - } - if (diffLine.type === types_1.LineType.CONTEXT) { - blockLinesGroups.push([[diffLine], [], []]); - } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) { - blockLinesGroups.push([[], [], [diffLine]]); - } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) { - newLines.push(diffLine); - } else if (diffLine.type === types_1.LineType.DELETE) { - oldLines.push(diffLine); - } - } - if (oldLines.length || newLines.length) { - blockLinesGroups.push([[], oldLines, newLines]); - oldLines = []; - newLines = []; - } - return blockLinesGroups; - }; - SideBySideRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher) { - var comparisons = oldLines.length * newLines.length; - var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { - return elem.content.length; - }))); - var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); - return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]]; - }; - SideBySideRenderer2.prototype.makeHeaderHtml = function(blockHeader, file) { - return this.hoganUtils.render(genericTemplatesPath, "block-header", { - CSSLineClass: renderUtils.CSSLineClass, - blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : renderUtils.escapeForHtml(blockHeader), - lineClass: "d2h-code-side-linenumber", - contentClass: "d2h-code-side-line" - }); - }; - SideBySideRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { - var fileHtml = { - right: "", - left: "" - }; - var maxLinesNumber = Math.max(oldLines.length, newLines.length); - for (var i = 0; i < maxLinesNumber; i++) { - var oldLine = oldLines[i]; - var newLine = newLines[i]; - var diff = oldLine !== void 0 && newLine !== void 0 ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; - var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { - prefix: diff.oldLine.prefix, - content: diff.oldLine.content, - type: renderUtils.CSSLineClass.DELETE_CHANGES - } : __assign2(__assign2({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; - var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { - prefix: diff.newLine.prefix, - content: diff.newLine.content, - type: renderUtils.CSSLineClass.INSERT_CHANGES - } : __assign2(__assign2({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; - var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; - fileHtml.left += left; - fileHtml.right += right; - } - return fileHtml; - }; - SideBySideRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { - return { - left: this.generateSingleHtml(oldLine), - right: this.generateSingleHtml(newLine) - }; - }; - SideBySideRenderer2.prototype.generateSingleHtml = function(line) { - var lineClass = "d2h-code-side-linenumber"; - var contentClass = "d2h-code-side-line"; - return this.hoganUtils.render(genericTemplatesPath, "line", { - type: (line === null || line === void 0 ? void 0 : line.type) || "".concat(renderUtils.CSSLineClass.CONTEXT, " d2h-emptyplaceholder"), - lineClass: line !== void 0 ? lineClass : "".concat(lineClass, " d2h-code-side-emptyplaceholder"), - contentClass: line !== void 0 ? contentClass : "".concat(contentClass, " d2h-code-side-emptyplaceholder"), - prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, - content: line === null || line === void 0 ? void 0 : line.content, - lineNumber: line === null || line === void 0 ? void 0 : line.number - }); - }; - return SideBySideRenderer2; - }(); - exports.default = SideBySideRenderer; - } -}); - // node_modules/hogan.js/lib/compiler.js var require_compiler = __commonJS({ "node_modules/hogan.js/lib/compiler.js"(exports) { - (function(Hogan2) { + init_polyfill_buffer(); + (function(Hogan4) { var rIsWhitespace = /\S/, rQuot = /\"/g, rNewline = /\n/g, rCr = /\r/g, rSlash = /\\/g, rLineSep = /\u2028/, rParagraphSep = /\u2029/; - Hogan2.tags = { + Hogan4.tags = { "#": 1, "^": 2, "<": 3, @@ -3740,8 +7827,8 @@ var require_compiler = __commonJS({ "&": 11, "_t": 12 }; - Hogan2.scan = function scan(text2, delimiters) { - var len = text2.length, IN_TEXT = 0, IN_TAG_TYPE = 1, IN_TAG = 2, state = IN_TEXT, tagType = null, tag = null, buf = "", tokens = [], seenTag = false, i = 0, lineStart = 0, otag = "{{", ctag = "}}"; + Hogan4.scan = function scan(text2, delimiters) { + var len = text2.length, IN_TEXT = 0, IN_TAG_TYPE = 1, IN_TAG = 2, state = IN_TEXT, tagType = null, tag2 = null, buf = "", tokens = [], seenTag = false, i = 0, lineStart = 0, otag = "{{", ctag = "}}"; function addBuf() { if (buf.length > 0) { tokens.push({ tag: "_t", text: new String(buf) }); @@ -3751,7 +7838,7 @@ var require_compiler = __commonJS({ function lineIsWhitespace() { var isAllWhitespace = true; for (var j = lineStart; j < tokens.length; j++) { - isAllWhitespace = Hogan2.tags[tokens[j].tag] < Hogan2.tags["_v"] || tokens[j].tag == "_t" && tokens[j].text.match(rIsWhitespace) === null; + isAllWhitespace = Hogan4.tags[tokens[j].tag] < Hogan4.tags["_v"] || tokens[j].tag == "_t" && tokens[j].text.match(rIsWhitespace) === null; if (!isAllWhitespace) { return false; } @@ -3775,8 +7862,8 @@ var require_compiler = __commonJS({ seenTag = false; lineStart = tokens.length; } - function changeDelimiters(text3, index) { - var close = "=" + ctag, closeIndex = text3.indexOf(close, index), delimiters2 = trim(text3.substring(text3.indexOf("=", index) + 1, closeIndex)).split(" "); + function changeDelimiters(text3, index2) { + var close = "=" + ctag, closeIndex = text3.indexOf(close, index2), delimiters2 = trim(text3.substring(text3.indexOf("=", index2) + 1, closeIndex)).split(" "); otag = delimiters2[0]; ctag = delimiters2[delimiters2.length - 1]; return closeIndex + close.length - 1; @@ -3801,13 +7888,13 @@ var require_compiler = __commonJS({ } } else if (state == IN_TAG_TYPE) { i += otag.length - 1; - tag = Hogan2.tags[text2.charAt(i + 1)]; - tagType = tag ? text2.charAt(i + 1) : "_v"; + tag2 = Hogan4.tags[text2.charAt(i + 1)]; + tagType = tag2 ? text2.charAt(i + 1) : "_v"; if (tagType == "=") { i = changeDelimiters(text2, i); state = IN_TEXT; } else { - if (tag) { + if (tag2) { i++; } state = IN_TAG; @@ -3851,12 +7938,12 @@ var require_compiler = __commonJS({ } return s.replace(/^\s*|\s*$/g, ""); } - function tagChange(tag, text2, index) { - if (text2.charAt(index) != tag.charAt(0)) { + function tagChange(tag2, text2, index2) { + if (text2.charAt(index2) != tag2.charAt(0)) { return false; } - for (var i = 1, l = tag.length; i < l; i++) { - if (text2.charAt(index + i) != tag.charAt(i)) { + for (var i = 1, l = tag2.length; i < l; i++) { + if (text2.charAt(index2 + i) != tag2.charAt(i)) { return false; } } @@ -3871,7 +7958,7 @@ var require_compiler = __commonJS({ if (tail && tail.tag == "<" && !(token.tag in allowedInSuper)) { throw new Error("Illegal content in < super tag."); } - if (Hogan2.tags[token.tag] <= Hogan2.tags["$"] || isOpener(token, customTags)) { + if (Hogan4.tags[token.tag] <= Hogan4.tags["$"] || isOpener(token, customTags)) { stack.push(token); token.nodes = buildTree(tokens, token.tag, stack, customTags); } else if (token.tag == "/") { @@ -3923,29 +8010,29 @@ var require_compiler = __commonJS({ } return "partials: {" + partials.join(",") + "}, subs: " + stringifySubstitutions(codeObj.subs); } - Hogan2.stringify = function(codeObj, text2, options) { - return "{code: function (c,p,i) { " + Hogan2.wrapMain(codeObj.code) + " }," + stringifyPartials(codeObj) + "}"; + Hogan4.stringify = function(codeObj, text2, options) { + return "{code: function (c,p,i) { " + Hogan4.wrapMain(codeObj.code) + " }," + stringifyPartials(codeObj) + "}"; }; var serialNo = 0; - Hogan2.generate = function(tree, text2, options) { + Hogan4.generate = function(tree, text2, options) { serialNo = 0; var context = { code: "", subs: {}, partials: {} }; - Hogan2.walk(tree, context); + Hogan4.walk(tree, context); if (options.asString) { return this.stringify(context, text2, options); } return this.makeTemplate(context, text2, options); }; - Hogan2.wrapMain = function(code) { + Hogan4.wrapMain = function(code) { return 'var t=this;t.b(i=i||"");' + code + "return t.fl();"; }; - Hogan2.template = Hogan2.Template; - Hogan2.makeTemplate = function(codeObj, text2, options) { + Hogan4.template = Hogan4.Template; + Hogan4.makeTemplate = function(codeObj, text2, options) { var template = this.makePartials(codeObj); template.code = new Function("c", "p", "i", this.wrapMain(codeObj.code)); return new this.template(template, text2, this, options); }; - Hogan2.makePartials = function(codeObj) { + Hogan4.makePartials = function(codeObj) { var key2, template = { subs: {}, partials: codeObj.partials, name: codeObj.name }; for (key2 in template.partials) { template.partials[key2] = this.makePartials(template.partials[key2]); @@ -3968,28 +8055,28 @@ var require_compiler = __commonJS({ context.code += 't.b(t.rp("' + esc(sym) + '",c,p,"' + (node.indent || "") + '"));'; return sym; } - Hogan2.codegen = { + Hogan4.codegen = { "#": function(node, context) { context.code += "if(t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,0,' + node.i + "," + node.end + ',"' + node.otag + " " + node.ctag + '")){t.rs(c,p,function(c,p,t){'; - Hogan2.walk(node.nodes, context); + Hogan4.walk(node.nodes, context); context.code += "});c.pop();}"; }, "^": function(node, context) { context.code += "if(!t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,1,0,0,"")){'; - Hogan2.walk(node.nodes, context); + Hogan4.walk(node.nodes, context); context.code += "};"; }, ">": createPartial, "<": function(node, context) { var ctx = { partials: {}, code: "", subs: {}, inPartial: true }; - Hogan2.walk(node.nodes, ctx); + Hogan4.walk(node.nodes, ctx); var template = context.partials[createPartial(node, context)]; template.subs = ctx.subs; template.partials = ctx.partials; }, "$": function(node, context) { var ctx = { subs: {}, code: "", partials: context.partials, prefix: node.n }; - Hogan2.walk(node.nodes, ctx); + Hogan4.walk(node.nodes, ctx); context.subs[node.n] = ctx.code; if (!context.inPartial) { context.code += 't.sub("' + esc(node.n) + '",c,p,i);'; @@ -4013,25 +8100,25 @@ var require_compiler = __commonJS({ function write(s) { return "t.b(" + s + ");"; } - Hogan2.walk = function(nodelist, context) { + Hogan4.walk = function(nodelist, context) { var func; for (var i = 0, l = nodelist.length; i < l; i++) { - func = Hogan2.codegen[nodelist[i].tag]; + func = Hogan4.codegen[nodelist[i].tag]; func && func(nodelist[i], context); } return context; }; - Hogan2.parse = function(tokens, text2, options) { + Hogan4.parse = function(tokens, text2, options) { options = options || {}; return buildTree(tokens, "", [], options.sectionTags || []); }; - Hogan2.cache = {}; - Hogan2.cacheKey = function(text2, options) { + Hogan4.cache = {}; + Hogan4.cacheKey = function(text2, options) { return [text2, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join("||"); }; - Hogan2.compile = function(text2, options) { + Hogan4.compile = function(text2, options) { options = options || {}; - var key2 = Hogan2.cacheKey(text2, options); + var key2 = Hogan4.cacheKey(text2, options); var template = this.cache[key2]; if (template) { var partials = template.partials; @@ -4050,9 +8137,10 @@ var require_compiler = __commonJS({ // node_modules/hogan.js/lib/template.js var require_template = __commonJS({ "node_modules/hogan.js/lib/template.js"(exports) { - var Hogan2 = {}; - (function(Hogan3) { - Hogan3.Template = function(codeObj, text2, compiler, options) { + init_polyfill_buffer(); + var Hogan4 = {}; + (function(Hogan5) { + Hogan5.Template = function(codeObj, text2, compiler, options) { codeObj = codeObj || {}; this.r = codeObj.code || this.r; this.c = compiler; @@ -4062,17 +8150,17 @@ var require_template = __commonJS({ this.subs = codeObj.subs || {}; this.buf = ""; }; - Hogan3.Template.prototype = { - r: function(context, partials, indent) { + Hogan5.Template.prototype = { + r: function(context, partials, indent2) { return ""; }, v: hoganEscape, t: coerceToString, - render: function render(context, partials, indent) { - return this.ri([context], partials || {}, indent); + render: function render2(context, partials, indent2) { + return this.ri([context], partials || {}, indent2); }, - ri: function(context, partials, indent) { - return this.r(context, partials, indent); + ri: function(context, partials, indent2) { + return this.r(context, partials, indent2); }, ep: function(symbol, partials) { var partial = this.partials[symbol]; @@ -4103,12 +8191,12 @@ var require_template = __commonJS({ this.partials[symbol].instance = template; return template; }, - rp: function(symbol, context, partials, indent) { + rp: function(symbol, context, partials, indent2) { var partial = this.ep(symbol, partials); if (!partial) { return ""; } - return partial.ri(context, partials, indent); + return partial.ri(context, partials, indent2); }, rs: function(context, partials, section) { var tail = context[context.length - 1]; @@ -4220,11 +8308,11 @@ var require_template = __commonJS({ } return result; }, - sub: function(name, context, partials, indent) { + sub: function(name, context, partials, indent2) { var f = this.subs[name]; if (f) { this.activeSub = name; - f(context, partials, this, indent); + f(context, partials, this, indent2); this.activeSub = false; } } @@ -4240,15 +8328,15 @@ var require_template = __commonJS({ } return val; } - function createSpecializedPartial(instance5, subs, partials, stackSubs, stackPartials, stackText) { + function createSpecializedPartial(instance6, subs, partials, stackSubs, stackPartials, stackText) { function PartialTemplate() { } ; - PartialTemplate.prototype = instance5; + PartialTemplate.prototype = instance6; function Substitutions() { } ; - Substitutions.prototype = instance5.subs; + Substitutions.prototype = instance6.subs; var key2; var partial = new PartialTemplate(); partial.subs = new Substitutions(); @@ -4286,627 +8374,27 @@ var require_template = __commonJS({ var isArray = Array.isArray || function(a) { return Object.prototype.toString.call(a) === "[object Array]"; }; - })(typeof exports !== "undefined" ? exports : Hogan2); + })(typeof exports !== "undefined" ? exports : Hogan4); } }); // node_modules/hogan.js/lib/hogan.js var require_hogan = __commonJS({ "node_modules/hogan.js/lib/hogan.js"(exports, module2) { - var Hogan2 = require_compiler(); - Hogan2.Template = require_template().Template; - Hogan2.template = Hogan2.Template; - module2.exports = Hogan2; - } -}); - -// node_modules/diff2html/lib/diff2html-templates.js -var require_diff2html_templates = __commonJS({ - "node_modules/diff2html/lib/diff2html-templates.js"(exports) { - "use strict"; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.defaultTemplates = void 0; - var Hogan2 = __importStar2(require_hogan()); - exports.defaultTemplates = {}; - exports.defaultTemplates["file-summary-line"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('
  • '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(t.rp("'); - t.b(t.v(t.f("fileName", c, p, 0))); - t.b(""); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(' '); - t.b(t.v(t.f("addedLines", c, p, 0))); - t.b(""); - t.b("\n" + i); - t.b(' '); - t.b(t.v(t.f("deletedLines", c, p, 0))); - t.b(""); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b("
  • "); - return t.fl(); - }, partials: { "'); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(' Files changed ('); - t.b(t.v(t.f("filesNumber", c, p, 0))); - t.b(")"); - t.b("\n" + i); - t.b(' hide'); - t.b("\n" + i); - t.b(' show'); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b('
      '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.f("files", c, p, 0))); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b(""); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["generic-block-header"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b(""); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b('
    '); - t.b(t.t(t.f("blockHeader", c, p, 0))); - t.b("
    "); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b(""); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["generic-empty-diff"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b(""); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(" File without changes"); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b(""); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["generic-file-path"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b(''); - t.b("\n" + i); - t.b(t.rp("'); - t.b(t.v(t.f("fileDiffName", c, p, 0))); - t.b(""); - t.b("\n" + i); - t.b(t.rp(""); - t.b("\n" + i); - t.b('"); - return t.fl(); - }, partials: { ""); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.f("lineNumber", c, p, 0))); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - if (t.s(t.f("prefix", c, p, 1), c, p, 0, 162, 238, "{{ }}")) { - t.rs(c, p, function(c2, p2, t2) { - t2.b(' '); - t2.b(t2.t(t2.f("prefix", c2, p2, 0))); - t2.b(""); - t2.b("\n" + i); - }); - c.pop(); - } - if (!t.s(t.f("prefix", c, p, 1), c, p, 1, 0, 0, "")) { - t.b('  '); - t.b("\n" + i); - } - ; - if (t.s(t.f("content", c, p, 1), c, p, 0, 371, 445, "{{ }}")) { - t.rs(c, p, function(c2, p2, t2) { - t2.b(' '); - t2.b(t2.t(t2.f("content", c2, p2, 0))); - t2.b(""); - t2.b("\n" + i); - }); - c.pop(); - } - if (!t.s(t.f("content", c, p, 1), c, p, 1, 0, 0, "")) { - t.b('
    '); - t.b("\n" + i); - } - ; - t.b("
    "); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b(""); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["generic-wrapper"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('
    '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.f("content", c, p, 0))); - t.b("\n" + i); - t.b("
    "); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["icon-file-added"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('"); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["icon-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('"); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["icon-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('"); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["icon-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('"); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["icon-file"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('"); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["line-by-line-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('
    '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.f("filePath", c, p, 0))); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.f("diffs", c, p, 0))); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["line-by-line-numbers"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('
    '); - t.b(t.v(t.f("oldNumber", c, p, 0))); - t.b("
    "); - t.b("\n" + i); - t.b('
    '); - t.b(t.v(t.f("newNumber", c, p, 0))); - t.b("
    "); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["side-by-side-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('
    '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.f("filePath", c, p, 0))); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.d("diffs.left", c, p, 0))); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b('
    '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(' '); - t.b("\n" + i); - t.b(" "); - t.b(t.t(t.d("diffs.right", c, p, 0))); - t.b("\n" + i); - t.b(" "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - t.b("\n" + i); - t.b("
    "); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["tag-file-added"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('ADDED'); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["tag-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('CHANGED'); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["tag-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('DELETED'); - return t.fl(); - }, partials: {}, subs: {} }); - exports.defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { - var t = this; - t.b(i = i || ""); - t.b('RENAMED'); - return t.fl(); - }, partials: {}, subs: {} }); - } -}); - -// node_modules/diff2html/lib/hoganjs-utils.js -var require_hoganjs_utils = __commonJS({ - "node_modules/diff2html/lib/hoganjs-utils.js"(exports) { - "use strict"; - var __assign2 = exports && exports.__assign || function() { - __assign2 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign2.apply(this, arguments); - }; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var Hogan2 = __importStar2(require_hogan()); - var diff2html_templates_1 = require_diff2html_templates(); - var HoganJsUtils = function() { - function HoganJsUtils2(_a2) { - var _b = _a2.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a2.rawTemplates, rawTemplates = _c === void 0 ? {} : _c; - var compiledRawTemplates = Object.entries(rawTemplates).reduce(function(previousTemplates, _a3) { - var _b2; - var name = _a3[0], templateString = _a3[1]; - var compiledTemplate = Hogan2.compile(templateString, { asString: false }); - return __assign2(__assign2({}, previousTemplates), (_b2 = {}, _b2[name] = compiledTemplate, _b2)); - }, {}); - this.preCompiledTemplates = __assign2(__assign2(__assign2({}, diff2html_templates_1.defaultTemplates), compiledTemplates), compiledRawTemplates); - } - HoganJsUtils2.compile = function(templateString) { - return Hogan2.compile(templateString, { asString: false }); - }; - HoganJsUtils2.prototype.render = function(namespace, view, params, partials, indent) { - var templateKey = this.templateKey(namespace, view); - try { - var template = this.preCompiledTemplates[templateKey]; - return template.render(params, partials, indent); - } catch (e) { - throw new Error("Could not find template to render '".concat(templateKey, "'")); - } - }; - HoganJsUtils2.prototype.template = function(namespace, view) { - return this.preCompiledTemplates[this.templateKey(namespace, view)]; - }; - HoganJsUtils2.prototype.templateKey = function(namespace, view) { - return "".concat(namespace, "-").concat(view); - }; - return HoganJsUtils2; - }(); - exports.default = HoganJsUtils; - } -}); - -// node_modules/diff2html/lib/diff2html.js -var require_diff2html = __commonJS({ - "node_modules/diff2html/lib/diff2html.js"(exports) { - "use strict"; - var __assign2 = exports && exports.__assign || function() { - __assign2 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign2.apply(this, arguments); - }; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - var __importDefault2 = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.html = exports.parse = exports.defaultDiff2HtmlConfig = void 0; - var DiffParser = __importStar2(require_diff_parser()); - var fileListPrinter = __importStar2(require_file_list_renderer()); - var line_by_line_renderer_1 = __importStar2(require_line_by_line_renderer()); - var side_by_side_renderer_1 = __importStar2(require_side_by_side_renderer()); - var types_1 = require_types(); - var hoganjs_utils_1 = __importDefault2(require_hoganjs_utils()); - exports.defaultDiff2HtmlConfig = __assign2(__assign2(__assign2({}, line_by_line_renderer_1.defaultLineByLineRendererConfig), side_by_side_renderer_1.defaultSideBySideRendererConfig), { outputFormat: types_1.OutputFormatType.LINE_BY_LINE, drawFileList: true }); - function parse(diffInput, configuration) { - if (configuration === void 0) { - configuration = {}; - } - return DiffParser.parse(diffInput, __assign2(__assign2({}, exports.defaultDiff2HtmlConfig), configuration)); - } - exports.parse = parse; - function html2(diffInput, configuration) { - if (configuration === void 0) { - configuration = {}; - } - var config = __assign2(__assign2({}, exports.defaultDiff2HtmlConfig), configuration); - var diffJson = typeof diffInput === "string" ? DiffParser.parse(diffInput, config) : diffInput; - var hoganUtils = new hoganjs_utils_1.default(config); - var fileList = config.drawFileList ? fileListPrinter.render(diffJson, hoganUtils) : ""; - var diffOutput = config.outputFormat === "side-by-side" ? new side_by_side_renderer_1.default(hoganUtils, config).render(diffJson) : new line_by_line_renderer_1.default(hoganUtils, config).render(diffJson); - return fileList + diffOutput; - } - exports.html = html2; + init_polyfill_buffer(); + var Hogan4 = require_compiler(); + Hogan4.Template = require_template().Template; + Hogan4.template = Hogan4.Template; + module2.exports = Hogan4; } }); // node_modules/tslib/tslib.js var require_tslib = __commonJS({ "node_modules/tslib/tslib.js"(exports, module2) { + init_polyfill_buffer(); var __extends2; - var __assign2; + var __assign7; var __rest2; var __decorate2; var __param2; @@ -4918,7 +8406,7 @@ var require_tslib = __commonJS({ var __read2; var __spread2; var __spreadArrays2; - var __spreadArray2; + var __spreadArray3; var __await2; var __asyncGenerator2; var __asyncDelegator2; @@ -4970,7 +8458,7 @@ var require_tslib = __commonJS({ } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; - __assign2 = Object.assign || function(t) { + __assign7 = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) @@ -5181,7 +8669,7 @@ var require_tslib = __commonJS({ r[k] = a[j]; return r; }; - __spreadArray2 = function(to, from, pack) { + __spreadArray3 = function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { @@ -5314,7 +8802,7 @@ var require_tslib = __commonJS({ return typeof state === "function" ? receiver === state : state.has(receiver); }; exporter("__extends", __extends2); - exporter("__assign", __assign2); + exporter("__assign", __assign7); exporter("__rest", __rest2); exporter("__decorate", __decorate2); exporter("__param", __param2); @@ -5327,7 +8815,7 @@ var require_tslib = __commonJS({ exporter("__read", __read2); exporter("__spread", __spread2); exporter("__spreadArrays", __spreadArrays2); - exporter("__spreadArray", __spreadArray2); + exporter("__spreadArray", __spreadArray3); exporter("__await", __await2); exporter("__asyncGenerator", __asyncGenerator2); exporter("__asyncDelegator", __asyncDelegator2); @@ -5345,6 +8833,7 @@ var require_tslib = __commonJS({ // node_modules/feather-icons/dist/feather.js var require_feather = __commonJS({ "node_modules/feather-icons/dist/feather.js"(exports, module2) { + init_polyfill_buffer(); (function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === "object" && typeof module2 === "object") module2.exports = factory(); @@ -5417,8 +8906,8 @@ var require_feather = __commonJS({ } } var hasOwn = {}.hasOwnProperty; - function _parseNumber(resultSet, num) { - resultSet[num] = true; + function _parseNumber(resultSet, num2) { + resultSet[num2] = true; } function _parseObject(resultSet, object) { for (var k in object) { @@ -5480,8 +8969,8 @@ var require_feather = __commonJS({ "./node_modules/core-js/es/array/from.js": function(module3, exports2, __webpack_require__) { __webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"); __webpack_require__("./node_modules/core-js/modules/es.array.from.js"); - var path3 = __webpack_require__("./node_modules/core-js/internals/path.js"); - module3.exports = path3.Array.from; + var path2 = __webpack_require__("./node_modules/core-js/internals/path.js"); + module3.exports = path2.Array.from; }, "./node_modules/core-js/internals/a-function.js": function(module3, exports2) { module3.exports = function(it) { @@ -5515,7 +9004,7 @@ var require_feather = __commonJS({ var argumentsLength = arguments.length; var mapfn = argumentsLength > 1 ? arguments[1] : void 0; var mapping = mapfn !== void 0; - var index = 0; + var index2 = 0; var iteratorMethod = getIteratorMethod(O); var length, result, step, iterator; if (mapping) @@ -5523,17 +9012,17 @@ var require_feather = __commonJS({ if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { iterator = iteratorMethod.call(O); result = new C(); - for (; !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value); + for (; !(step = iterator.next()).done; index2++) { + createProperty(result, index2, mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index2], true) : step.value); } } else { length = toLength(O.length); result = new C(length); - for (; length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + for (; length > index2; index2++) { + createProperty(result, index2, mapping ? mapfn(O[index2], index2) : O[index2]); } } - result.length = index; + result.length = index2; return result; }; }, @@ -5545,19 +9034,19 @@ var require_feather = __commonJS({ return function($this, el, fromIndex) { var O = toIndexedObject($this); var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); + var index2 = toAbsoluteIndex(fromIndex, length); var value; if (IS_INCLUDES && el != el) - while (length > index) { - value = O[index++]; + while (length > index2) { + value = O[index2++]; if (value != value) return true; } else - for (; length > index; index++) - if (IS_INCLUDES || index in O) { - if (O[index] === el) - return IS_INCLUDES || index || 0; + for (; length > index2; index2++) + if (IS_INCLUDES || index2 in O) { + if (O[index2] === el) + return IS_INCLUDES || index2 || 0; } return !IS_INCLUDES && -1; }; @@ -5666,8 +9155,8 @@ var require_feather = __commonJS({ } }; module3.exports = function(it) { - var O, tag, result; - return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; + var O, tag2, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag2 = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag2 : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; }; }, "./node_modules/core-js/internals/copy-constructor-properties.js": function(module3, exports2, __webpack_require__) { @@ -6053,10 +9542,10 @@ var require_feather = __commonJS({ var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); var replacement = /#|\.prototype\./; var isForced = function(feature, detection) { - var value = data[normalize2(feature)]; + var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection; }; - var normalize2 = isForced.normalize = function(string) { + var normalize = isForced.normalize = function(string) { return String(string).replace(replacement, ".").toLowerCase(); }; var data = isForced.data = {}; @@ -6437,8 +9926,8 @@ var require_feather = __commonJS({ var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); var max = Math.max; var min = Math.min; - module3.exports = function(index, length) { - var integer = toInteger(index); + module3.exports = function(index2, length) { + var integer = toInteger(index2); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; }, @@ -6540,11 +10029,11 @@ var require_feather = __commonJS({ }, function next() { var state = getInternalState(this); var string = state.string; - var index = state.index; + var index2 = state.index; var point; - if (index >= string.length) + if (index2 >= string.length) return { value: void 0, done: true }; - point = codePointAt(string, index, true); + point = codePointAt(string, index2, true); state.index += point.length; return { value: point, done: false }; }); @@ -6607,8 +10096,8 @@ var require_feather = __commonJS({ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function _classCallCheck(instance5, Constructor) { - if (!(instance5 instanceof Constructor)) { + function _classCallCheck(instance6, Constructor) { + if (!(instance6 instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -6767,10 +10256,11 @@ var require_feather = __commonJS({ __export(exports, { default: () => ObsidianGit }); -var import_obsidian15 = __toModule(require("obsidian")); -var path2 = __toModule(require("path")); +init_polyfill_buffer(); +var import_obsidian21 = __toModule(require("obsidian")); // src/promiseQueue.ts +init_polyfill_buffer(); var PromiseQueue = class { constructor() { this.tasks = []; @@ -6794,214 +10284,9737 @@ var PromiseQueue = class { }; // src/settings.ts -var import_obsidian = __toModule(require("obsidian")); -var ObsidianGitSettingsTab = class extends import_obsidian.PluginSettingTab { - display() { - let { containerEl } = this; - const plugin = this.plugin; - containerEl.empty(); - containerEl.createEl("h2", { text: "Git Backup settings" }); - containerEl.createEl("br"); - containerEl.createEl("h3", { text: "Automatic" }); - const commitOrBackup = plugin.settings.differentIntervalCommitAndPush ? "commit" : "backup"; - new import_obsidian.Setting(containerEl).setName("Split automatic commit and push").setDesc("Enable to use separate timer for commit and push").addToggle((toggle) => toggle.setValue(plugin.settings.differentIntervalCommitAndPush).onChange((value) => { - plugin.settings.differentIntervalCommitAndPush = value; - plugin.saveSettings(); - plugin.clearAutoBackup(); - plugin.clearAutoPush(); - if (plugin.settings.autoSaveInterval > 0) { - plugin.startAutoBackup(plugin.settings.autoSaveInterval); +init_polyfill_buffer(); +var import_obsidian5 = __toModule(require("obsidian")); + +// src/isomorphicGit.ts +init_polyfill_buffer(); + +// node_modules/isomorphic-git/index.js +init_polyfill_buffer(); +var import_async_lock = __toModule(require_async_lock()); +var import_sha1 = __toModule(require_sha1()); +var import_crc_32 = __toModule(require_crc32()); +var import_pako = __toModule(require_pako()); +var import_ignore = __toModule(require_ignore()); +var import_pify = __toModule(require_pify()); +var import_clean_git_ref = __toModule(require_lib2()); +var import_diff3 = __toModule(require_diff3()); +var BaseError = class extends Error { + constructor(message) { + super(message); + this.caller = ""; + } + toJSON() { + return { + code: this.code, + data: this.data, + caller: this.caller, + message: this.message, + stack: this.stack + }; + } + fromJSON(json) { + const e = new BaseError(json.message); + e.code = json.code; + e.data = json.data; + e.caller = json.caller; + e.stack = json.stack; + return e; + } + get isIsomorphicGitError() { + return true; + } +}; +var InternalError = class extends BaseError { + constructor(message) { + super(`An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${message}`); + this.code = this.name = InternalError.code; + this.data = { message }; + } +}; +InternalError.code = "InternalError"; +var UnsafeFilepathError = class extends BaseError { + constructor(filepath) { + super(`The filepath "${filepath}" contains unsafe character sequences`); + this.code = this.name = UnsafeFilepathError.code; + this.data = { filepath }; + } +}; +UnsafeFilepathError.code = "UnsafeFilepathError"; +var BufferCursor = class { + constructor(buffer2) { + this.buffer = buffer2; + this._start = 0; + } + eof() { + return this._start >= this.buffer.length; + } + tell() { + return this._start; + } + seek(n) { + this._start = n; + } + slice(n) { + const r = this.buffer.slice(this._start, this._start + n); + this._start += n; + return r; + } + toString(enc, length) { + const r = this.buffer.toString(enc, this._start, this._start + length); + this._start += length; + return r; + } + write(value, length, enc) { + const r = this.buffer.write(value, this._start, length, enc); + this._start += length; + return r; + } + copy(source, start, end) { + const r = source.copy(this.buffer, this._start, start, end); + this._start += r; + return r; + } + readUInt8() { + const r = this.buffer.readUInt8(this._start); + this._start += 1; + return r; + } + writeUInt8(value) { + const r = this.buffer.writeUInt8(value, this._start); + this._start += 1; + return r; + } + readUInt16BE() { + const r = this.buffer.readUInt16BE(this._start); + this._start += 2; + return r; + } + writeUInt16BE(value) { + const r = this.buffer.writeUInt16BE(value, this._start); + this._start += 2; + return r; + } + readUInt32BE() { + const r = this.buffer.readUInt32BE(this._start); + this._start += 4; + return r; + } + writeUInt32BE(value) { + const r = this.buffer.writeUInt32BE(value, this._start); + this._start += 4; + return r; + } +}; +function compareStrings(a, b) { + return -(a < b) || +(a > b); +} +function comparePath(a, b) { + return compareStrings(a.path, b.path); +} +function normalizeMode(mode) { + let type = mode > 0 ? mode >> 12 : 0; + if (type !== 4 && type !== 8 && type !== 10 && type !== 14) { + type = 8; + } + let permissions = mode & 511; + if (permissions & 73) { + permissions = 493; + } else { + permissions = 420; + } + if (type !== 8) + permissions = 0; + return (type << 12) + permissions; +} +var MAX_UINT32 = 2 ** 32; +function SecondsNanoseconds(givenSeconds, givenNanoseconds, milliseconds, date) { + if (givenSeconds !== void 0 && givenNanoseconds !== void 0) { + return [givenSeconds, givenNanoseconds]; + } + if (milliseconds === void 0) { + milliseconds = date.valueOf(); + } + const seconds = Math.floor(milliseconds / 1e3); + const nanoseconds = (milliseconds - seconds * 1e3) * 1e6; + return [seconds, nanoseconds]; +} +function normalizeStats(e) { + const [ctimeSeconds, ctimeNanoseconds] = SecondsNanoseconds(e.ctimeSeconds, e.ctimeNanoseconds, e.ctimeMs, e.ctime); + const [mtimeSeconds, mtimeNanoseconds] = SecondsNanoseconds(e.mtimeSeconds, e.mtimeNanoseconds, e.mtimeMs, e.mtime); + return { + ctimeSeconds: ctimeSeconds % MAX_UINT32, + ctimeNanoseconds: ctimeNanoseconds % MAX_UINT32, + mtimeSeconds: mtimeSeconds % MAX_UINT32, + mtimeNanoseconds: mtimeNanoseconds % MAX_UINT32, + dev: e.dev % MAX_UINT32, + ino: e.ino % MAX_UINT32, + mode: normalizeMode(e.mode % MAX_UINT32), + uid: e.uid % MAX_UINT32, + gid: e.gid % MAX_UINT32, + size: e.size > -1 ? e.size % MAX_UINT32 : 0 + }; +} +function toHex(buffer2) { + let hex = ""; + for (const byte of new Uint8Array(buffer2)) { + if (byte < 16) + hex += "0"; + hex += byte.toString(16); + } + return hex; +} +var supportsSubtleSHA1 = null; +function shasum(buffer2) { + return __async(this, null, function* () { + if (supportsSubtleSHA1 === null) { + supportsSubtleSHA1 = yield testSubtleSHA1(); + } + return supportsSubtleSHA1 ? subtleSHA1(buffer2) : shasumSync(buffer2); + }); +} +function shasumSync(buffer2) { + return new import_sha1.default().update(buffer2).digest("hex"); +} +function subtleSHA1(buffer2) { + return __async(this, null, function* () { + const hash2 = yield crypto.subtle.digest("SHA-1", buffer2); + return toHex(hash2); + }); +} +function testSubtleSHA1() { + return __async(this, null, function* () { + try { + const hash2 = yield subtleSHA1(new Uint8Array([])); + if (hash2 === "da39a3ee5e6b4b0d3255bfef95601890afd80709") + return true; + } catch (_) { + } + return false; + }); +} +function parseCacheEntryFlags(bits) { + return { + assumeValid: Boolean(bits & 32768), + extended: Boolean(bits & 16384), + stage: (bits & 12288) >> 12, + nameLength: bits & 4095 + }; +} +function renderCacheEntryFlags(entry) { + const flags = entry.flags; + flags.extended = false; + flags.nameLength = Math.min(Buffer2.from(entry.path).length, 4095); + return (flags.assumeValid ? 32768 : 0) + (flags.extended ? 16384 : 0) + ((flags.stage & 3) << 12) + (flags.nameLength & 4095); +} +var GitIndex = class { + constructor(entries) { + this._dirty = false; + this._entries = entries || new Map(); + } + static from(buffer2) { + return __async(this, null, function* () { + if (Buffer2.isBuffer(buffer2)) { + return GitIndex.fromBuffer(buffer2); + } else if (buffer2 === null) { + return new GitIndex(null); + } else { + throw new InternalError("invalid type passed to GitIndex.from"); } - if (value && plugin.settings.autoPushInterval > 0) { - plugin.startAutoPush(plugin.settings.autoPushInterval); + }); + } + static fromBuffer(buffer2) { + return __async(this, null, function* () { + const shaComputed = yield shasum(buffer2.slice(0, -20)); + const shaClaimed = buffer2.slice(-20).toString("hex"); + if (shaClaimed !== shaComputed) { + throw new InternalError(`Invalid checksum in GitIndex buffer: expected ${shaClaimed} but saw ${shaComputed}`); } - this.display(); - })); - new import_obsidian.Setting(containerEl).setName(`Vault ${commitOrBackup} interval (minutes)`).setDesc(`${plugin.settings.differentIntervalCommitAndPush ? "Commit" : "Commit and push"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText((text2) => text2.setValue(String(plugin.settings.autoSaveInterval)).onChange((value) => { - if (!isNaN(Number(value))) { - plugin.settings.autoSaveInterval = Number(value); - plugin.saveSettings(); - if (plugin.settings.autoSaveInterval > 0) { - plugin.clearAutoBackup(); - plugin.startAutoBackup(plugin.settings.autoSaveInterval); - new import_obsidian.Notice(`Automatic ${commitOrBackup} enabled! Every ${plugin.settings.autoSaveInterval} minutes.`); - } else if (plugin.settings.autoSaveInterval <= 0) { - plugin.clearAutoBackup() && new import_obsidian.Notice(`Automatic ${commitOrBackup} disabled!`); + const reader = new BufferCursor(buffer2); + const _entries = new Map(); + const magic = reader.toString("utf8", 4); + if (magic !== "DIRC") { + throw new InternalError(`Inavlid dircache magic file number: ${magic}`); + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError(`Unsupported dircache version: ${version2}`); + } + const numEntries = reader.readUInt32BE(); + let i = 0; + while (!reader.eof() && i < numEntries) { + const entry = {}; + entry.ctimeSeconds = reader.readUInt32BE(); + entry.ctimeNanoseconds = reader.readUInt32BE(); + entry.mtimeSeconds = reader.readUInt32BE(); + entry.mtimeNanoseconds = reader.readUInt32BE(); + entry.dev = reader.readUInt32BE(); + entry.ino = reader.readUInt32BE(); + entry.mode = reader.readUInt32BE(); + entry.uid = reader.readUInt32BE(); + entry.gid = reader.readUInt32BE(); + entry.size = reader.readUInt32BE(); + entry.oid = reader.slice(20).toString("hex"); + const flags = reader.readUInt16BE(); + entry.flags = parseCacheEntryFlags(flags); + const pathlength = buffer2.indexOf(0, reader.tell() + 1) - reader.tell(); + if (pathlength < 1) { + throw new InternalError(`Got a path length of: ${pathlength}`); + } + entry.path = reader.toString("utf8", pathlength); + if (entry.path.includes("..\\") || entry.path.includes("../")) { + throw new UnsafeFilepathError(entry.path); + } + let padding = 8 - (reader.tell() - 12) % 8; + if (padding === 0) + padding = 8; + while (padding--) { + const tmp = reader.readUInt8(); + if (tmp !== 0) { + throw new InternalError(`Expected 1-8 null characters but got '${tmp}' after ${entry.path}`); + } else if (reader.eof()) { + throw new InternalError("Unexpected end of file"); + } + } + _entries.set(entry.path, entry); + i++; + } + return new GitIndex(_entries); + }); + } + get entries() { + return [...this._entries.values()].sort(comparePath); + } + get entriesMap() { + return this._entries; + } + *[Symbol.iterator]() { + for (const entry of this.entries) { + yield entry; + } + } + insert({ filepath, stats, oid }) { + stats = normalizeStats(stats); + const bfilepath = Buffer2.from(filepath); + const entry = { + ctimeSeconds: stats.ctimeSeconds, + ctimeNanoseconds: stats.ctimeNanoseconds, + mtimeSeconds: stats.mtimeSeconds, + mtimeNanoseconds: stats.mtimeNanoseconds, + dev: stats.dev, + ino: stats.ino, + mode: stats.mode || 33188, + uid: stats.uid, + gid: stats.gid, + size: stats.size, + path: filepath, + oid, + flags: { + assumeValid: false, + extended: false, + stage: 0, + nameLength: bfilepath.length < 4095 ? bfilepath.length : 4095 + } + }; + this._entries.set(entry.path, entry); + this._dirty = true; + } + delete({ filepath }) { + if (this._entries.has(filepath)) { + this._entries.delete(filepath); + } else { + for (const key2 of this._entries.keys()) { + if (key2.startsWith(filepath + "/")) { + this._entries.delete(key2); + } + } + } + this._dirty = true; + } + clear() { + this._entries.clear(); + this._dirty = true; + } + has({ filepath }) { + return this._entries.has(filepath); + } + render() { + return this.entries.map((entry) => `${entry.mode.toString(8)} ${entry.oid} ${entry.path}`).join("\n"); + } + toObject() { + return __async(this, null, function* () { + const header = Buffer2.alloc(12); + const writer = new BufferCursor(header); + writer.write("DIRC", 4, "utf8"); + writer.writeUInt32BE(2); + writer.writeUInt32BE(this.entries.length); + const body = Buffer2.concat(this.entries.map((entry) => { + const bpath = Buffer2.from(entry.path); + const length = Math.ceil((62 + bpath.length + 1) / 8) * 8; + const written = Buffer2.alloc(length); + const writer2 = new BufferCursor(written); + const stat = normalizeStats(entry); + writer2.writeUInt32BE(stat.ctimeSeconds); + writer2.writeUInt32BE(stat.ctimeNanoseconds); + writer2.writeUInt32BE(stat.mtimeSeconds); + writer2.writeUInt32BE(stat.mtimeNanoseconds); + writer2.writeUInt32BE(stat.dev); + writer2.writeUInt32BE(stat.ino); + writer2.writeUInt32BE(stat.mode); + writer2.writeUInt32BE(stat.uid); + writer2.writeUInt32BE(stat.gid); + writer2.writeUInt32BE(stat.size); + writer2.write(entry.oid, 20, "hex"); + writer2.writeUInt16BE(renderCacheEntryFlags(entry)); + writer2.write(entry.path, bpath.length, "utf8"); + return written; + })); + const main = Buffer2.concat([header, body]); + const sum = yield shasum(main); + return Buffer2.concat([main, Buffer2.from(sum, "hex")]); + }); + } +}; +function compareStats(entry, stats) { + const e = normalizeStats(entry); + const s = normalizeStats(stats); + const staleness = e.mode !== s.mode || e.mtimeSeconds !== s.mtimeSeconds || e.ctimeSeconds !== s.ctimeSeconds || e.uid !== s.uid || e.gid !== s.gid || e.ino !== s.ino || e.size !== s.size; + return staleness; +} +var lock = null; +var IndexCache = Symbol("IndexCache"); +function createCache() { + return { + map: new Map(), + stats: new Map() + }; +} +function updateCachedIndexFile(fs, filepath, cache) { + return __async(this, null, function* () { + const stat = yield fs.lstat(filepath); + const rawIndexFile = yield fs.read(filepath); + const index2 = yield GitIndex.from(rawIndexFile); + cache.map.set(filepath, index2); + cache.stats.set(filepath, stat); + }); +} +function isIndexStale(fs, filepath, cache) { + return __async(this, null, function* () { + const savedStats = cache.stats.get(filepath); + if (savedStats === void 0) + return true; + const currStats = yield fs.lstat(filepath); + if (savedStats === null) + return false; + if (currStats === null) + return false; + return compareStats(savedStats, currStats); + }); +} +var GitIndexManager = class { + static acquire(_0, _1) { + return __async(this, arguments, function* ({ fs, gitdir, cache }, closure) { + if (!cache[IndexCache]) + cache[IndexCache] = createCache(); + const filepath = `${gitdir}/index`; + if (lock === null) + lock = new import_async_lock.default({ maxPending: Infinity }); + let result; + yield lock.acquire(filepath, () => __async(this, null, function* () { + if (yield isIndexStale(fs, filepath, cache[IndexCache])) { + yield updateCachedIndexFile(fs, filepath, cache[IndexCache]); + } + const index2 = cache[IndexCache].map.get(filepath); + result = yield closure(index2); + if (index2._dirty) { + const buffer2 = yield index2.toObject(); + yield fs.write(filepath, buffer2); + cache[IndexCache].stats.set(filepath, yield fs.lstat(filepath)); + index2._dirty = false; + } + })); + return result; + }); + } +}; +function basename(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 > -1) { + path2 = path2.slice(last2 + 1); + } + return path2; +} +function dirname(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 === -1) + return "."; + if (last2 === 0) + return "/"; + return path2.slice(0, last2); +} +function flatFileListToDirectoryStructure(files) { + const inodes = new Map(); + const mkdir = function(name) { + if (!inodes.has(name)) { + const dir = { + type: "tree", + fullpath: name, + basename: basename(name), + metadata: {}, + children: [] + }; + inodes.set(name, dir); + dir.parent = mkdir(dirname(name)); + if (dir.parent && dir.parent !== dir) + dir.parent.children.push(dir); + } + return inodes.get(name); + }; + const mkfile = function(name, metadata) { + if (!inodes.has(name)) { + const file = { + type: "blob", + fullpath: name, + basename: basename(name), + metadata, + parent: mkdir(dirname(name)), + children: [] + }; + if (file.parent) + file.parent.children.push(file); + inodes.set(name, file); + } + return inodes.get(name); + }; + mkdir("."); + for (const file of files) { + mkfile(file.path, file); + } + return inodes; +} +function mode2type(mode) { + switch (mode) { + case 16384: + return "tree"; + case 33188: + return "blob"; + case 33261: + return "blob"; + case 40960: + return "blob"; + case 57344: + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode.toString(8)}`); +} +var GitWalkerIndex = class { + constructor({ fs, gitdir, cache }) { + this.treePromise = GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + return flatFileListToDirectoryStructure(index2.entries); + }); + }); + const walker = this; + this.ConstructEntry = class StageEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._oid = false; + } + type() { + return __async(this, null, function* () { + return walker.type(this); + }); + } + mode() { + return __async(this, null, function* () { + return walker.mode(this); + }); + } + stat() { + return __async(this, null, function* () { + return walker.stat(this); + }); + } + content() { + return __async(this, null, function* () { + return walker.content(this); + }); + } + oid() { + return __async(this, null, function* () { + return walker.oid(this); + }); + } + }; + } + readdir(entry) { + return __async(this, null, function* () { + const filepath = entry._fullpath; + const tree = yield this.treePromise; + const inode = tree.get(filepath); + if (!inode) + return null; + if (inode.type === "blob") + return null; + if (inode.type !== "tree") { + throw new Error(`ENOTDIR: not a directory, scandir '${filepath}'`); + } + const names = inode.children.map((inode2) => inode2.fullpath); + names.sort(compareStrings); + return names; + }); + } + type(entry) { + return __async(this, null, function* () { + if (entry._type === false) { + yield entry.stat(); + } + return entry._type; + }); + } + mode(entry) { + return __async(this, null, function* () { + if (entry._mode === false) { + yield entry.stat(); + } + return entry._mode; + }); + } + stat(entry) { + return __async(this, null, function* () { + if (entry._stat === false) { + const tree = yield this.treePromise; + const inode = tree.get(entry._fullpath); + if (!inode) { + throw new Error(`ENOENT: no such file or directory, lstat '${entry._fullpath}'`); + } + const stats = inode.type === "tree" ? {} : normalizeStats(inode.metadata); + entry._type = inode.type === "tree" ? "tree" : mode2type(stats.mode); + entry._mode = stats.mode; + if (inode.type === "tree") { + entry._stat = void 0; + } else { + entry._stat = stats; + } + } + return entry._stat; + }); + } + content(_entry) { + return __async(this, null, function* () { + }); + } + oid(entry) { + return __async(this, null, function* () { + if (entry._oid === false) { + const tree = yield this.treePromise; + const inode = tree.get(entry._fullpath); + entry._oid = inode.metadata.oid; + } + return entry._oid; + }); + } +}; +var GitWalkSymbol = Symbol("GitWalkSymbol"); +function STAGE() { + const o = Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerIndex({ fs, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +var NotFoundError = class extends BaseError { + constructor(what) { + super(`Could not find ${what}.`); + this.code = this.name = NotFoundError.code; + this.data = { what }; + } +}; +NotFoundError.code = "NotFoundError"; +var ObjectTypeError = class extends BaseError { + constructor(oid, actual, expected, filepath) { + super(`Object ${oid} ${filepath ? `at ${filepath}` : ""}was anticipated to be a ${expected} but it is a ${actual}.`); + this.code = this.name = ObjectTypeError.code; + this.data = { oid, actual, expected, filepath }; + } +}; +ObjectTypeError.code = "ObjectTypeError"; +var InvalidOidError = class extends BaseError { + constructor(value) { + super(`Expected a 40-char hex object id but saw "${value}".`); + this.code = this.name = InvalidOidError.code; + this.data = { value }; + } +}; +InvalidOidError.code = "InvalidOidError"; +var NoRefspecError = class extends BaseError { + constructor(remote) { + super(`Could not find a fetch refspec for remote "${remote}". Make sure the config file has an entry like the following: +[remote "${remote}"] + fetch = +refs/heads/*:refs/remotes/origin/* +`); + this.code = this.name = NoRefspecError.code; + this.data = { remote }; + } +}; +NoRefspecError.code = "NoRefspecError"; +var GitPackedRefs = class { + constructor(text2) { + this.refs = new Map(); + this.parsedConfig = []; + if (text2) { + let key2 = null; + this.parsedConfig = text2.trim().split("\n").map((line) => { + if (/^\s*#/.test(line)) { + return { line, comment: true }; + } + const i = line.indexOf(" "); + if (line.startsWith("^")) { + const value = line.slice(1); + this.refs.set(key2 + "^{}", value); + return { line, ref: key2, peeled: value }; + } else { + const value = line.slice(0, i); + key2 = line.slice(i + 1); + this.refs.set(key2, value); + return { line, ref: key2, oid: value }; + } + }); + } + return this; + } + static from(text2) { + return new GitPackedRefs(text2); + } + delete(ref) { + this.parsedConfig = this.parsedConfig.filter((entry) => entry.ref !== ref); + this.refs.delete(ref); + } + toString() { + return this.parsedConfig.map(({ line }) => line).join("\n") + "\n"; + } +}; +var GitRefSpec = class { + constructor({ remotePath, localPath, force, matchPrefix }) { + Object.assign(this, { + remotePath, + localPath, + force, + matchPrefix + }); + } + static from(refspec) { + const [ + forceMatch, + remotePath, + remoteGlobMatch, + localPath, + localGlobMatch + ] = refspec.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1); + const force = forceMatch === "+"; + const remoteIsGlob = remoteGlobMatch === "*"; + const localIsGlob = localGlobMatch === "*"; + if (remoteIsGlob !== localIsGlob) { + throw new InternalError("Invalid refspec"); + } + return new GitRefSpec({ + remotePath, + localPath, + force, + matchPrefix: remoteIsGlob + }); + } + translate(remoteBranch) { + if (this.matchPrefix) { + if (remoteBranch.startsWith(this.remotePath)) { + return this.localPath + remoteBranch.replace(this.remotePath, ""); + } + } else { + if (remoteBranch === this.remotePath) + return this.localPath; + } + return null; + } + reverseTranslate(localBranch) { + if (this.matchPrefix) { + if (localBranch.startsWith(this.localPath)) { + return this.remotePath + localBranch.replace(this.localPath, ""); + } + } else { + if (localBranch === this.localPath) + return this.remotePath; + } + return null; + } +}; +var GitRefSpecSet = class { + constructor(rules = []) { + this.rules = rules; + } + static from(refspecs) { + const rules = []; + for (const refspec of refspecs) { + rules.push(GitRefSpec.from(refspec)); + } + return new GitRefSpecSet(rules); + } + add(refspec) { + const rule = GitRefSpec.from(refspec); + this.rules.push(rule); + } + translate(remoteRefs) { + const result = []; + for (const rule of this.rules) { + for (const remoteRef of remoteRefs) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result.push([remoteRef, localRef]); + } + } + } + return result; + } + translateOne(remoteRef) { + let result = null; + for (const rule of this.rules) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result = localRef; + } + } + return result; + } + localNamespaces() { + return this.rules.filter((rule) => rule.matchPrefix).map((rule) => rule.localPath.replace(/\/$/, "")); + } +}; +function compareRefNames(a, b) { + const _a2 = a.replace(/\^\{\}$/, ""); + const _b = b.replace(/\^\{\}$/, ""); + const tmp = -(_a2 < _b) || +(_a2 > _b); + if (tmp === 0) { + return a.endsWith("^{}") ? 1 : -1; + } + return tmp; +} +function normalizePath(path2) { + return path2.replace(/\/\.\//g, "/").replace(/\/{2,}/g, "/").replace(/^\/\.$/, "/").replace(/^\.\/$/, ".").replace(/^\.\//, "").replace(/\/\.$/, "").replace(/(.+)\/$/, "$1").replace(/^$/, "."); +} +function join(...parts) { + return normalizePath(parts.map(normalizePath).join("/")); +} +var num = (val) => { + val = val.toLowerCase(); + let n = parseInt(val); + if (val.endsWith("k")) + n *= 1024; + if (val.endsWith("m")) + n *= 1024 * 1024; + if (val.endsWith("g")) + n *= 1024 * 1024 * 1024; + return n; +}; +var bool = (val) => { + val = val.trim().toLowerCase(); + if (val === "true" || val === "yes" || val === "on") + return true; + if (val === "false" || val === "no" || val === "off") + return false; + throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${val}`); +}; +var schema = { + core: { + filemode: bool, + bare: bool, + logallrefupdates: bool, + symlinks: bool, + ignorecase: bool, + bigFileThreshold: num + } +}; +var SECTION_LINE_REGEX = /^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/; +var SECTION_REGEX = /^[A-Za-z0-9-.]+$/; +var VARIABLE_LINE_REGEX = /^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/; +var VARIABLE_NAME_REGEX = /^[A-Za-z][A-Za-z-]*$/; +var VARIABLE_VALUE_COMMENT_REGEX = /^(.*?)( *[#;].*)$/; +var extractSectionLine = (line) => { + const matches = SECTION_LINE_REGEX.exec(line); + if (matches != null) { + const [section, subsection] = matches.slice(1); + return [section, subsection]; + } + return null; +}; +var extractVariableLine = (line) => { + const matches = VARIABLE_LINE_REGEX.exec(line); + if (matches != null) { + const [name, rawValue = "true"] = matches.slice(1); + const valueWithoutComments = removeComments(rawValue); + const valueWithoutQuotes = removeQuotes(valueWithoutComments); + return [name, valueWithoutQuotes]; + } + return null; +}; +var removeComments = (rawValue) => { + const commentMatches = VARIABLE_VALUE_COMMENT_REGEX.exec(rawValue); + if (commentMatches == null) { + return rawValue; + } + const [valueWithoutComment, comment] = commentMatches.slice(1); + if (hasOddNumberOfQuotes(valueWithoutComment) && hasOddNumberOfQuotes(comment)) { + return `${valueWithoutComment}${comment}`; + } + return valueWithoutComment; +}; +var hasOddNumberOfQuotes = (text2) => { + const numberOfQuotes = (text2.match(/(?:^|[^\\])"/g) || []).length; + return numberOfQuotes % 2 !== 0; +}; +var removeQuotes = (text2) => { + return text2.split("").reduce((newText, c, idx, text3) => { + const isQuote = c === '"' && text3[idx - 1] !== "\\"; + const isEscapeForQuote = c === "\\" && text3[idx + 1] === '"'; + if (isQuote || isEscapeForQuote) { + return newText; + } + return newText + c; + }, ""); +}; +var lower = (text2) => { + return text2 != null ? text2.toLowerCase() : null; +}; +var getPath = (section, subsection, name) => { + return [lower(section), subsection, lower(name)].filter((a) => a != null).join("."); +}; +var normalizePath$1 = (path2) => { + const pathSegments = path2.split("."); + const section = pathSegments.shift(); + const name = pathSegments.pop(); + const subsection = pathSegments.length ? pathSegments.join(".") : void 0; + return { + section, + subsection, + name, + path: getPath(section, subsection, name), + sectionPath: getPath(section, subsection, null) + }; +}; +var findLastIndex = (array, callback) => { + return array.reduce((lastIndex, item, index2) => { + return callback(item) ? index2 : lastIndex; + }, -1); +}; +var GitConfig = class { + constructor(text2) { + let section = null; + let subsection = null; + this.parsedConfig = text2.split("\n").map((line) => { + let name = null; + let value = null; + const trimmedLine = line.trim(); + const extractedSection = extractSectionLine(trimmedLine); + const isSection = extractedSection != null; + if (isSection) { + ; + [section, subsection] = extractedSection; + } else { + const extractedVariable = extractVariableLine(trimmedLine); + const isVariable = extractedVariable != null; + if (isVariable) { + ; + [name, value] = extractedVariable; + } + } + const path2 = getPath(section, subsection, name); + return { line, isSection, section, subsection, name, value, path: path2 }; + }); + } + static from(text2) { + return new GitConfig(text2); + } + get(path2, getall = false) { + return __async(this, null, function* () { + const normalizedPath = normalizePath$1(path2).path; + const allValues = this.parsedConfig.filter((config) => config.path === normalizedPath).map(({ section, name, value }) => { + const fn = schema[section] && schema[section][name]; + return fn ? fn(value) : value; + }); + return getall ? allValues : allValues.pop(); + }); + } + getall(path2) { + return __async(this, null, function* () { + return this.get(path2, true); + }); + } + getSubsections(section) { + return __async(this, null, function* () { + return this.parsedConfig.filter((config) => config.section === section && config.isSection).map((config) => config.subsection); + }); + } + deleteSection(section, subsection) { + return __async(this, null, function* () { + this.parsedConfig = this.parsedConfig.filter((config) => !(config.section === section && config.subsection === subsection)); + }); + } + append(path2, value) { + return __async(this, null, function* () { + return this.set(path2, value, true); + }); + } + set(path2, value, append3 = false) { + return __async(this, null, function* () { + const { + section, + subsection, + name, + path: normalizedPath, + sectionPath + } = normalizePath$1(path2); + const configIndex = findLastIndex(this.parsedConfig, (config) => config.path === normalizedPath); + if (value == null) { + if (configIndex !== -1) { + this.parsedConfig.splice(configIndex, 1); } } else { - new import_obsidian.Notice("Please specify a valid number."); - } - })); - new import_obsidian.Setting(containerEl).setName(`If turned on, do auto ${commitOrBackup} every X minutes after last change. Prevents auto ${commitOrBackup} while editing a file. If turned off, do auto ${commitOrBackup} every X minutes. It's independent from last change.`).addToggle((toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { - plugin.settings.autoBackupAfterFileChange = value; - plugin.saveSettings(); - plugin.clearAutoBackup(); - if (plugin.settings.autoSaveInterval > 0) { - plugin.startAutoBackup(plugin.settings.autoSaveInterval); - } - })); - if (plugin.settings.differentIntervalCommitAndPush) { - new import_obsidian.Setting(containerEl).setName(`Vault push interval (minutes)`).setDesc("Push changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPushInterval)).onChange((value) => { - if (!isNaN(Number(value))) { - plugin.settings.autoPushInterval = Number(value); - plugin.saveSettings(); - if (plugin.settings.autoPushInterval > 0) { - plugin.clearAutoPush(); - plugin.startAutoPush(plugin.settings.autoPushInterval); - new import_obsidian.Notice(`Automatic push enabled! Every ${plugin.settings.autoPushInterval} minutes.`); - } else if (plugin.settings.autoPushInterval <= 0) { - plugin.clearAutoPush() && new import_obsidian.Notice("Automatic push disabled!"); + if (configIndex !== -1) { + const config = this.parsedConfig[configIndex]; + const modifiedConfig = Object.assign({}, config, { + name, + value, + modified: true + }); + if (append3) { + this.parsedConfig.splice(configIndex + 1, 0, modifiedConfig); + } else { + this.parsedConfig[configIndex] = modifiedConfig; } } else { - new import_obsidian.Notice("Please specify a valid number."); + const sectionIndex = this.parsedConfig.findIndex((config) => config.path === sectionPath); + const newConfig = { + section, + subsection, + name, + value, + modified: true, + path: normalizedPath + }; + if (SECTION_REGEX.test(section) && VARIABLE_NAME_REGEX.test(name)) { + if (sectionIndex >= 0) { + this.parsedConfig.splice(sectionIndex + 1, 0, newConfig); + } else { + const newSection = { + section, + subsection, + modified: true, + path: sectionPath + }; + this.parsedConfig.push(newSection, newConfig); + } + } } - })); + } + }); + } + toString() { + return this.parsedConfig.map(({ line, section, subsection, name, value, modified: modified2 = false }) => { + if (!modified2) { + return line; + } + if (name != null && value != null) { + if (typeof value === "string" && /[#;]/.test(value)) { + return ` ${name} = "${value}"`; + } + return ` ${name} = ${value}`; + } + if (subsection != null) { + return `[${section} "${subsection}"]`; + } + return `[${section}]`; + }).join("\n"); + } +}; +var GitConfigManager = class { + static get(_0) { + return __async(this, arguments, function* ({ fs, gitdir }) { + const text2 = yield fs.read(`${gitdir}/config`, { encoding: "utf8" }); + return GitConfig.from(text2); + }); + } + static save(_0) { + return __async(this, arguments, function* ({ fs, gitdir, config }) { + yield fs.write(`${gitdir}/config`, config.toString(), { + encoding: "utf8" + }); + }); + } +}; +var refpaths = (ref) => [ + `${ref}`, + `refs/${ref}`, + `refs/tags/${ref}`, + `refs/heads/${ref}`, + `refs/remotes/${ref}`, + `refs/remotes/${ref}/HEAD` +]; +var GIT_FILES = ["config", "description", "index", "shallow", "commondir"]; +var GitRefManager = class { + static updateRemoteRefs(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + refspecs = void 0, + prune = false, + pruneTags = false + }) { + for (const value of refs.values()) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + } + const config = yield GitConfigManager.get({ fs, gitdir }); + if (!refspecs) { + refspecs = yield config.getall(`remote.${remote}.fetch`); + if (refspecs.length === 0) { + throw new NoRefspecError(remote); + } + refspecs.unshift(`+HEAD:refs/remotes/${remote}/HEAD`); + } + const refspec = GitRefSpecSet.from(refspecs); + const actualRefsToWrite = new Map(); + if (pruneTags) { + const tags2 = yield GitRefManager.listRefs({ + fs, + gitdir, + filepath: "refs/tags" + }); + yield GitRefManager.deleteRefs({ + fs, + gitdir, + refs: tags2.map((tag2) => `refs/tags/${tag2}`) + }); + } + if (tags) { + for (const serverRef of refs.keys()) { + if (serverRef.startsWith("refs/tags") && !serverRef.endsWith("^{}")) { + if (!(yield GitRefManager.exists({ fs, gitdir, ref: serverRef }))) { + const oid = refs.get(serverRef); + actualRefsToWrite.set(serverRef, oid); + } + } + } + } + const refTranslations = refspec.translate([...refs.keys()]); + for (const [serverRef, translatedRef] of refTranslations) { + const value = refs.get(serverRef); + actualRefsToWrite.set(translatedRef, value); + } + const symrefTranslations = refspec.translate([...symrefs.keys()]); + for (const [serverRef, translatedRef] of symrefTranslations) { + const value = symrefs.get(serverRef); + const symtarget = refspec.translateOne(value); + if (symtarget) { + actualRefsToWrite.set(translatedRef, `ref: ${symtarget}`); + } + } + const pruned = []; + if (prune) { + for (const filepath of refspec.localNamespaces()) { + const refs2 = (yield GitRefManager.listRefs({ + fs, + gitdir, + filepath + })).map((file) => `${filepath}/${file}`); + for (const ref of refs2) { + if (!actualRefsToWrite.has(ref)) { + pruned.push(ref); + } + } + } + if (pruned.length > 0) { + yield GitRefManager.deleteRefs({ fs, gitdir, refs: pruned }); + } + } + for (const [key2, value] of actualRefsToWrite) { + yield fs.write(join(gitdir, key2), `${value.trim()} +`, "utf8"); + } + return { pruned }; + }); + } + static writeRef(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref, value }) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + yield fs.write(join(gitdir, ref), `${value.trim()} +`, "utf8"); + }); + } + static writeSymbolicRef(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref, value }) { + yield fs.write(join(gitdir, ref), `ref: ${value.trim()} +`, "utf8"); + }); + } + static deleteRef(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref }) { + return GitRefManager.deleteRefs({ fs, gitdir, refs: [ref] }); + }); + } + static deleteRefs(_0) { + return __async(this, arguments, function* ({ fs, gitdir, refs }) { + yield Promise.all(refs.map((ref) => fs.rm(join(gitdir, ref)))); + let text2 = yield fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }); + const packed = GitPackedRefs.from(text2); + const beforeSize = packed.refs.size; + for (const ref of refs) { + if (packed.refs.has(ref)) { + packed.delete(ref); + } + } + if (packed.refs.size < beforeSize) { + text2 = packed.toString(); + yield fs.write(`${gitdir}/packed-refs`, text2, { encoding: "utf8" }); + } + }); + } + static resolve(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref, depth = void 0 }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return ref; + } + } + let sha; + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return GitRefManager.resolve({ fs, gitdir, ref, depth }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = yield GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref).filter((p) => !GIT_FILES.includes(p)); + for (const ref2 of allpaths) { + sha = (yield fs.read(`${gitdir}/${ref2}`, { encoding: "utf8" })) || packedMap.get(ref2); + if (sha) { + return GitRefManager.resolve({ fs, gitdir, ref: sha.trim(), depth }); + } + } + throw new NotFoundError(ref); + }); + } + static exists(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref }) { + try { + yield GitRefManager.expand({ fs, gitdir, ref }); + return true; + } catch (err) { + return false; + } + }); + } + static expand(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref }) { + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = yield GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (yield fs.exists(`${gitdir}/${ref2}`)) + return ref2; + if (packedMap.has(ref2)) + return ref2; + } + throw new NotFoundError(ref); + }); + } + static expandAgainstMap(_0) { + return __async(this, arguments, function* ({ ref, map }) { + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (yield map.has(ref2)) + return ref2; + } + throw new NotFoundError(ref); + }); + } + static resolveAgainstMap({ ref, fullref = ref, depth = void 0, map }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return { fullref, oid: ref }; + } } - new import_obsidian.Setting(containerEl).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPullInterval)).onChange((value) => { - if (!isNaN(Number(value))) { - plugin.settings.autoPullInterval = Number(value); - plugin.saveSettings(); - if (plugin.settings.autoPullInterval > 0) { - plugin.clearAutoPull(); - plugin.startAutoPull(plugin.settings.autoPullInterval); - new import_obsidian.Notice(`Automatic pull enabled! Every ${plugin.settings.autoPullInterval} minutes.`); - } else if (plugin.settings.autoPullInterval <= 0) { - plugin.clearAutoPull() && new import_obsidian.Notice("Automatic pull disabled!"); + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return GitRefManager.resolveAgainstMap({ ref, fullref, depth, map }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return { fullref, oid: ref }; + } + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + const sha = map.get(ref2); + if (sha) { + return GitRefManager.resolveAgainstMap({ + ref: sha.trim(), + fullref: ref2, + depth, + map + }); + } + } + throw new NotFoundError(ref); + } + static packedRefs(_0) { + return __async(this, arguments, function* ({ fs, gitdir }) { + const text2 = yield fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }); + const packed = GitPackedRefs.from(text2); + return packed.refs; + }); + } + static listRefs(_0) { + return __async(this, arguments, function* ({ fs, gitdir, filepath }) { + const packedMap = GitRefManager.packedRefs({ fs, gitdir }); + let files = null; + try { + files = yield fs.readdirDeep(`${gitdir}/${filepath}`); + files = files.map((x) => x.replace(`${gitdir}/${filepath}/`, "")); + } catch (err) { + files = []; + } + for (let key2 of (yield packedMap).keys()) { + if (key2.startsWith(filepath)) { + key2 = key2.replace(filepath + "/", ""); + if (!files.includes(key2)) { + files.push(key2); + } } + } + files.sort(compareRefNames); + return files; + }); + } + static listBranches(_0) { + return __async(this, arguments, function* ({ fs, gitdir, remote }) { + if (remote) { + return GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/remotes/${remote}` + }); } else { - new import_obsidian.Notice("Please specify a valid number."); + return GitRefManager.listRefs({ fs, gitdir, filepath: `refs/heads` }); } - })); - new import_obsidian.Setting(containerEl).setName("Commit message on manual backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.commitMessage ? plugin.settings.commitMessage : "").onChange((value) => { - plugin.settings.commitMessage = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Specify custom commit message on auto backup").setDesc("You will get a pop up to specify your message").addToggle((toggle) => toggle.setValue(plugin.settings.customMessageOnAutoBackup).onChange((value) => { - plugin.settings.customMessageOnAutoBackup = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Commit message on auto backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.autoCommitMessage).onChange((value) => { - plugin.settings.autoCommitMessage = value; - plugin.saveSettings(); - })); - containerEl.createEl("br"); - containerEl.createEl("h3", { text: "Commit message" }); - new import_obsidian.Setting(containerEl).setName("{{date}} placeholder format").setDesc('Specify custom date format. E.g. "YYYY-MM-DD HH:mm:ss"').addText((text2) => text2.setPlaceholder(plugin.settings.commitDateFormat).setValue(plugin.settings.commitDateFormat).onChange((value) => __async(this, null, function* () { - plugin.settings.commitDateFormat = value; - yield plugin.saveSettings(); - }))); - new import_obsidian.Setting(containerEl).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText((text2) => text2.setValue(localStorage.getItem(plugin.manifest.id + ":hostname")).onChange((value) => __async(this, null, function* () { - localStorage.setItem(plugin.manifest.id + ":hostname", value); - }))); - new import_obsidian.Setting(containerEl).setName("Preview commit message").addButton((button) => button.setButtonText("Preview").onClick(() => __async(this, null, function* () { - let commitMessagePreview = yield plugin.gitManager.formatCommitMessage(plugin.settings.commitMessage); - new import_obsidian.Notice(`${commitMessagePreview}`); - }))); - new import_obsidian.Setting(containerEl).setName("List filenames affected by commit in the commit body").addToggle((toggle) => toggle.setValue(plugin.settings.listChangedFilesInMessageBody).onChange((value) => { - plugin.settings.listChangedFilesInMessageBody = value; - plugin.saveSettings(); - })); - containerEl.createEl("br"); - containerEl.createEl("h3", { text: "Backup" }); - new import_obsidian.Setting(containerEl).setName("Sync Method").setDesc("Selects the method used for handling new changes found in your remote git repository.").addDropdown((dropdown) => { - const options = { - "merge": "Merge", - "rebase": "Rebase", - "reset": "Other sync service (Only updates the HEAD without touching the working directory)" - }; - dropdown.addOptions(options); - dropdown.setValue(plugin.settings.syncMethod); - dropdown.onChange((option) => __async(this, null, function* () { - plugin.settings.syncMethod = option; - plugin.saveSettings(); - })); }); - new import_obsidian.Setting(containerEl).setName("Pull updates on startup").setDesc("Automatically pull updates when Obsidian starts").addToggle((toggle) => toggle.setValue(plugin.settings.autoPullOnBoot).onChange((value) => { - plugin.settings.autoPullOnBoot = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Push on backup").setDesc("Disable to only commit changes").addToggle((toggle) => toggle.setValue(!plugin.settings.disablePush).onChange((value) => { - plugin.settings.disablePush = !value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Pull changes before push").setDesc("Commit -> pull -> push (Only if pushing is enabled)").addToggle((toggle) => toggle.setValue(plugin.settings.pullBeforePush).onChange((value) => { - plugin.settings.pullBeforePush = value; - plugin.saveSettings(); - })); - containerEl.createEl("br"); - containerEl.createEl("h3", { text: "Miscellaneous" }); - new import_obsidian.Setting(containerEl).setName("Current branch").setDesc("Switch to a different branch").addDropdown((dropdown) => __async(this, null, function* () { - const branchInfo = yield plugin.gitManager.branchInfo(); - for (const branch of branchInfo.branches) { - dropdown.addOption(branch, branch); - } - dropdown.setValue(branchInfo.current); - dropdown.onChange((option) => __async(this, null, function* () { - yield plugin.gitManager.checkout(option); - new import_obsidian.Notice(`Checked out to ${option}`); - })); - })); - new import_obsidian.Setting(containerEl).setName("Automatically refresh Source Control View on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option").addToggle((toggle) => toggle.setValue(plugin.settings.refreshSourceControl).onChange((value) => { - plugin.settings.refreshSourceControl = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting").addToggle((toggle) => toggle.setValue(plugin.settings.disablePopups).onChange((value) => { - plugin.settings.disablePopups = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect").addToggle((toggle) => toggle.setValue(plugin.settings.showStatusBar).onChange((value) => { - plugin.settings.showStatusBar = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Show changes files count in status bar").addToggle((toggle) => toggle.setValue(plugin.settings.changedFilesInStatusBar).onChange((value) => { - plugin.settings.changedFilesInStatusBar = value; - plugin.saveSettings(); - })); - containerEl.createEl("br"); - containerEl.createEl("h3", { text: "Advanced" }); - new import_obsidian.Setting(containerEl).setName("Update submodules").setDesc('"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule').addToggle((toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { - plugin.settings.updateSubmodules = value; - plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("Custom Git binary path").addText((cb) => { - cb.setValue(plugin.settings.gitPath); - cb.setPlaceholder("git"); - cb.onChange((value) => { - plugin.settings.gitPath = value; - plugin.saveSettings(); - plugin.gitManager.updateGitPath(value || "git"); + } + static listTags(_0) { + return __async(this, arguments, function* ({ fs, gitdir }) { + const tags = yield GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/tags` }); + return tags.filter((x) => !x.endsWith("^{}")); }); - new import_obsidian.Setting(containerEl).setName("Custom base path (Git repository path)").setDesc(` - Sets the relative path to the vault from which the Git binary should be executed. - Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. - `).addText((cb) => { - cb.setValue(plugin.settings.basePath); - cb.setPlaceholder("directory/directory-with-git-repo"); - cb.onChange((value) => { - plugin.settings.basePath = value; - plugin.saveSettings(); - plugin.gitManager.updateBasePath(value || ""); - }); - }); - const info = containerEl.createDiv(); - info.setAttr("align", "center"); - info.setText("Debugging and logging:\nYou can always see the logs of this and every other plugin by opening the console with"); - const keys = containerEl.createDiv(); - keys.setAttr("align", "center"); - keys.addClass("obsidian-git-shortcuts"); - if (import_obsidian.Platform.isMacOS === true) { - keys.createEl("kbd", { text: "CMD (\u2318) + OPTION (\u2325) + I" }); + } +}; +function compareTreeEntryPath(a, b) { + return compareStrings(appendSlashIfDir(a), appendSlashIfDir(b)); +} +function appendSlashIfDir(entry) { + return entry.mode === "040000" ? entry.path + "/" : entry.path; +} +function mode2type$1(mode) { + switch (mode) { + case "040000": + return "tree"; + case "100644": + return "blob"; + case "100755": + return "blob"; + case "120000": + return "blob"; + case "160000": + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode}`); +} +function parseBuffer(buffer2) { + const _entries = []; + let cursor = 0; + while (cursor < buffer2.length) { + const space2 = buffer2.indexOf(32, cursor); + if (space2 === -1) { + throw new InternalError(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next space character.`); + } + const nullchar = buffer2.indexOf(0, cursor); + if (nullchar === -1) { + throw new InternalError(`GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next null character.`); + } + let mode = buffer2.slice(cursor, space2).toString("utf8"); + if (mode === "40000") + mode = "040000"; + const type = mode2type$1(mode); + const path2 = buffer2.slice(space2 + 1, nullchar).toString("utf8"); + if (path2.includes("\\") || path2.includes("/")) { + throw new UnsafeFilepathError(path2); + } + const oid = buffer2.slice(nullchar + 1, nullchar + 21).toString("hex"); + cursor = nullchar + 21; + _entries.push({ mode, path: path2, oid, type }); + } + return _entries; +} +function limitModeToAllowed(mode) { + if (typeof mode === "number") { + mode = mode.toString(8); + } + if (mode.match(/^0?4.*/)) + return "040000"; + if (mode.match(/^1006.*/)) + return "100644"; + if (mode.match(/^1007.*/)) + return "100755"; + if (mode.match(/^120.*/)) + return "120000"; + if (mode.match(/^160.*/)) + return "160000"; + throw new InternalError(`Could not understand file mode: ${mode}`); +} +function nudgeIntoShape(entry) { + if (!entry.oid && entry.sha) { + entry.oid = entry.sha; + } + entry.mode = limitModeToAllowed(entry.mode); + if (!entry.type) { + entry.type = mode2type$1(entry.mode); + } + return entry; +} +var GitTree = class { + constructor(entries) { + if (Buffer2.isBuffer(entries)) { + this._entries = parseBuffer(entries); + } else if (Array.isArray(entries)) { + this._entries = entries.map(nudgeIntoShape); } else { - keys.createEl("kbd", { text: "CTRL + SHIFT + I" }); + throw new InternalError("invalid type passed to GitTree constructor"); + } + this._entries.sort(comparePath); + } + static from(tree) { + return new GitTree(tree); + } + render() { + return this._entries.map((entry) => `${entry.mode} ${entry.type} ${entry.oid} ${entry.path}`).join("\n"); + } + toObject() { + const entries = [...this._entries]; + entries.sort(compareTreeEntryPath); + return Buffer2.concat(entries.map((entry) => { + const mode = Buffer2.from(entry.mode.replace(/^0/, "")); + const space2 = Buffer2.from(" "); + const path2 = Buffer2.from(entry.path, "utf8"); + const nullchar = Buffer2.from([0]); + const oid = Buffer2.from(entry.oid, "hex"); + return Buffer2.concat([mode, space2, path2, nullchar, oid]); + })); + } + entries() { + return this._entries; + } + *[Symbol.iterator]() { + for (const entry of this._entries) { + yield entry; } } }; +var GitObject = class { + static wrap({ type, object }) { + return Buffer2.concat([ + Buffer2.from(`${type} ${object.byteLength.toString()}\0`), + Buffer2.from(object) + ]); + } + static unwrap(buffer2) { + const s = buffer2.indexOf(32); + const i = buffer2.indexOf(0); + const type = buffer2.slice(0, s).toString("utf8"); + const length = buffer2.slice(s + 1, i).toString("utf8"); + const actualLength = buffer2.length - (i + 1); + if (parseInt(length) !== actualLength) { + throw new InternalError(`Length mismatch: expected ${length} bytes but got ${actualLength} instead.`); + } + return { + type, + object: Buffer2.from(buffer2.slice(i + 1)) + }; + } +}; +function readObjectLoose(_0) { + return __async(this, arguments, function* ({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const file = yield fs.read(`${gitdir}/${source}`); + if (!file) { + return null; + } + return { object: file, format: "deflated", source }; + }); +} +function applyDelta(delta, source) { + const reader = new BufferCursor(delta); + const sourceSize = readVarIntLE(reader); + if (sourceSize !== source.byteLength) { + throw new InternalError(`applyDelta expected source buffer to be ${sourceSize} bytes but the provided buffer was ${source.length} bytes`); + } + const targetSize = readVarIntLE(reader); + let target; + const firstOp = readOp(reader, source); + if (firstOp.byteLength === targetSize) { + target = firstOp; + } else { + target = Buffer2.alloc(targetSize); + const writer = new BufferCursor(target); + writer.copy(firstOp); + while (!reader.eof()) { + writer.copy(readOp(reader, source)); + } + const tell = writer.tell(); + if (targetSize !== tell) { + throw new InternalError(`applyDelta expected target buffer to be ${targetSize} bytes but the resulting buffer was ${tell} bytes`); + } + } + return target; +} +function readVarIntLE(reader) { + let result = 0; + let shift = 0; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +function readCompactLE(reader, flags, size) { + let result = 0; + let shift = 0; + while (size--) { + if (flags & 1) { + result |= reader.readUInt8() << shift; + } + flags >>= 1; + shift += 8; + } + return result; +} +function readOp(reader, source) { + const byte = reader.readUInt8(); + const COPY = 128; + const OFFS = 15; + const SIZE = 112; + if (byte & COPY) { + const offset = readCompactLE(reader, byte & OFFS, 4); + let size = readCompactLE(reader, (byte & SIZE) >> 4, 3); + if (size === 0) + size = 65536; + return source.slice(offset, offset + size); + } else { + return reader.slice(byte); + } +} +function fromValue(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ done: queue.length === 0, value: queue.pop() }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue(iterable); +} +var StreamReader = class { + constructor(stream) { + this.stream = getIterator(stream); + this.buffer = null; + this.cursor = 0; + this.undoCursor = 0; + this.started = false; + this._ended = false; + this._discardedBytes = 0; + } + eof() { + return this._ended && this.cursor === this.buffer.length; + } + tell() { + return this._discardedBytes + this.cursor; + } + byte() { + return __async(this, null, function* () { + if (this.eof()) + return; + if (!this.started) + yield this._init(); + if (this.cursor === this.buffer.length) { + yield this._loadnext(); + if (this._ended) + return; + } + this._moveCursor(1); + return this.buffer[this.undoCursor]; + }); + } + chunk() { + return __async(this, null, function* () { + if (this.eof()) + return; + if (!this.started) + yield this._init(); + if (this.cursor === this.buffer.length) { + yield this._loadnext(); + if (this._ended) + return; + } + this._moveCursor(this.buffer.length); + return this.buffer.slice(this.undoCursor, this.cursor); + }); + } + read(n) { + return __async(this, null, function* () { + if (this.eof()) + return; + if (!this.started) + yield this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + yield this._accumulate(n); + } + this._moveCursor(n); + return this.buffer.slice(this.undoCursor, this.cursor); + }); + } + skip(n) { + return __async(this, null, function* () { + if (this.eof()) + return; + if (!this.started) + yield this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + yield this._accumulate(n); + } + this._moveCursor(n); + }); + } + undo() { + return __async(this, null, function* () { + this.cursor = this.undoCursor; + }); + } + _next() { + return __async(this, null, function* () { + this.started = true; + let { done, value } = yield this.stream.next(); + if (done) { + this._ended = true; + } + if (value) { + value = Buffer2.from(value); + } + return value; + }); + } + _trim() { + this.buffer = this.buffer.slice(this.undoCursor); + this.cursor -= this.undoCursor; + this._discardedBytes += this.undoCursor; + this.undoCursor = 0; + } + _moveCursor(n) { + this.undoCursor = this.cursor; + this.cursor += n; + if (this.cursor > this.buffer.length) { + this.cursor = this.buffer.length; + } + } + _accumulate(n) { + return __async(this, null, function* () { + if (this._ended) + return; + const buffers = [this.buffer]; + while (this.cursor + n > lengthBuffers(buffers)) { + const nextbuffer = yield this._next(); + if (this._ended) + break; + buffers.push(nextbuffer); + } + this.buffer = Buffer2.concat(buffers); + }); + } + _loadnext() { + return __async(this, null, function* () { + this._discardedBytes += this.buffer.length; + this.undoCursor = 0; + this.cursor = 0; + this.buffer = yield this._next(); + }); + } + _init() { + return __async(this, null, function* () { + this.buffer = yield this._next(); + }); + } +}; +function lengthBuffers(buffers) { + return buffers.reduce((acc, buffer2) => acc + buffer2.length, 0); +} +function listpack(stream, onData) { + return __async(this, null, function* () { + const reader = new StreamReader(stream); + let PACK = yield reader.read(4); + PACK = PACK.toString("utf8"); + if (PACK !== "PACK") { + throw new InternalError(`Invalid PACK header '${PACK}'`); + } + let version2 = yield reader.read(4); + version2 = version2.readUInt32BE(0); + if (version2 !== 2) { + throw new InternalError(`Invalid packfile version: ${version2}`); + } + let numObjects = yield reader.read(4); + numObjects = numObjects.readUInt32BE(0); + if (numObjects < 1) + return; + while (!reader.eof() && numObjects--) { + const offset = reader.tell(); + const { type, length, ofs, reference } = yield parseHeader(reader); + const inflator = new import_pako.default.Inflate(); + while (!inflator.result) { + const chunk = yield reader.chunk(); + if (!chunk) + break; + inflator.push(chunk, false); + if (inflator.err) { + throw new InternalError(`Pako error: ${inflator.msg}`); + } + if (inflator.result) { + if (inflator.result.length !== length) { + throw new InternalError(`Inflated object size is different from that stated in packfile.`); + } + yield reader.undo(); + yield reader.read(chunk.length - inflator.strm.avail_in); + const end = reader.tell(); + yield onData({ + data: inflator.result, + type, + num: numObjects, + offset, + end, + reference, + ofs + }); + } + } + } + }); +} +function parseHeader(reader) { + return __async(this, null, function* () { + let byte = yield reader.byte(); + const type = byte >> 4 & 7; + let length = byte & 15; + if (byte & 128) { + let shift = 4; + do { + byte = yield reader.byte(); + length |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + } + let ofs; + let reference; + if (type === 6) { + let shift = 0; + ofs = 0; + const bytes = []; + do { + byte = yield reader.byte(); + ofs |= (byte & 127) << shift; + shift += 7; + bytes.push(byte); + } while (byte & 128); + reference = Buffer2.from(bytes); + } + if (type === 7) { + const buf = yield reader.read(20); + reference = buf; + } + return { type, length, ofs, reference }; + }); +} +var supportsDecompressionStream = false; +function inflate(buffer2) { + return __async(this, null, function* () { + if (supportsDecompressionStream === null) { + supportsDecompressionStream = testDecompressionStream(); + } + return supportsDecompressionStream ? browserInflate(buffer2) : import_pako.default.inflate(buffer2); + }); +} +function browserInflate(buffer2) { + return __async(this, null, function* () { + const ds = new DecompressionStream("deflate"); + const d = new Blob([buffer2]).stream().pipeThrough(ds); + return new Uint8Array(yield new Response(d).arrayBuffer()); + }); +} +function testDecompressionStream() { + try { + const ds = new DecompressionStream("deflate"); + if (ds) + return true; + } catch (_) { + } + return false; +} +function decodeVarInt(reader) { + const bytes = []; + let byte = 0; + let multibyte = 0; + do { + byte = reader.readUInt8(); + const lastSeven = byte & 127; + bytes.push(lastSeven); + multibyte = byte & 128; + } while (multibyte); + return bytes.reduce((a, b) => a + 1 << 7 | b, -1); +} +function otherVarIntDecode(reader, startWith) { + let result = startWith; + let shift = 4; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +var GitPackIndex = class { + constructor(stuff) { + Object.assign(this, stuff); + this.offsetCache = {}; + } + static fromIdx(_0) { + return __async(this, arguments, function* ({ idx, getExternalRefDelta }) { + const reader = new BufferCursor(idx); + const magic = reader.slice(4).toString("hex"); + if (magic !== "ff744f63") { + return; + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError(`Unable to read version ${version2} packfile IDX. (Only version 2 supported)`); + } + if (idx.byteLength > 2048 * 1024 * 1024) { + throw new InternalError(`To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.`); + } + reader.seek(reader.tell() + 4 * 255); + const size = reader.readUInt32BE(); + const hashes = []; + for (let i = 0; i < size; i++) { + const hash2 = reader.slice(20).toString("hex"); + hashes[i] = hash2; + } + reader.seek(reader.tell() + 4 * size); + const offsets = new Map(); + for (let i = 0; i < size; i++) { + offsets.set(hashes[i], reader.readUInt32BE()); + } + const packfileSha = reader.slice(20).toString("hex"); + return new GitPackIndex({ + hashes, + crcs: {}, + offsets, + packfileSha, + getExternalRefDelta + }); + }); + } + static fromPack(_0) { + return __async(this, arguments, function* ({ pack, getExternalRefDelta, onProgress }) { + const listpackTypes = { + 1: "commit", + 2: "tree", + 3: "blob", + 4: "tag", + 6: "ofs-delta", + 7: "ref-delta" + }; + const offsetToObject = {}; + const packfileSha = pack.slice(-20).toString("hex"); + const hashes = []; + const crcs = {}; + const offsets = new Map(); + let totalObjectCount = null; + let lastPercent = null; + yield listpack([pack], (_02) => __async(this, [_02], function* ({ data, type, reference, offset, num: num2 }) { + if (totalObjectCount === null) + totalObjectCount = num2; + const percent = Math.floor((totalObjectCount - num2) * 100 / totalObjectCount); + if (percent !== lastPercent) { + if (onProgress) { + yield onProgress({ + phase: "Receiving objects", + loaded: totalObjectCount - num2, + total: totalObjectCount + }); + } + } + lastPercent = percent; + type = listpackTypes[type]; + if (["commit", "tree", "blob", "tag"].includes(type)) { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ofs-delta") { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ref-delta") { + offsetToObject[offset] = { + type, + offset + }; + } + })); + const offsetArray = Object.keys(offsetToObject).map(Number); + for (const [i, start] of offsetArray.entries()) { + const end = i + 1 === offsetArray.length ? pack.byteLength - 20 : offsetArray[i + 1]; + const o = offsetToObject[start]; + const crc = import_crc_32.default.buf(pack.slice(start, end)) >>> 0; + o.end = end; + o.crc = crc; + } + const p = new GitPackIndex({ + pack: Promise.resolve(pack), + packfileSha, + crcs, + hashes, + offsets, + getExternalRefDelta + }); + lastPercent = null; + let count = 0; + const objectsByDepth = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + for (let offset in offsetToObject) { + offset = Number(offset); + const percent = Math.floor(count * 100 / totalObjectCount); + if (percent !== lastPercent) { + if (onProgress) { + yield onProgress({ + phase: "Resolving deltas", + loaded: count, + total: totalObjectCount + }); + } + } + count++; + lastPercent = percent; + const o = offsetToObject[offset]; + if (o.oid) + continue; + try { + p.readDepth = 0; + p.externalReadDepth = 0; + const { type, object } = yield p.readSlice({ start: offset }); + objectsByDepth[p.readDepth] += 1; + const oid = yield shasum(GitObject.wrap({ type, object })); + o.oid = oid; + hashes.push(oid); + offsets.set(oid, offset); + crcs[oid] = o.crc; + } catch (err) { + continue; + } + } + hashes.sort(); + return p; + }); + } + toBuffer() { + return __async(this, null, function* () { + const buffers = []; + const write = (str, encoding) => { + buffers.push(Buffer2.from(str, encoding)); + }; + write("ff744f63", "hex"); + write("00000002", "hex"); + const fanoutBuffer = new BufferCursor(Buffer2.alloc(256 * 4)); + for (let i = 0; i < 256; i++) { + let count = 0; + for (const hash2 of this.hashes) { + if (parseInt(hash2.slice(0, 2), 16) <= i) + count++; + } + fanoutBuffer.writeUInt32BE(count); + } + buffers.push(fanoutBuffer.buffer); + for (const hash2 of this.hashes) { + write(hash2, "hex"); + } + const crcsBuffer = new BufferCursor(Buffer2.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + crcsBuffer.writeUInt32BE(this.crcs[hash2]); + } + buffers.push(crcsBuffer.buffer); + const offsetsBuffer = new BufferCursor(Buffer2.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + offsetsBuffer.writeUInt32BE(this.offsets.get(hash2)); + } + buffers.push(offsetsBuffer.buffer); + write(this.packfileSha, "hex"); + const totalBuffer = Buffer2.concat(buffers); + const sha = yield shasum(totalBuffer); + const shaBuffer = Buffer2.alloc(20); + shaBuffer.write(sha, "hex"); + return Buffer2.concat([totalBuffer, shaBuffer]); + }); + } + load(_0) { + return __async(this, arguments, function* ({ pack }) { + this.pack = pack; + }); + } + unload() { + return __async(this, null, function* () { + this.pack = null; + }); + } + read(_0) { + return __async(this, arguments, function* ({ oid }) { + if (!this.offsets.get(oid)) { + if (this.getExternalRefDelta) { + this.externalReadDepth++; + return this.getExternalRefDelta(oid); + } else { + throw new InternalError(`Could not read object ${oid} from packfile`); + } + } + const start = this.offsets.get(oid); + return this.readSlice({ start }); + }); + } + readSlice(_0) { + return __async(this, arguments, function* ({ start }) { + if (this.offsetCache[start]) { + return Object.assign({}, this.offsetCache[start]); + } + this.readDepth++; + const types2 = { + 16: "commit", + 32: "tree", + 48: "blob", + 64: "tag", + 96: "ofs_delta", + 112: "ref_delta" + }; + if (!this.pack) { + throw new InternalError("Tried to read from a GitPackIndex with no packfile loaded into memory"); + } + const raw = (yield this.pack).slice(start); + const reader = new BufferCursor(raw); + const byte = reader.readUInt8(); + const btype = byte & 112; + let type = types2[btype]; + if (type === void 0) { + throw new InternalError("Unrecognized type: 0b" + btype.toString(2)); + } + const lastFour = byte & 15; + let length = lastFour; + const multibyte = byte & 128; + if (multibyte) { + length = otherVarIntDecode(reader, lastFour); + } + let base = null; + let object = null; + if (type === "ofs_delta") { + const offset = decodeVarInt(reader); + const baseOffset = start - offset; + ({ object: base, type } = yield this.readSlice({ start: baseOffset })); + } + if (type === "ref_delta") { + const oid = reader.slice(20).toString("hex"); + ({ object: base, type } = yield this.read({ oid })); + } + const buffer2 = raw.slice(reader.tell()); + object = Buffer2.from(yield inflate(buffer2)); + if (object.byteLength !== length) { + throw new InternalError(`Packfile told us object would have length ${length} but it had length ${object.byteLength}`); + } + if (base) { + object = Buffer2.from(applyDelta(object, base)); + } + if (this.readDepth > 3) { + this.offsetCache[start] = { type, object }; + } + return { type, format: "content", object }; + }); + } +}; +var PackfileCache = Symbol("PackfileCache"); +function loadPackIndex(_0) { + return __async(this, arguments, function* ({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix + }) { + const idx = yield fs.read(filename); + return GitPackIndex.fromIdx({ idx, getExternalRefDelta }); + }); +} +function readPackIndex({ + fs, + cache, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + if (!cache[PackfileCache]) + cache[PackfileCache] = new Map(); + let p = cache[PackfileCache].get(filename); + if (!p) { + p = loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix + }); + cache[PackfileCache].set(filename, p); + } + return p; +} +function readObjectPacked(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + format = "content", + getExternalRefDelta + }) { + let list = yield fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = yield readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + if (p.offsets.has(oid)) { + if (!p.pack) { + const packFile = indexFile.replace(/idx$/, "pack"); + p.pack = fs.read(packFile); + } + const result = yield p.read({ oid, getExternalRefDelta }); + result.format = "content"; + result.source = `objects/pack/${filename.replace(/idx$/, "pack")}`; + return result; + } + } + return null; + }); +} +function _readObject(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + format = "content" + }) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result; + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + result = { format: "wrapped", object: Buffer2.from(`tree 0\0`) }; + } + if (!result) { + result = yield readObjectLoose({ fs, gitdir, oid }); + } + if (!result) { + result = yield readObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + if (!result) { + throw new NotFoundError(oid); + } + if (format === "deflated") { + return result; + } + if (result.format === "deflated") { + result.object = Buffer2.from(yield inflate(result.object)); + result.format = "wrapped"; + } + if (result.format === "wrapped") { + if (format === "wrapped" && result.format === "wrapped") { + return result; + } + const sha = yield shasum(result.object); + if (sha !== oid) { + throw new InternalError(`SHA check failed! Expected ${oid}, computed ${sha}`); + } + const { object, type } = GitObject.unwrap(result.object); + result.type = type; + result.object = object; + result.format = "content"; + } + if (result.format === "content") { + if (format === "content") + return result; + return; + } + throw new InternalError(`invalid format "${result.format}"`); + }); +} +var AlreadyExistsError = class extends BaseError { + constructor(noun, where, canForce = true) { + super(`Failed to create ${noun} at ${where} because it already exists.${canForce ? ` (Hint: use 'force: true' parameter to overwrite existing ${noun}.)` : ""}`); + this.code = this.name = AlreadyExistsError.code; + this.data = { noun, where, canForce }; + } +}; +AlreadyExistsError.code = "AlreadyExistsError"; +var AmbiguousError = class extends BaseError { + constructor(nouns, short, matches) { + super(`Found multiple ${nouns} matching "${short}" (${matches.join(", ")}). Use a longer abbreviation length to disambiguate them.`); + this.code = this.name = AmbiguousError.code; + this.data = { nouns, short, matches }; + } +}; +AmbiguousError.code = "AmbiguousError"; +var CheckoutConflictError = class extends BaseError { + constructor(filepaths) { + super(`Your local changes to the following files would be overwritten by checkout: ${filepaths.join(", ")}`); + this.code = this.name = CheckoutConflictError.code; + this.data = { filepaths }; + } +}; +CheckoutConflictError.code = "CheckoutConflictError"; +var CommitNotFetchedError = class extends BaseError { + constructor(ref, oid) { + super(`Failed to checkout "${ref}" because commit ${oid} is not available locally. Do a git fetch to make the branch available locally.`); + this.code = this.name = CommitNotFetchedError.code; + this.data = { ref, oid }; + } +}; +CommitNotFetchedError.code = "CommitNotFetchedError"; +var EmptyServerResponseError = class extends BaseError { + constructor() { + super(`Empty response from git server.`); + this.code = this.name = EmptyServerResponseError.code; + this.data = {}; + } +}; +EmptyServerResponseError.code = "EmptyServerResponseError"; +var FastForwardError = class extends BaseError { + constructor() { + super(`A simple fast-forward merge was not possible.`); + this.code = this.name = FastForwardError.code; + this.data = {}; + } +}; +FastForwardError.code = "FastForwardError"; +var GitPushError = class extends BaseError { + constructor(prettyDetails, result) { + super(`One or more branches were not updated: ${prettyDetails}`); + this.code = this.name = GitPushError.code; + this.data = { prettyDetails, result }; + } +}; +GitPushError.code = "GitPushError"; +var HttpError = class extends BaseError { + constructor(statusCode, statusMessage, response) { + super(`HTTP Error: ${statusCode} ${statusMessage}`); + this.code = this.name = HttpError.code; + this.data = { statusCode, statusMessage, response }; + } +}; +HttpError.code = "HttpError"; +var InvalidFilepathError = class extends BaseError { + constructor(reason) { + let message = "invalid filepath"; + if (reason === "leading-slash" || reason === "trailing-slash") { + message = `"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.`; + } else if (reason === "directory") { + message = `"filepath" should not be a directory.`; + } + super(message); + this.code = this.name = InvalidFilepathError.code; + this.data = { reason }; + } +}; +InvalidFilepathError.code = "InvalidFilepathError"; +var InvalidRefNameError = class extends BaseError { + constructor(ref, suggestion) { + super(`"${ref}" would be an invalid git reference. (Hint: a valid alternative would be "${suggestion}".)`); + this.code = this.name = InvalidRefNameError.code; + this.data = { ref, suggestion }; + } +}; +InvalidRefNameError.code = "InvalidRefNameError"; +var MaxDepthError = class extends BaseError { + constructor(depth) { + super(`Maximum search depth of ${depth} exceeded.`); + this.code = this.name = MaxDepthError.code; + this.data = { depth }; + } +}; +MaxDepthError.code = "MaxDepthError"; +var MergeNotSupportedError = class extends BaseError { + constructor() { + super(`Merges with conflicts are not supported yet.`); + this.code = this.name = MergeNotSupportedError.code; + this.data = {}; + } +}; +MergeNotSupportedError.code = "MergeNotSupportedError"; +var MergeConflictError = class extends BaseError { + constructor(filepaths) { + super(`Automatic merge failed with one or more merge conflicts in the following files: ${filepaths.toString()}. Fix conflicts then commit the result.`); + this.code = this.name = MergeConflictError.code; + this.data = { filepaths }; + } +}; +MergeConflictError.code = "MergeConflictError"; +var MissingNameError = class extends BaseError { + constructor(role) { + super(`No name was provided for ${role} in the argument or in the .git/config file.`); + this.code = this.name = MissingNameError.code; + this.data = { role }; + } +}; +MissingNameError.code = "MissingNameError"; +var MissingParameterError = class extends BaseError { + constructor(parameter) { + super(`The function requires a "${parameter}" parameter but none was provided.`); + this.code = this.name = MissingParameterError.code; + this.data = { parameter }; + } +}; +MissingParameterError.code = "MissingParameterError"; +var MultipleGitError = class extends BaseError { + constructor(errors) { + super(`There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more`); + this.code = this.name = MultipleGitError.code; + this.data = { errors }; + this.errors = errors; + } +}; +MultipleGitError.code = "MultipleGitError"; +var ParseError = class extends BaseError { + constructor(expected, actual) { + super(`Expected "${expected}" but received "${actual}".`); + this.code = this.name = ParseError.code; + this.data = { expected, actual }; + } +}; +ParseError.code = "ParseError"; +var PushRejectedError = class extends BaseError { + constructor(reason) { + let message = ""; + if (reason === "not-fast-forward") { + message = " because it was not a simple fast-forward"; + } else if (reason === "tag-exists") { + message = " because tag already exists"; + } + super(`Push rejected${message}. Use "force: true" to override.`); + this.code = this.name = PushRejectedError.code; + this.data = { reason }; + } +}; +PushRejectedError.code = "PushRejectedError"; +var RemoteCapabilityError = class extends BaseError { + constructor(capability, parameter) { + super(`Remote does not support the "${capability}" so the "${parameter}" parameter cannot be used.`); + this.code = this.name = RemoteCapabilityError.code; + this.data = { capability, parameter }; + } +}; +RemoteCapabilityError.code = "RemoteCapabilityError"; +var SmartHttpError = class extends BaseError { + constructor(preview, response) { + super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${preview}`); + this.code = this.name = SmartHttpError.code; + this.data = { preview, response }; + } +}; +SmartHttpError.code = "SmartHttpError"; +var UnknownTransportError = class extends BaseError { + constructor(url, transport, suggestion) { + super(`Git remote "${url}" uses an unrecognized transport protocol: "${transport}"`); + this.code = this.name = UnknownTransportError.code; + this.data = { url, transport, suggestion }; + } +}; +UnknownTransportError.code = "UnknownTransportError"; +var UrlParseError = class extends BaseError { + constructor(url) { + super(`Cannot parse remote URL: "${url}"`); + this.code = this.name = UrlParseError.code; + this.data = { url }; + } +}; +UrlParseError.code = "UrlParseError"; +var UserCanceledError = class extends BaseError { + constructor() { + super(`The operation was canceled.`); + this.code = this.name = UserCanceledError.code; + this.data = {}; + } +}; +UserCanceledError.code = "UserCanceledError"; +var Errors = /* @__PURE__ */ Object.freeze({ + __proto__: null, + AlreadyExistsError, + AmbiguousError, + CheckoutConflictError, + CommitNotFetchedError, + EmptyServerResponseError, + FastForwardError, + GitPushError, + HttpError, + InternalError, + InvalidFilepathError, + InvalidOidError, + InvalidRefNameError, + MaxDepthError, + MergeNotSupportedError, + MergeConflictError, + MissingNameError, + MissingParameterError, + MultipleGitError, + NoRefspecError, + NotFoundError, + ObjectTypeError, + ParseError, + PushRejectedError, + RemoteCapabilityError, + SmartHttpError, + UnknownTransportError, + UnsafeFilepathError, + UrlParseError, + UserCanceledError +}); +function formatAuthor({ name, email, timestamp, timezoneOffset }) { + timezoneOffset = formatTimezoneOffset(timezoneOffset); + return `${name} <${email}> ${timestamp} ${timezoneOffset}`; +} +function formatTimezoneOffset(minutes) { + const sign = simpleSign(negateExceptForZero(minutes)); + minutes = Math.abs(minutes); + const hours = Math.floor(minutes / 60); + minutes -= hours * 60; + let strHours = String(hours); + let strMinutes = String(minutes); + if (strHours.length < 2) + strHours = "0" + strHours; + if (strMinutes.length < 2) + strMinutes = "0" + strMinutes; + return (sign === -1 ? "-" : "+") + strHours + strMinutes; +} +function simpleSign(n) { + return Math.sign(n) || (Object.is(n, -0) ? -1 : 1); +} +function negateExceptForZero(n) { + return n === 0 ? n : -n; +} +function normalizeNewlines(str) { + str = str.replace(/\r/g, ""); + str = str.replace(/^\n+/, ""); + str = str.replace(/\n+$/, "") + "\n"; + return str; +} +function parseAuthor(author) { + const [, name, email, timestamp, offset] = author.match(/^(.*) <(.*)> (.*) (.*)$/); + return { + name, + email, + timestamp: Number(timestamp), + timezoneOffset: parseTimezoneOffset(offset) + }; +} +function parseTimezoneOffset(offset) { + let [, sign, hours, minutes] = offset.match(/(\+|-)(\d\d)(\d\d)/); + minutes = (sign === "+" ? 1 : -1) * (Number(hours) * 60 + Number(minutes)); + return negateExceptForZero$1(minutes); +} +function negateExceptForZero$1(n) { + return n === 0 ? n : -n; +} +var GitAnnotatedTag = class { + constructor(tag2) { + if (typeof tag2 === "string") { + this._tag = tag2; + } else if (Buffer2.isBuffer(tag2)) { + this._tag = tag2.toString("utf8"); + } else if (typeof tag2 === "object") { + this._tag = GitAnnotatedTag.render(tag2); + } else { + throw new InternalError("invalid type passed to GitAnnotatedTag constructor"); + } + } + static from(tag2) { + return new GitAnnotatedTag(tag2); + } + static render(obj) { + return `object ${obj.object} +type ${obj.type} +tag ${obj.tag} +tagger ${formatAuthor(obj.tagger)} -// src/statusBar.ts +${obj.message} +${obj.gpgsig ? obj.gpgsig : ""}`; + } + justHeaders() { + return this._tag.slice(0, this._tag.indexOf("\n\n")); + } + message() { + const tag2 = this.withoutSignature(); + return tag2.slice(tag2.indexOf("\n\n") + 2); + } + parse() { + return Object.assign(this.headers(), { + message: this.message(), + gpgsig: this.gpgsig() + }); + } + render() { + return this._tag; + } + headers() { + const headers = this.justHeaders().split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = {}; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.tagger) { + obj.tagger = parseAuthor(obj.tagger); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + withoutSignature() { + const tag2 = normalizeNewlines(this._tag); + if (tag2.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) + return tag2; + return tag2.slice(0, tag2.lastIndexOf("\n-----BEGIN PGP SIGNATURE-----")); + } + gpgsig() { + if (this._tag.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) + return; + const signature = this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"), this._tag.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length); + return normalizeNewlines(signature); + } + payload() { + return this.withoutSignature() + "\n"; + } + toObject() { + return Buffer2.from(this._tag, "utf8"); + } + static sign(tag2, sign, secretKey) { + return __async(this, null, function* () { + const payload = tag2.payload(); + let { signature } = yield sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const signedTag = payload + signature; + return GitAnnotatedTag.from(signedTag); + }); + } +}; +function indent(str) { + return str.trim().split("\n").map((x) => " " + x).join("\n") + "\n"; +} +function outdent(str) { + return str.split("\n").map((x) => x.replace(/^ /, "")).join("\n"); +} +var GitCommit = class { + constructor(commit2) { + if (typeof commit2 === "string") { + this._commit = commit2; + } else if (Buffer2.isBuffer(commit2)) { + this._commit = commit2.toString("utf8"); + } else if (typeof commit2 === "object") { + this._commit = GitCommit.render(commit2); + } else { + throw new InternalError("invalid type passed to GitCommit constructor"); + } + } + static fromPayloadSignature({ payload, signature }) { + const headers = GitCommit.justHeaders(payload); + const message = GitCommit.justMessage(payload); + const commit2 = normalizeNewlines(headers + "\ngpgsig" + indent(signature) + "\n" + message); + return new GitCommit(commit2); + } + static from(commit2) { + return new GitCommit(commit2); + } + toObject() { + return Buffer2.from(this._commit, "utf8"); + } + headers() { + return this.parseHeaders(); + } + message() { + return GitCommit.justMessage(this._commit); + } + parse() { + return Object.assign({ message: this.message() }, this.headers()); + } + static justMessage(commit2) { + return normalizeNewlines(commit2.slice(commit2.indexOf("\n\n") + 2)); + } + static justHeaders(commit2) { + return commit2.slice(0, commit2.indexOf("\n\n")); + } + parseHeaders() { + const headers = GitCommit.justHeaders(this._commit).split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = { + parent: [] + }; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.author) { + obj.author = parseAuthor(obj.author); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + static renderHeaders(obj) { + let headers = ""; + if (obj.tree) { + headers += `tree ${obj.tree} +`; + } else { + headers += `tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 +`; + } + if (obj.parent) { + if (obj.parent.length === void 0) { + throw new InternalError(`commit 'parent' property should be an array`); + } + for (const p of obj.parent) { + headers += `parent ${p} +`; + } + } + const author = obj.author; + headers += `author ${formatAuthor(author)} +`; + const committer = obj.committer || obj.author; + headers += `committer ${formatAuthor(committer)} +`; + if (obj.gpgsig) { + headers += "gpgsig" + indent(obj.gpgsig); + } + return headers; + } + static render(obj) { + return GitCommit.renderHeaders(obj) + "\n" + normalizeNewlines(obj.message); + } + render() { + return this._commit; + } + withoutSignature() { + const commit2 = normalizeNewlines(this._commit); + if (commit2.indexOf("\ngpgsig") === -1) + return commit2; + const headers = commit2.slice(0, commit2.indexOf("\ngpgsig")); + const message = commit2.slice(commit2.indexOf("-----END PGP SIGNATURE-----\n") + "-----END PGP SIGNATURE-----\n".length); + return normalizeNewlines(headers + "\n" + message); + } + isolateSignature() { + const signature = this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"), this._commit.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length); + return outdent(signature); + } + static sign(commit2, sign, secretKey) { + return __async(this, null, function* () { + const payload = commit2.withoutSignature(); + const message = GitCommit.justMessage(commit2._commit); + let { signature } = yield sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const headers = GitCommit.justHeaders(commit2._commit); + const signedCommit = headers + "\ngpgsig" + indent(signature) + "\n" + message; + return GitCommit.from(signedCommit); + }); + } +}; +function resolveTree(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid }) { + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + return { tree: GitTree.from([]), oid }; + } + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type === "commit") { + oid = GitCommit.from(object).parse().tree; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "tree"); + } + return { tree: GitTree.from(object), oid }; + }); +} +var GitWalkerRepo = class { + constructor({ fs, gitdir, ref, cache }) { + this.fs = fs; + this.cache = cache; + this.gitdir = gitdir; + this.mapPromise = (() => __async(this, null, function* () { + const map = new Map(); + let oid; + try { + oid = yield GitRefManager.resolve({ fs, gitdir, ref }); + } catch (e) { + if (e instanceof NotFoundError) { + oid = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"; + } + } + const tree = yield resolveTree({ fs, cache: this.cache, gitdir, oid }); + tree.type = "tree"; + tree.mode = "40000"; + map.set(".", tree); + return map; + }))(); + const walker = this; + this.ConstructEntry = class TreeEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + type() { + return __async(this, null, function* () { + return walker.type(this); + }); + } + mode() { + return __async(this, null, function* () { + return walker.mode(this); + }); + } + stat() { + return __async(this, null, function* () { + return walker.stat(this); + }); + } + content() { + return __async(this, null, function* () { + return walker.content(this); + }); + } + oid() { + return __async(this, null, function* () { + return walker.oid(this); + }); + } + }; + } + readdir(entry) { + return __async(this, null, function* () { + const filepath = entry._fullpath; + const { fs, cache, gitdir } = this; + const map = yield this.mapPromise; + const obj = map.get(filepath); + if (!obj) + throw new Error(`No obj for ${filepath}`); + const oid = obj.oid; + if (!oid) + throw new Error(`No oid for obj ${JSON.stringify(obj)}`); + if (obj.type !== "tree") { + return null; + } + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type !== obj.type) { + throw new ObjectTypeError(oid, type, obj.type); + } + const tree = GitTree.from(object); + for (const entry2 of tree) { + map.set(join(filepath, entry2.path), entry2); + } + return tree.entries().map((entry2) => join(filepath, entry2.path)); + }); + } + type(entry) { + return __async(this, null, function* () { + if (entry._type === false) { + const map = yield this.mapPromise; + const { type } = map.get(entry._fullpath); + entry._type = type; + } + return entry._type; + }); + } + mode(entry) { + return __async(this, null, function* () { + if (entry._mode === false) { + const map = yield this.mapPromise; + const { mode } = map.get(entry._fullpath); + entry._mode = normalizeMode(parseInt(mode, 8)); + } + return entry._mode; + }); + } + stat(_entry) { + return __async(this, null, function* () { + }); + } + content(entry) { + return __async(this, null, function* () { + if (entry._content === false) { + const map = yield this.mapPromise; + const { fs, cache, gitdir } = this; + const obj = map.get(entry._fullpath); + const oid = obj.oid; + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type !== "blob") { + entry._content = void 0; + } else { + entry._content = new Uint8Array(object); + } + } + return entry._content; + }); + } + oid(entry) { + return __async(this, null, function* () { + if (entry._oid === false) { + const map = yield this.mapPromise; + const obj = map.get(entry._fullpath); + entry._oid = obj.oid; + } + return entry._oid; + }); + } +}; +function TREE({ ref = "HEAD" } = {}) { + const o = Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerRepo({ fs, gitdir, ref, cache }); + } + }); + Object.freeze(o); + return o; +} +var GitWalkerFs = class { + constructor({ fs, dir, gitdir, cache }) { + this.fs = fs; + this.cache = cache; + this.dir = dir; + this.gitdir = gitdir; + const walker = this; + this.ConstructEntry = class WorkdirEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + type() { + return __async(this, null, function* () { + return walker.type(this); + }); + } + mode() { + return __async(this, null, function* () { + return walker.mode(this); + }); + } + stat() { + return __async(this, null, function* () { + return walker.stat(this); + }); + } + content() { + return __async(this, null, function* () { + return walker.content(this); + }); + } + oid() { + return __async(this, null, function* () { + return walker.oid(this); + }); + } + }; + } + readdir(entry) { + return __async(this, null, function* () { + const filepath = entry._fullpath; + const { fs, dir } = this; + const names = yield fs.readdir(join(dir, filepath)); + if (names === null) + return null; + return names.map((name) => join(filepath, name)); + }); + } + type(entry) { + return __async(this, null, function* () { + if (entry._type === false) { + yield entry.stat(); + } + return entry._type; + }); + } + mode(entry) { + return __async(this, null, function* () { + if (entry._mode === false) { + yield entry.stat(); + } + return entry._mode; + }); + } + stat(entry) { + return __async(this, null, function* () { + if (entry._stat === false) { + const { fs, dir } = this; + let stat = yield fs.lstat(`${dir}/${entry._fullpath}`); + if (!stat) { + throw new Error(`ENOENT: no such file or directory, lstat '${entry._fullpath}'`); + } + let type = stat.isDirectory() ? "tree" : "blob"; + if (type === "blob" && !stat.isFile() && !stat.isSymbolicLink()) { + type = "special"; + } + entry._type = type; + stat = normalizeStats(stat); + entry._mode = stat.mode; + if (stat.size === -1 && entry._actualSize) { + stat.size = entry._actualSize; + } + entry._stat = stat; + } + return entry._stat; + }); + } + content(entry) { + return __async(this, null, function* () { + if (entry._content === false) { + const { fs, dir } = this; + if ((yield entry.type()) === "tree") { + entry._content = void 0; + } else { + const content = yield fs.read(`${dir}/${entry._fullpath}`); + entry._actualSize = content.length; + if (entry._stat && entry._stat.size === -1) { + entry._stat.size = entry._actualSize; + } + entry._content = new Uint8Array(content); + } + } + return entry._content; + }); + } + oid(entry) { + return __async(this, null, function* () { + if (entry._oid === false) { + const { fs, gitdir, cache } = this; + let oid; + yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + const stage = index2.entriesMap.get(entry._fullpath); + const stats = yield entry.stat(); + if (!stage || compareStats(stats, stage)) { + const content = yield entry.content(); + if (content === void 0) { + oid = void 0; + } else { + oid = yield shasum(GitObject.wrap({ type: "blob", object: yield entry.content() })); + if (stage && oid === stage.oid && stats.mode === stage.mode && compareStats(stats, stage)) { + index2.insert({ + filepath: entry._fullpath, + stats, + oid + }); + } + } + } else { + oid = stage.oid; + } + }); + }); + entry._oid = oid; + } + return entry._oid; + }); + } +}; +function WORKDIR() { + const o = Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, dir, gitdir, cache }) { + return new GitWalkerFs({ fs, dir, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +var GitIgnoreManager = class { + static isIgnored(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), filepath }) { + if (basename(filepath) === ".git") + return true; + if (filepath === ".") + return false; + let excludes = ""; + const excludesFile = join(gitdir, "info", "exclude"); + if (yield fs.exists(excludesFile)) { + excludes = yield fs.read(excludesFile, "utf8"); + } + const pairs = [ + { + gitignore: join(dir, ".gitignore"), + filepath + } + ]; + const pieces = filepath.split("/").filter(Boolean); + for (let i = 1; i < pieces.length; i++) { + const folder = pieces.slice(0, i).join("/"); + const file = pieces.slice(i).join("/"); + pairs.push({ + gitignore: join(dir, folder, ".gitignore"), + filepath: file + }); + } + let ignoredStatus = false; + for (const p of pairs) { + let file; + try { + file = yield fs.read(p.gitignore, "utf8"); + } catch (err) { + if (err.code === "NOENT") + continue; + } + const ign = (0, import_ignore.default)().add(excludes); + ign.add(file); + const parentdir = dirname(p.filepath); + if (parentdir !== "." && ign.ignores(parentdir)) + return true; + if (ignoredStatus) { + ignoredStatus = !ign.test(p.filepath).unignored; + } else { + ignoredStatus = ign.test(p.filepath).ignored; + } + } + return ignoredStatus; + }); + } +}; +function rmRecursive(fs, filepath) { + return __async(this, null, function* () { + const entries = yield fs.readdir(filepath); + if (entries == null) { + yield fs.rm(filepath); + } else if (entries.length) { + yield Promise.all(entries.map((entry) => { + const subpath = join(filepath, entry); + return fs.lstat(subpath).then((stat) => { + if (!stat) + return; + return stat.isDirectory() ? rmRecursive(fs, subpath) : fs.rm(subpath); + }); + })).then(() => fs.rmdir(filepath)); + } else { + yield fs.rmdir(filepath); + } + }); +} +var FileSystem = class { + constructor(fs) { + if (typeof fs._original_unwrapped_fs !== "undefined") + return fs; + const promises = Object.getOwnPropertyDescriptor(fs, "promises"); + if (promises && promises.enumerable) { + this._readFile = fs.promises.readFile.bind(fs.promises); + this._writeFile = fs.promises.writeFile.bind(fs.promises); + this._mkdir = fs.promises.mkdir.bind(fs.promises); + if (fs.promises.rm) { + this._rm = fs.promises.rm.bind(fs.promises); + } else if (fs.promises.rmdir.length > 1) { + this._rm = fs.promises.rmdir.bind(fs.promises); + } else { + this._rm = rmRecursive.bind(null, this); + } + this._rmdir = fs.promises.rmdir.bind(fs.promises); + this._unlink = fs.promises.unlink.bind(fs.promises); + this._stat = fs.promises.stat.bind(fs.promises); + this._lstat = fs.promises.lstat.bind(fs.promises); + this._readdir = fs.promises.readdir.bind(fs.promises); + this._readlink = fs.promises.readlink.bind(fs.promises); + this._symlink = fs.promises.symlink.bind(fs.promises); + } else { + this._readFile = (0, import_pify.default)(fs.readFile.bind(fs)); + this._writeFile = (0, import_pify.default)(fs.writeFile.bind(fs)); + this._mkdir = (0, import_pify.default)(fs.mkdir.bind(fs)); + if (fs.rm) { + this._rm = (0, import_pify.default)(fs.rm.bind(fs)); + } else if (fs.rmdir.length > 2) { + this._rm = (0, import_pify.default)(fs.rmdir.bind(fs)); + } else { + this._rm = rmRecursive.bind(null, this); + } + this._rmdir = (0, import_pify.default)(fs.rmdir.bind(fs)); + this._unlink = (0, import_pify.default)(fs.unlink.bind(fs)); + this._stat = (0, import_pify.default)(fs.stat.bind(fs)); + this._lstat = (0, import_pify.default)(fs.lstat.bind(fs)); + this._readdir = (0, import_pify.default)(fs.readdir.bind(fs)); + this._readlink = (0, import_pify.default)(fs.readlink.bind(fs)); + this._symlink = (0, import_pify.default)(fs.symlink.bind(fs)); + } + this._original_unwrapped_fs = fs; + } + exists(_0) { + return __async(this, arguments, function* (filepath, options = {}) { + try { + yield this._stat(filepath); + return true; + } catch (err) { + if (err.code === "ENOENT" || err.code === "ENOTDIR") { + return false; + } else { + console.log('Unhandled error in "FileSystem.exists()" function', err); + throw err; + } + } + }); + } + read(_0) { + return __async(this, arguments, function* (filepath, options = {}) { + try { + let buffer2 = yield this._readFile(filepath, options); + if (typeof buffer2 !== "string") { + buffer2 = Buffer2.from(buffer2); + } + return buffer2; + } catch (err) { + return null; + } + }); + } + write(_0, _1) { + return __async(this, arguments, function* (filepath, contents, options = {}) { + try { + yield this._writeFile(filepath, contents, options); + return; + } catch (err) { + yield this.mkdir(dirname(filepath)); + yield this._writeFile(filepath, contents, options); + } + }); + } + mkdir(filepath, _selfCall = false) { + return __async(this, null, function* () { + try { + yield this._mkdir(filepath); + return; + } catch (err) { + if (err === null) + return; + if (err.code === "EEXIST") + return; + if (_selfCall) + throw err; + if (err.code === "ENOENT") { + const parent = dirname(filepath); + if (parent === "." || parent === "/" || parent === filepath) + throw err; + yield this.mkdir(parent); + yield this.mkdir(filepath, true); + } + } + }); + } + rm(filepath) { + return __async(this, null, function* () { + try { + yield this._unlink(filepath); + } catch (err) { + if (err.code !== "ENOENT") + throw err; + } + }); + } + rmdir(filepath, opts) { + return __async(this, null, function* () { + try { + if (opts && opts.recursive) { + yield this._rm(filepath, opts); + } else { + yield this._rmdir(filepath); + } + } catch (err) { + if (err.code !== "ENOENT") + throw err; + } + }); + } + readdir(filepath) { + return __async(this, null, function* () { + try { + const names = yield this._readdir(filepath); + names.sort(compareStrings); + return names; + } catch (err) { + if (err.code === "ENOTDIR") + return null; + return []; + } + }); + } + readdirDeep(dir) { + return __async(this, null, function* () { + const subdirs = yield this._readdir(dir); + const files = yield Promise.all(subdirs.map((subdir) => __async(this, null, function* () { + const res = dir + "/" + subdir; + return (yield this._stat(res)).isDirectory() ? this.readdirDeep(res) : res; + }))); + return files.reduce((a, f) => a.concat(f), []); + }); + } + lstat(filename) { + return __async(this, null, function* () { + try { + const stats = yield this._lstat(filename); + return stats; + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + }); + } + readlink(_0) { + return __async(this, arguments, function* (filename, opts = { encoding: "buffer" }) { + try { + const link = yield this._readlink(filename, opts); + return Buffer2.isBuffer(link) ? link : Buffer2.from(link); + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + }); + } + writelink(filename, buffer2) { + return __async(this, null, function* () { + return this._symlink(buffer2.toString("utf8"), filename); + }); + } +}; +function writeObjectLoose(_0) { + return __async(this, arguments, function* ({ fs, gitdir, object, format, oid }) { + if (format !== "deflated") { + throw new InternalError("GitObjectStoreLoose expects objects to write to be in deflated format"); + } + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const filepath = `${gitdir}/${source}`; + if (!(yield fs.exists(filepath))) + yield fs.write(filepath, object); + }); +} +var supportsCompressionStream = null; +function deflate(buffer2) { + return __async(this, null, function* () { + if (supportsCompressionStream === null) { + supportsCompressionStream = testCompressionStream(); + } + return supportsCompressionStream ? browserDeflate(buffer2) : import_pako.default.deflate(buffer2); + }); +} +function browserDeflate(buffer2) { + return __async(this, null, function* () { + const cs = new CompressionStream("deflate"); + const c = new Blob([buffer2]).stream().pipeThrough(cs); + return new Uint8Array(yield new Response(c).arrayBuffer()); + }); +} +function testCompressionStream() { + try { + const cs = new CompressionStream("deflate"); + new Blob([]).stream(); + if (cs) + return true; + } catch (_) { + } + return false; +} +function _writeObject(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + type, + object, + format = "content", + oid = void 0, + dryRun = false + }) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = yield shasum(object); + object = Buffer2.from(yield deflate(object)); + } + if (!dryRun) { + yield writeObjectLoose({ fs, gitdir, object, format: "deflated", oid }); + } + return oid; + }); +} +function assertParameter(name, value) { + if (value === void 0) { + throw new MissingParameterError(name); + } +} +function posixifyPathBuffer(buffer2) { + let idx; + while (~(idx = buffer2.indexOf(92))) + buffer2[idx] = 47; + return buffer2; +} +function add(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {}, + force = false + }) { + try { + assertParameter("fs", _fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + yield GitIndexManager.acquire({ fs, gitdir, cache }, (index2) => __async(this, null, function* () { + return addToIndex({ dir, gitdir, fs, filepath, index: index2, force }); + })); + } catch (err) { + err.caller = "git.add"; + throw err; + } + }); +} +function addToIndex(_0) { + return __async(this, arguments, function* ({ dir, gitdir, fs, filepath, index: index2, force }) { + filepath = Array.isArray(filepath) ? filepath : [filepath]; + const promises = filepath.map((currentFilepath) => __async(this, null, function* () { + if (!force) { + const ignored = yield GitIgnoreManager.isIgnored({ + fs, + dir, + gitdir, + filepath: currentFilepath + }); + if (ignored) + return; + } + const stats = yield fs.lstat(join(dir, currentFilepath)); + if (!stats) + throw new NotFoundError(currentFilepath); + if (stats.isDirectory()) { + const children2 = yield fs.readdir(join(dir, currentFilepath)); + const promises2 = children2.map((child) => addToIndex({ + dir, + gitdir, + fs, + filepath: [join(currentFilepath, child)], + index: index2, + force + })); + yield Promise.all(promises2); + } else { + const object = stats.isSymbolicLink() ? yield fs.readlink(join(dir, currentFilepath)).then(posixifyPathBuffer) : yield fs.read(join(dir, currentFilepath)); + if (object === null) + throw new NotFoundError(currentFilepath); + const oid = yield _writeObject({ fs, gitdir, type: "blob", object }); + index2.insert({ filepath: currentFilepath, stats, oid }); + } + })); + const settledPromises = yield Promise.allSettled(promises); + const rejectedPromises = settledPromises.filter((settle) => settle.status === "rejected").map((settle) => settle.reason); + if (rejectedPromises.length > 1) { + throw new MultipleGitError(rejectedPromises); + } + if (rejectedPromises.length === 1) { + throw rejectedPromises[0]; + } + const fulfilledPromises = settledPromises.filter((settle) => settle.status === "fulfilled" && settle.value).map((settle) => settle.value); + return fulfilledPromises; + }); +} +function _commit(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree + }) { + if (!ref) { + ref = yield GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + } + return GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + const inodes = flatFileListToDirectoryStructure(index2.entries); + const inode = inodes.get("."); + if (!tree) { + tree = yield constructTree({ fs, gitdir, inode, dryRun }); + } + if (!parent) { + try { + parent = [ + yield GitRefManager.resolve({ + fs, + gitdir, + ref + }) + ]; + } catch (err) { + parent = []; + } + } else { + parent = yield Promise.all(parent.map((p) => { + return GitRefManager.resolve({ fs, gitdir, ref: p }); + })); + } + let comm = GitCommit.from({ + tree, + parent, + author, + committer, + message + }); + if (signingKey) { + comm = yield GitCommit.sign(comm, onSign, signingKey); + } + const oid = yield _writeObject({ + fs, + gitdir, + type: "commit", + object: comm.toObject(), + dryRun + }); + if (!noUpdateBranch && !dryRun) { + yield GitRefManager.writeRef({ + fs, + gitdir, + ref, + value: oid + }); + } + return oid; + }); + }); + }); +} +function constructTree(_0) { + return __async(this, arguments, function* ({ fs, gitdir, inode, dryRun }) { + const children2 = inode.children; + for (const inode2 of children2) { + if (inode2.type === "tree") { + inode2.metadata.mode = "040000"; + inode2.metadata.oid = yield constructTree({ fs, gitdir, inode: inode2, dryRun }); + } + } + const entries = children2.map((inode2) => ({ + mode: inode2.metadata.mode, + path: inode2.basename, + oid: inode2.metadata.oid, + type: inode2.type + })); + const tree = GitTree.from(entries); + const oid = yield _writeObject({ + fs, + gitdir, + type: "tree", + object: tree.toObject(), + dryRun + }); + return oid; + }); +} +function resolveFilepath(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid, filepath }) { + if (filepath.startsWith("/")) { + throw new InvalidFilepathError("leading-slash"); + } else if (filepath.endsWith("/")) { + throw new InvalidFilepathError("trailing-slash"); + } + const _oid = oid; + const result = yield resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (filepath === "") { + oid = result.oid; + } else { + const pathArray = filepath.split("/"); + oid = yield _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid: _oid, + filepath + }); + } + return oid; + }); +} +function _resolveFilepath(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath + }) { + const name = pathArray.shift(); + for (const entry of tree) { + if (entry.path === name) { + if (pathArray.length === 0) { + return entry.oid; + } else { + const { type, object } = yield _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "blob", filepath); + } + tree = GitTree.from(object); + return _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath + }); + } + } + } + throw new NotFoundError(`file or directory found at "${oid}:${filepath}"`); + }); +} +function _readTree(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + filepath = void 0 + }) { + if (filepath !== void 0) { + oid = yield resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const { tree, oid: treeOid } = yield resolveTree({ fs, cache, gitdir, oid }); + const result = { + oid: treeOid, + tree: tree.entries() + }; + return result; + }); +} +function _writeTree(_0) { + return __async(this, arguments, function* ({ fs, gitdir, tree }) { + const object = GitTree.from(tree).toObject(); + const oid = yield _writeObject({ + fs, + gitdir, + type: "tree", + object, + format: "content" + }); + return oid; + }); +} +function _addNote(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey + }) { + let parent; + try { + parent = yield GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = yield _readTree({ + fs, + cache, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + if (force) { + tree = tree.filter((entry) => entry.path !== oid); + } else { + for (const entry of tree) { + if (entry.path === oid) { + throw new AlreadyExistsError("note", oid); + } + } + } + if (typeof note === "string") { + note = Buffer2.from(note, "utf8"); + } + const noteOid = yield _writeObject({ + fs, + gitdir, + type: "blob", + object: note, + format: "content" + }); + tree.push({ mode: "100644", path: oid, oid: noteOid, type: "blob" }); + const treeOid = yield _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = yield _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note added by 'isomorphic-git addNote' +`, + author, + committer, + signingKey + }); + return commitOid; + }); +} +function _getConfig(_0) { + return __async(this, arguments, function* ({ fs, gitdir, path: path2 }) { + const config = yield GitConfigManager.get({ fs, gitdir }); + return config.get(path2); + }); +} +function normalizeAuthorObject(_0) { + return __async(this, arguments, function* ({ fs, gitdir, author = {} }) { + let { name, email, timestamp, timezoneOffset } = author; + name = name || (yield _getConfig({ fs, gitdir, path: "user.name" })); + email = email || (yield _getConfig({ fs, gitdir, path: "user.email" })) || ""; + if (name === void 0) { + return void 0; + } + timestamp = timestamp != null ? timestamp : Math.floor(Date.now() / 1e3); + timezoneOffset = timezoneOffset != null ? timezoneOffset : new Date(timestamp * 1e3).getTimezoneOffset(); + return { name, email, timestamp, timezoneOffset }; + }); +} +function normalizeCommitterObject(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + author, + committer + }) { + committer = Object.assign({}, committer || author); + if (author) { + committer.timestamp = committer.timestamp || author.timestamp; + committer.timezoneOffset = committer.timezoneOffset || author.timezoneOffset; + } + committer = yield normalizeAuthorObject({ fs, gitdir, author: committer }); + return committer; + }); +} +function addNote(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + note, + force, + author: _author, + committer: _committer, + signingKey, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("note", note); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = yield normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = yield normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return yield _addNote({ + fs: new FileSystem(fs), + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.addNote"; + throw err; + } + }); +} +function _addRemote(_0) { + return __async(this, arguments, function* ({ fs, gitdir, remote, url, force }) { + if (remote !== import_clean_git_ref.default.clean(remote)) { + throw new InvalidRefNameError(remote, import_clean_git_ref.default.clean(remote)); + } + const config = yield GitConfigManager.get({ fs, gitdir }); + if (!force) { + const remoteNames = yield config.getSubsections("remote"); + if (remoteNames.includes(remote)) { + if (url !== (yield config.get(`remote.${remote}.url`))) { + throw new AlreadyExistsError("remote", remote); + } + } + } + yield config.set(`remote.${remote}.url`, url); + yield config.set(`remote.${remote}.fetch`, `+refs/heads/*:refs/remotes/${remote}/*`); + yield GitConfigManager.save({ fs, gitdir, config }); + }); +} +function addRemote(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + remote, + url, + force = false + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("remote", remote); + assertParameter("url", url); + return yield _addRemote({ + fs: new FileSystem(fs), + gitdir, + remote, + url, + force + }); + } catch (err) { + err.caller = "git.addRemote"; + throw err; + } + }); +} +function _annotatedTag(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false + }) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + if (!force && (yield GitRefManager.exists({ fs, gitdir, ref }))) { + throw new AlreadyExistsError("tag", ref); + } + const oid = yield GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + const { type } = yield _readObject({ fs, cache, gitdir, oid }); + let tagObject = GitAnnotatedTag.from({ + object: oid, + type, + tag: ref.replace("refs/tags/", ""), + tagger, + message, + gpgsig + }); + if (signingKey) { + tagObject = yield GitAnnotatedTag.sign(tagObject, onSign, signingKey); + } + const value = yield _writeObject({ + fs, + gitdir, + type: "tag", + object: tagObject.toObject() + }); + yield GitRefManager.writeRef({ fs, gitdir, ref, value }); + }); +} +function annotatedTag(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref, + tagger: _tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const tagger = yield normalizeAuthorObject({ fs, gitdir, author: _tagger }); + if (!tagger) + throw new MissingNameError("tagger"); + return yield _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message, + gpgsig, + object, + signingKey, + force + }); + } catch (err) { + err.caller = "git.annotatedTag"; + throw err; + } + }); +} +function _branch(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + ref, + object, + checkout: checkout2 = false, + force = false + }) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + const fullref = `refs/heads/${ref}`; + if (!force) { + const exist = yield GitRefManager.exists({ fs, gitdir, ref: fullref }); + if (exist) { + throw new AlreadyExistsError("branch", ref, false); + } + } + let oid; + try { + oid = yield GitRefManager.resolve({ fs, gitdir, ref: object || "HEAD" }); + } catch (e) { + } + if (oid) { + yield GitRefManager.writeRef({ fs, gitdir, ref: fullref, value: oid }); + } + if (checkout2) { + yield GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullref + }); + } + }); +} +function branch(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + checkout: checkout2 = false, + force = false + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return yield _branch({ + fs: new FileSystem(fs), + gitdir, + ref, + object, + checkout: checkout2, + force + }); + } catch (err) { + err.caller = "git.branch"; + throw err; + } + }); +} +function arrayRange(start, end) { + const length = end - start; + return Array.from({ length }, (_, i) => start + i); +} +var flat = typeof Array.prototype.flat === "undefined" ? (entries) => entries.reduce((acc, x) => acc.concat(x), []) : (entries) => entries.flat(); +var RunningMinimum = class { + constructor() { + this.value = null; + } + consider(value) { + if (value === null || value === void 0) + return; + if (this.value === null) { + this.value = value; + } else if (value < this.value) { + this.value = value; + } + } + reset() { + this.value = null; + } +}; +function* unionOfIterators(sets) { + const min = new RunningMinimum(); + let minimum; + const heads = []; + const numsets = sets.length; + for (let i = 0; i < numsets; i++) { + heads[i] = sets[i].next().value; + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + if (min.value === null) + return; + while (true) { + const result = []; + minimum = min.value; + min.reset(); + for (let i = 0; i < numsets; i++) { + if (heads[i] !== void 0 && heads[i] === minimum) { + result[i] = heads[i]; + heads[i] = sets[i].next().value; + } else { + result[i] = null; + } + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + yield result; + if (min.value === null) + return; + } +} +function _walk(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + dir, + gitdir, + trees, + map = (_, entry) => __async(this, null, function* () { + return entry; + }), + reduce = (parent, children2) => __async(this, null, function* () { + const flatten = flat(children2); + if (parent !== void 0) + flatten.unshift(parent); + return flatten; + }), + iterate = (walk2, children2) => Promise.all([...children2].map(walk2)) + }) { + const walkers = trees.map((proxy) => proxy[GitWalkSymbol]({ fs, dir, gitdir, cache })); + const root = new Array(walkers.length).fill("."); + const range = arrayRange(0, walkers.length); + const unionWalkerFromReaddir = (entries) => __async(this, null, function* () { + range.map((i) => { + entries[i] = entries[i] && new walkers[i].ConstructEntry(entries[i]); + }); + const subdirs = yield Promise.all(range.map((i) => entries[i] ? walkers[i].readdir(entries[i]) : [])); + const iterators = subdirs.map((array) => array === null ? [] : array).map((array) => array[Symbol.iterator]()); + return { + entries, + children: unionOfIterators(iterators) + }; + }); + const walk2 = (root2) => __async(this, null, function* () { + const { entries, children: children2 } = yield unionWalkerFromReaddir(root2); + const fullpath = entries.find((entry) => entry && entry._fullpath)._fullpath; + const parent = yield map(fullpath, entries); + if (parent !== null) { + let walkedChildren = yield iterate(walk2, children2); + walkedChildren = walkedChildren.filter((x) => x !== void 0); + return reduce(parent, walkedChildren); + } + }); + return walk2(root); + }); +} +var worthWalking = (filepath, root) => { + if (filepath === "." || root == null || root.length === 0 || root === ".") { + return true; + } + if (root.length >= filepath.length) { + return root.startsWith(filepath); + } else { + return filepath.startsWith(root); + } +}; +function _checkout(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onProgress, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track = true + }) { + let oid; + try { + oid = yield GitRefManager.resolve({ fs, gitdir, ref }); + } catch (err) { + if (ref === "HEAD") + throw err; + const remoteRef = `${remote}/${ref}`; + oid = yield GitRefManager.resolve({ + fs, + gitdir, + ref: remoteRef + }); + if (track) { + const config = yield GitConfigManager.get({ fs, gitdir }); + yield config.set(`branch.${ref}.remote`, remote); + yield config.set(`branch.${ref}.merge`, `refs/heads/${ref}`); + yield GitConfigManager.save({ fs, gitdir, config }); + } + yield GitRefManager.writeRef({ + fs, + gitdir, + ref: `refs/heads/${ref}`, + value: oid + }); + } + if (!noCheckout) { + let ops; + try { + ops = yield analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths + }); + } catch (err) { + if (err instanceof NotFoundError && err.data.what === oid) { + throw new CommitNotFetchedError(ref, oid); + } else { + throw err; + } + } + const conflicts2 = ops.filter(([method]) => method === "conflict").map(([method, fullpath]) => fullpath); + if (conflicts2.length > 0) { + throw new CheckoutConflictError(conflicts2); + } + const errors = ops.filter(([method]) => method === "error").map(([method, fullpath]) => fullpath); + if (errors.length > 0) { + throw new InternalError(errors.join(", ")); + } + if (dryRun) { + return; + } + let count = 0; + const total = ops.length; + yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + yield Promise.all(ops.filter(([method]) => method === "delete" || method === "delete-index").map(function(_02) { + return __async(this, arguments, function* ([method, fullpath]) { + const filepath = `${dir}/${fullpath}`; + if (method === "delete") { + yield fs.rm(filepath); + } + index2.delete({ filepath: fullpath }); + if (onProgress) { + yield onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + }); + })); + }); + }); + yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + for (const [method, fullpath] of ops) { + if (method === "rmdir" || method === "rmdir-index") { + const filepath = `${dir}/${fullpath}`; + try { + if (method === "rmdir-index") { + index2.delete({ filepath: fullpath }); + } + yield fs.rmdir(filepath); + if (onProgress) { + yield onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + if (e.code === "ENOTEMPTY") { + console.log(`Did not delete ${fullpath} because directory is not empty`); + } else { + throw e; + } + } + } + } + }); + }); + yield Promise.all(ops.filter(([method]) => method === "mkdir" || method === "mkdir-index").map(function(_02) { + return __async(this, arguments, function* ([_, fullpath]) { + const filepath = `${dir}/${fullpath}`; + yield fs.mkdir(filepath); + if (onProgress) { + yield onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + }); + })); + yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + yield Promise.all(ops.filter(([method]) => method === "create" || method === "create-index" || method === "update" || method === "mkdir-index").map(function(_02) { + return __async(this, arguments, function* ([method, fullpath, oid2, mode, chmod]) { + const filepath = `${dir}/${fullpath}`; + try { + if (method !== "create-index" && method !== "mkdir-index") { + const { object } = yield _readObject({ fs, cache, gitdir, oid: oid2 }); + if (chmod) { + yield fs.rm(filepath); + } + if (mode === 33188) { + yield fs.write(filepath, object); + } else if (mode === 33261) { + yield fs.write(filepath, object, { mode: 511 }); + } else if (mode === 40960) { + yield fs.writelink(filepath, object); + } else { + throw new InternalError(`Invalid mode 0o${mode.toString(8)} detected in blob ${oid2}`); + } + } + const stats = yield fs.lstat(filepath); + if (mode === 33261) { + stats.mode = 493; + } + if (method === "mkdir-index") { + stats.mode = 57344; + } + index2.insert({ + filepath: fullpath, + stats, + oid: oid2 + }); + if (onProgress) { + yield onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + console.log(e); + } + }); + })); + }); + }); + } + if (!noUpdateHead) { + const fullRef = yield GitRefManager.expand({ fs, gitdir, ref }); + if (fullRef.startsWith("refs/heads")) { + yield GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullRef + }); + } else { + yield GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value: oid }); + } + } + }); +} +function analyze(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths + }) { + let count = 0; + return _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: function(_02, _1) { + return __async(this, arguments, function* (fullpath, [commit2, workdir, stage]) { + if (fullpath === ".") + return; + if (filepaths && !filepaths.some((base) => worthWalking(fullpath, base))) { + return null; + } + if (onProgress) { + yield onProgress({ phase: "Analyzing workdir", loaded: ++count }); + } + const key2 = [!!stage, !!commit2, !!workdir].map(Number).join(""); + switch (key2) { + case "000": + return; + case "001": + if (force && filepaths && filepaths.includes(fullpath)) { + return ["delete", fullpath]; + } + return; + case "010": { + switch (yield commit2.type()) { + case "tree": { + return ["mkdir", fullpath]; + } + case "blob": { + return [ + "create", + fullpath, + yield commit2.oid(), + yield commit2.mode() + ]; + } + case "commit": { + return [ + "mkdir-index", + fullpath, + yield commit2.oid(), + yield commit2.mode() + ]; + } + default: { + return [ + "error", + `new entry Unhandled type ${yield commit2.type()}` + ]; + } + } + } + case "011": { + switch (`${yield commit2.type()}-${yield workdir.type()}`) { + case "tree-tree": { + return; + } + case "tree-blob": + case "blob-tree": { + return ["conflict", fullpath]; + } + case "blob-blob": { + if ((yield commit2.oid()) !== (yield workdir.oid())) { + if (force) { + return [ + "update", + fullpath, + yield commit2.oid(), + yield commit2.mode(), + (yield commit2.mode()) !== (yield workdir.mode()) + ]; + } else { + return ["conflict", fullpath]; + } + } else { + if ((yield commit2.mode()) !== (yield workdir.mode())) { + if (force) { + return [ + "update", + fullpath, + yield commit2.oid(), + yield commit2.mode(), + true + ]; + } else { + return ["conflict", fullpath]; + } + } else { + return [ + "create-index", + fullpath, + yield commit2.oid(), + yield commit2.mode() + ]; + } + } + } + case "commit-tree": { + return; + } + case "commit-blob": { + return ["conflict", fullpath]; + } + default: { + return ["error", `new entry Unhandled type ${commit2.type}`]; + } + } + } + case "100": { + return ["delete-index", fullpath]; + } + case "101": { + switch (yield stage.type()) { + case "tree": { + return ["rmdir", fullpath]; + } + case "blob": { + if ((yield stage.oid()) !== (yield workdir.oid())) { + if (force) { + return ["delete", fullpath]; + } else { + return ["conflict", fullpath]; + } + } else { + return ["delete", fullpath]; + } + } + case "commit": { + return ["rmdir-index", fullpath]; + } + default: { + return [ + "error", + `delete entry Unhandled type ${yield stage.type()}` + ]; + } + } + } + case "110": + case "111": { + switch (`${yield stage.type()}-${yield commit2.type()}`) { + case "tree-tree": { + return; + } + case "blob-blob": { + if ((yield stage.oid()) === (yield commit2.oid()) && (yield stage.mode()) === (yield commit2.mode()) && !force) { + return; + } + if (workdir) { + if ((yield workdir.oid()) !== (yield stage.oid()) && (yield workdir.oid()) !== (yield commit2.oid())) { + if (force) { + return [ + "update", + fullpath, + yield commit2.oid(), + yield commit2.mode(), + (yield commit2.mode()) !== (yield workdir.mode()) + ]; + } else { + return ["conflict", fullpath]; + } + } + } else if (force) { + return [ + "update", + fullpath, + yield commit2.oid(), + yield commit2.mode(), + (yield commit2.mode()) !== (yield stage.mode()) + ]; + } + if ((yield commit2.mode()) !== (yield stage.mode())) { + return [ + "update", + fullpath, + yield commit2.oid(), + yield commit2.mode(), + true + ]; + } + if ((yield commit2.oid()) !== (yield stage.oid())) { + return [ + "update", + fullpath, + yield commit2.oid(), + yield commit2.mode(), + false + ]; + } else { + return; + } + } + case "tree-blob": { + return ["update-dir-to-blob", fullpath, yield commit2.oid()]; + } + case "blob-tree": { + return ["update-blob-to-tree", fullpath]; + } + case "commit-commit": { + return [ + "mkdir-index", + fullpath, + yield commit2.oid(), + yield commit2.mode() + ]; + } + default: { + return [ + "error", + `update entry Unhandled type ${yield stage.type()}-${yield commit2.type()}` + ]; + } + } + } + } + }); + }, + reduce: function(parent, children2) { + return __async(this, null, function* () { + children2 = flat(children2); + if (!parent) { + return children2; + } else if (parent && parent[0] === "rmdir") { + children2.push(parent); + return children2; + } else { + children2.unshift(parent); + return children2; + } + }); + } + }); + }); +} +function checkout(_0) { + return __async(this, arguments, function* ({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + remote = "origin", + ref: _ref, + filepaths, + noCheckout = false, + noUpdateHead = _ref === void 0, + dryRun = false, + force = false, + track = true, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + const ref = _ref || "HEAD"; + return yield _checkout({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track + }); + } catch (err) { + err.caller = "git.checkout"; + throw err; + } + }); +} +var abbreviateRx = new RegExp("^refs/(heads/|tags/|remotes/)?(.*)"); +function abbreviateRef(ref) { + const match = abbreviateRx.exec(ref); + if (match) { + if (match[1] === "remotes/" && ref.endsWith("/HEAD")) { + return match[2].slice(0, -5); + } else { + return match[2]; + } + } + return ref; +} +function _currentBranch(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + fullname = false, + test = false + }) { + const ref = yield GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + if (test) { + try { + yield GitRefManager.resolve({ fs, gitdir, ref }); + } catch (_) { + return; + } + } + if (!ref.startsWith("refs/")) + return; + return fullname ? ref : abbreviateRef(ref); + }); +} +function translateSSHtoHTTP(url) { + url = url.replace(/^git@([^:]+):/, "https://$1/"); + url = url.replace(/^ssh:\/\//, "https://"); + return url; +} +function calculateBasicAuthHeader({ username = "", password = "" }) { + return `Basic ${Buffer2.from(`${username}:${password}`).toString("base64")}`; +} +function forAwait(iterable, cb) { + return __async(this, null, function* () { + const iter = getIterator(iterable); + while (true) { + const { value, done } = yield iter.next(); + if (value) + yield cb(value); + if (done) + break; + } + if (iter.return) + iter.return(); + }); +} +function collect(iterable) { + return __async(this, null, function* () { + let size = 0; + const buffers = []; + yield forAwait(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; + }); +} +function extractAuthFromUrl(url) { + let userpass = url.match(/^https?:\/\/([^/]+)@/); + if (userpass == null) + return { url, auth: {} }; + userpass = userpass[1]; + const [username, password] = userpass.split(":"); + url = url.replace(`${userpass}@`, ""); + return { url, auth: { username, password } }; +} +function padHex(b, n) { + const s = n.toString(16); + return "0".repeat(b - s.length) + s; +} +var GitPktLine = class { + static flush() { + return Buffer2.from("0000", "utf8"); + } + static delim() { + return Buffer2.from("0001", "utf8"); + } + static encode(line) { + if (typeof line === "string") { + line = Buffer2.from(line); + } + const length = line.length + 4; + const hexlength = padHex(4, length); + return Buffer2.concat([Buffer2.from(hexlength, "utf8"), line]); + } + static streamReader(stream) { + const reader = new StreamReader(stream); + return function read() { + return __async(this, null, function* () { + try { + let length = yield reader.read(4); + if (length == null) + return true; + length = parseInt(length.toString("utf8"), 16); + if (length === 0) + return null; + if (length === 1) + return null; + const buffer2 = yield reader.read(length - 4); + if (buffer2 == null) + return true; + return buffer2; + } catch (err) { + console.log("error", err); + return true; + } + }); + }; + } +}; +function parseCapabilitiesV2(read) { + return __async(this, null, function* () { + const capabilities2 = {}; + let line; + while (true) { + line = yield read(); + if (line === true) + break; + if (line === null) + continue; + line = line.toString("utf8").replace(/\n$/, ""); + const i = line.indexOf("="); + if (i > -1) { + const key2 = line.slice(0, i); + const value = line.slice(i + 1); + capabilities2[key2] = value; + } else { + capabilities2[line] = true; + } + } + return { protocolVersion: 2, capabilities2 }; + }); +} +function parseRefsAdResponse(_0, _1) { + return __async(this, arguments, function* (stream, { service }) { + const capabilities = new Set(); + const refs = new Map(); + const symrefs = new Map(); + const read = GitPktLine.streamReader(stream); + let lineOne = yield read(); + while (lineOne === null) + lineOne = yield read(); + if (lineOne === true) + throw new EmptyServerResponseError(); + if (lineOne.includes("version 2")) { + return parseCapabilitiesV2(read); + } + if (lineOne.toString("utf8").replace(/\n$/, "") !== `# service=${service}`) { + throw new ParseError(`# service=${service}\\n`, lineOne.toString("utf8")); + } + let lineTwo = yield read(); + while (lineTwo === null) + lineTwo = yield read(); + if (lineTwo === true) + return { capabilities, refs, symrefs }; + lineTwo = lineTwo.toString("utf8"); + if (lineTwo.includes("version 2")) { + return parseCapabilitiesV2(read); + } + const [firstRef, capabilitiesLine] = splitAndAssert(lineTwo, "\0", "\\x00"); + capabilitiesLine.split(" ").map((x) => capabilities.add(x)); + const [ref, name] = splitAndAssert(firstRef, " ", " "); + refs.set(name, ref); + while (true) { + const line = yield read(); + if (line === true) + break; + if (line !== null) { + const [ref2, name2] = splitAndAssert(line.toString("utf8"), " ", " "); + refs.set(name2, ref2); + } + } + for (const cap of capabilities) { + if (cap.startsWith("symref=")) { + const m = cap.match(/symref=([^:]+):(.*)/); + if (m.length === 3) { + symrefs.set(m[1], m[2]); + } + } + } + return { protocolVersion: 1, capabilities, refs, symrefs }; + }); +} +function splitAndAssert(line, sep2, expected) { + const split = line.trim().split(sep2); + if (split.length !== 2) { + throw new ParseError(`Two strings separated by '${expected}'`, line.toString("utf8")); + } + return split; +} +var corsProxify = (corsProxy, url) => corsProxy.endsWith("?") ? `${corsProxy}${url}` : `${corsProxy}/${url.replace(/^https?:\/\//, "")}`; +var updateHeaders = (headers, auth) => { + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (auth.headers) { + Object.assign(headers, auth.headers); + } +}; +var stringifyBody = (res) => __async(void 0, null, function* () { + try { + const data = Buffer2.from(yield collect(res.body)); + const response = data.toString("utf8"); + const preview = response.length < 256 ? response : response.slice(0, 256) + "..."; + return { preview, response, data }; + } catch (e) { + return {}; + } +}); +var GitRemoteHTTP = class { + static capabilities() { + return __async(this, null, function* () { + return ["discover", "connect"]; + }); + } + static discover(_0) { + return __async(this, arguments, function* ({ + http, + onProgress, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service, + url: _origUrl, + headers, + protocolVersion + }) { + let { url, auth } = extractAuthFromUrl(_origUrl); + const proxifiedURL = corsProxy ? corsProxify(corsProxy, url) : url; + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (protocolVersion === 2) { + headers["Git-Protocol"] = "version=2"; + } + let res; + let tryAgain; + let providedAuthBefore = false; + do { + res = yield http.request({ + onProgress, + method: "GET", + url: `${proxifiedURL}/info/refs?service=${service}`, + headers + }); + tryAgain = false; + if (res.statusCode === 401 || res.statusCode === 203) { + const getAuth = providedAuthBefore ? onAuthFailure : onAuth; + if (getAuth) { + auth = yield getAuth(url, __spreadProps(__spreadValues({}, auth), { + headers: __spreadValues({}, headers) + })); + if (auth && auth.cancel) { + throw new UserCanceledError(); + } else if (auth) { + updateHeaders(headers, auth); + providedAuthBefore = true; + tryAgain = true; + } + } + } else if (res.statusCode === 200 && providedAuthBefore && onAuthSuccess) { + yield onAuthSuccess(url, auth); + } + } while (tryAgain); + if (res.statusCode !== 200) { + const { response } = yield stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + if (res.headers["content-type"] === `application/x-${service}-advertisement`) { + const remoteHTTP = yield parseRefsAdResponse(res.body, { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } else { + const { preview, response, data } = yield stringifyBody(res); + try { + const remoteHTTP = yield parseRefsAdResponse([data], { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } catch (e) { + throw new SmartHttpError(preview, response); + } + } + }); + } + static connect(_0) { + return __async(this, arguments, function* ({ + http, + onProgress, + corsProxy, + service, + url, + auth, + body, + headers + }) { + const urlAuth = extractAuthFromUrl(url); + if (urlAuth) + url = urlAuth.url; + if (corsProxy) + url = corsProxify(corsProxy, url); + headers["content-type"] = `application/x-${service}-request`; + headers.accept = `application/x-${service}-result`; + updateHeaders(headers, auth); + const res = yield http.request({ + onProgress, + method: "POST", + url: `${url}/${service}`, + body, + headers + }); + if (res.statusCode !== 200) { + const { response } = stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + return res; + }); + } +}; +function parseRemoteUrl({ url }) { + if (url.startsWith("git@")) { + return { + transport: "ssh", + address: url + }; + } + const matches = url.match(/(\w+)(:\/\/|::)(.*)/); + if (matches === null) + return; + if (matches[2] === "://") { + return { + transport: matches[1], + address: matches[0] + }; + } + if (matches[2] === "::") { + return { + transport: matches[1], + address: matches[3] + }; + } +} +var GitRemoteManager = class { + static getRemoteHelperFor({ url }) { + const remoteHelpers = new Map(); + remoteHelpers.set("http", GitRemoteHTTP); + remoteHelpers.set("https", GitRemoteHTTP); + const parts = parseRemoteUrl({ url }); + if (!parts) { + throw new UrlParseError(url); + } + if (remoteHelpers.has(parts.transport)) { + return remoteHelpers.get(parts.transport); + } + throw new UnknownTransportError(url, parts.transport, parts.transport === "ssh" ? translateSSHtoHTTP(url) : void 0); + } +}; +var lock$1 = null; +var GitShallowManager = class { + static read(_0) { + return __async(this, arguments, function* ({ fs, gitdir }) { + if (lock$1 === null) + lock$1 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + const oids = new Set(); + yield lock$1.acquire(filepath, function() { + return __async(this, null, function* () { + const text2 = yield fs.read(filepath, { encoding: "utf8" }); + if (text2 === null) + return oids; + if (text2.trim() === "") + return oids; + text2.trim().split("\n").map((oid) => oids.add(oid)); + }); + }); + return oids; + }); + } + static write(_0) { + return __async(this, arguments, function* ({ fs, gitdir, oids }) { + if (lock$1 === null) + lock$1 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + if (oids.size > 0) { + const text2 = [...oids].join("\n") + "\n"; + yield lock$1.acquire(filepath, function() { + return __async(this, null, function* () { + yield fs.write(filepath, text2, { + encoding: "utf8" + }); + }); + }); + } else { + yield lock$1.acquire(filepath, function() { + return __async(this, null, function* () { + yield fs.rm(filepath); + }); + }); + } + }); + } +}; +function hasObjectLoose(_0) { + return __async(this, arguments, function* ({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + return fs.exists(`${gitdir}/${source}`); + }); +} +function hasObjectPacked(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }) { + let list = yield fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = yield readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + if (p.offsets.has(oid)) { + return true; + } + } + return false; + }); +} +function hasObject(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + format = "content" + }) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result = yield hasObjectLoose({ fs, gitdir, oid }); + if (!result) { + result = yield hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + return result; + }); +} +function emptyPackfile(pack) { + const pheader = "5041434b"; + const version2 = "00000002"; + const obCount = "00000000"; + const header = pheader + version2 + obCount; + return pack.slice(0, 12).toString("hex") === header; +} +function filterCapabilities(server, client) { + const serverNames = server.map((cap) => cap.split("=", 1)[0]); + return client.filter((cap) => { + const name = cap.split("=", 1)[0]; + return serverNames.includes(name); + }); +} +var pkg = { + name: "isomorphic-git", + version: "1.21.0", + agent: "git/isomorphic-git@1.21.0" +}; +var FIFO = class { + constructor() { + this._queue = []; + } + write(chunk) { + if (this._ended) { + throw Error("You cannot write to a FIFO that has already been ended!"); + } + if (this._waiting) { + const resolve = this._waiting; + this._waiting = null; + resolve({ value: chunk }); + } else { + this._queue.push(chunk); + } + } + end() { + this._ended = true; + if (this._waiting) { + const resolve = this._waiting; + this._waiting = null; + resolve({ done: true }); + } + } + destroy(err) { + this._ended = true; + this.error = err; + } + next() { + return __async(this, null, function* () { + if (this._queue.length > 0) { + return { value: this._queue.shift() }; + } + if (this._ended) { + return { done: true }; + } + if (this._waiting) { + throw Error("You cannot call read until the previous call to read has returned!"); + } + return new Promise((resolve) => { + this._waiting = resolve; + }); + }); + } +}; +function findSplit(str) { + const r = str.indexOf("\r"); + const n = str.indexOf("\n"); + if (r === -1 && n === -1) + return -1; + if (r === -1) + return n + 1; + if (n === -1) + return r + 1; + if (n === r + 1) + return n + 1; + return Math.min(r, n) + 1; +} +function splitLines(input) { + const output = new FIFO(); + let tmp = ""; + (() => __async(this, null, function* () { + yield forAwait(input, (chunk) => { + chunk = chunk.toString("utf8"); + tmp += chunk; + while (true) { + const i = findSplit(tmp); + if (i === -1) + break; + output.write(tmp.slice(0, i)); + tmp = tmp.slice(i); + } + }); + if (tmp.length > 0) { + output.write(tmp); + } + output.end(); + }))(); + return output; +} +var GitSideBand = class { + static demux(input) { + const read = GitPktLine.streamReader(input); + const packetlines = new FIFO(); + const packfile = new FIFO(); + const progress = new FIFO(); + const nextBit = function() { + return __async(this, null, function* () { + const line = yield read(); + if (line === null) + return nextBit(); + if (line === true) { + packetlines.end(); + progress.end(); + packfile.end(); + return; + } + switch (line[0]) { + case 1: { + packfile.write(line.slice(1)); + break; + } + case 2: { + progress.write(line.slice(1)); + break; + } + case 3: { + const error = line.slice(1); + progress.write(error); + packfile.destroy(new Error(error.toString("utf8"))); + return; + } + default: { + packetlines.write(line.slice(0)); + } + } + nextBit(); + }); + }; + nextBit(); + return { + packetlines, + packfile, + progress + }; + } +}; +function parseUploadPackResponse(stream) { + return __async(this, null, function* () { + const { packetlines, packfile, progress } = GitSideBand.demux(stream); + const shallows = []; + const unshallows = []; + const acks = []; + let nak = false; + let done = false; + return new Promise((resolve, reject) => { + forAwait(packetlines, (data) => { + const line = data.toString("utf8").trim(); + if (line.startsWith("shallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + shallows.push(oid); + } else if (line.startsWith("unshallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + unshallows.push(oid); + } else if (line.startsWith("ACK")) { + const [, oid, status2] = line.split(" "); + acks.push({ oid, status: status2 }); + if (!status2) + done = true; + } else if (line.startsWith("NAK")) { + nak = true; + done = true; + } + if (done) { + resolve({ shallows, unshallows, acks, nak, packfile, progress }); + } + }); + }); + }); +} +function writeUploadPackRequest({ + capabilities = [], + wants = [], + haves = [], + shallows = [], + depth = null, + since = null, + exclude = [] +}) { + const packstream = []; + wants = [...new Set(wants)]; + let firstLineCapabilities = ` ${capabilities.join(" ")}`; + for (const oid of wants) { + packstream.push(GitPktLine.encode(`want ${oid}${firstLineCapabilities} +`)); + firstLineCapabilities = ""; + } + for (const oid of shallows) { + packstream.push(GitPktLine.encode(`shallow ${oid} +`)); + } + if (depth !== null) { + packstream.push(GitPktLine.encode(`deepen ${depth} +`)); + } + if (since !== null) { + packstream.push(GitPktLine.encode(`deepen-since ${Math.floor(since.valueOf() / 1e3)} +`)); + } + for (const oid of exclude) { + packstream.push(GitPktLine.encode(`deepen-not ${oid} +`)); + } + packstream.push(GitPktLine.flush()); + for (const oid of haves) { + packstream.push(GitPktLine.encode(`have ${oid} +`)); + } + packstream.push(GitPktLine.encode(`done +`)); + return packstream; +} +function _fetch(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote: _remote, + url: _url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false + }) { + const ref = _ref || (yield _currentBranch({ fs, gitdir, test: true })); + const config = yield GitConfigManager.get({ fs, gitdir }); + const remote = _remote || ref && (yield config.get(`branch.${ref}.remote`)) || "origin"; + const url = _url || (yield config.get(`remote.${remote}.url`)); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || ref && (yield config.get(`branch.${ref}.merge`)) || _ref || "HEAD"; + if (corsProxy === void 0) { + corsProxy = yield config.get("http.corsProxy"); + } + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remoteHTTP = yield GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = remoteHTTP.auth; + const remoteRefs = remoteHTTP.refs; + if (remoteRefs.size === 0) { + return { + defaultBranch: null, + fetchHead: null, + fetchHeadDescription: null + }; + } + if (depth !== null && !remoteHTTP.capabilities.has("shallow")) { + throw new RemoteCapabilityError("shallow", "depth"); + } + if (since !== null && !remoteHTTP.capabilities.has("deepen-since")) { + throw new RemoteCapabilityError("deepen-since", "since"); + } + if (exclude.length > 0 && !remoteHTTP.capabilities.has("deepen-not")) { + throw new RemoteCapabilityError("deepen-not", "exclude"); + } + if (relative === true && !remoteHTTP.capabilities.has("deepen-relative")) { + throw new RemoteCapabilityError("deepen-relative", "relative"); + } + const { oid, fullref } = GitRefManager.resolveAgainstMap({ + ref: remoteRef, + map: remoteRefs + }); + for (const remoteRef2 of remoteRefs.keys()) { + if (remoteRef2 === fullref || remoteRef2 === "HEAD" || remoteRef2.startsWith("refs/heads/") || tags && remoteRef2.startsWith("refs/tags/")) { + continue; + } + remoteRefs.delete(remoteRef2); + } + const capabilities = filterCapabilities([...remoteHTTP.capabilities], [ + "multi_ack_detailed", + "no-done", + "side-band-64k", + "ofs-delta", + `agent=${pkg.agent}` + ]); + if (relative) + capabilities.push("deepen-relative"); + const wants = singleBranch ? [oid] : remoteRefs.values(); + const haveRefs = singleBranch ? [ref] : yield GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs` + }); + let haves = []; + for (let ref2 of haveRefs) { + try { + ref2 = yield GitRefManager.expand({ fs, gitdir, ref: ref2 }); + const oid2 = yield GitRefManager.resolve({ fs, gitdir, ref: ref2 }); + if (yield hasObject({ fs, cache, gitdir, oid: oid2 })) { + haves.push(oid2); + } + } catch (err) { + } + } + haves = [...new Set(haves)]; + const oids = yield GitShallowManager.read({ fs, gitdir }); + const shallows = remoteHTTP.capabilities.has("shallow") ? [...oids] : []; + const packstream = writeUploadPackRequest({ + capabilities, + wants, + haves, + shallows, + depth, + since, + exclude + }); + const packbuffer = Buffer2.from(yield collect(packstream)); + const raw = yield GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-upload-pack", + url, + auth, + body: [packbuffer], + headers + }); + const response = yield parseUploadPackResponse(raw.body); + if (raw.headers) { + response.headers = raw.headers; + } + for (const oid2 of response.shallows) { + if (!oids.has(oid2)) { + try { + const { object } = yield _readObject({ fs, cache, gitdir, oid: oid2 }); + const commit2 = new GitCommit(object); + const hasParents = yield Promise.all(commit2.headers().parent.map((oid3) => hasObject({ fs, cache, gitdir, oid: oid3 }))); + const haveAllParents = hasParents.length === 0 || hasParents.every((has) => has); + if (!haveAllParents) { + oids.add(oid2); + } + } catch (err) { + oids.add(oid2); + } + } + } + for (const oid2 of response.unshallows) { + oids.delete(oid2); + } + yield GitShallowManager.write({ fs, gitdir, oids }); + if (singleBranch) { + const refs = new Map([[fullref, oid]]); + const symrefs = new Map(); + let bail = 10; + let key2 = fullref; + while (bail--) { + const value = remoteHTTP.symrefs.get(key2); + if (value === void 0) + break; + symrefs.set(key2, value); + key2 = value; + } + const realRef = remoteRefs.get(key2); + if (realRef) { + refs.set(key2, realRef); + } + const { pruned } = yield GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + prune + }); + if (prune) { + response.pruned = pruned; + } + } else { + const { pruned } = yield GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs: remoteRefs, + symrefs: remoteHTTP.symrefs, + tags, + prune, + pruneTags + }); + if (prune) { + response.pruned = pruned; + } + } + response.HEAD = remoteHTTP.symrefs.get("HEAD"); + if (response.HEAD === void 0) { + const { oid: oid2 } = GitRefManager.resolveAgainstMap({ + ref: "HEAD", + map: remoteRefs + }); + for (const [key2, value] of remoteRefs.entries()) { + if (key2 !== "HEAD" && value === oid2) { + response.HEAD = key2; + break; + } + } + } + const noun = fullref.startsWith("refs/tags") ? "tag" : "branch"; + response.FETCH_HEAD = { + oid, + description: `${noun} '${abbreviateRef(fullref)}' of ${url}` + }; + if (onProgress || onMessage) { + const lines = splitLines(response.progress); + forAwait(lines, (line) => __async(this, null, function* () { + if (onMessage) + yield onMessage(line); + if (onProgress) { + const matches = line.match(/([^:]*).*\((\d+?)\/(\d+?)\)/); + if (matches) { + yield onProgress({ + phase: matches[1].trim(), + loaded: parseInt(matches[2], 10), + total: parseInt(matches[3], 10) + }); + } + } + })); + } + const packfile = Buffer2.from(yield collect(response.packfile)); + const packfileSha = packfile.slice(-20).toString("hex"); + const res = { + defaultBranch: response.HEAD, + fetchHead: response.FETCH_HEAD.oid, + fetchHeadDescription: response.FETCH_HEAD.description + }; + if (response.headers) { + res.headers = response.headers; + } + if (prune) { + res.pruned = response.pruned; + } + if (packfileSha !== "" && !emptyPackfile(packfile)) { + res.packfile = `objects/pack/pack-${packfileSha}.pack`; + const fullpath = join(gitdir, res.packfile); + yield fs.write(fullpath, packfile); + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + const idx = yield GitPackIndex.fromPack({ + pack: packfile, + getExternalRefDelta, + onProgress + }); + yield fs.write(fullpath.replace(/\.pack$/, ".idx"), yield idx.toBuffer()); + } + return res; + }); +} +function _init(_0) { + return __async(this, arguments, function* ({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" + }) { + if (yield fs.exists(gitdir + "/config")) + return; + let folders = [ + "hooks", + "info", + "objects/info", + "objects/pack", + "refs/heads", + "refs/tags" + ]; + folders = folders.map((dir2) => gitdir + "/" + dir2); + for (const folder of folders) { + yield fs.mkdir(folder); + } + yield fs.write(gitdir + "/config", `[core] + repositoryformatversion = 0 + filemode = false + bare = ${bare} +` + (bare ? "" : " logallrefupdates = true\n") + " symlinks = false\n ignorecase = true\n"); + yield fs.write(gitdir + "/HEAD", `ref: refs/heads/${defaultBranch} +`); + }); +} +function _clone(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative, + singleBranch, + noCheckout, + noTags, + headers + }) { + try { + yield _init({ fs, gitdir }); + yield _addRemote({ fs, gitdir, remote, url, force: false }); + if (corsProxy) { + const config = yield GitConfigManager.get({ fs, gitdir }); + yield config.set(`http.corsProxy`, corsProxy); + yield GitConfigManager.save({ fs, gitdir, config }); + } + const { defaultBranch, fetchHead } = yield _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + corsProxy, + depth, + since, + exclude, + relative, + singleBranch, + headers, + tags: !noTags + }); + if (fetchHead === null) + return; + ref = ref || defaultBranch; + ref = ref.replace("refs/heads/", ""); + yield _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout + }); + } catch (err) { + yield fs.rmdir(gitdir, { recursive: true, maxRetries: 10 }).catch(() => void 0); + throw err; + } + }); +} +function clone(_0) { + return __async(this, arguments, function* ({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + url, + corsProxy = void 0, + ref = void 0, + remote = "origin", + depth = void 0, + since = void 0, + exclude = [], + relative = false, + singleBranch = false, + noCheckout = false, + noTags = false, + headers = {}, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + if (!noCheckout) { + assertParameter("dir", dir); + } + assertParameter("url", url); + return yield _clone({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative, + singleBranch, + noCheckout, + noTags, + headers + }); + } catch (err) { + err.caller = "git.clone"; + throw err; + } + }); +} +function commit(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + message, + author: _author, + committer: _committer, + signingKey, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("message", message); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = yield normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = yield normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return yield _commit({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + dryRun, + noUpdateBranch, + ref, + parent, + tree + }); + } catch (err) { + err.caller = "git.commit"; + throw err; + } + }); +} +function currentBranch(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + fullname = false, + test = false + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return yield _currentBranch({ + fs: new FileSystem(fs), + gitdir, + fullname, + test + }); + } catch (err) { + err.caller = "git.currentBranch"; + throw err; + } + }); +} +function _deleteBranch(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref }) { + const exist = yield GitRefManager.exists({ fs, gitdir, ref }); + if (!exist) { + throw new NotFoundError(ref); + } + const fullRef = yield GitRefManager.expand({ fs, gitdir, ref }); + const currentRef = yield _currentBranch({ fs, gitdir, fullname: true }); + if (fullRef === currentRef) { + const value = yield GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + yield GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value }); + } + yield GitRefManager.deleteRef({ fs, gitdir, ref: fullRef }); + }); +} +function deleteBranch(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref + }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return yield _deleteBranch({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteBranch"; + throw err; + } + }); +} +function deleteRef(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + yield GitRefManager.deleteRef({ fs: new FileSystem(fs), gitdir, ref }); + } catch (err) { + err.caller = "git.deleteRef"; + throw err; + } + }); +} +function _deleteRemote(_0) { + return __async(this, arguments, function* ({ fs, gitdir, remote }) { + const config = yield GitConfigManager.get({ fs, gitdir }); + yield config.deleteSection("remote", remote); + yield GitConfigManager.save({ fs, gitdir, config }); + }); +} +function deleteRemote(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + remote + }) { + try { + assertParameter("fs", fs); + assertParameter("remote", remote); + return yield _deleteRemote({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.deleteRemote"; + throw err; + } + }); +} +function _deleteTag(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref }) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + yield GitRefManager.deleteRef({ fs, gitdir, ref }); + }); +} +function deleteTag(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return yield _deleteTag({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteTag"; + throw err; + } + }); +} +function expandOidLoose(_0) { + return __async(this, arguments, function* ({ fs, gitdir, oid: short }) { + const prefix = short.slice(0, 2); + const objectsSuffixes = yield fs.readdir(`${gitdir}/objects/${prefix}`); + return objectsSuffixes.map((suffix) => `${prefix}${suffix}`).filter((_oid) => _oid.startsWith(short)); + }); +} +function expandOidPacked(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta + }) { + const results = []; + let list = yield fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = yield readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + for (const oid of p.offsets.keys()) { + if (oid.startsWith(short)) + results.push(oid); + } + } + return results; + }); +} +function _expandOid(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid: short }) { + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const results1 = yield expandOidLoose({ fs, gitdir, oid: short }); + const results2 = yield expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta + }); + const results = results1.concat(results2); + if (results.length === 1) { + return results[0]; + } + if (results.length > 1) { + throw new AmbiguousError("oids", short, results); + } + throw new NotFoundError(`an object matching "${short}"`); + }); +} +function expandOid(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return yield _expandOid({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.expandOid"; + throw err; + } + }); +} +function expandRef(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return yield GitRefManager.expand({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.expandRef"; + throw err; + } + }); +} +function _findMergeBase(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oids }) { + const visits = {}; + const passes = oids.length; + let heads = oids.map((oid, index2) => ({ index: index2, oid })); + while (heads.length) { + const result = new Set(); + for (const { oid, index: index2 } of heads) { + if (!visits[oid]) + visits[oid] = new Set(); + visits[oid].add(index2); + if (visits[oid].size === passes) { + result.add(oid); + } + } + if (result.size > 0) { + return [...result]; + } + const newheads = new Map(); + for (const { oid, index: index2 } of heads) { + try { + const { object } = yield _readObject({ fs, cache, gitdir, oid }); + const commit2 = GitCommit.from(object); + const { parent } = commit2.parseHeaders(); + for (const oid2 of parent) { + if (!visits[oid2] || !visits[oid2].has(index2)) { + newheads.set(oid2 + ":" + index2, { oid: oid2, index: index2 }); + } + } + } catch (err) { + } + } + heads = Array.from(newheads.values()); + } + return []; + }); +} +var LINEBREAKS = /^.*(\r?\n|$)/gm; +function mergeFile({ branches, contents }) { + const ourName = branches[1]; + const theirName = branches[2]; + const baseContent = contents[0]; + const ourContent = contents[1]; + const theirContent = contents[2]; + const ours = ourContent.match(LINEBREAKS); + const base = baseContent.match(LINEBREAKS); + const theirs = theirContent.match(LINEBREAKS); + const result = (0, import_diff3.default)(ours, base, theirs); + const markerSize = 7; + let mergedText = ""; + let cleanMerge = true; + for (const item of result) { + if (item.ok) { + mergedText += item.ok.join(""); + } + if (item.conflict) { + cleanMerge = false; + mergedText += `${"<".repeat(markerSize)} ${ourName} +`; + mergedText += item.conflict.a.join(""); + mergedText += `${"=".repeat(markerSize)} +`; + mergedText += item.conflict.b.join(""); + mergedText += `${">".repeat(markerSize)} ${theirName} +`; + } + } + return { cleanMerge, mergedText }; +} +function mergeTree(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + ourOid, + baseOid, + theirOid, + ourName = "ours", + baseName = "base", + theirName = "theirs", + dryRun = false, + abortOnConflict = true, + mergeDriver + }) { + const ourTree = TREE({ ref: ourOid }); + const baseTree = TREE({ ref: baseOid }); + const theirTree = TREE({ ref: theirOid }); + const unmergedFiles = []; + let cleanMerge = true; + const results = yield _walk({ + fs, + cache, + dir, + gitdir, + trees: [ourTree, baseTree, theirTree], + map: function(_02, _1) { + return __async(this, arguments, function* (filepath, [ours, base, theirs]) { + const path2 = basename(filepath); + const ourChange = yield modified(ours, base); + const theirChange = yield modified(theirs, base); + switch (`${ourChange}-${theirChange}`) { + case "false-false": { + return { + mode: yield base.mode(), + path: path2, + oid: yield base.oid(), + type: yield base.type() + }; + } + case "false-true": { + return theirs ? { + mode: yield theirs.mode(), + path: path2, + oid: yield theirs.oid(), + type: yield theirs.type() + } : void 0; + } + case "true-false": { + return ours ? { + mode: yield ours.mode(), + path: path2, + oid: yield ours.oid(), + type: yield ours.type() + } : void 0; + } + case "true-true": { + if (ours && base && theirs && (yield ours.type()) === "blob" && (yield base.type()) === "blob" && (yield theirs.type()) === "blob") { + return mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + baseName, + theirName, + mergeDriver + }).then((r) => { + cleanMerge = cleanMerge && r.cleanMerge; + unmergedFiles.push(filepath); + return r.mergeResult; + }); + } + throw new MergeNotSupportedError(); + } + } + }); + }, + reduce: (parent, children2) => __async(this, null, function* () { + const entries = children2.filter(Boolean); + if (!parent) + return; + if (parent && parent.type === "tree" && entries.length === 0) + return; + if (entries.length > 0) { + const tree = new GitTree(entries); + const object = tree.toObject(); + const oid = yield _writeObject({ + fs, + gitdir, + type: "tree", + object, + dryRun + }); + parent.oid = oid; + } + return parent; + }) + }); + if (!cleanMerge) { + if (dir && !abortOnConflict) { + yield _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref: results.oid })], + map: function(_02, _1) { + return __async(this, arguments, function* (filepath, [entry]) { + const path2 = `${dir}/${filepath}`; + if ((yield entry.type()) === "blob") { + const mode = yield entry.mode(); + const content = new TextDecoder().decode(yield entry.content()); + yield fs.write(path2, content, { mode }); + } + return true; + }); + } + }); + } + throw new MergeConflictError(unmergedFiles); + } + return results.oid; + }); +} +function modified(entry, base) { + return __async(this, null, function* () { + if (!entry && !base) + return false; + if (entry && !base) + return true; + if (!entry && base) + return true; + if ((yield entry.type()) === "tree" && (yield base.type()) === "tree") { + return false; + } + if ((yield entry.type()) === (yield base.type()) && (yield entry.mode()) === (yield base.mode()) && (yield entry.oid()) === (yield base.oid())) { + return false; + } + return true; + }); +} +function mergeBlobs(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + theirName, + baseName, + dryRun, + mergeDriver = mergeFile + }) { + const type = "blob"; + const mode = (yield base.mode()) === (yield ours.mode()) ? yield theirs.mode() : yield ours.mode(); + if ((yield ours.oid()) === (yield theirs.oid())) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: yield ours.oid(), type } + }; + } + if ((yield ours.oid()) === (yield base.oid())) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: yield theirs.oid(), type } + }; + } + if ((yield theirs.oid()) === (yield base.oid())) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: yield ours.oid(), type } + }; + } + const ourContent = Buffer2.from(yield ours.content()).toString("utf8"); + const baseContent = Buffer2.from(yield base.content()).toString("utf8"); + const theirContent = Buffer2.from(yield theirs.content()).toString("utf8"); + const { mergedText, cleanMerge } = yield mergeDriver({ + branches: [baseName, ourName, theirName], + contents: [baseContent, ourContent, theirContent], + path: path2 + }); + const oid = yield _writeObject({ + fs, + gitdir, + type: "blob", + object: Buffer2.from(mergedText, "utf8"), + dryRun + }); + return { cleanMerge, mergeResult: { mode, path: path2, oid, type } }; + }); +} +function _merge(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author, + committer, + signingKey, + onSign, + mergeDriver + }) { + if (ours === void 0) { + ours = yield _currentBranch({ fs, gitdir, fullname: true }); + } + ours = yield GitRefManager.expand({ + fs, + gitdir, + ref: ours + }); + theirs = yield GitRefManager.expand({ + fs, + gitdir, + ref: theirs + }); + const ourOid = yield GitRefManager.resolve({ + fs, + gitdir, + ref: ours + }); + const theirOid = yield GitRefManager.resolve({ + fs, + gitdir, + ref: theirs + }); + const baseOids = yield _findMergeBase({ + fs, + cache, + gitdir, + oids: [ourOid, theirOid] + }); + if (baseOids.length !== 1) { + throw new MergeNotSupportedError(); + } + const baseOid = baseOids[0]; + if (baseOid === theirOid) { + return { + oid: ourOid, + alreadyMerged: true + }; + } + if (fastForward2 && baseOid === ourOid) { + if (!dryRun && !noUpdateBranch) { + yield GitRefManager.writeRef({ fs, gitdir, ref: ours, value: theirOid }); + } + return { + oid: theirOid, + fastForward: true + }; + } else { + if (fastForwardOnly) { + throw new FastForwardError(); + } + const tree = yield mergeTree({ + fs, + cache, + dir, + gitdir, + ourOid, + theirOid, + baseOid, + ourName: abbreviateRef(ours), + baseName: "base", + theirName: abbreviateRef(theirs), + dryRun, + abortOnConflict, + mergeDriver + }); + if (!message) { + message = `Merge branch '${abbreviateRef(theirs)}' into ${abbreviateRef(ours)}`; + } + const oid = yield _commit({ + fs, + cache, + gitdir, + message, + ref: ours, + tree, + parent: [ourOid, theirOid], + author, + committer, + signingKey, + onSign, + dryRun, + noUpdateBranch + }); + return { + oid, + tree, + mergeCommit: true + }; + } + }); +} +function _pull(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + prune, + pruneTags, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey + }) { + try { + if (!ref) { + const head = yield _currentBranch({ fs, gitdir }); + if (!head) { + throw new MissingParameterError("ref"); + } + ref = head; + } + const { fetchHead, fetchHeadDescription } = yield _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + corsProxy, + ref, + url, + remote, + remoteRef, + singleBranch, + headers, + prune, + pruneTags + }); + yield _merge({ + fs, + cache, + gitdir, + ours: ref, + theirs: fetchHead, + fastForward: fastForward2, + fastForwardOnly, + message: `Merge ${fetchHeadDescription}`, + author, + committer, + signingKey, + dryRun: false, + noUpdateBranch: false + }); + yield _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout: false + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } + }); +} +function fastForward(_0) { + return __async(this, arguments, function* ({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + corsProxy, + singleBranch, + headers = {}, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + const thisWillNotBeUsed = { + name: "", + email: "", + timestamp: Date.now(), + timezoneOffset: 0 + }; + return yield _pull({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForwardOnly: true, + corsProxy, + singleBranch, + headers, + author: thisWillNotBeUsed, + committer: thisWillNotBeUsed + }); + } catch (err) { + err.caller = "git.fastForward"; + throw err; + } + }); +} +function fetch(_0) { + return __async(this, arguments, function* ({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remote, + remoteRef, + url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return yield _fetch({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + remoteRef, + url, + corsProxy, + depth, + since, + exclude, + relative, + tags, + singleBranch, + headers, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.fetch"; + throw err; + } + }); +} +function findMergeBase(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return yield _findMergeBase({ + fs: new FileSystem(fs), + cache, + gitdir, + oids + }); + } catch (err) { + err.caller = "git.findMergeBase"; + throw err; + } + }); +} +function _findRoot(_0) { + return __async(this, arguments, function* ({ fs, filepath }) { + if (yield fs.exists(join(filepath, ".git"))) { + return filepath; + } else { + const parent = dirname(filepath); + if (parent === filepath) { + throw new NotFoundError(`git root for ${filepath}`); + } + return _findRoot({ fs, filepath: parent }); + } + }); +} +function findRoot(_0) { + return __async(this, arguments, function* ({ fs, filepath }) { + try { + assertParameter("fs", fs); + assertParameter("filepath", filepath); + return yield _findRoot({ fs: new FileSystem(fs), filepath }); + } catch (err) { + err.caller = "git.findRoot"; + throw err; + } + }); +} +function getConfig(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), path: path2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return yield _getConfig({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfig"; + throw err; + } + }); +} +function _getConfigAll(_0) { + return __async(this, arguments, function* ({ fs, gitdir, path: path2 }) { + const config = yield GitConfigManager.get({ fs, gitdir }); + return config.getall(path2); + }); +} +function getConfigAll(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + path: path2 + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return yield _getConfigAll({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfigAll"; + throw err; + } + }); +} +function getRemoteInfo(_0) { + return __async(this, arguments, function* ({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false + }) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = yield GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const result = { + capabilities: [...remote.capabilities] + }; + for (const [ref, oid] of remote.refs) { + const parts = ref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = oid; + } + for (const [symref, ref] of remote.symrefs) { + const parts = symref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = ref; + } + return result; + } catch (err) { + err.caller = "git.getRemoteInfo"; + throw err; + } + }); +} +function formatInfoRefs(remote, prefix, symrefs, peelTags) { + const refs = []; + for (const [key2, value] of remote.refs) { + if (prefix && !key2.startsWith(prefix)) + continue; + if (key2.endsWith("^{}")) { + if (peelTags) { + const _key = key2.replace("^{}", ""); + const last2 = refs[refs.length - 1]; + const r = last2.ref === _key ? last2 : refs.find((x) => x.ref === _key); + if (r === void 0) { + throw new Error("I did not expect this to happen"); + } + r.peeled = value; + } + continue; + } + const ref = { ref: key2, oid: value }; + if (symrefs) { + if (remote.symrefs.has(key2)) { + ref.target = remote.symrefs.get(key2); + } + } + refs.push(ref); + } + return refs; +} +function getRemoteInfo2(_0) { + return __async(this, arguments, function* ({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2 + }) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = yield GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 2) { + return { + protocolVersion: remote.protocolVersion, + capabilities: remote.capabilities2 + }; + } + const capabilities = {}; + for (const cap of remote.capabilities) { + const [key2, value] = cap.split("="); + if (value) { + capabilities[key2] = value; + } else { + capabilities[key2] = true; + } + } + return { + protocolVersion: 1, + capabilities, + refs: formatInfoRefs(remote, void 0, true, true) + }; + } catch (err) { + err.caller = "git.getRemoteInfo2"; + throw err; + } + }); +} +function hashObject(_0) { + return __async(this, arguments, function* ({ + type, + object, + format = "content", + oid = void 0 + }) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = yield shasum(object); + } + return { oid, object }; + }); +} +function hashBlob(_0) { + return __async(this, arguments, function* ({ object }) { + try { + assertParameter("object", object); + if (typeof object === "string") { + object = Buffer2.from(object, "utf8"); + } else { + object = Buffer2.from(object); + } + const type = "blob"; + const { oid, object: _object } = yield hashObject({ + type: "blob", + format: "content", + object + }); + return { oid, type, object: new Uint8Array(_object), format: "wrapped" }; + } catch (err) { + err.caller = "git.hashBlob"; + throw err; + } + }); +} +function _indexPack(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onProgress, + dir, + gitdir, + filepath + }) { + try { + filepath = join(dir, filepath); + const pack = yield fs.read(filepath); + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const idx = yield GitPackIndex.fromPack({ + pack, + getExternalRefDelta, + onProgress + }); + yield fs.write(filepath.replace(/\.pack$/, ".idx"), yield idx.toBuffer()); + return { + oids: [...idx.hashes] + }; + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } + }); +} +function indexPack(_0) { + return __async(this, arguments, function* ({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", dir); + assertParameter("filepath", filepath); + return yield _indexPack({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } + }); +} +function init(_0) { + return __async(this, arguments, function* ({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + if (!bare) { + assertParameter("dir", dir); + } + return yield _init({ + fs: new FileSystem(fs), + bare, + dir, + gitdir, + defaultBranch + }); + } catch (err) { + err.caller = "git.init"; + throw err; + } + }); +} +function _isDescendent(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + ancestor, + depth + }) { + const shallows = yield GitShallowManager.read({ fs, gitdir }); + if (!oid) { + throw new MissingParameterError("oid"); + } + if (!ancestor) { + throw new MissingParameterError("ancestor"); + } + if (oid === ancestor) + return false; + const queue = [oid]; + const visited = new Set(); + let searchdepth = 0; + while (queue.length) { + if (searchdepth++ === depth) { + throw new MaxDepthError(depth); + } + const oid2 = queue.shift(); + const { type, object } = yield _readObject({ + fs, + cache, + gitdir, + oid: oid2 + }); + if (type !== "commit") { + throw new ObjectTypeError(oid2, type, "commit"); + } + const commit2 = GitCommit.from(object).parse(); + for (const parent of commit2.parent) { + if (parent === ancestor) + return true; + } + if (!shallows.has(oid2)) { + for (const parent of commit2.parent) { + if (!visited.has(parent)) { + queue.push(parent); + visited.add(parent); + } + } + } + } + return false; + }); +} +function isDescendent(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + ancestor, + depth = -1, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("ancestor", ancestor); + return yield _isDescendent({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + ancestor, + depth + }); + } catch (err) { + err.caller = "git.isDescendent"; + throw err; + } + }); +} +function isIgnored(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath + }) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + return GitIgnoreManager.isIgnored({ + fs: new FileSystem(fs), + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.isIgnored"; + throw err; + } + }); +} +function listBranches(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + remote + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listBranches({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.listBranches"; + throw err; + } + }); +} +function _listFiles(_0) { + return __async(this, arguments, function* ({ fs, gitdir, ref, cache }) { + if (ref) { + const oid = yield GitRefManager.resolve({ gitdir, fs, ref }); + const filenames = []; + yield accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix: "" + }); + return filenames; + } else { + return GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + return index2.entries.map((x) => x.path); + }); + }); + } + }); +} +function accumulateFilesFromOid(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + filenames, + prefix + }) { + const { tree } = yield _readTree({ fs, cache, gitdir, oid }); + for (const entry of tree) { + if (entry.type === "tree") { + yield accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid: entry.oid, + filenames, + prefix: join(prefix, entry.path) + }); + } else { + filenames.push(join(prefix, entry.path)); + } + } + }); +} +function listFiles(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return yield _listFiles({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listFiles"; + throw err; + } + }); +} +function _listNotes(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, ref }) { + let parent; + try { + parent = yield GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (err instanceof NotFoundError) { + return []; + } + } + const result = yield _readTree({ + fs, + cache, + gitdir, + oid: parent + }); + const notes = result.tree.map((entry) => ({ + target: entry.path, + note: entry.oid + })); + return notes; + }); +} +function listNotes(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return yield _listNotes({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listNotes"; + throw err; + } + }); +} +function _listRemotes(_0) { + return __async(this, arguments, function* ({ fs, gitdir }) { + const config = yield GitConfigManager.get({ fs, gitdir }); + const remoteNames = yield config.getSubsections("remote"); + const remotes = Promise.all(remoteNames.map((remote) => __async(this, null, function* () { + const url = yield config.get(`remote.${remote}.url`); + return { remote, url }; + }))); + return remotes; + }); +} +function listRemotes(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return yield _listRemotes({ + fs: new FileSystem(fs), + gitdir + }); + } catch (err) { + err.caller = "git.listRemotes"; + throw err; + } + }); +} +function parseListRefsResponse(stream) { + return __async(this, null, function* () { + const read = GitPktLine.streamReader(stream); + const refs = []; + let line; + while (true) { + line = yield read(); + if (line === true) + break; + if (line === null) + continue; + line = line.toString("utf8").replace(/\n$/, ""); + const [oid, ref, ...attrs] = line.split(" "); + const r = { ref, oid }; + for (const attr2 of attrs) { + const [name, value] = attr2.split(":"); + if (name === "symref-target") { + r.target = value; + } else if (name === "peeled") { + r.peeled = value; + } + } + refs.push(r); + } + return refs; + }); +} +function writeListRefsRequest(_0) { + return __async(this, arguments, function* ({ prefix, symrefs, peelTags }) { + const packstream = []; + packstream.push(GitPktLine.encode("command=ls-refs\n")); + packstream.push(GitPktLine.encode(`agent=${pkg.agent} +`)); + if (peelTags || symrefs || prefix) { + packstream.push(GitPktLine.delim()); + } + if (peelTags) + packstream.push(GitPktLine.encode("peel")); + if (symrefs) + packstream.push(GitPktLine.encode("symrefs")); + if (prefix) + packstream.push(GitPktLine.encode(`ref-prefix ${prefix}`)); + packstream.push(GitPktLine.flush()); + return packstream; + }); +} +function listServerRefs(_0) { + return __async(this, arguments, function* ({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2, + prefix, + symrefs, + peelTags + }) { + try { + assertParameter("http", http); + assertParameter("url", url); + const remote = yield GitRemoteHTTP.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 1) { + return formatInfoRefs(remote, prefix, symrefs, peelTags); + } + const body = yield writeListRefsRequest({ prefix, symrefs, peelTags }); + const res = yield GitRemoteHTTP.connect({ + http, + auth: remote.auth, + headers, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + body + }); + return parseListRefsResponse(res.body); + } catch (err) { + err.caller = "git.listServerRefs"; + throw err; + } + }); +} +function listTags(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listTags({ fs: new FileSystem(fs), gitdir }); + } catch (err) { + err.caller = "git.listTags"; + throw err; + } + }); +} +function resolveCommit(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid }) { + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveCommit({ fs, cache, gitdir, oid }); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + return { commit: GitCommit.from(object), oid }; + }); +} +function _readCommit(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid }) { + const { commit: commit2, oid: commitOid } = yield resolveCommit({ + fs, + cache, + gitdir, + oid + }); + const result = { + oid: commitOid, + commit: commit2.parse(), + payload: commit2.withoutSignature() + }; + return result; + }); +} +function compareAge(a, b) { + return a.committer.timestamp - b.committer.timestamp; +} +var EMPTY_OID = "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"; +function resolveFileIdInTree(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid, fileId }) { + if (fileId === EMPTY_OID) + return; + const _oid = oid; + let filepath; + const result = yield resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (fileId === result.oid) { + filepath = result.path; + } else { + filepath = yield _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid: _oid + }); + if (Array.isArray(filepath)) { + if (filepath.length === 0) + filepath = void 0; + else if (filepath.length === 1) + filepath = filepath[0]; + } + } + return filepath; + }); +} +function _resolveFileId(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + tree, + fileId, + oid, + filepaths = [], + parentPath = "" + }) { + const walks = tree.entries().map(function(entry) { + let result; + if (entry.oid === fileId) { + result = join(parentPath, entry.path); + filepaths.push(result); + } else if (entry.type === "tree") { + result = _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }).then(function({ object }) { + return _resolveFileId({ + fs, + cache, + gitdir, + tree: GitTree.from(object), + fileId, + oid, + filepaths, + parentPath: join(parentPath, entry.path) + }); + }); + } + return result; + }); + yield Promise.all(walks); + return filepaths; + }); +} +function _log(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow + }) { + const sinceTimestamp = typeof since === "undefined" ? void 0 : Math.floor(since.valueOf() / 1e3); + const commits = []; + const shallowCommits = yield GitShallowManager.read({ fs, gitdir }); + const oid = yield GitRefManager.resolve({ fs, gitdir, ref }); + const tips = [yield _readCommit({ fs, cache, gitdir, oid })]; + let lastFileOid; + let lastCommit; + let isOk; + function endCommit(commit2) { + if (isOk && filepath) + commits.push(commit2); + } + while (tips.length > 0) { + const commit2 = tips.pop(); + if (sinceTimestamp !== void 0 && commit2.commit.committer.timestamp <= sinceTimestamp) { + break; + } + if (filepath) { + let vFileOid; + try { + vFileOid = yield resolveFilepath({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + filepath + }); + if (lastCommit && lastFileOid !== vFileOid) { + commits.push(lastCommit); + } + lastFileOid = vFileOid; + lastCommit = commit2; + isOk = true; + } catch (e) { + if (e instanceof NotFoundError) { + let found = follow && lastFileOid; + if (found) { + found = yield resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + fileId: lastFileOid + }); + if (found) { + if (Array.isArray(found)) { + if (lastCommit) { + const lastFound = yield resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: lastCommit.commit.tree, + fileId: lastFileOid + }); + if (Array.isArray(lastFound)) { + found = found.filter((p) => lastFound.indexOf(p) === -1); + if (found.length === 1) { + found = found[0]; + filepath = found; + if (lastCommit) + commits.push(lastCommit); + } else { + found = false; + if (lastCommit) + commits.push(lastCommit); + break; + } + } + } + } else { + filepath = found; + if (lastCommit) + commits.push(lastCommit); + } + } + } + if (!found) { + if (isOk && lastFileOid) { + commits.push(lastCommit); + if (!force) + break; + } + if (!force && !follow) + throw e; + } + lastCommit = commit2; + isOk = false; + } else + throw e; + } + } else { + commits.push(commit2); + } + if (depth !== void 0 && commits.length === depth) { + endCommit(commit2); + break; + } + if (!shallowCommits.has(commit2.oid)) { + for (const oid2 of commit2.commit.parent) { + const commit3 = yield _readCommit({ fs, cache, gitdir, oid: oid2 }); + if (!tips.map((commit4) => commit4.oid).includes(commit3.oid)) { + tips.push(commit3); + } + } + } + if (tips.length === 0) { + endCommit(commit2); + } + tips.sort((a, b) => compareAge(a.commit, b.commit)); + } + return commits; + }); +} +function log(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref = "HEAD", + depth, + since, + force, + follow, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return yield _log({ + fs: new FileSystem(fs), + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow + }); + } catch (err) { + err.caller = "git.log"; + throw err; + } + }); +} +function merge(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author: _author, + committer: _committer, + signingKey, + cache = {}, + mergeDriver + }) { + try { + assertParameter("fs", _fs); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = yield normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("author"); + } + const committer = yield normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("committer"); + } + return yield _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2, + fastForwardOnly, + dryRun, + noUpdateBranch, + abortOnConflict, + message, + author, + committer, + signingKey, + onSign, + mergeDriver + }); + } catch (err) { + err.caller = "git.merge"; + throw err; + } + }); +} +var types = { + commit: 16, + tree: 32, + blob: 48, + tag: 64, + ofs_delta: 96, + ref_delta: 112 +}; +function _pack(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids + }) { + const hash2 = new import_sha1.default(); + const outputStream = []; + function write(chunk, enc) { + const buff = Buffer2.from(chunk, enc); + outputStream.push(buff); + hash2.update(buff); + } + function writeObject2(_02) { + return __async(this, arguments, function* ({ stype, object }) { + const type = types[stype]; + let length = object.length; + let multibyte = length > 15 ? 128 : 0; + const lastFour = length & 15; + length = length >>> 4; + let byte = (multibyte | type | lastFour).toString(16); + write(byte, "hex"); + while (multibyte) { + multibyte = length > 127 ? 128 : 0; + byte = multibyte | length & 127; + write(padHex(2, byte), "hex"); + length = length >>> 7; + } + write(Buffer2.from(yield deflate(object))); + }); + } + write("PACK"); + write("00000002", "hex"); + write(padHex(8, oids.length), "hex"); + for (const oid of oids) { + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + yield writeObject2({ write, object, stype: type }); + } + const digest = hash2.digest(); + outputStream.push(digest); + return outputStream; + }); +} +function _packObjects(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oids, write }) { + const buffers = yield _pack({ fs, cache, gitdir, oids }); + const packfile = Buffer2.from(yield collect(buffers)); + const packfileSha = packfile.slice(-20).toString("hex"); + const filename = `pack-${packfileSha}.pack`; + if (write) { + yield fs.write(join(gitdir, `objects/pack/${filename}`), packfile); + return { filename }; + } + return { + filename, + packfile: new Uint8Array(packfile) + }; + }); +} +function packObjects(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + write = false, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return yield _packObjects({ + fs: new FileSystem(fs), + cache, + gitdir, + oids, + write + }); + } catch (err) { + err.caller = "git.packObjects"; + throw err; + } + }); +} +function pull(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + prune = false, + pruneTags = false, + fastForward: fastForward2 = true, + fastForwardOnly = false, + corsProxy, + singleBranch, + headers = {}, + author: _author, + committer: _committer, + signingKey, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + const fs = new FileSystem(_fs); + const author = yield normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = yield normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return yield _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } + }); +} +function listCommitsAndTags(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + start, + finish + }) { + const shallows = yield GitShallowManager.read({ fs, gitdir }); + const startingSet = new Set(); + const finishingSet = new Set(); + for (const ref of start) { + startingSet.add(yield GitRefManager.resolve({ fs, gitdir, ref })); + } + for (const ref of finish) { + try { + const oid = yield GitRefManager.resolve({ fs, gitdir, ref }); + finishingSet.add(oid); + } catch (err) { + } + } + const visited = new Set(); + function walk2(oid) { + return __async(this, null, function* () { + visited.add(oid); + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const commit2 = tag2.headers().object; + return walk2(commit2); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + if (!shallows.has(oid)) { + const commit2 = GitCommit.from(object); + const parents = commit2.headers().parent; + for (oid of parents) { + if (!finishingSet.has(oid) && !visited.has(oid)) { + yield walk2(oid); + } + } + } + }); + } + for (const oid of startingSet) { + yield walk2(oid); + } + return visited; + }); +} +function listObjects(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids + }) { + const visited = new Set(); + function walk2(oid) { + return __async(this, null, function* () { + if (visited.has(oid)) + return; + visited.add(oid); + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const obj = tag2.headers().object; + yield walk2(obj); + } else if (type === "commit") { + const commit2 = GitCommit.from(object); + const tree = commit2.headers().tree; + yield walk2(tree); + } else if (type === "tree") { + const tree = GitTree.from(object); + for (const entry of tree) { + if (entry.type === "blob") { + visited.add(entry.oid); + } + if (entry.type === "tree") { + yield walk2(entry.oid); + } + } + } + }); + } + for (const oid of oids) { + yield walk2(oid); + } + return visited; + }); +} +function parseReceivePackResponse(packfile) { + return __async(this, null, function* () { + const result = {}; + let response = ""; + const read = GitPktLine.streamReader(packfile); + let line = yield read(); + while (line !== true) { + if (line !== null) + response += line.toString("utf8") + "\n"; + line = yield read(); + } + const lines = response.toString("utf8").split("\n"); + line = lines.shift(); + if (!line.startsWith("unpack ")) { + throw new ParseError('unpack ok" or "unpack [error message]', line); + } + result.ok = line === "unpack ok"; + if (!result.ok) { + result.error = line.slice("unpack ".length); + } + result.refs = {}; + for (const line2 of lines) { + if (line2.trim() === "") + continue; + const status2 = line2.slice(0, 2); + const refAndMessage = line2.slice(3); + let space2 = refAndMessage.indexOf(" "); + if (space2 === -1) + space2 = refAndMessage.length; + const ref = refAndMessage.slice(0, space2); + const error = refAndMessage.slice(space2 + 1); + result.refs[ref] = { + ok: status2 === "ok", + error + }; + } + return result; + }); +} +function writeReceivePackRequest(_0) { + return __async(this, arguments, function* ({ + capabilities = [], + triplets = [] + }) { + const packstream = []; + let capsFirstLine = `\0 ${capabilities.join(" ")}`; + for (const trip of triplets) { + packstream.push(GitPktLine.encode(`${trip.oldoid} ${trip.oid} ${trip.fullRef}${capsFirstLine} +`)); + capsFirstLine = ""; + } + packstream.push(GitPktLine.flush()); + return packstream; + }); +} +function _push(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote, + url: _url, + force = false, + delete: _delete = false, + corsProxy, + headers = {} + }) { + const ref = _ref || (yield _currentBranch({ fs, gitdir })); + if (typeof ref === "undefined") { + throw new MissingParameterError("ref"); + } + const config = yield GitConfigManager.get({ fs, gitdir }); + remote = remote || (yield config.get(`branch.${ref}.pushRemote`)) || (yield config.get("remote.pushDefault")) || (yield config.get(`branch.${ref}.remote`)) || "origin"; + const url = _url || (yield config.get(`remote.${remote}.pushurl`)) || (yield config.get(`remote.${remote}.url`)); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || (yield config.get(`branch.${ref}.merge`)); + if (typeof url === "undefined") { + throw new MissingParameterError("remoteRef"); + } + if (corsProxy === void 0) { + corsProxy = yield config.get("http.corsProxy"); + } + const fullRef = yield GitRefManager.expand({ fs, gitdir, ref }); + const oid = _delete ? "0000000000000000000000000000000000000000" : yield GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const httpRemote = yield GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-receive-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = httpRemote.auth; + let fullRemoteRef; + if (!remoteRef) { + fullRemoteRef = fullRef; + } else { + try { + fullRemoteRef = yield GitRefManager.expandAgainstMap({ + ref: remoteRef, + map: httpRemote.refs + }); + } catch (err) { + if (err instanceof NotFoundError) { + fullRemoteRef = remoteRef.startsWith("refs/") ? remoteRef : `refs/heads/${remoteRef}`; + } else { + throw err; + } + } + } + const oldoid = httpRemote.refs.get(fullRemoteRef) || "0000000000000000000000000000000000000000"; + const thinPack = !httpRemote.capabilities.has("no-thin"); + let objects = new Set(); + if (!_delete) { + const finish = [...httpRemote.refs.values()]; + let skipObjects = new Set(); + if (oldoid !== "0000000000000000000000000000000000000000") { + const mergebase = yield _findMergeBase({ + fs, + cache, + gitdir, + oids: [oid, oldoid] + }); + for (const oid2 of mergebase) + finish.push(oid2); + if (thinPack) { + skipObjects = yield listObjects({ fs, cache, gitdir, oids: mergebase }); + } + } + if (!finish.includes(oid)) { + const commits = yield listCommitsAndTags({ + fs, + cache, + gitdir, + start: [oid], + finish + }); + objects = yield listObjects({ fs, cache, gitdir, oids: commits }); + } + if (thinPack) { + try { + const ref2 = yield GitRefManager.resolve({ + fs, + gitdir, + ref: `refs/remotes/${remote}/HEAD`, + depth: 2 + }); + const { oid: oid2 } = yield GitRefManager.resolveAgainstMap({ + ref: ref2.replace(`refs/remotes/${remote}/`, ""), + fullref: ref2, + map: httpRemote.refs + }); + const oids = [oid2]; + for (const oid3 of yield listObjects({ fs, cache, gitdir, oids })) { + skipObjects.add(oid3); + } + } catch (e) { + } + for (const oid2 of skipObjects) { + objects.delete(oid2); + } + } + if (oid === oldoid) + force = true; + if (!force) { + if (fullRef.startsWith("refs/tags") && oldoid !== "0000000000000000000000000000000000000000") { + throw new PushRejectedError("tag-exists"); + } + if (oid !== "0000000000000000000000000000000000000000" && oldoid !== "0000000000000000000000000000000000000000" && !(yield _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor: oldoid, + depth: -1 + }))) { + throw new PushRejectedError("not-fast-forward"); + } + } + } + const capabilities = filterCapabilities([...httpRemote.capabilities], ["report-status", "side-band-64k", `agent=${pkg.agent}`]); + const packstream1 = yield writeReceivePackRequest({ + capabilities, + triplets: [{ oldoid, oid, fullRef: fullRemoteRef }] + }); + const packstream2 = _delete ? [] : yield _pack({ + fs, + cache, + gitdir, + oids: [...objects] + }); + const res = yield GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-receive-pack", + url, + auth, + headers, + body: [...packstream1, ...packstream2] + }); + const { packfile, progress } = yield GitSideBand.demux(res.body); + if (onMessage) { + const lines = splitLines(progress); + forAwait(lines, (line) => __async(this, null, function* () { + yield onMessage(line); + })); + } + const result = yield parseReceivePackResponse(packfile); + if (res.headers) { + result.headers = res.headers; + } + if (remote && result.ok && result.refs[fullRemoteRef].ok) { + const ref2 = `refs/remotes/${remote}/${fullRemoteRef.replace("refs/heads", "")}`; + if (_delete) { + yield GitRefManager.deleteRef({ fs, gitdir, ref: ref2 }); + } else { + yield GitRefManager.writeRef({ fs, gitdir, ref: ref2, value: oid }); + } + } + if (result.ok && Object.values(result.refs).every((result2) => result2.ok)) { + return result; + } else { + const prettyDetails = Object.entries(result.refs).filter(([k, v]) => !v.ok).map(([k, v]) => ` + - ${k}: ${v.error}`).join(""); + throw new GitPushError(prettyDetails, result); + } + }); +} +function push(_0) { + return __async(this, arguments, function* ({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remoteRef, + remote = "origin", + url, + force = false, + delete: _delete = false, + corsProxy, + headers = {}, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return yield _push({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remoteRef, + remote, + url, + force, + delete: _delete, + corsProxy, + headers + }); + } catch (err) { + err.caller = "git.push"; + throw err; + } + }); +} +function resolveBlob(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid }) { + const { type, object } = yield _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveBlob({ fs, cache, gitdir, oid }); + } + if (type !== "blob") { + throw new ObjectTypeError(oid, type, "blob"); + } + return { oid, blob: new Uint8Array(object) }; + }); +} +function _readBlob(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + oid, + filepath = void 0 + }) { + if (filepath !== void 0) { + oid = yield resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const blob = yield resolveBlob({ + fs, + cache, + gitdir, + oid + }); + return blob; + }); +} +function readBlob(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return yield _readBlob({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readBlob"; + throw err; + } + }); +} +function readCommit(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return yield _readCommit({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readCommit"; + throw err; + } + }); +} +function _readNote(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + gitdir, + ref = "refs/notes/commits", + oid + }) { + const parent = yield GitRefManager.resolve({ gitdir, fs, ref }); + const { blob } = yield _readBlob({ + fs, + cache, + gitdir, + oid: parent, + filepath: oid + }); + return blob; + }); +} +function readNote(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oid", oid); + return yield _readNote({ + fs: new FileSystem(fs), + cache, + gitdir, + ref, + oid + }); + } catch (err) { + err.caller = "git.readNote"; + throw err; + } + }); +} +function readObject(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + oid, + format = "parsed", + filepath = void 0, + encoding = void 0, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + if (filepath !== void 0) { + oid = yield resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } + const _format = format === "parsed" ? "content" : format; + const result = yield _readObject({ + fs, + cache, + gitdir, + oid, + format: _format + }); + result.oid = oid; + if (format === "parsed") { + result.format = "parsed"; + switch (result.type) { + case "commit": + result.object = GitCommit.from(result.object).parse(); + break; + case "tree": + result.object = GitTree.from(result.object).entries(); + break; + case "blob": + if (encoding) { + result.object = result.object.toString(encoding); + } else { + result.object = new Uint8Array(result.object); + result.format = "content"; + } + break; + case "tag": + result.object = GitAnnotatedTag.from(result.object).parse(); + break; + default: + throw new ObjectTypeError(result.oid, result.type, "blob|commit|tag|tree"); + } + } else if (result.format === "deflated" || result.format === "wrapped") { + result.type = result.format; + } + return result; + } catch (err) { + err.caller = "git.readObject"; + throw err; + } + }); +} +function _readTag(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, oid }) { + const { type, object } = yield _readObject({ + fs, + cache, + gitdir, + oid, + format: "content" + }); + if (type !== "tag") { + throw new ObjectTypeError(oid, type, "tag"); + } + const tag2 = GitAnnotatedTag.from(object); + const result = { + oid, + tag: tag2.parse(), + payload: tag2.payload() + }; + return result; + }); +} +function readTag(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return yield _readTag({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readTag"; + throw err; + } + }); +} +function readTree(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath = void 0, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return yield _readTree({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readTree"; + throw err; + } + }); +} +function remove(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + yield GitIndexManager.acquire({ fs: new FileSystem(_fs), gitdir, cache }, function(index2) { + return __async(this, null, function* () { + index2.delete({ filepath }); + }); + }); + } catch (err) { + err.caller = "git.remove"; + throw err; + } + }); +} +function _removeNote(_0) { + return __async(this, arguments, function* ({ + fs, + cache, + onSign, + gitdir, + ref = "refs/notes/commits", + oid, + author, + committer, + signingKey + }) { + let parent; + try { + parent = yield GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = yield _readTree({ + fs, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + tree = tree.filter((entry) => entry.path !== oid); + const treeOid = yield _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = yield _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note removed by 'isomorphic-git removeNote' +`, + author, + committer, + signingKey + }); + return commitOid; + }); +} +function removeNote(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + author: _author, + committer: _committer, + signingKey, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + const author = yield normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = yield normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return yield _removeNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.removeNote"; + throw err; + } + }); +} +function _renameBranch(_0) { + return __async(this, arguments, function* ({ + fs, + gitdir, + oldref, + ref, + checkout: checkout2 = false + }) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (oldref !== import_clean_git_ref.default.clean(oldref)) { + throw new InvalidRefNameError(oldref, import_clean_git_ref.default.clean(oldref)); + } + const fulloldref = `refs/heads/${oldref}`; + const fullnewref = `refs/heads/${ref}`; + const newexist = yield GitRefManager.exists({ fs, gitdir, ref: fullnewref }); + if (newexist) { + throw new AlreadyExistsError("branch", ref, false); + } + const value = yield GitRefManager.resolve({ + fs, + gitdir, + ref: fulloldref, + depth: 1 + }); + yield GitRefManager.writeRef({ fs, gitdir, ref: fullnewref, value }); + yield GitRefManager.deleteRef({ fs, gitdir, ref: fulloldref }); + if (checkout2) { + yield GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullnewref + }); + } + }); +} +function renameBranch(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + oldref, + checkout: checkout2 = false + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oldref", oldref); + return yield _renameBranch({ + fs: new FileSystem(fs), + gitdir, + ref, + oldref, + checkout: checkout2 + }); + } catch (err) { + err.caller = "git.renameBranch"; + throw err; + } + }); +} +function hashObject$1(_0) { + return __async(this, arguments, function* ({ gitdir, type, object }) { + return shasum(GitObject.wrap({ type, object })); + }); +} +function resetIndex(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + let oid; + let workdirOid; + try { + oid = yield GitRefManager.resolve({ fs, gitdir, ref: ref || "HEAD" }); + } catch (e) { + if (ref) { + throw e; + } + } + if (oid) { + try { + oid = yield resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } catch (e) { + oid = null; + } + } + let stats = { + ctime: new Date(0), + mtime: new Date(0), + dev: 0, + ino: 0, + mode: 0, + uid: 0, + gid: 0, + size: 0 + }; + const object = dir && (yield fs.read(join(dir, filepath))); + if (object) { + workdirOid = yield hashObject$1({ + gitdir, + type: "blob", + object + }); + if (oid === workdirOid) { + stats = yield fs.lstat(join(dir, filepath)); + } + } + yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + index2.delete({ filepath }); + if (oid) { + index2.insert({ filepath, stats, oid }); + } + }); + }); + } catch (err) { + err.caller = "git.reset"; + throw err; + } + }); +} +function resolveRef(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + depth + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const oid = yield GitRefManager.resolve({ + fs: new FileSystem(fs), + gitdir, + ref, + depth + }); + return oid; + } catch (err) { + err.caller = "git.resolveRef"; + throw err; + } + }); +} +function setConfig(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + path: path2, + value, + append: append3 = false + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + const fs = new FileSystem(_fs); + const config = yield GitConfigManager.get({ fs, gitdir }); + if (append3) { + yield config.append(path2, value); + } else { + yield config.set(path2, value); + } + yield GitConfigManager.save({ fs, gitdir, config }); + } catch (err) { + err.caller = "git.setConfig"; + throw err; + } + }); +} +function status(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + const ignored = yield GitIgnoreManager.isIgnored({ + fs, + gitdir, + dir, + filepath + }); + if (ignored) { + return "ignored"; + } + const headTree = yield getHeadTree({ fs, cache, gitdir }); + const treeOid = yield getOidAtPath({ + fs, + cache, + gitdir, + tree: headTree, + path: filepath + }); + const indexEntry = yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + for (const entry of index2) { + if (entry.path === filepath) + return entry; + } + return null; + }); + }); + const stats = yield fs.lstat(join(dir, filepath)); + const H = treeOid !== null; + const I = indexEntry !== null; + const W = stats !== null; + const getWorkdirOid = () => __async(this, null, function* () { + if (I && !compareStats(indexEntry, stats)) { + return indexEntry.oid; + } else { + const object = yield fs.read(join(dir, filepath)); + const workdirOid = yield hashObject$1({ + gitdir, + type: "blob", + object + }); + if (I && indexEntry.oid === workdirOid) { + if (stats.size !== -1) { + GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + index2.insert({ filepath, stats, oid: workdirOid }); + }); + }); + } + } + return workdirOid; + } + }); + if (!H && !W && !I) + return "absent"; + if (!H && !W && I) + return "*absent"; + if (!H && W && !I) + return "*added"; + if (!H && W && I) { + const workdirOid = yield getWorkdirOid(); + return workdirOid === indexEntry.oid ? "added" : "*added"; + } + if (H && !W && !I) + return "deleted"; + if (H && !W && I) { + return treeOid === indexEntry.oid ? "*deleted" : "*deleted"; + } + if (H && W && !I) { + const workdirOid = yield getWorkdirOid(); + return workdirOid === treeOid ? "*undeleted" : "*undeletemodified"; + } + if (H && W && I) { + const workdirOid = yield getWorkdirOid(); + if (workdirOid === treeOid) { + return workdirOid === indexEntry.oid ? "unmodified" : "*unmodified"; + } else { + return workdirOid === indexEntry.oid ? "modified" : "*modified"; + } + } + } catch (err) { + err.caller = "git.status"; + throw err; + } + }); +} +function getOidAtPath(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir, tree, path: path2 }) { + if (typeof path2 === "string") + path2 = path2.split("/"); + const dirname2 = path2.shift(); + for (const entry of tree) { + if (entry.path === dirname2) { + if (path2.length === 0) { + return entry.oid; + } + const { type, object } = yield _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type === "tree") { + const tree2 = GitTree.from(object); + return getOidAtPath({ fs, cache, gitdir, tree: tree2, path: path2 }); + } + if (type === "blob") { + throw new ObjectTypeError(entry.oid, type, "blob", path2.join("/")); + } + } + } + return null; + }); +} +function getHeadTree(_0) { + return __async(this, arguments, function* ({ fs, cache, gitdir }) { + let oid; + try { + oid = yield GitRefManager.resolve({ fs, gitdir, ref: "HEAD" }); + } catch (e) { + if (e instanceof NotFoundError) { + return []; + } + } + const { tree } = yield _readTree({ fs, cache, gitdir, oid }); + return tree; + }); +} +function statusMatrix(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref = "HEAD", + filepaths = ["."], + filter, + cache = {}, + ignored: shouldIgnore = false + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + return yield _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: function(_02, _1) { + return __async(this, arguments, function* (filepath, [head, workdir, stage]) { + if (!head && !stage && workdir) { + if (!shouldIgnore) { + const isIgnored2 = yield GitIgnoreManager.isIgnored({ + fs, + dir, + filepath + }); + if (isIgnored2) { + return null; + } + } + } + if (!filepaths.some((base) => worthWalking(filepath, base))) { + return null; + } + if (filter) { + if (!filter(filepath)) + return; + } + const [headType, workdirType, stageType] = yield Promise.all([ + head && head.type(), + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [headType, workdirType, stageType].includes("blob"); + if ((headType === "tree" || headType === "special") && !isBlob) + return; + if (headType === "commit") + return null; + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") + return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const headOid = headType === "blob" ? yield head.oid() : void 0; + const stageOid = stageType === "blob" ? yield stage.oid() : void 0; + let workdirOid; + if (headType !== "blob" && workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = yield workdir.oid(); + } + const entry = [void 0, headOid, workdirOid, stageOid]; + const result = entry.map((value) => entry.indexOf(value)); + result.shift(); + return [filepath, ...result]; + }); + } + }); + } catch (err) { + err.caller = "git.statusMatrix"; + throw err; + } + }); +} +function tag(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + force = false + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + if (ref === void 0) { + throw new MissingParameterError("ref"); + } + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + const value = yield GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + if (!force && (yield GitRefManager.exists({ fs, gitdir, ref }))) { + throw new AlreadyExistsError("tag", ref); + } + yield GitRefManager.writeRef({ fs, gitdir, ref, value }); + } catch (err) { + err.caller = "git.tag"; + throw err; + } + }); +} +function updateIndex(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + cache = {}, + filepath, + oid, + mode, + add: add2, + remove: remove3, + force + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + if (remove3) { + return yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + let fileStats2; + if (!force) { + fileStats2 = yield fs.lstat(join(dir, filepath)); + if (fileStats2) { + if (fileStats2.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + return; + } + } + if (index2.has({ filepath })) { + index2.delete({ + filepath + }); + } + }); + }); + } + let fileStats; + if (!oid) { + fileStats = yield fs.lstat(join(dir, filepath)); + if (!fileStats) { + throw new NotFoundError(`file at "${filepath}" on disk and "remove" not set`); + } + if (fileStats.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + } + return yield GitIndexManager.acquire({ fs, gitdir, cache }, function(index2) { + return __async(this, null, function* () { + if (!add2 && !index2.has({ filepath })) { + throw new NotFoundError(`file at "${filepath}" in index and "add" not set`); + } + let stats = { + ctime: new Date(0), + mtime: new Date(0), + dev: 0, + ino: 0, + mode, + uid: 0, + gid: 0, + size: 0 + }; + if (!oid) { + stats = fileStats; + const object = stats.isSymbolicLink() ? yield fs.readlink(join(dir, filepath)) : yield fs.read(join(dir, filepath)); + oid = yield _writeObject({ + fs, + gitdir, + type: "blob", + format: "content", + object + }); + } + index2.insert({ + filepath, + oid, + stats + }); + return oid; + }); + }); + } catch (err) { + err.caller = "git.updateIndex"; + throw err; + } + }); +} +function version() { + try { + return pkg.version; + } catch (err) { + err.caller = "git.version"; + throw err; + } +} +function walk(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + trees, + map, + reduce, + iterate, + cache = {} + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("trees", trees); + return yield _walk({ + fs: new FileSystem(fs), + cache, + dir, + gitdir, + trees, + map, + reduce, + iterate + }); + } catch (err) { + err.caller = "git.walk"; + throw err; + } + }); +} +function writeBlob(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), blob }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("blob", blob); + return yield _writeObject({ + fs: new FileSystem(fs), + gitdir, + type: "blob", + object: blob, + format: "content" + }); + } catch (err) { + err.caller = "git.writeBlob"; + throw err; + } + }); +} +function _writeCommit(_0) { + return __async(this, arguments, function* ({ fs, gitdir, commit: commit2 }) { + const object = GitCommit.from(commit2).toObject(); + const oid = yield _writeObject({ + fs, + gitdir, + type: "commit", + object, + format: "content" + }); + return oid; + }); +} +function writeCommit(_0) { + return __async(this, arguments, function* ({ + fs, + dir, + gitdir = join(dir, ".git"), + commit: commit2 + }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("commit", commit2); + return yield _writeCommit({ + fs: new FileSystem(fs), + gitdir, + commit: commit2 + }); + } catch (err) { + err.caller = "git.writeCommit"; + throw err; + } + }); +} +function writeObject(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + type, + object, + format = "parsed", + oid, + encoding = void 0 + }) { + try { + const fs = new FileSystem(_fs); + if (format === "parsed") { + switch (type) { + case "commit": + object = GitCommit.from(object).toObject(); + break; + case "tree": + object = GitTree.from(object).toObject(); + break; + case "blob": + object = Buffer2.from(object, encoding); + break; + case "tag": + object = GitAnnotatedTag.from(object).toObject(); + break; + default: + throw new ObjectTypeError(oid || "", type, "blob|commit|tag|tree"); + } + format = "content"; + } + oid = yield _writeObject({ + fs, + gitdir, + type, + object, + oid, + format + }); + return oid; + } catch (err) { + err.caller = "git.writeObject"; + throw err; + } + }); +} +function writeRef(_0) { + return __async(this, arguments, function* ({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + value, + force = false, + symbolic = false + }) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("value", value); + const fs = new FileSystem(_fs); + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (!force && (yield GitRefManager.exists({ fs, gitdir, ref }))) { + throw new AlreadyExistsError("ref", ref); + } + if (symbolic) { + yield GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref, + value + }); + } else { + value = yield GitRefManager.resolve({ + fs, + gitdir, + ref: value + }); + yield GitRefManager.writeRef({ + fs, + gitdir, + ref, + value + }); + } + } catch (err) { + err.caller = "git.writeRef"; + throw err; + } + }); +} +function _writeTag(_0) { + return __async(this, arguments, function* ({ fs, gitdir, tag: tag2 }) { + const object = GitAnnotatedTag.from(tag2).toObject(); + const oid = yield _writeObject({ + fs, + gitdir, + type: "tag", + object, + format: "content" + }); + return oid; + }); +} +function writeTag(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), tag: tag2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tag", tag2); + return yield _writeTag({ + fs: new FileSystem(fs), + gitdir, + tag: tag2 + }); + } catch (err) { + err.caller = "git.writeTag"; + throw err; + } + }); +} +function writeTree(_0) { + return __async(this, arguments, function* ({ fs, dir, gitdir = join(dir, ".git"), tree }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tree", tree); + return yield _writeTree({ + fs: new FileSystem(fs), + gitdir, + tree + }); + } catch (err) { + err.caller = "git.writeTree"; + throw err; + } + }); +} +var index = { + Errors, + STAGE, + TREE, + WORKDIR, + add, + addNote, + addRemote, + annotatedTag, + branch, + checkout, + clone, + commit, + getConfig, + getConfigAll, + setConfig, + currentBranch, + deleteBranch, + deleteRef, + deleteRemote, + deleteTag, + expandOid, + expandRef, + fastForward, + fetch, + findMergeBase, + findRoot, + getRemoteInfo, + getRemoteInfo2, + hashBlob, + indexPack, + init, + isDescendent, + isIgnored, + listBranches, + listFiles, + listNotes, + listRemotes, + listServerRefs, + listTags, + log, + merge, + packObjects, + pull, + push, + readBlob, + readCommit, + readNote, + readObject, + readTag, + readTree, + remove, + removeNote, + renameBranch, + resetIndex, + updateIndex, + resolveRef, + status, + statusMatrix, + tag, + version, + walk, + writeBlob, + writeCommit, + writeObject, + writeRef, + writeTag, + writeTree +}; +var isomorphic_git_default = index; + +// src/isomorphicGit.ts +var import_obsidian3 = __toModule(require("obsidian")); + +// src/gitManager.ts +init_polyfill_buffer(); +var GitManager = class { + constructor(plugin) { + this.plugin = plugin; + this.app = plugin.app; + } + getVaultPath(path2) { + if (this.plugin.settings.basePath) { + return this.plugin.settings.basePath + "/" + path2; + } else { + return path2; + } + } + getPath(path2, relativeToVault) { + return relativeToVault && this.plugin.settings.basePath.length > 0 ? path2.substring(this.plugin.settings.basePath.length + 1) : path2; + } + getTreeStructure(children2, beginLength = 0) { + let list = []; + children2 = [...children2]; + while (children2.length > 0) { + const first2 = children2.first(); + const restPath = first2.path.substring(beginLength); + if (restPath.contains("/")) { + const title = restPath.substring(0, restPath.indexOf("/")); + const childrenWithSameTitle = children2.filter((item) => { + return item.path.substring(beginLength).startsWith(title + "/"); + }); + childrenWithSameTitle.forEach((item) => children2.remove(item)); + list.push({ + title, + children: this.getTreeStructure(childrenWithSameTitle, (beginLength > 0 ? beginLength + title.length : title.length) + 1) + }); + } else { + list.push({ title: restPath, statusResult: first2 }); + children2.remove(first2); + } + } + return list; + } + formatCommitMessage(template) { + return __async(this, null, function* () { + let status2; + if (template.includes("{{numFiles}}")) { + status2 = yield this.status(); + let numFiles = status2.staged.length; + template = template.replace("{{numFiles}}", String(numFiles)); + } + if (template.includes("{{hostname}}")) { + const hostname = this.plugin.localStorage.getHostname() || ""; + template = template.replace("{{hostname}}", hostname); + } + if (template.includes("{{files}}")) { + status2 = status2 != null ? status2 : yield this.status(); + let changeset = {}; + status2.staged.forEach((value) => { + if (value.index in changeset) { + changeset[value.index].push(value.path); + } else { + changeset[value.index] = [value.path]; + } + }); + let chunks = []; + for (let [action, files2] of Object.entries(changeset)) { + chunks.push(action + " " + files2.join(" ")); + } + let files = chunks.join(", "); + template = template.replace("{{files}}", files); + } + let moment = window.moment; + template = template.replace("{{date}}", moment().format(this.plugin.settings.commitDateFormat)); + if (this.plugin.settings.listChangedFilesInMessageBody) { + template = template + "\n\nAffected files:\n" + (status2 != null ? status2 : yield this.status()).staged.map((e) => e.path).join("\n"); + } + return template; + }); + } +}; + +// src/myAdapter.ts +init_polyfill_buffer(); var import_obsidian2 = __toModule(require("obsidian")); +var MyAdapter = class { + constructor(vault, plugin) { + this.plugin = plugin; + this.promises = {}; + this.adapter = vault.adapter; + this.vault = vault; + this.promises.readFile = this.readFile.bind(this); + this.promises.writeFile = this.writeFile.bind(this); + this.promises.readdir = this.readdir.bind(this); + this.promises.mkdir = this.mkdir.bind(this); + this.promises.rmdir = this.rmdir.bind(this); + this.promises.stat = this.stat.bind(this); + this.promises.unlink = this.unlink.bind(this); + this.promises.lstat = this.lstat.bind(this); + this.promises.readlink = this.readlink.bind(this); + this.promises.symlink = this.symlink.bind(this); + } + readFile(path2, opts) { + return __async(this, null, function* () { + var _a2; + this.maybeLog("Read: " + path2 + JSON.stringify(opts)); + if (opts == "utf8" || opts.encoding == "utf8") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + this.maybeLog("Reuse"); + return this.vault.read(file); + } else { + return this.adapter.read(path2); + } + } else { + if (path2.endsWith(".git/index")) { + return (_a2 = this.index) != null ? _a2 : this.adapter.readBinary(path2); + } + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + this.maybeLog("Reuse"); + return this.vault.readBinary(file); + } else { + return this.adapter.readBinary(path2); + } + } + }); + } + writeFile(path2, data) { + return __async(this, null, function* () { + this.maybeLog("Write: " + path2); + if (typeof data === "string") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + return this.vault.modify(file, data); + } else { + return this.adapter.write(path2, data); + } + } else { + if (path2.endsWith(".git/index")) { + this.index = data; + this.indexmtime = Date.now(); + } else { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian2.TFile) { + return this.vault.modifyBinary(file, data); + } else { + return this.adapter.writeBinary(path2, data); + } + } + } + }); + } + readdir(path2) { + return __async(this, null, function* () { + if (path2 === ".") + path2 = "/"; + const res = yield this.adapter.list(path2); + const all = [...res.files, ...res.folders]; + let formattedAll; + if (path2 !== "/") { + formattedAll = all.map((e) => (0, import_obsidian2.normalizePath)(e.substring(path2.length))); + } else { + formattedAll = all; + } + return formattedAll; + }); + } + mkdir(path2) { + return __async(this, null, function* () { + return this.adapter.mkdir(path2); + }); + } + rmdir(path2, opts) { + return __async(this, null, function* () { + var _a2, _b; + return this.adapter.rmdir(path2, (_b = (_a2 = opts == null ? void 0 : opts.options) == null ? void 0 : _a2.recursive) != null ? _b : false); + }); + } + stat(path2) { + return __async(this, null, function* () { + if (path2.endsWith(".git/index")) { + if (this.index !== void 0 && this.indexctime != void 0 && this.indexmtime != void 0) { + return { + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false, + size: this.index.length, + type: "file", + ctimeMs: this.indexctime, + mtimeMs: this.indexmtime + }; + } else { + const stat = yield this.adapter.stat(path2); + if (stat == void 0) { + throw { "code": "ENOENT" }; + } + this.indexctime = stat.ctime; + this.indexmtime = stat.mtime; + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } + } + if (path2 === ".") + path2 = "/"; + const file = this.vault.getAbstractFileByPath(path2); + this.maybeLog("Stat: " + path2); + if (file instanceof import_obsidian2.TFile) { + this.maybeLog("Reuse stat"); + return { + ctimeMs: file.stat.ctime, + mtimeMs: file.stat.mtime, + size: file.stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } else { + const stat = yield this.adapter.stat(path2); + if (stat) { + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: stat.type === "folder" ? "directory" : stat.type, + isFile: () => stat.type === "file", + isDirectory: () => stat.type === "folder", + isSymbolicLink: () => false + }; + } else { + throw { "code": "ENOENT" }; + } + } + }); + } + unlink(path2) { + return __async(this, null, function* () { + return this.adapter.remove(path2); + }); + } + lstat(path2) { + return __async(this, null, function* () { + return this.stat(path2); + }); + } + readlink(path2) { + return __async(this, null, function* () { + throw new Error(`readlink of (${path2}) is not implemented.`); + }); + } + symlink(path2) { + return __async(this, null, function* () { + throw new Error(`symlink of (${path2}) is not implemented.`); + }); + } + saveAndClear() { + return __async(this, null, function* () { + if (this.index !== void 0) { + yield this.adapter.writeBinary(this.plugin.gitManager.getVaultPath(".git/index"), this.index, { + ctime: this.indexctime, + mtime: this.indexmtime + }); + } + this.index = void 0; + this.indexctime = void 0; + this.indexmtime = void 0; + }); + } + maybeLog(text2) { + } +}; // src/types.ts +init_polyfill_buffer(); var PluginState; (function(PluginState2) { PluginState2[PluginState2["idle"] = 0] = "idle"; @@ -7012,272 +20025,701 @@ var PluginState; PluginState2[PluginState2["push"] = 5] = "push"; PluginState2[PluginState2["conflicted"] = 6] = "conflicted"; })(PluginState || (PluginState = {})); +var FileType; +(function(FileType2) { + FileType2[FileType2["staged"] = 0] = "staged"; + FileType2[FileType2["changed"] = 1] = "changed"; + FileType2[FileType2["pulled"] = 2] = "pulled"; +})(FileType || (FileType = {})); -// src/statusBar.ts -var StatusBar = class { - constructor(statusBarEl, plugin) { - this.statusBarEl = statusBarEl; - this.plugin = plugin; - this.messages = []; - this.base = "obsidian-git-statusbar-"; - this.statusBarEl.setAttribute("aria-label-position", "top"); +// src/utils.ts +init_polyfill_buffer(); +var worthWalking2 = (filepath, root) => { + if (filepath === "." || root == null || root.length === 0 || root === ".") { + return true; } - displayMessage(message, timeout) { - this.messages.push({ - message: `Git: ${message.slice(0, 100)}`, - timeout - }); - this.display(); - } - display() { - if (this.messages.length > 0 && !this.currentMessage) { - this.currentMessage = this.messages.shift(); - this.statusBarEl.addClass(this.base + "message"); - this.statusBarEl.ariaLabel = ""; - this.statusBarEl.setText(this.currentMessage.message); - this.lastMessageTimestamp = Date.now(); - } else if (this.currentMessage) { - const messageAge = Date.now() - this.lastMessageTimestamp; - if (messageAge >= this.currentMessage.timeout) { - this.currentMessage = null; - this.lastMessageTimestamp = null; - } - } else { - this.displayState(); - } - } - displayState() { - if (this.statusBarEl.getText().length > 3 || !this.statusBarEl.hasChildNodes()) { - this.statusBarEl.empty(); - this.iconEl = this.statusBarEl.createDiv(); - this.textEl = this.statusBarEl.createDiv(); - this.textEl.style.float = "right"; - this.textEl.style.marginLeft = "5px"; - this.iconEl.style.float = "left"; - } - switch (this.plugin.state) { - case PluginState.idle: - this.displayFromNow(this.plugin.lastUpdate); - break; - case PluginState.status: - this.statusBarEl.ariaLabel = "Checking repository status..."; - (0, import_obsidian2.setIcon)(this.iconEl, "refresh-cw"); - this.statusBarEl.addClass(this.base + "status"); - break; - case PluginState.add: - this.statusBarEl.ariaLabel = "Adding files..."; - (0, import_obsidian2.setIcon)(this.iconEl, "refresh-w"); - this.statusBarEl.addClass(this.base + "add"); - break; - case PluginState.commit: - this.statusBarEl.ariaLabel = "Committing changes..."; - (0, import_obsidian2.setIcon)(this.iconEl, "git-commit"); - this.statusBarEl.addClass(this.base + "commit"); - break; - case PluginState.push: - this.statusBarEl.ariaLabel = "Pushing changes..."; - (0, import_obsidian2.setIcon)(this.iconEl, "upload"); - this.statusBarEl.addClass(this.base + "push"); - break; - case PluginState.pull: - this.statusBarEl.ariaLabel = "Pulling changes..."; - (0, import_obsidian2.setIcon)(this.iconEl, "download"); - this.statusBarEl.addClass(this.base + "pull"); - break; - case PluginState.conflicted: - this.statusBarEl.ariaLabel = "You have conflict files..."; - (0, import_obsidian2.setIcon)(this.iconEl, "alert-circle"); - this.statusBarEl.addClass(this.base + "conflict"); - break; - default: - this.statusBarEl.ariaLabel = "Failed on initialization!"; - (0, import_obsidian2.setIcon)(this.iconEl, "alert-triangle"); - this.statusBarEl.addClass(this.base + "failed-init"); - break; - } - } - displayFromNow(timestamp) { - if (timestamp) { - const moment = window.moment; - const fromNow = moment(timestamp).fromNow(); - this.statusBarEl.ariaLabel = `${this.plugin.offlineMode ? "Offline: " : ""}Last Git update: ${fromNow}`; - } else { - this.statusBarEl.ariaLabel = this.plugin.offlineMode ? "Git is offline" : "Git is ready"; - } - if (this.plugin.offlineMode) { - (0, import_obsidian2.setIcon)(this.iconEl, "globe"); - } else { - (0, import_obsidian2.setIcon)(this.iconEl, "check"); - } - if (this.plugin.settings.changedFilesInStatusBar && this.plugin.cachedStatus) { - this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()); - } - this.statusBarEl.addClass(this.base + "idle"); + if (root.length >= filepath.length) { + return root.startsWith(filepath); + } else { + return filepath.startsWith(root); } }; -// src/ui/modals/changedFilesModal.ts -var import_obsidian3 = __toModule(require("obsidian")); -var ChangedFilesModal = class extends import_obsidian3.FuzzySuggestModal { - constructor(plugin, changedFiles) { - super(plugin.app); - this.plugin = plugin; - this.changedFiles = changedFiles; - this.setPlaceholder("Not supported files will be opened by default app!"); - } - getItems() { - return this.changedFiles; - } - getItemText(item) { - if (item.index == "?" && item.working_dir == "U") { - return `Untracked | ${item.vault_path}`; - } - let working_dir = ""; - let index = ""; - if (item.working_dir != " ") - working_dir = `Working dir: ${item.working_dir} `; - if (item.index != " ") - index = `Index: ${item.index}`; - return `${working_dir}${index} | ${item.vault_path}`; - } - onChooseItem(item, _) { - if (this.plugin.app.metadataCache.getFirstLinkpathDest(item.vault_path, "") == null) { - this.app.openWithDefaultApp(item.vault_path); - } else { - this.plugin.app.workspace.openLinkText(item.vault_path, "/"); - } - } -}; - -// src/ui/modals/customMessageModal.ts -var import_obsidian4 = __toModule(require("obsidian")); -var CustomMessageModal = class extends import_obsidian4.SuggestModal { - constructor(plugin, fromAutoBackup) { - super(plugin.app); - this.fromAutoBackup = fromAutoBackup; - this.resolve = null; - this.plugin = plugin; - this.setPlaceholder("Type your message and select optional the version with the added date."); - } - open() { - super.open(); - return new Promise((resolve) => { - this.resolve = resolve; - }); - } - onClose() { - if (this.resolve) - this.resolve(void 0); - } - selectSuggestion(value, evt) { - if (this.resolve) - this.resolve(value); - super.selectSuggestion(value, evt); - } - getSuggestions(query) { - const date = window.moment().format(this.plugin.settings.commitDateFormat); - if (query == "") - query = "..."; - return [query, `${date}: ${query}`, `${query}: ${date}`]; - } - renderSuggestion(value, el) { - el.innerText = value; - } - onChooseSuggestion(item, _) { - } -}; - -// src/constants.ts -var DEFAULT_SETTINGS = { - commitMessage: "vault backup: {{date}}", - autoCommitMessage: void 0, - commitDateFormat: "YYYY-MM-DD HH:mm:ss", - autoSaveInterval: 0, - autoPushInterval: 0, - autoPullInterval: 0, - autoPullOnBoot: false, - disablePush: false, - pullBeforePush: true, - disablePopups: false, - listChangedFilesInMessageBody: false, - showStatusBar: true, - updateSubmodules: false, - syncMethod: "merge", - gitPath: "", - customMessageOnAutoBackup: false, - autoBackupAfterFileChange: false, - treeStructure: false, - refreshSourceControl: true, - basePath: "", - differentIntervalCommitAndPush: false, - changedFilesInStatusBar: false -}; -var GIT_VIEW_CONFIG = { - type: "git-view", - name: "Source Control", - icon: "git-pull-request" -}; -var DIFF_VIEW_CONFIG = { - type: "diff-view", - name: "Diff View", - icon: "git-pull-request" -}; - -// src/openInGitHub.ts -var import_electron = __toModule(require("electron")); -var import_obsidian5 = __toModule(require("obsidian")); -function openLineInGitHub(editor, file, manager) { - return __async(this, null, function* () { - const { isGitHub, branch, repo, user } = yield getData(manager); - if (isGitHub) { - const from = editor.getCursor("from").line + 1; - const to = editor.getCursor("to").line + 1; - if (from === to) { - yield import_electron.shell.openExternal(`https://github.com/${user}/${repo}/blob/${branch}/${file.path}?plain=1#L${from}`); - } else { - yield import_electron.shell.openExternal(`https://github.com/${user}/${repo}/blob/${branch}/${file.path}?plain=1#L${from}-L${to}`); - } - } else { - new import_obsidian5.Notice("It seems like you are not using GitHub"); - } - }); -} -function openHistoryInGitHub(file, manager) { - return __async(this, null, function* () { - const { isGitHub, branch, repo, user } = yield getData(manager); - if (isGitHub) { - yield import_electron.shell.openExternal(`https://github.com/${user}/${repo}/commits/${branch}/${file.path}`); - } else { - new import_obsidian5.Notice("It seems like you are not using GitHub"); - } - }); -} -function getData(manager) { - return __async(this, null, function* () { - const branchInfo = yield manager.branchInfo(); - const remoteBranch = branchInfo.tracking; - const branch = branchInfo.current; - const remote = remoteBranch.substring(0, remoteBranch.indexOf("/")); - const remoteUrl = yield manager.getConfig(`remote.${remote}.url`); - const [isGitHub, httpsUser, httpsRepo, sshUser, sshRepo] = remoteUrl.match(/(?:^https:\/\/github\.com\/(.*)\/(.*)\.git$)|(?:^git@github\.com:(.*)\/(.*)\.git$)/); - return { - isGitHub: !!isGitHub, - repo: httpsRepo || sshRepo, - user: httpsUser || sshUser, - branch +// src/isomorphicGit.ts +var IsomorphicGit = class extends GitManager { + constructor(plugin) { + super(plugin); + this.FILE = 0; + this.HEAD = 1; + this.WORKDIR = 2; + this.STAGE = 3; + this.status_mapping = { + "000": " ", + "003": "AD", + "020": "??", + "022": "A ", + "023": "AM", + "100": "D ", + "101": " D", + "103": "MD", + "110": "DA", + "111": " ", + "120": "DA", + "121": " M", + "122": "M ", + "123": "MM" }; + this.noticeLength = 999999; + this.fs = new MyAdapter(this.app.vault, this.plugin); + } + getRepo() { + return { + fs: this.fs, + dir: this.plugin.settings.basePath, + onAuth: () => { + return { + username: this.plugin.settings.username, + password: this.plugin.localStorage.getPassword() + }; + }, + http: { + request(_0) { + return __async(this, arguments, function* ({ + url, + method, + headers, + body + }) { + if (body) { + body = yield collect2(body); + body = body.buffer; + } + const res = yield (0, import_obsidian3.requestUrl)({ url, method, headers, body, throw: false }); + return { + url, + method, + headers: res.headers, + body: [new Uint8Array(res.arrayBuffer)], + statusCode: res.status, + statusMessage: res.status.toString() + }; + }); + } + } + }; + } + wrapFS(call) { + return __async(this, null, function* () { + try { + const res = yield call; + yield this.fs.saveAndClear(); + return res; + } catch (error) { + yield this.fs.saveAndClear(); + throw error; + } + }); + } + status() { + return __async(this, null, function* () { + const notice = new import_obsidian3.Notice("Getting status...", this.noticeLength); + try { + this.plugin.setState(PluginState.status); + const status2 = (yield this.wrapFS(isomorphic_git_default.statusMatrix(__spreadValues({}, this.getRepo())))).map((row) => this.getFileStatusResult(row)); + const changed = status2.filter((fileStatus) => fileStatus.working_dir !== " "); + const staged = status2.filter((fileStatus) => fileStatus.index !== " " && fileStatus.index !== "U"); + const conflicted = []; + notice.hide(); + return { changed, staged, conflicted }; + } catch (error) { + notice.hide(); + this.plugin.displayError(error); + throw error; + } + }); + } + commitAll(_0) { + return __async(this, arguments, function* ({ message, status: status2, unstagedFiles }) { + try { + yield this.stageAll({ status: status2, unstagedFiles }); + return this.commit(message); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + commit(message) { + return __async(this, null, function* () { + try { + this.plugin.setState(PluginState.commit); + const formatMessage = yield this.formatCommitMessage(message); + const hadConflict = this.plugin.localStorage.getConflict() === "true"; + let parent = void 0; + if (hadConflict) { + const branchInfo = yield this.branchInfo(); + parent = [branchInfo.current, branchInfo.tracking]; + } + yield this.wrapFS(isomorphic_git_default.commit(__spreadProps(__spreadValues({}, this.getRepo()), { + message: formatMessage, + parent + }))); + this.plugin.localStorage.setConflict("false"); + return; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + stage(filepath, relativeToVault) { + return __async(this, null, function* () { + const gitPath = this.getPath(filepath, relativeToVault); + let vaultPath; + if (relativeToVault) { + vaultPath = filepath; + } else { + vaultPath = this.getVaultPath(filepath); + } + try { + this.plugin.setState(PluginState.add); + if (yield this.app.vault.adapter.exists(vaultPath)) { + yield this.wrapFS(isomorphic_git_default.add(__spreadProps(__spreadValues({}, this.getRepo()), { filepath: gitPath }))); + } else { + yield this.wrapFS(isomorphic_git_default.remove(__spreadProps(__spreadValues({}, this.getRepo()), { filepath: gitPath }))); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + stageAll(_0) { + return __async(this, arguments, function* ({ dir, status: status2, unstagedFiles }) { + try { + if (status2) { + yield Promise.all(status2.changed.map((file) => file.working_dir !== "D" ? this.wrapFS(isomorphic_git_default.add(__spreadProps(__spreadValues({}, this.getRepo()), { filepath: file.path }))) : isomorphic_git_default.remove(__spreadProps(__spreadValues({}, this.getRepo()), { filepath: file.path })))); + } else { + const filesToStage = unstagedFiles != null ? unstagedFiles : yield this.getUnstagedFiles(dir != null ? dir : "."); + yield Promise.all(filesToStage.map(({ filepath, deleted }) => deleted ? isomorphic_git_default.remove(__spreadProps(__spreadValues({}, this.getRepo()), { filepath })) : this.wrapFS(isomorphic_git_default.add(__spreadProps(__spreadValues({}, this.getRepo()), { filepath }))))); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + unstage(filepath, relativeToVault) { + return __async(this, null, function* () { + try { + this.plugin.setState(PluginState.add); + filepath = this.getPath(filepath, relativeToVault); + yield this.wrapFS(isomorphic_git_default.resetIndex(__spreadProps(__spreadValues({}, this.getRepo()), { filepath }))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + unstageAll(_0) { + return __async(this, arguments, function* ({ dir, status: status2 }) { + try { + let staged; + if (status2) { + staged = status2.staged.map((file) => file.path); + } else { + const res = yield this.getStagedFiles(dir != null ? dir : "."); + staged = res.map(({ filepath }) => filepath); + } + yield Promise.all(staged.map((file) => this.unstage(file, false))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + discard(filepath) { + return __async(this, null, function* () { + try { + this.plugin.setState(PluginState.add); + yield this.wrapFS(isomorphic_git_default.checkout(__spreadProps(__spreadValues({}, this.getRepo()), { filepaths: [filepath], force: true }))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + getProgressText(action, event) { + let out = `${action} progress:`; + if (event.phase) { + out = `${out} ${event.phase}:`; + } + if (event.loaded) { + out = `${out} ${event.loaded}`; + if (event.total) { + out = `${out} of ${event.total}`; + } + } + return out; + } + resolveRef(ref) { + return this.wrapFS(isomorphic_git_default.resolveRef(__spreadProps(__spreadValues({}, this.getRepo()), { ref }))); + } + pull() { + return __async(this, null, function* () { + const progressNotice = new import_obsidian3.Notice("Initializing pull", this.noticeLength); + try { + this.plugin.setState(PluginState.pull); + const localCommit = yield this.resolveRef("HEAD"); + yield this.fetch(); + const branchInfo = yield this.branchInfo(); + yield this.wrapFS(isomorphic_git_default.merge(__spreadProps(__spreadValues({}, this.getRepo()), { + ours: branchInfo.current, + theirs: branchInfo.tracking, + abortOnConflict: false + }))); + yield this.wrapFS(isomorphic_git_default.checkout(__spreadProps(__spreadValues({}, this.getRepo()), { + ref: branchInfo.current, + onProgress: (progress) => { + progressNotice.noticeEl.innerText = this.getProgressText("Checkout", progress); + }, + remote: branchInfo.remote + }))); + progressNotice.hide(); + const upstreamCommit = yield this.resolveRef("HEAD"); + this.plugin.lastUpdate = Date.now(); + const changedFiles = yield this.getFileChangesCount(localCommit, upstreamCommit); + new import_obsidian3.Notice("Finished pull"); + return changedFiles.map((file) => ({ + path: file.path, + working_dir: "P", + index: "P", + vault_path: this.getVaultPath(file.path) + })); + } catch (error) { + progressNotice.hide(); + if (error instanceof Errors.MergeConflictError) { + this.plugin.handleConflict(error.data.filepaths.map((file) => this.getVaultPath(file))); + } + this.plugin.displayError(error); + throw error; + } + }); + } + push() { + return __async(this, null, function* () { + if (!(yield this.canPush())) { + return 0; + } + const progressNotice = new import_obsidian3.Notice("Initializing push", this.noticeLength); + try { + this.plugin.setState(PluginState.status); + const status2 = yield this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const numChangedFiles = (yield this.getFileChangesCount(currentBranch2, trackingBranch)).length; + this.plugin.setState(PluginState.push); + yield this.wrapFS(isomorphic_git_default.push(__spreadProps(__spreadValues({}, this.getRepo()), { + onProgress: (progress) => { + progressNotice.noticeEl.innerText = this.getProgressText("Pushing", progress); + } + }))); + progressNotice.hide(); + return numChangedFiles; + } catch (error) { + progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + }); + } + canPush() { + return __async(this, null, function* () { + const status2 = yield this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const current = yield this.resolveRef(currentBranch2); + const tracking = yield this.resolveRef(trackingBranch); + return current != tracking; + }); + } + checkRequirements() { + return __async(this, null, function* () { + const headExists = yield this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`); + return headExists ? "valid" : "missing-repo"; + }); + } + branchInfo() { + return __async(this, null, function* () { + var _a2, _b; + try { + const current = (yield isomorphic_git_default.currentBranch(this.getRepo())) || ""; + const branches = yield isomorphic_git_default.listBranches(this.getRepo()); + const remote = (_a2 = yield this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + const trackingBranch = (_b = yield this.getConfig(`branch.${current}.merge`)) == null ? void 0 : _b.split("refs/heads")[1]; + let tracking = trackingBranch ? remote + trackingBranch : void 0; + return { + current, + tracking, + branches, + remote + }; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + getCurrentRemote() { + return __async(this, null, function* () { + var _a2; + const current = (yield isomorphic_git_default.currentBranch(this.getRepo())) || ""; + const remote = (_a2 = yield this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + return remote; + }); + } + checkout(branch2) { + return __async(this, null, function* () { + try { + return this.wrapFS(isomorphic_git_default.checkout(__spreadProps(__spreadValues({}, this.getRepo()), { + ref: branch2 + }))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + init() { + return __async(this, null, function* () { + try { + yield this.wrapFS(isomorphic_git_default.init(this.getRepo())); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + clone(url, dir) { + return __async(this, null, function* () { + const progressNotice = new import_obsidian3.Notice("Initializing clone", this.noticeLength); + try { + yield this.wrapFS(isomorphic_git_default.clone(__spreadProps(__spreadValues({}, this.getRepo()), { + dir, + url, + onProgress: (progress) => { + progressNotice.noticeEl.innerText = this.getProgressText("Cloning", progress); + } + }))); + progressNotice.hide(); + } catch (error) { + progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + }); + } + setConfig(path2, value) { + return __async(this, null, function* () { + try { + return this.wrapFS(isomorphic_git_default.setConfig(__spreadProps(__spreadValues({}, this.getRepo()), { + path: path2, + value + }))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + getConfig(path2) { + return __async(this, null, function* () { + try { + return this.wrapFS(isomorphic_git_default.getConfig(__spreadProps(__spreadValues({}, this.getRepo()), { + path: path2 + }))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + fetch(remote) { + return __async(this, null, function* () { + const progressNotice = new import_obsidian3.Notice("Initializing fetch", this.noticeLength); + try { + const args = __spreadProps(__spreadValues({}, this.getRepo()), { + onProgress: (progress) => { + progressNotice.noticeEl.innerText = this.getProgressText("Fetching", progress); + }, + remote: remote != null ? remote : yield this.getCurrentRemote() + }); + yield this.wrapFS(isomorphic_git_default.fetch(args)); + progressNotice.hide(); + } catch (error) { + this.plugin.displayError(error); + progressNotice.hide(); + throw error; + } + }); + } + setRemote(name, url) { + return __async(this, null, function* () { + try { + yield this.wrapFS(isomorphic_git_default.addRemote(__spreadProps(__spreadValues({}, this.getRepo()), { remote: name, url }))); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + }); + } + getRemoteBranches(remote) { + return __async(this, null, function* () { + let remoteBranches = []; + remoteBranches.push(...yield this.wrapFS(isomorphic_git_default.listBranches(__spreadProps(__spreadValues({}, this.getRepo()), { remote })))); + remoteBranches.remove("HEAD"); + remoteBranches = remoteBranches.map((e) => `${remote}/${e}`); + return remoteBranches; + }); + } + getRemotes() { + return __async(this, null, function* () { + return (yield this.wrapFS(isomorphic_git_default.listRemotes(__spreadValues({}, this.getRepo())))).map((remoteUrl) => remoteUrl.remote); + }); + } + removeRemote(remoteName) { + return __async(this, null, function* () { + yield this.wrapFS(isomorphic_git_default.deleteRemote(__spreadProps(__spreadValues({}, this.getRepo()), { remote: remoteName }))); + }); + } + getRemoteUrl(remote) { + return __async(this, null, function* () { + return (yield this.wrapFS(isomorphic_git_default.listRemotes(__spreadValues({}, this.getRepo())))).filter((item) => item.remote == remote)[0].url; + }); + } + updateBasePath(basePath) { + this.getRepo().dir = basePath; + } + updateUpstreamBranch(remoteBranch) { + return __async(this, null, function* () { + const [remote, branch2] = remoteBranch.split("/"); + const branchInfo = yield this.branchInfo(); + yield this.setConfig(`branch.${branchInfo.current}.merge`, `refs/heads/${branch2}`); + yield this.setConfig(`branch.${branch2}.remote`, remote); + }); + } + updateGitPath(gitPath) { + return; + } + getFileChangesCount(commitHash1, commitHash2) { + return __async(this, null, function* () { + return this.walkDifference({ walkers: [isomorphic_git_default.TREE({ ref: commitHash1 }), isomorphic_git_default.TREE({ ref: commitHash2 })] }); + }); + } + walkDifference(_0) { + return __async(this, arguments, function* ({ walkers: walker, dir: base }) { + const res = yield this.wrapFS(isomorphic_git_default.walk(__spreadProps(__spreadValues({}, this.getRepo()), { + trees: walker, + map: function(_02, _1) { + return __async(this, arguments, function* (filepath, [A, B]) { + if (!worthWalking2(filepath, base)) { + return null; + } + if ((yield A == null ? void 0 : A.type()) === "tree" || (yield B == null ? void 0 : B.type()) === "tree") { + return; + } + const Aoid = yield A == null ? void 0 : A.oid(); + const Boid = yield B == null ? void 0 : B.oid(); + let type = "equal"; + if (Aoid !== Boid) { + type = "modify"; + } + if (Aoid === void 0) { + type = "add"; + } + if (Boid === void 0) { + type = "remove"; + } + if (Aoid === void 0 && Boid === void 0) { + console.log("Something weird happened:"); + console.log(A); + console.log(B); + } + if (type === "equal") { + return; + } + return { + path: filepath, + type + }; + }); + } + }))); + return res; + }); + } + getStagedFiles(dir = ".") { + return __async(this, null, function* () { + const res = yield this.walkDifference({ + walkers: [isomorphic_git_default.TREE({ ref: "HEAD" }), isomorphic_git_default.STAGE()], + dir + }); + return res.map((file) => { + return { + vault_path: this.getVaultPath(file.path), + filepath: file.path + }; + }); + }); + } + getUnstagedFiles(base = ".") { + return __async(this, null, function* () { + const notice = new import_obsidian3.Notice("Getting status...", this.noticeLength); + try { + const repo = this.getRepo(); + const res = yield this.wrapFS(isomorphic_git_default.walk(__spreadProps(__spreadValues({}, repo), { + trees: [isomorphic_git_default.WORKDIR(), isomorphic_git_default.STAGE()], + map: function(_0, _1) { + return __async(this, arguments, function* (filepath, [workdir, stage]) { + if (!stage && workdir) { + const isIgnored2 = yield isomorphic_git_default.isIgnored(__spreadProps(__spreadValues({}, repo), { + filepath + })); + if (isIgnored2) { + return null; + } + } + if (!worthWalking2(filepath, base)) { + return null; + } + const [workdirType, stageType] = yield Promise.all([ + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [workdirType, stageType].includes("blob"); + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") + return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const stageOid = stageType === "blob" ? yield stage.oid() : void 0; + let workdirOid; + if (workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = yield workdir.oid(); + } + if (!workdirOid) { + return { + filepath, + deleted: true + }; + } + if (workdirOid !== stageOid) { + return { + filepath, + deleted: false + }; + } + return null; + }); + } + }))); + notice.hide(); + return res; + } catch (error) { + notice.hide(); + this.plugin.displayError(error); + throw error; + } + }); + } + getDiffString(filePath) { + return __async(this, null, function* () { + throw new Error("Method not implemented."); + }); + } + getFileStatusResult(row) { + const status2 = this.status_mapping[`${row[this.HEAD]}${row[this.WORKDIR]}${row[this.STAGE]}`]; + return { + index: status2[0] == "?" ? "U" : status2[0], + working_dir: status2[1] == "?" ? "U" : status2[1], + path: row[this.FILE], + vault_path: this.getVaultPath(row[this.FILE]) + }; + } +}; +function fromValue2(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ done: queue.length === 0, value: queue.pop() }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator2(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue2(iterable); +} +function forAwait2(iterable, cb) { + return __async(this, null, function* () { + const iter = getIterator2(iterable); + while (true) { + const { value, done } = yield iter.next(); + if (value) + yield cb(value); + if (done) + break; + } + if (iter.return) + iter.return(); + }); +} +function collect2(iterable) { + return __async(this, null, function* () { + let size = 0; + const buffers = []; + yield forAwait2(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; }); } // src/simpleGit.ts +init_polyfill_buffer(); var import_child_process2 = __toModule(require("child_process")); -var import_obsidian6 = __toModule(require("obsidian")); +var import_obsidian4 = __toModule(require("obsidian")); var path = __toModule(require("path")); var import_path = __toModule(require("path")); // node_modules/simple-git/dist/esm/index.js +init_polyfill_buffer(); var import_file_exists = __toModule(require_dist()); -var import_debug = __toModule(require_src()); +var import_debug = __toModule(require_browser()); var import_child_process = __toModule(require("child_process")); var import_promise_deferred = __toModule(require_dist2()); var import_promise_deferred2 = __toModule(require_dist2()); @@ -7303,7 +20745,7 @@ var __spreadValues2 = (a, b) => { }; var __spreadProps2 = (a, b) => __defProps2(a, __getOwnPropDescs2(b)); var __markAsModule2 = (target) => __defProp2(target, "__esModule", { value: true }); -var __esm = (fn, res) => function __init() { +var __esm2 = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; }; var __commonJS2 = (cb, mod) => function __require() { @@ -7347,7 +20789,7 @@ var __async2 = (__this, __arguments, generator) => { }); }; var GitError; -var init_git_error = __esm({ +var init_git_error = __esm2({ "src/lib/errors/git-error.ts"() { GitError = class extends Error { constructor(task, message) { @@ -7359,7 +20801,7 @@ var init_git_error = __esm({ } }); var GitResponseError; -var init_git_response_error = __esm({ +var init_git_response_error = __esm2({ "src/lib/errors/git-response-error.ts"() { init_git_error(); GitResponseError = class extends GitError { @@ -7371,7 +20813,7 @@ var init_git_response_error = __esm({ } }); var TaskConfigurationError; -var init_task_configuration_error = __esm({ +var init_task_configuration_error = __esm2({ "src/lib/errors/task-configuration-error.ts"() { init_git_error(); TaskConfigurationError = class extends GitError { @@ -7388,14 +20830,11 @@ function isUserFunction(source) { return typeof source === "function" && source !== NOOP; } function splitOn(input, char) { - const index = input.indexOf(char); - if (index <= 0) { + const index2 = input.indexOf(char); + if (index2 <= 0) { return [input, ""]; } - return [ - input.substr(0, index), - input.substr(index + 1) - ]; + return [input.substr(0, index2), input.substr(index2 + 1)]; } function first(input, offset = 0) { return isArrayLike(input) && input.length > offset ? input[offset] : void 0; @@ -7408,8 +20847,8 @@ function last(input, offset = 0) { function isArrayLike(input) { return !!(input && typeof input.length === "number"); } -function toLinesWithContent(input = "", trimmed2 = true, separator = "\n") { - return input.split(separator).reduce((output, line) => { +function toLinesWithContent(input = "", trimmed2 = true, separator2 = "\n") { + return input.split(separator2).reduce((output, line) => { const lineContent = trimmed2 ? line.trim() : line; if (lineContent) { output.push(lineContent); @@ -7420,8 +20859,8 @@ function toLinesWithContent(input = "", trimmed2 = true, separator = "\n") { function forEachLineWithContent(input, callback) { return toLinesWithContent(input, true).map((line) => callback(line)); } -function folderExists(path3) { - return (0, import_file_exists.exists)(path3, import_file_exists.FOLDER); +function folderExists(path2) { + return (0, import_file_exists.exists)(path2, import_file_exists.FOLDER); } function append(target, item) { if (Array.isArray(target)) { @@ -7439,11 +20878,11 @@ function including(target, item) { } return target; } -function remove(target, item) { +function remove2(target, item) { if (Array.isArray(target)) { - const index = target.indexOf(item); - if (index >= 0) { - target.splice(index, 1); + const index2 = target.indexOf(item); + if (index2 >= 0) { + target.splice(index2, 1); } } else { target.delete(item); @@ -7460,8 +20899,8 @@ function asNumber(source, onNaN = 0) { if (source == null) { return onNaN; } - const num = parseInt(source, 10); - return isNaN(num) ? onNaN : num; + const num2 = parseInt(source, 10); + return isNaN(num2) ? onNaN : num2; } function prefixedArray(input, prefix) { const output = []; @@ -7471,7 +20910,7 @@ function prefixedArray(input, prefix) { return output; } function bufferToString(input) { - return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); + return (Array.isArray(input) ? Buffer2.concat(input) : input).toString("utf-8"); } function pick(source, properties) { return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {})); @@ -7482,7 +20921,7 @@ function delay(duration = 0) { var NULL; var NOOP; var objectToString; -var init_util = __esm({ +var init_util = __esm2({ "src/lib/utils/util.ts"() { NULL = "\0"; NOOP = () => { @@ -7510,7 +20949,7 @@ var filterString; var filterStringArray; var filterStringOrStringArray; var filterHasLength; -var init_argument_filters = __esm({ +var init_argument_filters = __esm2({ "src/lib/utils/argument-filters.ts"() { init_util(); filterArray = (input) => { @@ -7534,18 +20973,19 @@ var init_argument_filters = __esm({ } }); var ExitCodes; -var init_exit_codes = __esm({ +var init_exit_codes = __esm2({ "src/lib/utils/exit-codes.ts"() { ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; return ExitCodes2; })(ExitCodes || {}); } }); var GitOutputStreams; -var init_git_output_streams = __esm({ +var init_git_output_streams = __esm2({ "src/lib/utils/git-output-streams.ts"() { GitOutputStreams = class { constructor(stdOut, stdErr) { @@ -7560,14 +21000,14 @@ var init_git_output_streams = __esm({ }); var LineParser; var RemoteLineParser; -var init_line_parser = __esm({ +var init_line_parser = __esm2({ "src/lib/utils/line-parser.ts"() { LineParser = class { constructor(regExp, useMatches) { this.matches = []; this.parse = (line, target) => { this.resetMatches(); - if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) { + if (!this._regExp.every((reg, index2) => this.addMatch(reg, index2, line(index2)))) { return false; } return this.useMatches(target, this.prepareMatches()) !== false; @@ -7586,10 +21026,10 @@ var init_line_parser = __esm({ prepareMatches() { return this.matches; } - addMatch(reg, index, line) { + addMatch(reg, index2, line) { const matched = line && reg.exec(line); if (matched) { - this.pushMatch(index, matched); + this.pushMatch(index2, matched); } return !!matched; } @@ -7598,12 +21038,12 @@ var init_line_parser = __esm({ } }; RemoteLineParser = class extends LineParser { - addMatch(reg, index, line) { - return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line); + addMatch(reg, index2, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index2, line); } - pushMatch(index, matched) { - if (index > 0 || matched.length > 1) { - super.pushMatch(index, matched); + pushMatch(index2, matched) { + if (index2 > 0 || matched.length > 1) { + super.pushMatch(index2, matched); } } }; @@ -7613,15 +21053,17 @@ function createInstanceConfig(...options) { const baseDir = process.cwd(); const config = Object.assign(__spreadValues2({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); config.baseDir = config.baseDir || baseDir; + config.trimmed = config.trimmed === true; return config; } var defaultOptions; -var init_simple_git_options = __esm({ +var init_simple_git_options = __esm2({ "src/lib/utils/simple-git-options.ts"() { defaultOptions = { binary: "git", maxConcurrentProcesses: 5, - config: [] + config: [], + trimmed: false }; } }); @@ -7664,7 +21106,7 @@ function trailingFunctionArgument(args, includeNoop = true) { const callback = asFunction(last(args)); return includeNoop || isUserFunction(callback) ? callback : void 0; } -var init_task_options = __esm({ +var init_task_options = __esm2({ "src/lib/utils/task-options.ts"() { init_argument_filters(); init_util(); @@ -7682,12 +21124,12 @@ function parseStringResponse(result, parsers11, texts, trim = true) { } return lines[i + offset]; }; - parsers11.some(({ parse }) => parse(line, result)); + parsers11.some(({ parse: parse2 }) => parse2(line, result)); } }); return result; } -var init_task_parser = __esm({ +var init_task_parser = __esm2({ "src/lib/utils/task-parser.ts"() { init_util(); } @@ -7730,13 +21172,13 @@ __export2(utils_exports, { parseStringResponse: () => parseStringResponse, pick: () => pick, prefixedArray: () => prefixedArray, - remove: () => remove, + remove: () => remove2, splitOn: () => splitOn, toLinesWithContent: () => toLinesWithContent, trailingFunctionArgument: () => trailingFunctionArgument, trailingOptionsArgument: () => trailingOptionsArgument }); -var init_utils = __esm({ +var init_utils = __esm2({ "src/lib/utils/index.ts"() { init_argument_filters(); init_exit_codes(); @@ -7776,8 +21218,8 @@ function checkIsRepoRootTask() { commands, format: "utf-8", onError, - parser(path3) { - return /^\.(git)?$/.test(path3.trim()); + parser(path2) { + return /^\.(git)?$/.test(path2.trim()); } }; } @@ -7796,7 +21238,7 @@ function isNotRepoMessage(error) { var CheckRepoActions; var onError; var parser; -var init_check_is_repo = __esm({ +var init_check_is_repo = __esm2({ "src/lib/tasks/check-is-repo.ts"() { init_utils(); CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { @@ -7807,7 +21249,7 @@ var init_check_is_repo = __esm({ })(CheckRepoActions || {}); onError = ({ exitCode }, error, done, fail) => { if (exitCode === 128 && isNotRepoMessage(error)) { - return done(Buffer.from("false")); + return done(Buffer2.from("false")); } fail(error); }; @@ -7830,7 +21272,7 @@ var CleanResponse; var removalRegexp; var dryRunRemovalRegexp; var isFolderRegexp; -var init_CleanSummary = __esm({ +var init_CleanSummary = __esm2({ "src/lib/responses/CleanSummary.ts"() { init_utils(); CleanResponse = class { @@ -7885,8 +21327,8 @@ function straightThroughBufferTask(commands) { return { commands, format: "buffer", - parser(buffer) { - return buffer; + parser(buffer2) { + return buffer2; } }; } @@ -7897,7 +21339,7 @@ function isEmptyTask(task) { return task.format === "empty" || !task.commands.length; } var EMPTY_COMMANDS; -var init_task = __esm({ +var init_task = __esm2({ "src/lib/tasks/task.ts"() { init_task_configuration_error(); EMPTY_COMMANDS = []; @@ -7975,7 +21417,7 @@ var CONFIG_ERROR_MODE_REQUIRED; var CONFIG_ERROR_UNKNOWN_OPTION; var CleanOptions; var CleanOptionValues; -var init_clean = __esm({ +var init_clean = __esm2({ "src/lib/tasks/clean.ts"() { init_CleanSummary(); init_utils(); @@ -7993,7 +21435,10 @@ var init_clean = __esm({ CleanOptions2["RECURSIVE"] = "d"; return CleanOptions2; })(CleanOptions || {}); - CleanOptionValues = /* @__PURE__ */ new Set(["i", ...asStringArray(Object.values(CleanOptions))]); + CleanOptionValues = /* @__PURE__ */ new Set([ + "i", + ...asStringArray(Object.values(CleanOptions)) + ]); } }); function configListParser(text2) { @@ -8043,7 +21488,7 @@ function* configParser(text2, requestedKey = null) { } } var ConfigList; -var init_ConfigList = __esm({ +var init_ConfigList = __esm2({ "src/lib/responses/ConfigList.ts"() { init_utils(); ConfigList = class { @@ -8141,7 +21586,7 @@ function config_default() { }; } var GitConfigScope; -var init_config = __esm({ +var init_config = __esm2({ "src/lib/tasks/config.ts"() { init_ConfigList(); init_utils(); @@ -8161,11 +21606,11 @@ function parseGrep(grep) { const paths = /* @__PURE__ */ new Set(); const results = {}; forEachLineWithContent(grep, (input) => { - const [path3, line, preview] = input.split(NULL); - paths.add(path3); - (results[path3] = results[path3] || []).push({ + const [path2, line, preview] = input.split(NULL); + paths.add(path2); + (results[path2] = results[path2] || []).push({ line: asNumber(line), - path: path3, + path: path2, preview }); }); @@ -8202,7 +21647,7 @@ var disallowedOptions; var Query; var _a; var GrepQuery; -var init_grep = __esm({ +var init_grep = __esm2({ "src/lib/tasks/grep.ts"() { init_utils(); init_task(); @@ -8258,7 +21703,7 @@ function isValidResetMode(mode) { } var ResetMode; var ResetModes; -var init_reset = __esm({ +var init_reset = __esm2({ "src/lib/tasks/reset.ts"() { init_task(); ResetMode = /* @__PURE__ */ ((ResetMode2) => { @@ -8320,12 +21765,12 @@ function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { }); } } -var init_git_logger = __esm({ +var init_git_logger = __esm2({ "src/lib/git-logger.ts"() { init_utils(); import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); import_debug.default.formatters.B = (value) => { - if (Buffer.isBuffer(value)) { + if (Buffer2.isBuffer(value)) { return value.toString("utf8"); } return objectToString(value); @@ -8334,7 +21779,7 @@ var init_git_logger = __esm({ }); var _TasksPendingQueue; var TasksPendingQueue; -var init_tasks_pending_queue = __esm({ +var init_tasks_pending_queue = __esm2({ "src/lib/runners/tasks-pending-queue.ts"() { init_git_error(); init_git_logger(); @@ -8406,18 +21851,18 @@ function pluginContext(task, commands) { function onErrorReceived(target, logger) { return (err) => { logger(`[ERROR] child process exception %o`, err); - target.push(Buffer.from(String(err.stack), "ascii")); + target.push(Buffer2.from(String(err.stack), "ascii")); }; } function onDataReceived(target, name, logger, output) { - return (buffer) => { - logger(`%s received %L bytes`, name, buffer); - output(`%B`, buffer); - target.push(buffer); + return (buffer2) => { + logger(`%s received %L bytes`, name, buffer2); + output(`%B`, buffer2); + target.push(buffer2); }; } var GitExecutorChain; -var init_git_executor_chain = __esm({ +var init_git_executor_chain = __esm2({ "src/lib/runners/git-executor-chain.ts"() { init_git_error(); init_task(); @@ -8502,7 +21947,7 @@ var init_git_executor_chain = __esm({ return task.onError(result, error, (newStdOut) => { logger.info(`custom error handler treated as success`); logger(`custom error returned a %s`, objectToString(newStdOut)); - done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer2.concat(newStdOut) : newStdOut, Buffer2.concat(stdErr))); }, fail); } if (error) { @@ -8510,7 +21955,7 @@ var init_git_executor_chain = __esm({ return fail(error); } logger.info(`retrieving task output complete`); - done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + done(new GitOutputStreams(Buffer2.concat(stdOut), Buffer2.concat(stdErr))); }); } gitResponse(task, command, args, outputHandler, logger) { @@ -8524,9 +21969,22 @@ var init_git_executor_chain = __esm({ return new Promise((done) => { const stdOut = []; const stdErr = []; - let rejection; logger.info(`%s %o`, command, args); logger("%O", spawnOptions); + let rejection = this._beforeSpawn(task, args); + if (rejection) { + return done({ + stdOut, + stdErr, + exitCode: 9901, + rejection + }); + } + this._plugins.exec("spawn.before", void 0, __spreadProps2(__spreadValues2({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); const spawned = (0, import_child_process.spawn)(command, args, spawnOptions); spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger, outputLogger.step("stdOut"))); spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger, outputLogger.step("stdErr"))); @@ -8556,6 +22014,15 @@ var init_git_executor_chain = __esm({ }); }); } + _beforeSpawn(task, args) { + let rejection; + this._plugins.exec("spawn.before", void 0, __spreadProps2(__spreadValues2({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + return rejection; + } }; } }); @@ -8564,7 +22031,7 @@ __export2(git_executor_exports, { GitExecutor: () => GitExecutor }); var GitExecutor; -var init_git_executor = __esm({ +var init_git_executor = __esm2({ "src/lib/runners/git-executor.ts"() { init_git_executor_chain(); GitExecutor = class { @@ -8596,9 +22063,9 @@ function taskCallback(task, response, callback = NOOP) { response.then(onSuccess, onError2); } function addDeprecationNoticeToError(err) { - let log = (name) => { + let log2 = (name) => { console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); - log = NOOP; + log2 = NOOP; }; return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); function descriptorReducer(all, name) { @@ -8609,28 +22076,28 @@ function addDeprecationNoticeToError(err) { enumerable: false, configurable: false, get() { - log(name); + log2(name); return err.git[name]; } }; return all; } } -var init_task_callback = __esm({ +var init_task_callback = __esm2({ "src/lib/task-callback.ts"() { init_git_response_error(); init_utils(); } }); function changeWorkingDirectoryTask(directory, root) { - return adhocExecTask((instance5) => { + return adhocExecTask((instance6) => { if (!folderExists(directory)) { throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); } - return (root || instance5).cwd = directory; + return (root || instance6).cwd = directory; }); } -var init_change_working_directory = __esm({ +var init_change_working_directory = __esm2({ "src/lib/tasks/change-working-directory.ts"() { init_utils(); init_task(); @@ -8651,13 +22118,13 @@ function parseCommitResult(stdOut) { return parseStringResponse(result, parsers, stdOut); } var parsers; -var init_parse_commit = __esm({ +var init_parse_commit = __esm2({ "src/lib/parsers/parse-commit.ts"() { init_utils(); parsers = [ - new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { - result.branch = branch; - result.commit = commit; + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch2, root, commit2]) => { + result.branch = branch2; + result.commit = commit2; result.root = !!root; }), new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { @@ -8720,7 +22187,7 @@ function commit_default() { return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); } } -var init_commit = __esm({ +var init_commit = __esm2({ "src/lib/tasks/commit.ts"() { init_parse_commit(); init_utils(); @@ -8734,19 +22201,19 @@ function hashObjectTask(filePath, write) { } return straightThroughStringTask(commands, true); } -var init_hash_object = __esm({ +var init_hash_object = __esm2({ "src/lib/tasks/hash-object.ts"() { init_task(); } }); -function parseInit(bare, path3, text2) { +function parseInit(bare, path2, text2) { const response = String(text2).trim(); let result; if (result = initResponseRegex.exec(response)) { - return new InitSummary(bare, path3, false, result[1]); + return new InitSummary(bare, path2, false, result[1]); } if (result = reInitResponseRegex.exec(response)) { - return new InitSummary(bare, path3, true, result[1]); + return new InitSummary(bare, path2, true, result[1]); } let gitDir = ""; const tokens = response.split(" "); @@ -8757,17 +22224,17 @@ function parseInit(bare, path3, text2) { break; } } - return new InitSummary(bare, path3, /^re/i.test(response), gitDir); + return new InitSummary(bare, path2, /^re/i.test(response), gitDir); } var InitSummary; var initResponseRegex; var reInitResponseRegex; -var init_InitSummary = __esm({ +var init_InitSummary = __esm2({ "src/lib/responses/InitSummary.ts"() { InitSummary = class { - constructor(bare, path3, existing, gitDir) { + constructor(bare, path2, existing, gitDir) { this.bare = bare; - this.path = path3; + this.path = path2; this.existing = existing; this.gitDir = gitDir; } @@ -8779,7 +22246,7 @@ var init_InitSummary = __esm({ function hasBareCommand(command) { return command.includes(bareCommand); } -function initTask(bare = false, path3, customArgs) { +function initTask(bare = false, path2, customArgs) { const commands = ["init", ...customArgs]; if (bare && !hasBareCommand(commands)) { commands.splice(1, 0, bareCommand); @@ -8788,12 +22255,12 @@ function initTask(bare = false, path3, customArgs) { commands, format: "utf-8", parser(text2) { - return parseInit(commands.includes("--bare"), path3, text2); + return parseInit(commands.includes("--bare"), path2, text2); } }; } var bareCommand; -var init_init = __esm({ +var init_init = __esm2({ "src/lib/tasks/init.ts"() { init_InitSummary(); bareCommand = "--bare"; @@ -8812,13 +22279,13 @@ function isLogFormat(customArg) { return logFormatRegex.test(customArg); } var logFormatRegex; -var init_log_format = __esm({ +var init_log_format = __esm2({ "src/lib/args/log-format.ts"() { logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; } }); var DiffSummary; -var init_DiffSummary = __esm({ +var init_DiffSummary = __esm2({ "src/lib/responses/DiffSummary.ts"() { DiffSummary = class { constructor() { @@ -8839,7 +22306,7 @@ var numStatParser; var nameOnlyParser; var nameStatusParser; var diffSummaryParsers; -var init_parse_diff_summary = __esm({ +var init_parse_diff_summary = __esm2({ "src/lib/parsers/parse-diff-summary.ts"() { init_log_format(); init_DiffSummary(); @@ -8929,8 +22396,8 @@ var init_parse_diff_summary = __esm({ } }); function lineBuilder(tokens, fields) { - return fields.reduce((line, field, index) => { - line[field] = tokens[index] || ""; + return fields.reduce((line, field, index2) => { + line[field] = tokens[index2] || ""; return line; }, /* @__PURE__ */ Object.create({ diff: null })); } @@ -8956,7 +22423,7 @@ var START_BOUNDARY; var COMMIT_BOUNDARY; var SPLITTER; var defaultFieldNames; -var init_parse_list_log_summary = __esm({ +var init_parse_list_log_summary = __esm2({ "src/lib/parsers/parse-list-log-summary.ts"() { init_utils(); init_parse_diff_summary(); @@ -8995,7 +22462,7 @@ function validateLogFormatConfig(customArgs) { return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); } } -var init_diff = __esm({ +var init_diff = __esm2({ "src/lib/tasks/diff.ts"() { init_log_format(); init_parse_diff_summary(); @@ -9009,10 +22476,7 @@ function prettyFormat(format, splitter) { fields.push(field); formatStr.push(String(format[field])); }); - return [ - fields, - formatStr.join(splitter) - ]; + return [fields, formatStr.join(splitter)]; } function userOptions(input) { return Object.keys(input).reduce((out, key2) => { @@ -9043,9 +22507,9 @@ function parseLogOptions(opt = {}, customArgs = []) { if (maxCount) { command.push(`--max-count=${maxCount}`); } - if (opt.from && opt.to) { + if (opt.from || opt.to) { const rangeOperator = opt.symmetric !== false ? "..." : ".."; - suffix.push(`${opt.from}${rangeOperator}${opt.to}`); + suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); } if (filterString(opt.file)) { suffix.push("--follow", opt.file); @@ -9054,10 +22518,7 @@ function parseLogOptions(opt = {}, customArgs = []) { return { fields, splitter, - commands: [ - ...command, - ...suffix - ] + commands: [...command, ...suffix] }; } function logTask(splitter, fields, customArgs) { @@ -9085,7 +22546,7 @@ function log_default() { } } var excludeOptions; -var init_log = __esm({ +var init_log = __esm2({ "src/lib/tasks/log.ts"() { init_log_format(); init_parse_list_log_summary(); @@ -9112,7 +22573,7 @@ var init_log = __esm({ }); var MergeSummaryConflict; var MergeSummaryDetail; -var init_MergeSummary = __esm({ +var init_MergeSummary = __esm2({ "src/lib/responses/MergeSummary.ts"() { MergeSummaryConflict = class { constructor(reason, file = null, meta) { @@ -9147,7 +22608,7 @@ var init_MergeSummary = __esm({ }); var PullSummary; var PullFailedSummary; -var init_PullSummary = __esm({ +var init_PullSummary = __esm2({ "src/lib/responses/PullSummary.ts"() { PullSummary = class { constructor() { @@ -9204,7 +22665,7 @@ function asObjectCount(source) { }; } var remoteMessagesObjectParsers; -var init_parse_remote_objects = __esm({ +var init_parse_remote_objects = __esm2({ "src/lib/parsers/parse-remote-objects.ts"() { init_utils(); remoteMessagesObjectParsers = [ @@ -9232,7 +22693,7 @@ function parseRemoteMessages(_stdOut, stdErr) { } var parsers2; var RemoteMessageSummary; -var init_parse_remote_messages = __esm({ +var init_parse_remote_messages = __esm2({ "src/lib/parsers/parse-remote-messages.ts"() { init_utils(); init_parse_remote_objects(); @@ -9271,7 +22732,7 @@ var parsers3; var errorParsers; var parsePullDetail; var parsePullResult; -var init_parse_pull = __esm({ +var init_parse_pull = __esm2({ "src/lib/parsers/parse-pull.ts"() { init_PullSummary(); init_utils(); @@ -9324,7 +22785,7 @@ var init_parse_pull = __esm({ var parsers4; var parseMergeResult; var parseMergeDetail; -var init_parse_merge = __esm({ +var init_parse_merge = __esm2({ "src/lib/parsers/parse-merge.ts"() { init_MergeSummary(); init_utils(); @@ -9336,8 +22797,8 @@ var init_parse_merge = __esm({ new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { summary.conflicts.push(new MergeSummaryConflict(reason, file)); }), - new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { - summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef })); + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef2]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef: deleteRef2 })); }), new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { summary.conflicts.push(new MergeSummaryConflict(reason, null)); @@ -9362,29 +22823,29 @@ function mergeTask(customArgs) { commands: ["merge", ...customArgs], format: "utf-8", parser(stdOut, stdErr) { - const merge = parseMergeResult(stdOut, stdErr); - if (merge.failed) { - throw new GitResponseError(merge); + const merge2 = parseMergeResult(stdOut, stdErr); + if (merge2.failed) { + throw new GitResponseError(merge2); } - return merge; + return merge2; } }; } -var init_merge = __esm({ +var init_merge = __esm2({ "src/lib/tasks/merge.ts"() { init_git_response_error(); init_parse_merge(); init_task(); } }); -function pushResultPushedItem(local, remote, status) { - const deleted = status.includes("deleted"); - const tag = status.includes("tag") || /^refs\/tags/.test(local); - const alreadyUpdated = !status.includes("new"); +function pushResultPushedItem(local, remote, status2) { + const deleted = status2.includes("deleted"); + const tag2 = status2.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status2.includes("new"); return { deleted, - tag, - branch: !tag, + tag: tag2, + branch: !tag2, new: !alreadyUpdated, alreadyUpdated, local, @@ -9394,7 +22855,7 @@ function pushResultPushedItem(local, remote, status) { var parsers5; var parsePushResult; var parsePushDetail; -var init_parse_push = __esm({ +var init_parse_push = __esm2({ "src/lib/parsers/parse-push.ts"() { init_utils(); init_parse_remote_messages(); @@ -9457,7 +22918,7 @@ function pushTask(ref = {}, customArgs) { if (ref.remote) { commands.splice(1, 0, ref.remote); } - remove(commands, "-v"); + remove2(commands, "-v"); append(commands, "--verbose"); append(commands, "--porcelain"); return { @@ -9466,7 +22927,7 @@ function pushTask(ref = {}, customArgs) { parser: parsePushResult }; } -var init_push = __esm({ +var init_push = __esm2({ "src/lib/tasks/push.ts"() { init_parse_push(); init_utils(); @@ -9474,16 +22935,16 @@ var init_push = __esm({ }); var fromPathRegex; var FileStatusSummary; -var init_FileStatusSummary = __esm({ +var init_FileStatusSummary = __esm2({ "src/lib/responses/FileStatusSummary.ts"() { fromPathRegex = /^(.+) -> (.+)$/; FileStatusSummary = class { - constructor(path3, index, working_dir) { - this.path = path3; - this.index = index; + constructor(path2, index2, working_dir) { + this.path = path2; + this.index = index2; this.working_dir = working_dir; - if (index + working_dir === "R") { - const detail = fromPathRegex.exec(path3) || [null, path3, path3]; + if (index2 + working_dir === "R") { + const detail = fromPathRegex.exec(path2) || [null, path2, path2]; this.from = detail[1] || ""; this.path = detail[2] || ""; } @@ -9514,21 +22975,21 @@ function splitLine(result, lineStr) { default: return; } - function data(index, workingDir, path3) { - const raw = `${index}${workingDir}`; + function data(index2, workingDir, path2) { + const raw = `${index2}${workingDir}`; const handler = parsers6.get(raw); if (handler) { - handler(result, path3); + handler(result, path2); } if (raw !== "##" && raw !== "!!") { - result.files.push(new FileStatusSummary(path3.replace(/\0.+$/, ""), index, workingDir)); + result.files.push(new FileStatusSummary(path2.replace(/\0.+$/, ""), index2, workingDir)); } } } var StatusSummary; var parsers6; var parseStatusSummary; -var init_StatusSummary = __esm({ +var init_StatusSummary = __esm2({ "src/lib/responses/StatusSummary.ts"() { init_utils(); init_FileStatusSummary(); @@ -9577,29 +23038,32 @@ var init_StatusSummary = __esm({ ...conflicts("A", "A", "U"), ...conflicts("D", "D", "U"), ...conflicts("U", "A", "D", "U"), - ["##", (result, line) => { - const aheadReg = /ahead (\d+)/; - const behindReg = /behind (\d+)/; - const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; - const trackingReg = /\.{3}(\S*)/; - const onEmptyBranchReg = /\son\s([\S]+)$/; - let regexResult; - regexResult = aheadReg.exec(line); - result.ahead = regexResult && +regexResult[1] || 0; - regexResult = behindReg.exec(line); - result.behind = regexResult && +regexResult[1] || 0; - regexResult = currentReg.exec(line); - result.current = regexResult && regexResult[1]; - regexResult = trackingReg.exec(line); - result.tracking = regexResult && regexResult[1]; - regexResult = onEmptyBranchReg.exec(line); - result.current = regexResult && regexResult[1] || result.current; - result.detached = /\(no branch\)/.test(line); - }] + [ + "##", + (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); + } + ] ]); parseStatusSummary = function(text2) { const lines = text2.split(NULL); - const status = new StatusSummary(); + const status2 = new StatusSummary(); for (let i = 0, l = lines.length; i < l; ) { let line = lines[i++].trim(); if (!line) { @@ -9608,9 +23072,9 @@ var init_StatusSummary = __esm({ if (line.charAt(0) === "R") { line += NULL + (lines[i++] || ""); } - splitLine(status, line); + splitLine(status2, line); } - return status; + return status2; }; } }); @@ -9632,18 +23096,69 @@ function statusTask(customArgs) { }; } var ignoredOptions; -var init_status = __esm({ +var init_status = __esm2({ "src/lib/tasks/status.ts"() { init_StatusSummary(); ignoredOptions = ["--null", "-z"]; } }); +function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { + return Object.defineProperty({ + major, + minor, + patch, + agent, + installed + }, "toString", { + value() { + return `${major}.${minor}.${patch}`; + }, + configurable: false, + enumerable: false + }); +} +function notInstalledResponse() { + return versionResponse(0, 0, 0, "", false); +} +function version_default() { + return { + version() { + return this._runTask({ + commands: ["--version"], + format: "utf-8", + parser(stdOut) { + if (stdOut === NOT_INSTALLED) { + return notInstalledResponse(); + } + const version2 = /version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/.exec(stdOut); + if (!version2) { + return versionResponse(0, 0, 0, stdOut); + } + return versionResponse(asNumber(version2[1]), asNumber(version2[2]), asNumber(version2[3]), version2[4] || ""); + }, + onError(result, error, done, fail) { + if (result.exitCode === -2) { + return done(Buffer2.from(NOT_INSTALLED)); + } + fail(error); + } + }); + } + }; +} +var NOT_INSTALLED; +var init_version = __esm2({ + "src/lib/tasks/version.ts"() { + init_utils(); + NOT_INSTALLED = "installed=false"; + } +}); var simple_git_api_exports = {}; __export2(simple_git_api_exports, { SimpleGitApi: () => SimpleGitApi }); var SimpleGitApi; -var init_simple_git_api = __esm({ +var init_simple_git_api = __esm2({ "src/lib/simple-git-api.ts"() { init_task_callback(); init_change_working_directory(); @@ -9657,6 +23172,7 @@ var init_simple_git_api = __esm({ init_push(); init_status(); init_task(); + init_version(); init_utils(); SimpleGitApi = class { constructor(_executor) { @@ -9687,8 +23203,8 @@ var init_simple_git_api = __esm({ } return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); } - hashObject(path3, write) { - return this._runTask(hashObjectTask(path3, write === true), trailingFunctionArgument(arguments)); + hashObject(path2, write) { + return this._runTask(hashObjectTask(path2, write === true), trailingFunctionArgument(arguments)); } init(bare) { return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); @@ -9696,11 +23212,11 @@ var init_simple_git_api = __esm({ merge() { return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); } - mergeFromTo(remote, branch) { - if (!(filterString(remote) && filterString(branch))) { + mergeFromTo(remote, branch2) { + if (!(filterString(remote) && filterString(branch2))) { return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); } - return this._runTask(mergeTask([remote, branch, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); + return this._runTask(mergeTask([remote, branch2, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); } outputHandler(handler) { this._executor.outputHandler = handler; @@ -9720,7 +23236,7 @@ var init_simple_git_api = __esm({ return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); } }; - Object.assign(SimpleGitApi.prototype, commit_default(), config_default(), grep_default(), log_default()); + Object.assign(SimpleGitApi.prototype, commit_default(), config_default(), grep_default(), log_default(), version_default()); } }); var scheduler_exports = {}; @@ -9729,7 +23245,7 @@ __export2(scheduler_exports, { }); var createScheduledTask; var Scheduler; -var init_scheduler = __esm({ +var init_scheduler = __esm2({ "src/lib/runners/scheduler.ts"() { init_utils(); init_git_logger(); @@ -9762,7 +23278,7 @@ var init_scheduler = __esm({ this.logger(`Attempting id=%s`, task.id); task.done(() => { this.logger(`Completing id=`, task.id); - remove(this.running, task); + remove2(this.running, task); this.schedule(); }); } @@ -9782,27 +23298,27 @@ __export2(apply_patch_exports, { function applyPatchTask(patches, customArgs) { return straightThroughStringTask(["apply", ...customArgs, ...patches]); } -var init_apply_patch = __esm({ +var init_apply_patch = __esm2({ "src/lib/tasks/apply-patch.ts"() { init_task(); } }); -function branchDeletionSuccess(branch, hash2) { +function branchDeletionSuccess(branch2, hash2) { return { - branch, + branch: branch2, hash: hash2, success: true }; } -function branchDeletionFailure(branch) { +function branchDeletionFailure(branch2) { return { - branch, + branch: branch2, hash: null, success: false }; } var BranchDeletionBatch; -var init_BranchDeleteSummary = __esm({ +var init_BranchDeleteSummary = __esm2({ "src/lib/responses/BranchDeleteSummary.ts"() { BranchDeletionBatch = class { constructor() { @@ -9823,23 +23339,23 @@ var deleteSuccessRegex; var deleteErrorRegex; var parsers7; var parseBranchDeletions; -var init_parse_branch_delete = __esm({ +var init_parse_branch_delete = __esm2({ "src/lib/parsers/parse-branch-delete.ts"() { init_BranchDeleteSummary(); init_utils(); deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; deleteErrorRegex = /^error[^']+'([^']+)'/m; parsers7 = [ - new LineParser(deleteSuccessRegex, (result, [branch, hash2]) => { - const deletion = branchDeletionSuccess(branch, hash2); + new LineParser(deleteSuccessRegex, (result, [branch2, hash2]) => { + const deletion = branchDeletionSuccess(branch2, hash2); result.all.push(deletion); - result.branches[branch] = deletion; + result.branches[branch2] = deletion; }), - new LineParser(deleteErrorRegex, (result, [branch]) => { - const deletion = branchDeletionFailure(branch); + new LineParser(deleteErrorRegex, (result, [branch2]) => { + const deletion = branchDeletionFailure(branch2); result.errors.push(deletion); result.all.push(deletion); - result.branches[branch] = deletion; + result.branches[branch2] = deletion; }) ]; parseBranchDeletions = (stdOut, stdErr) => { @@ -9848,7 +23364,7 @@ var init_parse_branch_delete = __esm({ } }); var BranchSummaryResult; -var init_BranchSummary = __esm({ +var init_BranchSummary = __esm2({ "src/lib/responses/BranchSummary.ts"() { BranchSummaryResult = class { constructor() { @@ -9857,17 +23373,17 @@ var init_BranchSummary = __esm({ this.current = ""; this.detached = false; } - push(status, detached, name, commit, label) { - if (status === "*") { + push(status2, detached, name, commit2, label) { + if (status2 === "*") { this.detached = detached; this.current = name; } this.all.push(name); this.branches[name] = { - current: status === "*", - linkedWorkTree: status === "+", + current: status2 === "*", + linkedWorkTree: status2 === "+", name, - commit, + commit: commit2, label }; } @@ -9881,16 +23397,16 @@ function parseBranchSummary(stdOut) { return parseStringResponse(new BranchSummaryResult(), parsers8, stdOut); } var parsers8; -var init_parse_branch = __esm({ +var init_parse_branch = __esm2({ "src/lib/parsers/parse-branch.ts"() { init_BranchSummary(); init_utils(); parsers8 = [ - new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { - result.push(branchStatus(current), true, name, commit, label); + new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), true, name, commit2, label); }), - new LineParser(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit, label]) => { - result.push(branchStatus(current), false, name, commit, label); + new LineParser(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), false, name, commit2, label); }) ]; } @@ -9950,12 +23466,12 @@ function deleteBranchesTask(branches, forceDelete = false) { } }; } -function deleteBranchTask(branch, forceDelete = false) { +function deleteBranchTask(branch2, forceDelete = false) { const task = { format: "utf-8", - commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch], + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch2], parser(stdOut, stdErr) { - return parseBranchDeletions(stdOut, stdErr).branches[branch]; + return parseBranchDeletions(stdOut, stdErr).branches[branch2]; }, onError({ exitCode, stdErr, stdOut }, error, _, fail) { if (!hasBranchDeletionError(String(error), exitCode)) { @@ -9966,7 +23482,7 @@ function deleteBranchTask(branch, forceDelete = false) { }; return task; } -var init_branch = __esm({ +var init_branch = __esm2({ "src/lib/tasks/branch.ts"() { init_git_response_error(); init_parse_branch_delete(); @@ -9975,7 +23491,7 @@ var init_branch = __esm({ } }); var parseCheckIgnore; -var init_CheckIgnore = __esm({ +var init_CheckIgnore = __esm2({ "src/lib/responses/CheckIgnore.ts"() { parseCheckIgnore = (text2) => { return text2.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); @@ -9993,7 +23509,7 @@ function checkIgnoreTask(paths) { parser: parseCheckIgnore }; } -var init_check_ignore = __esm({ +var init_check_ignore = __esm2({ "src/lib/tasks/check-ignore.ts"() { init_CheckIgnore(); } @@ -10020,7 +23536,7 @@ function cloneMirrorTask(repo, directory, customArgs) { append(customArgs, "--mirror"); return cloneTask(repo, directory, customArgs); } -var init_clone = __esm({ +var init_clone = __esm2({ "src/lib/tasks/clone.ts"() { init_task(); init_utils(); @@ -10031,12 +23547,14 @@ function parseFetchResult(stdOut, stdErr) { raw: stdOut, remote: null, branches: [], - tags: [] + tags: [], + updated: [], + deleted: [] }; return parseStringResponse(result, parsers9, [stdOut, stdErr]); } var parsers9; -var init_parse_fetch = __esm({ +var init_parse_fetch = __esm2({ "src/lib/parsers/parse-fetch.ts"() { init_utils(); parsers9 = [ @@ -10054,6 +23572,19 @@ var init_parse_fetch = __esm({ name, tracking }); + }), + new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { + result.deleted.push({ + tracking + }); + }), + new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from, to, name, tracking]) => { + result.updated.push({ + name, + tracking, + to, + from + }); }) ]; } @@ -10065,10 +23596,10 @@ __export2(fetch_exports, { function disallowedCommand2(command) { return /^--upload-pack(=|$)/.test(command); } -function fetchTask(remote, branch, customArgs) { +function fetchTask(remote, branch2, customArgs) { const commands = ["fetch", ...customArgs]; - if (remote && branch) { - commands.push(remote, branch); + if (remote && branch2) { + commands.push(remote, branch2); } const banned = commands.find(disallowedCommand2); if (banned) { @@ -10080,7 +23611,7 @@ function fetchTask(remote, branch, customArgs) { parser: parseFetchResult }; } -var init_fetch = __esm({ +var init_fetch = __esm2({ "src/lib/tasks/fetch.ts"() { init_parse_fetch(); init_task(); @@ -10090,7 +23621,7 @@ function parseMoveResult(stdOut) { return parseStringResponse({ moves: [] }, parsers10, stdOut); } var parsers10; -var init_parse_move = __esm({ +var init_parse_move = __esm2({ "src/lib/parsers/parse-move.ts"() { init_utils(); parsers10 = [ @@ -10111,7 +23642,7 @@ function moveTask(from, to) { parser: parseMoveResult }; } -var init_move = __esm({ +var init_move = __esm2({ "src/lib/tasks/move.ts"() { init_parse_move(); init_utils(); @@ -10121,10 +23652,10 @@ var pull_exports = {}; __export2(pull_exports, { pullTask: () => pullTask }); -function pullTask(remote, branch, customArgs) { +function pullTask(remote, branch2, customArgs) { const commands = ["pull", ...customArgs]; - if (remote && branch) { - commands.splice(1, 0, remote, branch); + if (remote && branch2) { + commands.splice(1, 0, remote, branch2); } return { commands, @@ -10141,7 +23672,7 @@ function pullTask(remote, branch, customArgs) { } }; } -var init_pull = __esm({ +var init_pull = __esm2({ "src/lib/tasks/pull.ts"() { init_git_response_error(); init_parse_pull(); @@ -10171,7 +23702,7 @@ function parseGetRemotesVerbose(text2) { function forEach(text2, handler) { forEachLineWithContent(text2, (line) => handler(line.split(/\s+/))); } -var init_GetRemoteSummary = __esm({ +var init_GetRemoteSummary = __esm2({ "src/lib/responses/GetRemoteSummary.ts"() { init_utils(); } @@ -10215,7 +23746,7 @@ function remoteTask(customArgs = []) { function removeRemoteTask(remoteName) { return straightThroughStringTask(["remote", "remove", remoteName]); } -var init_remote = __esm({ +var init_remote = __esm2({ "src/lib/tasks/remote.ts"() { init_GetRemoteSummary(); init_task(); @@ -10235,7 +23766,7 @@ function stashListTask(opt = {}, customArgs) { parser: parser3 }; } -var init_stash_list = __esm({ +var init_stash_list = __esm2({ "src/lib/tasks/stash-list.ts"() { init_log_format(); init_parse_list_log_summary(); @@ -10250,8 +23781,8 @@ __export2(sub_module_exports, { subModuleTask: () => subModuleTask, updateSubModuleTask: () => updateSubModuleTask }); -function addSubModuleTask(repo, path3) { - return subModuleTask(["add", repo, path3]); +function addSubModuleTask(repo, path2) { + return subModuleTask(["add", repo, path2]); } function initSubModuleTask(customArgs) { return subModuleTask(["init", ...customArgs]); @@ -10266,7 +23797,7 @@ function subModuleTask(customArgs) { function updateSubModuleTask(customArgs) { return subModuleTask(["update", ...customArgs]); } -var init_sub_module = __esm({ +var init_sub_module = __esm2({ "src/lib/tasks/sub-module.ts"() { init_task(); } @@ -10293,7 +23824,7 @@ function toNumber(input) { } var TagList; var parseTagList; -var init_TagList = __esm({ +var init_TagList = __esm2({ "src/lib/responses/TagList.ts"() { TagList = class { constructor(all, latest) { @@ -10311,15 +23842,15 @@ var init_TagList = __esm({ return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); } for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) { - const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i])); - if (diff) { - return diff; + const diff2 = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff2) { + return diff2; } } return 0; }); } - const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf(".") >= 0); + const latest = customSort ? tags[0] : [...tags].reverse().find((tag2) => tag2.indexOf(".") >= 0); return new TagList(tags, latest); }; } @@ -10358,7 +23889,7 @@ function addAnnotatedTagTask(name, tagMessage) { } }; } -var init_tag = __esm({ +var init_tag = __esm2({ "src/lib/tasks/tag.ts"() { init_TagList(); } @@ -10381,7 +23912,12 @@ var require_git = __commonJS2({ trailingOptionsArgument: trailingOptionsArgument2 } = (init_utils(), __toCommonJS(utils_exports)); var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports)); - var { branchTask: branchTask2, branchLocalTask: branchLocalTask2, deleteBranchesTask: deleteBranchesTask2, deleteBranchTask: deleteBranchTask2 } = (init_branch(), __toCommonJS(branch_exports)); + var { + branchTask: branchTask2, + branchLocalTask: branchLocalTask2, + deleteBranchesTask: deleteBranchesTask2, + deleteBranchTask: deleteBranchTask2 + } = (init_branch(), __toCommonJS(branch_exports)); var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports)); var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports)); var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports)); @@ -10392,14 +23928,26 @@ var require_git = __commonJS2({ var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports)); var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports)); var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports)); - var { addRemoteTask: addRemoteTask2, getRemotesTask: getRemotesTask2, listRemotesTask: listRemotesTask2, remoteTask: remoteTask2, removeRemoteTask: removeRemoteTask2 } = (init_remote(), __toCommonJS(remote_exports)); + var { + addRemoteTask: addRemoteTask2, + getRemotesTask: getRemotesTask2, + listRemotesTask: listRemotesTask2, + remoteTask: remoteTask2, + removeRemoteTask: removeRemoteTask2 + } = (init_remote(), __toCommonJS(remote_exports)); var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports)); var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports)); - var { addSubModuleTask: addSubModuleTask2, initSubModuleTask: initSubModuleTask2, subModuleTask: subModuleTask2, updateSubModuleTask: updateSubModuleTask2 } = (init_sub_module(), __toCommonJS(sub_module_exports)); + var { + addSubModuleTask: addSubModuleTask2, + initSubModuleTask: initSubModuleTask2, + subModuleTask: subModuleTask2, + updateSubModuleTask: updateSubModuleTask2 + } = (init_sub_module(), __toCommonJS(sub_module_exports)); var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports)); var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports)); function Git2(options, plugins) { this._executor = new GitExecutor2(options.binary, options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + this._trimmed = options.trimmed; } (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; Git2.prototype.customBinary = function(command) { @@ -10440,11 +23988,11 @@ var require_git = __commonJS2({ }); }); }; - Git2.prototype.pull = function(remote, branch, options, then) { - return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + Git2.prototype.pull = function(remote, branch2, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); }; - Git2.prototype.fetch = function(remote, branch) { - return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + Git2.prototype.fetch = function(remote, branch2) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); }; Git2.prototype.silent = function(silence) { console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); @@ -10459,12 +24007,12 @@ var require_git = __commonJS2({ Git2.prototype.reset = function(mode) { return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); }; - Git2.prototype.revert = function(commit) { + Git2.prototype.revert = function(commit2) { const next = trailingFunctionArgument2(arguments); - if (typeof commit !== "string") { + if (typeof commit2 !== "string") { return this._runTask(configurationErrorTask2("Commit must be a string"), next); } - return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit]), next); + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit2]), next); }; Git2.prototype.addTag = function(name) { const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); @@ -10509,10 +24057,10 @@ var require_git = __commonJS2({ if (!command.length) { return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); } - return this._runTask(straightThroughStringTask2(command), next); + return this._runTask(straightThroughStringTask2(command, this._trimmed), next); }; - Git2.prototype.submoduleAdd = function(repo, path3, then) { - return this._runTask(addSubModuleTask2(repo, path3), trailingFunctionArgument2(arguments)); + Git2.prototype.submoduleAdd = function(repo, path2, then) { + return this._runTask(addSubModuleTask2(repo, path2), trailingFunctionArgument2(arguments)); }; Git2.prototype.submoduleUpdate = function(args, then) { return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); @@ -10649,6 +24197,30 @@ init_clean(); init_config(); init_grep(); init_reset(); +function abortPlugin(signal) { + if (!signal) { + return; + } + const onSpawnAfter = { + type: "spawn.after", + action(_data, context) { + function kill() { + context.kill(new GitPluginError(void 0, "abort", "Abort signal received")); + } + signal.addEventListener("abort", kill); + context.spawned.on("close", () => signal.removeEventListener("abort", kill)); + } + }; + const onSpawnBefore = { + type: "spawn.before", + action(_data, context) { + if (signal.aborted) { + context.kill(new GitPluginError(void 0, "abort", "Abort already signaled")); + } + } + }; + return [onSpawnBefore, onSpawnAfter]; +} init_utils(); function commandConfigPrefixingPlugin(configuration) { const prefix = prefixedArray(configuration, "-c"); @@ -10731,7 +24303,7 @@ function isTaskError(result) { return !!(result.exitCode && result.stdErr.length); } function getErrorMessage(result) { - return Buffer.concat([...result.stdOut, ...result.stdErr]); + return Buffer2.concat([...result.stdOut, ...result.stdErr]); } function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { return (error, result) => { @@ -10750,7 +24322,7 @@ function errorDetectionPlugin(config) { stdOut: context.stdOut, exitCode: context.exitCode }); - if (Buffer.isBuffer(error)) { + if (Buffer2.isBuffer(error)) { return { error: new GitError(void 0, error.toString("utf-8")) }; } return { @@ -10832,7 +24404,9 @@ function spawnOptionsPlugin(spawnOptions) { } }; } -function timeoutPlugin({ block }) { +function timeoutPlugin({ + block +}) { if (block > 0) { return { type: "spawn.after", @@ -10876,6 +24450,7 @@ function gitInstanceFactory(baseDir, options) { plugins.add(commandConfigPrefixingPlugin(config.config)); } plugins.add(completionDetectionPlugin(config.completion)); + config.abort && plugins.add(abortPlugin(config.abort)); config.progress && plugins.add(progressMonitorPlugin(config.progress)); config.timeout && plugins.add(timeoutPlugin(config.timeout)); config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); @@ -10886,74 +24461,6 @@ function gitInstanceFactory(baseDir, options) { init_git_response_error(); var esm_default = gitInstanceFactory; -// src/gitManager.ts -var GitManager = class { - constructor(plugin) { - this.plugin = plugin; - this.app = plugin.app; - } - getTreeStructure(children2, beginLength = 0) { - let list = []; - children2 = [...children2]; - while (children2.length > 0) { - const first2 = children2.first(); - const restPath = first2.path.substring(beginLength); - if (restPath.contains("/")) { - const title = restPath.substring(0, restPath.indexOf("/")); - const childrenWithSameTitle = children2.filter((item) => { - return item.path.substring(beginLength).startsWith(title + "/"); - }); - childrenWithSameTitle.forEach((item) => children2.remove(item)); - list.push({ - title, - children: this.getTreeStructure(childrenWithSameTitle, (beginLength > 0 ? beginLength + title.length : title.length) + 1) - }); - } else { - list.push({ title: restPath, statusResult: first2 }); - children2.remove(first2); - } - } - return list; - } - formatCommitMessage(template) { - return __async(this, null, function* () { - let status; - if (template.includes("{{numFiles}}")) { - status = yield this.status(); - let numFiles = status.staged.length; - template = template.replace("{{numFiles}}", String(numFiles)); - } - if (template.includes("{{hostname}}")) { - const hostname = localStorage.getItem(this.plugin.manifest.id + ":hostname") || ""; - template = template.replace("{{hostname}}", hostname); - } - if (template.includes("{{files}}")) { - status = status != null ? status : yield this.status(); - let changeset = {}; - status.staged.forEach((value) => { - if (value.index in changeset) { - changeset[value.index].push(value.path); - } else { - changeset[value.index] = [value.path]; - } - }); - let chunks = []; - for (let [action, files2] of Object.entries(changeset)) { - chunks.push(action + " " + files2.join(" ")); - } - let files = chunks.join(", "); - template = template.replace("{{files}}", files); - } - let moment = window.moment; - template = template.replace("{{date}}", moment().format(this.plugin.settings.commitDateFormat)); - if (this.plugin.settings.listChangedFilesInMessageBody) { - template = template + "\n\nAffected files:\n" + (status != null ? status : yield this.status()).staged.map((e) => e.path).join("\n"); - } - return template; - }); - } -}; - // src/simpleGit.ts var SimpleGit = class extends GitManager { constructor(plugin) { @@ -10963,19 +24470,19 @@ var SimpleGit = class extends GitManager { return __async(this, null, function* () { if (this.isGitInstalled()) { const adapter = this.app.vault.adapter; - const path3 = adapter.getBasePath(); - let basePath = path3; + const path2 = adapter.getBasePath(); + let basePath = path2; if (this.plugin.settings.basePath) { - const exists2 = yield adapter.exists((0, import_obsidian6.normalizePath)(this.plugin.settings.basePath)); + const exists2 = yield adapter.exists((0, import_obsidian4.normalizePath)(this.plugin.settings.basePath)); if (exists2) { - basePath = path3 + import_path.sep + this.plugin.settings.basePath; + basePath = path2 + import_path.sep + this.plugin.settings.basePath; } else if (!ignoreError) { - new import_obsidian6.Notice("ObsidianGit: Base path does not exist"); + new import_obsidian4.Notice("ObsidianGit: Base path does not exist"); } } this.git = esm_default({ baseDir: basePath, - binary: this.plugin.settings.gitPath || void 0, + binary: this.plugin.localStorage.getGitPath() || void 0, config: ["core.quotepath=off"] }); this.git.cwd(yield this.git.revparse("--show-toplevel")); @@ -10985,10 +24492,10 @@ var SimpleGit = class extends GitManager { status() { return __async(this, null, function* () { this.plugin.setState(PluginState.status); - const status = yield this.git.status((err) => this.onError(err)); + const status2 = yield this.git.status((err) => this.onError(err)); this.plugin.setState(PluginState.idle); return { - changed: status.files.filter((e) => e.working_dir !== " ").map((e) => { + changed: status2.files.filter((e) => e.working_dir !== " ").map((e) => { const res = this.formatPath(e); return { path: res.path, @@ -10997,7 +24504,7 @@ var SimpleGit = class extends GitManager { vault_path: this.getVaultPath(res.path) }; }), - staged: status.files.filter((e) => e.index !== " " && e.index != "?").map((e) => { + staged: status2.files.filter((e) => e.index !== " " && e.index != "?").map((e) => { const res = this.formatPath(e, e.index === "R"); return { path: res.path, @@ -11006,7 +24513,7 @@ var SimpleGit = class extends GitManager { vault_path: this.getVaultPath(res.path) }; }), - conflicted: status.conflicted.map((e) => this.formatPath({ + conflicted: status2.conflicted.map((e) => this.formatPath({ path: e, from: void 0, index: void 0, @@ -11015,36 +24522,29 @@ var SimpleGit = class extends GitManager { }; }); } - getVaultPath(path3) { - if (this.plugin.settings.basePath) { - return this.plugin.settings.basePath + "/" + path3; - } else { - return path3; - } - } - formatPath(path3, renamed = false) { - function format(path4) { - if (path4 == void 0) + formatPath(path2, renamed = false) { + function format(path3) { + if (path3 == void 0) return void 0; - if (path4.startsWith('"') && path4.endsWith('"')) { - return path4.substring(1, path4.length - 1); + if (path3.startsWith('"') && path3.endsWith('"')) { + return path3.substring(1, path3.length - 1); } else { - return path4; + return path3; } } if (renamed) { return { - from: format(path3.from), - path: format(path3.path) + from: format(path2.from), + path: format(path2.path) }; } else { return { - path: format(path3.path) + path: format(path2.path) }; } } - commitAll(message) { - return __async(this, null, function* () { + commitAll(_0) { + return __async(this, arguments, function* ({ message }) { if (this.plugin.settings.updateSubmodules) { this.plugin.setState(PluginState.commit); yield new Promise((resolve, reject) => __async(this, null, function* () { @@ -11093,17 +24593,18 @@ var SimpleGit = class extends GitManager { return res; }); } - stage(filepath) { + stage(path2, relativeToVault) { return __async(this, null, function* () { this.plugin.setState(PluginState.add); - yield this.git.add(["--", filepath], (err) => this.onError(err)); + path2 = this.getPath(path2, relativeToVault); + yield this.git.add(["--", path2], (err) => this.onError(err)); this.plugin.setState(PluginState.idle); }); } - stageAll() { - return __async(this, null, function* () { + stageAll(_0) { + return __async(this, arguments, function* ({ dir }) { this.plugin.setState(PluginState.add); - yield this.git.add("-A", (err) => this.onError(err)); + yield this.git.add(dir != null ? dir : "-A", (err) => this.onError(err)); this.plugin.setState(PluginState.idle); }); } @@ -11114,10 +24615,11 @@ var SimpleGit = class extends GitManager { this.plugin.setState(PluginState.idle); }); } - unstage(filepath) { + unstage(path2, relativeToVault) { return __async(this, null, function* () { this.plugin.setState(PluginState.add); - yield this.git.reset(["--", filepath], (err) => this.onError(err)); + path2 = this.getPath(path2, relativeToVault); + yield this.git.reset(["--", path2], (err) => this.onError(err)); this.plugin.setState(PluginState.idle); }); } @@ -11161,19 +24663,25 @@ var SimpleGit = class extends GitManager { } const afterMergeCommit = yield this.git.revparse([branchInfo.current], (err) => this.onError(err)); const filesChanged = yield this.git.diff([`${localCommit}..${afterMergeCommit}`, "--name-only"]); - return filesChanged.split(/\r\n|\r|\n/).filter((value) => value.length > 0).length; + return filesChanged.split(/\r\n|\r|\n/).filter((value) => value.length > 0).map((e) => { + return { + path: e, + working_dir: "P", + vault_path: this.getVaultPath(e) + }; + }); } else { - return 0; + return []; } }); } push() { return __async(this, null, function* () { this.plugin.setState(PluginState.status); - const status = yield this.git.status(); - const trackingBranch = status.tracking; - const currentBranch = status.current; - const remoteChangedFiles = (yield this.git.diffSummary([currentBranch, trackingBranch], (err) => this.onError(err))).changed; + const status2 = yield this.git.status(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const remoteChangedFiles = (yield this.git.diffSummary([currentBranch2, trackingBranch], (err) => this.onError(err))).changed; this.plugin.setState(PluginState.push); if (this.plugin.settings.updateSubmodules) { yield this.git.env(__spreadProps(__spreadValues({}, process.env), { "OBSIDIAN_GIT": 1 })).subModule(["foreach", "--recursive", `tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`], (err) => this.onError(err)); @@ -11187,10 +24695,10 @@ var SimpleGit = class extends GitManager { if (this.plugin.settings.updateSubmodules === true) { return true; } - const status = yield this.git.status((err) => this.onError(err)); - const trackingBranch = status.tracking; - const currentBranch = status.current; - const remoteChangedFiles = (yield this.git.diffSummary([currentBranch, trackingBranch])).changed; + const status2 = yield this.git.status((err) => this.onError(err)); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const remoteChangedFiles = (yield this.git.diffSummary([currentBranch2, trackingBranch])).changed; return remoteChangedFiles !== 0; }); } @@ -11207,11 +24715,11 @@ var SimpleGit = class extends GitManager { } branchInfo() { return __async(this, null, function* () { - const status = yield this.git.status((err) => this.onError(err)); + const status2 = yield this.git.status((err) => this.onError(err)); const branches = yield this.git.branch(["--no-color"], (err) => this.onError(err)); return { - current: status.current, - tracking: status.tracking, + current: status2.current, + tracking: status2.tracking, branches: branches.all }; }); @@ -11223,20 +24731,20 @@ var SimpleGit = class extends GitManager { } log(file, relativeToVault = true) { return __async(this, null, function* () { - const path3 = relativeToVault && this.plugin.settings.basePath.length > 0 ? file == null ? void 0 : file.substring(this.plugin.settings.basePath.length + 1) : file; - const res = yield this.git.log({ file: path3 }, (err) => this.onError(err)); + const path2 = this.getPath(file, relativeToVault); + const res = yield this.git.log({ file: path2 }, (err) => this.onError(err)); return res.all; }); } show(commitHash, file, relativeToVault = true) { return __async(this, null, function* () { - const path3 = relativeToVault && this.plugin.settings.basePath.length > 0 ? file.substring(this.plugin.settings.basePath.length + 1) : file; - return this.git.show([commitHash + ":" + path3], (err) => this.onError(err)); + const path2 = this.getPath(file, relativeToVault); + return this.git.show([commitHash + ":" + path2], (err) => this.onError(err)); }); } - checkout(branch) { + checkout(branch2) { return __async(this, null, function* () { - yield this.git.checkout(branch, (err) => this.onError(err)); + yield this.git.checkout(branch2, (err) => this.onError(err)); }); } init() { @@ -11249,15 +24757,15 @@ var SimpleGit = class extends GitManager { yield this.git.clone(url, path.join(this.app.vault.adapter.getBasePath(), dir), [], (err) => this.onError(err)); }); } - setConfig(path3, value) { + setConfig(path2, value) { return __async(this, null, function* () { - yield this.git.addConfig(path3, value, (err) => this.onError(err)); + yield this.git.addConfig(path2, value, (err) => this.onError(err)); }); } - getConfig(path3) { + getConfig(path2) { return __async(this, null, function* () { const config = yield this.git.listConfig((err) => this.onError(err)); - return config.all[path3]; + return config.all[path2]; }); } fetch(remote) { @@ -11303,7 +24811,17 @@ var SimpleGit = class extends GitManager { } updateUpstreamBranch(remoteBranch) { return __async(this, null, function* () { - yield this.git.push(["--set-upstream", ...remoteBranch.split("/")], (err) => this.onError(err)); + try { + yield this.git.branch(["--set-upstream-to", remoteBranch]); + } catch (e) { + console.error(e); + try { + yield this.git.branch(["--set-upstream", remoteBranch]); + } catch (e2) { + console.error(e2); + yield this.git.push(["--set-upstream", ...remoteBranch.split("/")], (err) => this.onError(err)); + } + } }); } updateGitPath(gitPath) { @@ -11326,7 +24844,7 @@ var SimpleGit = class extends GitManager { }); } isGitInstalled() { - const command = (0, import_child_process2.spawnSync)(this.plugin.settings.gitPath || "git", ["--version"], { + const command = (0, import_child_process2.spawnSync)(this.plugin.localStorage.getGitPath() || "git", ["--version"], { stdio: "ignore" }); if (command.error) { @@ -11337,7 +24855,7 @@ var SimpleGit = class extends GitManager { } onError(error) { if (error) { - let networkFailure = error.message.contains("Could not resolve host"); + let networkFailure = error.message.contains("Could not resolve host") || error.message.match(/ssh: connect to host .*? port .*?: Operation timed out/); if (!networkFailure) { this.plugin.displayError(error.message); this.plugin.setState(PluginState.idle); @@ -11352,10 +24870,2457 @@ var SimpleGit = class extends GitManager { } }; -// src/ui/diff/diffView.ts -var import_diff2html = __toModule(require_diff2html()); +// src/settings.ts +var ObsidianGitSettingsTab = class extends import_obsidian5.PluginSettingTab { + display() { + let { containerEl } = this; + const plugin = this.plugin; + const commitOrBackup = plugin.settings.differentIntervalCommitAndPush ? "commit" : "backup"; + const gitReady = plugin.gitReady; + containerEl.empty(); + containerEl.createEl("h2", { text: "Git Backup settings" }); + if (!gitReady) { + containerEl.createEl("p", { text: "Git is not ready. When all settings are correct you can configure auto backup, etc." }); + } + if (gitReady) { + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Automatic" }); + new import_obsidian5.Setting(containerEl).setName("Split automatic commit and push").setDesc("Enable to use separate timer for commit and push").addToggle((toggle) => toggle.setValue(plugin.settings.differentIntervalCommitAndPush).onChange((value) => { + plugin.settings.differentIntervalCommitAndPush = value; + plugin.saveSettings(); + plugin.clearAutoBackup(); + plugin.clearAutoPush(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + } + if (value && plugin.settings.autoPushInterval > 0) { + plugin.startAutoPush(plugin.settings.autoPushInterval); + } + this.display(); + })); + new import_obsidian5.Setting(containerEl).setName(`Vault ${commitOrBackup} interval (minutes)`).setDesc(`${plugin.settings.differentIntervalCommitAndPush ? "Commit" : "Commit and push"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText((text2) => text2.setValue(String(plugin.settings.autoSaveInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoSaveInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.clearAutoBackup(); + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + new import_obsidian5.Notice(`Automatic ${commitOrBackup} enabled! Every ${plugin.settings.autoSaveInterval} minutes.`); + } else if (plugin.settings.autoSaveInterval <= 0) { + plugin.clearAutoBackup() && new import_obsidian5.Notice(`Automatic ${commitOrBackup} disabled!`); + } + } else { + new import_obsidian5.Notice("Please specify a valid number."); + } + })); + new import_obsidian5.Setting(containerEl).setName(`If turned on, do auto ${commitOrBackup} every X minutes after last change. Prevents auto ${commitOrBackup} while editing a file. If turned off, do auto ${commitOrBackup} every X minutes. It's independent from last change.`).addToggle((toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { + plugin.settings.autoBackupAfterFileChange = value; + plugin.saveSettings(); + plugin.clearAutoBackup(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + } + })); + if (plugin.settings.differentIntervalCommitAndPush) { + new import_obsidian5.Setting(containerEl).setName(`Vault push interval (minutes)`).setDesc("Push changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPushInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPushInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPushInterval > 0) { + plugin.clearAutoPush(); + plugin.startAutoPush(plugin.settings.autoPushInterval); + new import_obsidian5.Notice(`Automatic push enabled! Every ${plugin.settings.autoPushInterval} minutes.`); + } else if (plugin.settings.autoPushInterval <= 0) { + plugin.clearAutoPush() && new import_obsidian5.Notice("Automatic push disabled!"); + } + } else { + new import_obsidian5.Notice("Please specify a valid number."); + } + })); + } + new import_obsidian5.Setting(containerEl).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPullInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPullInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPullInterval > 0) { + plugin.clearAutoPull(); + plugin.startAutoPull(plugin.settings.autoPullInterval); + new import_obsidian5.Notice(`Automatic pull enabled! Every ${plugin.settings.autoPullInterval} minutes.`); + } else if (plugin.settings.autoPullInterval <= 0) { + plugin.clearAutoPull() && new import_obsidian5.Notice("Automatic pull disabled!"); + } + } else { + new import_obsidian5.Notice("Please specify a valid number."); + } + })); + new import_obsidian5.Setting(containerEl).setName("Commit message on manual backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.commitMessage ? plugin.settings.commitMessage : "").onChange((value) => { + plugin.settings.commitMessage = value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Specify custom commit message on auto backup").setDesc("You will get a pop up to specify your message").addToggle((toggle) => toggle.setValue(plugin.settings.customMessageOnAutoBackup).onChange((value) => { + plugin.settings.customMessageOnAutoBackup = value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Commit message on auto backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.autoCommitMessage).onChange((value) => { + plugin.settings.autoCommitMessage = value; + plugin.saveSettings(); + })); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Commit message" }); + new import_obsidian5.Setting(containerEl).setName("{{date}} placeholder format").setDesc('Specify custom date format. E.g. "YYYY-MM-DD HH:mm:ss"').addText((text2) => text2.setPlaceholder(plugin.settings.commitDateFormat).setValue(plugin.settings.commitDateFormat).onChange((value) => __async(this, null, function* () { + plugin.settings.commitDateFormat = value; + yield plugin.saveSettings(); + }))); + new import_obsidian5.Setting(containerEl).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText((text2) => text2.setValue(plugin.localStorage.getHostname()).onChange((value) => __async(this, null, function* () { + plugin.localStorage.setHostname(value); + }))); + new import_obsidian5.Setting(containerEl).setName("Preview commit message").addButton((button) => button.setButtonText("Preview").onClick(() => __async(this, null, function* () { + let commitMessagePreview = yield plugin.gitManager.formatCommitMessage(plugin.settings.commitMessage); + new import_obsidian5.Notice(`${commitMessagePreview}`); + }))); + new import_obsidian5.Setting(containerEl).setName("List filenames affected by commit in the commit body").addToggle((toggle) => toggle.setValue(plugin.settings.listChangedFilesInMessageBody).onChange((value) => { + plugin.settings.listChangedFilesInMessageBody = value; + plugin.saveSettings(); + })); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Backup" }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian5.Setting(containerEl).setName("Sync Method").setDesc("Selects the method used for handling new changes found in your remote git repository.").addDropdown((dropdown) => { + const options = { + "merge": "Merge", + "rebase": "Rebase", + "reset": "Other sync service (Only updates the HEAD without touching the working directory)" + }; + dropdown.addOptions(options); + dropdown.setValue(plugin.settings.syncMethod); + dropdown.onChange((option) => __async(this, null, function* () { + plugin.settings.syncMethod = option; + plugin.saveSettings(); + })); + }); + new import_obsidian5.Setting(containerEl).setName("Pull updates on startup").setDesc("Automatically pull updates when Obsidian starts").addToggle((toggle) => toggle.setValue(plugin.settings.autoPullOnBoot).onChange((value) => { + plugin.settings.autoPullOnBoot = value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Push on backup").setDesc("Disable to only commit changes").addToggle((toggle) => toggle.setValue(!plugin.settings.disablePush).onChange((value) => { + plugin.settings.disablePush = !value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Pull changes before push").setDesc("Commit -> pull -> push (Only if pushing is enabled)").addToggle((toggle) => toggle.setValue(plugin.settings.pullBeforePush).onChange((value) => { + plugin.settings.pullBeforePush = value; + plugin.saveSettings(); + })); + } + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Miscellaneous" }); + if (gitReady) + new import_obsidian5.Setting(containerEl).setName("Current branch").setDesc("Switch to a different branch").addDropdown((dropdown) => __async(this, null, function* () { + const branchInfo = yield plugin.gitManager.branchInfo(); + for (const branch2 of branchInfo.branches) { + dropdown.addOption(branch2, branch2); + } + dropdown.setValue(branchInfo.current); + dropdown.onChange((option) => __async(this, null, function* () { + yield plugin.gitManager.checkout(option); + new import_obsidian5.Notice(`Checked out to ${option}`); + })); + })); + new import_obsidian5.Setting(containerEl).setName("Automatically refresh Source Control View on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option").addToggle((toggle) => toggle.setValue(plugin.settings.refreshSourceControl).onChange((value) => { + plugin.settings.refreshSourceControl = value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting").addToggle((toggle) => toggle.setValue(plugin.settings.disablePopups).onChange((value) => { + plugin.settings.disablePopups = value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect").addToggle((toggle) => toggle.setValue(plugin.settings.showStatusBar).onChange((value) => { + plugin.settings.showStatusBar = value; + plugin.saveSettings(); + })); + new import_obsidian5.Setting(containerEl).setName("Show changes files count in status bar").addToggle((toggle) => toggle.setValue(plugin.settings.changedFilesInStatusBar).onChange((value) => { + plugin.settings.changedFilesInStatusBar = value; + plugin.saveSettings(); + })); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Advanced" }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian5.Setting(containerEl).setName("Update submodules").setDesc('"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule').addToggle((toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { + plugin.settings.updateSubmodules = value; + plugin.saveSettings(); + })); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian5.Setting(containerEl).setName("Custom Git binary path").addText((cb) => { + cb.setValue(plugin.localStorage.getGitPath()); + cb.setPlaceholder("git"); + cb.onChange((value) => { + plugin.localStorage.setGitPath(value); + plugin.gitManager.updateGitPath(value || "git"); + }); + }); + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian5.Setting(containerEl).setName("Username on your git server. E.g. your username on GitHub").addText((cb) => { + cb.setValue(plugin.settings.username); + cb.onChange((value) => { + plugin.settings.username = value; + plugin.saveSettings(); + }); + }); + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian5.Setting(containerEl).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText((cb) => { + cb.inputEl.autocapitalize = "off"; + cb.inputEl.autocomplete = "off"; + cb.inputEl.spellcheck = false; + cb.onChange((value) => { + plugin.localStorage.setPassword(value); + }); + }); + if (gitReady) + new import_obsidian5.Setting(containerEl).setName("Author name for commit").addText((cb) => __async(this, null, function* () { + cb.setValue(yield plugin.gitManager.getConfig("user.name")); + cb.onChange((value) => { + plugin.gitManager.setConfig("user.name", value); + }); + })); + if (gitReady) + new import_obsidian5.Setting(containerEl).setName("Author email for commit").addText((cb) => __async(this, null, function* () { + cb.setValue(yield plugin.gitManager.getConfig("user.email")); + cb.onChange((value) => { + plugin.gitManager.setConfig("user.email", value); + }); + })); + new import_obsidian5.Setting(containerEl).setName("Custom base path (Git repository path)").setDesc(` + Sets the relative path to the vault from which the Git binary should be executed. + Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. + `).addText((cb) => { + cb.setValue(plugin.settings.basePath); + cb.setPlaceholder("directory/directory-with-git-repo"); + cb.onChange((value) => { + plugin.settings.basePath = value; + plugin.saveSettings(); + plugin.gitManager.updateBasePath(value || ""); + }); + }); + new import_obsidian5.Setting(containerEl).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton((bt) => { + bt.buttonEl.outerHTML = "Buy Me a Coffee at ko-fi.com"; + }); + const info = containerEl.createDiv(); + info.setAttr("align", "center"); + info.setText("Debugging and logging:\nYou can always see the logs of this and every other plugin by opening the console with"); + const keys = containerEl.createDiv(); + keys.setAttr("align", "center"); + keys.addClass("obsidian-git-shortcuts"); + if (import_obsidian5.Platform.isMacOS === true) { + keys.createEl("kbd", { text: "CMD (\u2318) + OPTION (\u2325) + I" }); + } else { + keys.createEl("kbd", { text: "CTRL + SHIFT + I" }); + } + } +}; + +// src/statusBar.ts +init_polyfill_buffer(); +var import_obsidian6 = __toModule(require("obsidian")); +var StatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.messages = []; + this.base = "obsidian-git-statusbar-"; + this.statusBarEl.setAttribute("aria-label-position", "top"); + } + displayMessage(message, timeout) { + this.messages.push({ + message: `Git: ${message.slice(0, 100)}`, + timeout + }); + this.display(); + } + display() { + if (this.messages.length > 0 && !this.currentMessage) { + this.currentMessage = this.messages.shift(); + this.statusBarEl.addClass(this.base + "message"); + this.statusBarEl.ariaLabel = ""; + this.statusBarEl.setText(this.currentMessage.message); + this.lastMessageTimestamp = Date.now(); + } else if (this.currentMessage) { + const messageAge = Date.now() - this.lastMessageTimestamp; + if (messageAge >= this.currentMessage.timeout) { + this.currentMessage = null; + this.lastMessageTimestamp = null; + } + } else { + this.displayState(); + } + } + displayState() { + if (this.statusBarEl.getText().length > 3 || !this.statusBarEl.hasChildNodes()) { + this.statusBarEl.empty(); + this.iconEl = this.statusBarEl.createDiv(); + this.textEl = this.statusBarEl.createDiv(); + this.textEl.style.float = "right"; + this.textEl.style.marginLeft = "5px"; + this.iconEl.style.float = "left"; + } + switch (this.plugin.state) { + case PluginState.idle: + this.displayFromNow(this.plugin.lastUpdate); + break; + case PluginState.status: + this.statusBarEl.ariaLabel = "Checking repository status..."; + (0, import_obsidian6.setIcon)(this.iconEl, "refresh-cw"); + this.statusBarEl.addClass(this.base + "status"); + break; + case PluginState.add: + this.statusBarEl.ariaLabel = "Adding files..."; + (0, import_obsidian6.setIcon)(this.iconEl, "refresh-w"); + this.statusBarEl.addClass(this.base + "add"); + break; + case PluginState.commit: + this.statusBarEl.ariaLabel = "Committing changes..."; + (0, import_obsidian6.setIcon)(this.iconEl, "git-commit"); + this.statusBarEl.addClass(this.base + "commit"); + break; + case PluginState.push: + this.statusBarEl.ariaLabel = "Pushing changes..."; + (0, import_obsidian6.setIcon)(this.iconEl, "upload"); + this.statusBarEl.addClass(this.base + "push"); + break; + case PluginState.pull: + this.statusBarEl.ariaLabel = "Pulling changes..."; + (0, import_obsidian6.setIcon)(this.iconEl, "download"); + this.statusBarEl.addClass(this.base + "pull"); + break; + case PluginState.conflicted: + this.statusBarEl.ariaLabel = "You have conflict files..."; + (0, import_obsidian6.setIcon)(this.iconEl, "alert-circle"); + this.statusBarEl.addClass(this.base + "conflict"); + break; + default: + this.statusBarEl.ariaLabel = "Failed on initialization!"; + (0, import_obsidian6.setIcon)(this.iconEl, "alert-triangle"); + this.statusBarEl.addClass(this.base + "failed-init"); + break; + } + } + displayFromNow(timestamp) { + if (timestamp) { + const moment = window.moment; + const fromNow = moment(timestamp).fromNow(); + this.statusBarEl.ariaLabel = `${this.plugin.offlineMode ? "Offline: " : ""}Last Git update: ${fromNow}`; + } else { + this.statusBarEl.ariaLabel = this.plugin.offlineMode ? "Git is offline" : "Git is ready"; + } + if (this.plugin.offlineMode) { + (0, import_obsidian6.setIcon)(this.iconEl, "globe"); + } else { + (0, import_obsidian6.setIcon)(this.iconEl, "check"); + } + if (this.plugin.settings.changedFilesInStatusBar && this.plugin.cachedStatus) { + this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()); + } + this.statusBarEl.addClass(this.base + "idle"); + } +}; + +// src/ui/modals/changedFilesModal.ts +init_polyfill_buffer(); var import_obsidian7 = __toModule(require("obsidian")); -var DiffView = class extends import_obsidian7.ItemView { +var ChangedFilesModal = class extends import_obsidian7.FuzzySuggestModal { + constructor(plugin, changedFiles) { + super(plugin.app); + this.plugin = plugin; + this.changedFiles = changedFiles; + this.setPlaceholder("Not supported files will be opened by default app!"); + } + getItems() { + return this.changedFiles; + } + getItemText(item) { + if (item.index == "U" && item.working_dir == "U") { + return `Untracked | ${item.vault_path}`; + } + let working_dir = ""; + let index2 = ""; + if (item.working_dir != " ") + working_dir = `Working dir: ${item.working_dir} `; + if (item.index != " ") + index2 = `Index: ${item.index}`; + return `${working_dir}${index2} | ${item.vault_path}`; + } + onChooseItem(item, _) { + if (this.plugin.app.metadataCache.getFirstLinkpathDest(item.vault_path, "") == null) { + this.app.openWithDefaultApp(item.vault_path); + } else { + this.plugin.app.workspace.openLinkText(item.vault_path, "/"); + } + } +}; + +// src/ui/modals/customMessageModal.ts +init_polyfill_buffer(); +var import_obsidian8 = __toModule(require("obsidian")); +var CustomMessageModal = class extends import_obsidian8.SuggestModal { + constructor(plugin, fromAutoBackup) { + super(plugin.app); + this.fromAutoBackup = fromAutoBackup; + this.resolve = null; + this.plugin = plugin; + this.setPlaceholder("Type your message and select optional the version with the added date."); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + selectSuggestion(value, evt) { + if (this.resolve) + this.resolve(value); + super.selectSuggestion(value, evt); + } + getSuggestions(query) { + const date = window.moment().format(this.plugin.settings.commitDateFormat); + if (query == "") + query = "..."; + return [query, `${date}: ${query}`, `${query}: ${date}`]; + } + renderSuggestion(value, el) { + el.innerText = value; + } + onChooseSuggestion(item, _) { + } +}; + +// src/constants.ts +init_polyfill_buffer(); +var import_obsidian9 = __toModule(require("obsidian")); +var DEFAULT_SETTINGS = { + commitMessage: "vault backup: {{date}}", + autoCommitMessage: void 0, + commitDateFormat: "YYYY-MM-DD HH:mm:ss", + autoSaveInterval: 0, + autoPushInterval: 0, + autoPullInterval: 0, + autoPullOnBoot: false, + disablePush: false, + pullBeforePush: true, + disablePopups: false, + listChangedFilesInMessageBody: false, + showStatusBar: true, + updateSubmodules: false, + syncMethod: "merge", + customMessageOnAutoBackup: false, + autoBackupAfterFileChange: false, + treeStructure: false, + refreshSourceControl: import_obsidian9.Platform.isDesktopApp, + basePath: "", + differentIntervalCommitAndPush: false, + changedFilesInStatusBar: false, + username: "", + showedMobileNotice: false +}; +var GIT_VIEW_CONFIG = { + type: "git-view", + name: "Source Control", + icon: "git-pull-request" +}; +var DIFF_VIEW_CONFIG = { + type: "diff-view", + name: "Diff View", + icon: "git-pull-request" +}; + +// src/localStorageSettings.ts +init_polyfill_buffer(); +var LocalStorageSettings = class { + constructor(plugin) { + this.plugin = plugin; + this.prefix = this.plugin.manifest.id; + } + getPassword() { + return localStorage.getItem(this.prefix + ":password"); + } + setPassword(value) { + return localStorage.setItem(this.prefix + ":password", value); + } + getHostname() { + return localStorage.getItem(this.prefix + ":hostname"); + } + setHostname(value) { + return localStorage.setItem(this.prefix + ":hostname", value); + } + getConflict() { + return localStorage.getItem(this.prefix + ":conflict"); + } + setConflict(value) { + return localStorage.setItem(this.prefix + ":conflict", value); + } + getLastAutoPull() { + return localStorage.getItem(this.prefix + ":lastAutoPull"); + } + setLastAutoPull(value) { + return localStorage.setItem(this.prefix + ":lastAutoPull", value); + } + getLastAutoBackup() { + return localStorage.getItem(this.prefix + ":lastAutoBackup"); + } + setLastAutoBackup(value) { + return localStorage.setItem(this.prefix + ":lastAutoBackup", value); + } + getLastAutoPush() { + return localStorage.getItem(this.prefix + ":lastAutoPush"); + } + setLastAutoPush(value) { + return localStorage.setItem(this.prefix + ":lastAutoPush", value); + } + getGitPath() { + return localStorage.getItem(this.prefix + ":gitPath"); + } + setGitPath(value) { + return localStorage.setItem(this.prefix + ":gitPath", value); + } +}; + +// src/openInGitHub.ts +init_polyfill_buffer(); +var import_obsidian10 = __toModule(require("obsidian")); +function openLineInGitHub(editor, file, manager) { + return __async(this, null, function* () { + const { isGitHub, branch: branch2, repo, user } = yield getData(manager); + if (isGitHub) { + const path2 = manager.getPath(file.path, true); + const from = editor.getCursor("from").line + 1; + const to = editor.getCursor("to").line + 1; + if (from === to) { + window.open(`https://github.com/${user}/${repo}/blob/${branch2}/${path2}?plain=1#L${from}`); + } else { + window.open(`https://github.com/${user}/${repo}/blob/${branch2}/${path2}?plain=1#L${from}-L${to}`); + } + } else { + new import_obsidian10.Notice("It seems like you are not using GitHub"); + } + }); +} +function openHistoryInGitHub(file, manager) { + return __async(this, null, function* () { + const { isGitHub, branch: branch2, repo, user } = yield getData(manager); + const path2 = manager.getPath(file.path, true); + if (isGitHub) { + window.open(`https://github.com/${user}/${repo}/commits/${branch2}/${path2}`); + } else { + new import_obsidian10.Notice("It seems like you are not using GitHub"); + } + }); +} +function getData(manager) { + return __async(this, null, function* () { + const branchInfo = yield manager.branchInfo(); + const remoteBranch = branchInfo.tracking; + const branch2 = branchInfo.current; + const remote = remoteBranch.substring(0, remoteBranch.indexOf("/")); + const remoteUrl = yield manager.getConfig(`remote.${remote}.url`); + const [isGitHub, httpsUser, httpsRepo, sshUser, sshRepo] = remoteUrl.match(/(?:^https:\/\/github\.com\/(.*)\/(.*)\.git$)|(?:^git@github\.com:(.*)\/(.*)\.git$)/); + return { + isGitHub: !!isGitHub, + repo: httpsRepo || sshRepo, + user: httpsUser || sshUser, + branch: branch2 + }; + }); +} + +// src/ui/diff/diffView.ts +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/diff2html.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/diff-parser.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/types.js +init_polyfill_buffer(); +var LineType; +(function(LineType2) { + LineType2["INSERT"] = "insert"; + LineType2["DELETE"] = "delete"; + LineType2["CONTEXT"] = "context"; +})(LineType || (LineType = {})); +var OutputFormatType = { + LINE_BY_LINE: "line-by-line", + SIDE_BY_SIDE: "side-by-side" +}; +var LineMatchingType = { + LINES: "lines", + WORDS: "words", + NONE: "none" +}; +var DiffStyleType = { + WORD: "word", + CHAR: "char" +}; + +// node_modules/diff2html/lib-esm/utils.js +init_polyfill_buffer(); +var specials = [ + "-", + "[", + "]", + "/", + "{", + "}", + "(", + ")", + "*", + "+", + "?", + ".", + "\\", + "^", + "$", + "|" +]; +var regex = RegExp("[" + specials.join("\\") + "]", "g"); +function escapeForRegExp(str) { + return str.replace(regex, "\\$&"); +} +function unifyPath(path2) { + return path2 ? path2.replace(/\\/g, "/") : path2; +} +function hashCode(text2) { + var i, chr, len; + var hash2 = 0; + for (i = 0, len = text2.length; i < len; i++) { + chr = text2.charCodeAt(i); + hash2 = (hash2 << 5) - hash2 + chr; + hash2 |= 0; + } + return hash2; +} + +// node_modules/diff2html/lib-esm/diff-parser.js +var __spreadArray = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +function getExtension(filename, language) { + var filenameParts = filename.split("."); + return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; +} +function startsWithAny(str, prefixes) { + return prefixes.reduce(function(startsWith, prefix) { + return startsWith || str.startsWith(prefix); + }, false); +} +var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; +function getFilename(line, linePrefix, extraPrefix) { + var prefixes = extraPrefix !== void 0 ? __spreadArray(__spreadArray([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes; + var FilenameRegExp = linePrefix ? new RegExp("^".concat(escapeForRegExp(linePrefix), ' "?(.+?)"?$')) : new RegExp('^"?(.+?)"?$'); + var _a2 = FilenameRegExp.exec(line) || [], _b = _a2[1], filename = _b === void 0 ? "" : _b; + var matchingPrefix = prefixes.find(function(p) { + return filename.indexOf(p) === 0; + }); + var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; + return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); +} +function getSrcFilename(line, srcPrefix) { + return getFilename(line, "---", srcPrefix); +} +function getDstFilename(line, dstPrefix) { + return getFilename(line, "+++", dstPrefix); +} +function parse(diffInput, config) { + if (config === void 0) { + config = {}; + } + var files = []; + var currentFile = null; + var currentBlock = null; + var oldLine = null; + var oldLine2 = null; + var newLine = null; + var possibleOldName = null; + var possibleNewName = null; + var oldFileNameHeader = "--- "; + var newFileNameHeader = "+++ "; + var hunkHeaderPrefix = "@@"; + var oldMode = /^old mode (\d{6})/; + var newMode = /^new mode (\d{6})/; + var deletedFileMode = /^deleted file mode (\d{6})/; + var newFileMode = /^new file mode (\d{6})/; + var copyFrom = /^copy from "?(.+)"?/; + var copyTo = /^copy to "?(.+)"?/; + var renameFrom = /^rename from "?(.+)"?/; + var renameTo = /^rename to "?(.+)"?/; + var similarityIndex = /^similarity index (\d+)%/; + var dissimilarityIndex = /^dissimilarity index (\d+)%/; + var index2 = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; + var binaryFiles = /^Binary files (.*) and (.*) differ/; + var binaryDiff = /^GIT binary patch/; + var combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; + var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; + var combinedNewFile = /^new file mode (\d{6})/; + var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; + var diffLines = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); + function saveBlock() { + if (currentBlock !== null && currentFile !== null) { + currentFile.blocks.push(currentBlock); + currentBlock = null; + } + } + function saveFile() { + if (currentFile !== null) { + if (!currentFile.oldName && possibleOldName !== null) { + currentFile.oldName = possibleOldName; + } + if (!currentFile.newName && possibleNewName !== null) { + currentFile.newName = possibleNewName; + } + if (currentFile.newName) { + files.push(currentFile); + currentFile = null; + } + } + possibleOldName = null; + possibleNewName = null; + } + function startFile() { + saveBlock(); + saveFile(); + currentFile = { + blocks: [], + deletedLines: 0, + addedLines: 0 + }; + } + function startBlock(line) { + saveBlock(); + var values; + if (currentFile !== null) { + if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { + currentFile.isCombined = false; + oldLine = parseInt(values[1], 10); + newLine = parseInt(values[2], 10); + } else if (values = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)) { + currentFile.isCombined = true; + oldLine = parseInt(values[1], 10); + oldLine2 = parseInt(values[2], 10); + newLine = parseInt(values[3], 10); + } else { + if (line.startsWith(hunkHeaderPrefix)) { + console.error("Failed to parse lines, starting in 0!"); + } + oldLine = 0; + newLine = 0; + currentFile.isCombined = false; + } + } + currentBlock = { + lines: [], + oldStartLine: oldLine, + oldStartLine2: oldLine2, + newStartLine: newLine, + header: line + }; + } + function createLine(line) { + if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) + return; + var currentLine = { + content: line + }; + var addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; + var deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; + if (startsWithAny(line, addedPrefixes)) { + currentFile.addedLines++; + currentLine.type = LineType.INSERT; + currentLine.oldNumber = void 0; + currentLine.newNumber = newLine++; + } else if (startsWithAny(line, deletedPrefixes)) { + currentFile.deletedLines++; + currentLine.type = LineType.DELETE; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = void 0; + } else { + currentLine.type = LineType.CONTEXT; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = newLine++; + } + currentBlock.lines.push(currentLine); + } + function existHunkHeader(line, lineIdx) { + var idx = lineIdx; + while (idx < diffLines.length - 3) { + if (line.startsWith("diff")) { + return false; + } + if (diffLines[idx].startsWith(oldFileNameHeader) && diffLines[idx + 1].startsWith(newFileNameHeader) && diffLines[idx + 2].startsWith(hunkHeaderPrefix)) { + return true; + } + idx++; + } + return false; + } + diffLines.forEach(function(line, lineIndex) { + if (!line || line.startsWith("*")) { + return; + } + var values; + var prevLine = diffLines[lineIndex - 1]; + var nxtLine = diffLines[lineIndex + 1]; + var afterNxtLine = diffLines[lineIndex + 2]; + if (line.startsWith("diff")) { + startFile(); + var gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; + if (values = gitDiffStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isGitDiff = true; + return; + } + if (!currentFile || !currentFile.isGitDiff && currentFile && line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) && afterNxtLine.startsWith(hunkHeaderPrefix)) { + startFile(); + } + if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) { + return; + } + if (currentFile && (typeof config.diffMaxChanges === "number" && currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges || typeof config.diffMaxLineLength === "number" && line.length > config.diffMaxLineLength)) { + currentFile.isTooBig = true; + currentFile.addedLines = 0; + currentFile.deletedLines = 0; + currentFile.blocks = []; + currentBlock = null; + var message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; + startBlock(message); + return; + } + if (line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) || line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader)) { + if (currentFile && !currentFile.oldName && line.startsWith("--- ") && (values = getSrcFilename(line, config.srcPrefix))) { + currentFile.oldName = values; + currentFile.language = getExtension(currentFile.oldName, currentFile.language); + return; + } + if (currentFile && !currentFile.newName && line.startsWith("+++ ") && (values = getDstFilename(line, config.dstPrefix))) { + currentFile.newName = values; + currentFile.language = getExtension(currentFile.newName, currentFile.language); + return; + } + } + if (currentFile && (line.startsWith(hunkHeaderPrefix) || currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock)) { + startBlock(line); + return; + } + if (currentBlock && (line.startsWith("+") || line.startsWith("-") || line.startsWith(" "))) { + createLine(line); + return; + } + var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + if (values = oldMode.exec(line)) { + currentFile.oldMode = values[1]; + } else if (values = newMode.exec(line)) { + currentFile.newMode = values[1]; + } else if (values = deletedFileMode.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } else if (values = newFileMode.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = copyFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isCopy = true; + } else if (values = copyTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isCopy = true; + } else if (values = renameFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isRename = true; + } else if (values = renameTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isRename = true; + } else if (values = binaryFiles.exec(line)) { + currentFile.isBinary = true; + currentFile.oldName = getFilename(values[1], void 0, config.srcPrefix); + currentFile.newName = getFilename(values[2], void 0, config.dstPrefix); + startBlock("Binary file"); + } else if (binaryDiff.test(line)) { + currentFile.isBinary = true; + startBlock(line); + } else if (values = similarityIndex.exec(line)) { + currentFile.unchangedPercentage = parseInt(values[1], 10); + } else if (values = dissimilarityIndex.exec(line)) { + currentFile.changedPercentage = parseInt(values[1], 10); + } else if (values = index2.exec(line)) { + currentFile.checksumBefore = values[1]; + currentFile.checksumAfter = values[2]; + values[3] && (currentFile.mode = values[3]); + } else if (values = combinedIndex.exec(line)) { + currentFile.checksumBefore = [values[2], values[3]]; + currentFile.checksumAfter = values[1]; + } else if (values = combinedMode.exec(line)) { + currentFile.oldMode = [values[2], values[3]]; + currentFile.newMode = values[1]; + } else if (values = combinedNewFile.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = combinedDeletedFile.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } + }); + saveBlock(); + saveFile(); + return files; +} + +// node_modules/diff2html/lib-esm/file-list-renderer.js +init_polyfill_buffer(); + +// node_modules/diff2html/lib-esm/render-utils.js +init_polyfill_buffer(); + +// node_modules/diff/lib/index.mjs +init_polyfill_buffer(); +function Diff() { +} +Diff.prototype = { + diff: function diff(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self3 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + if (options.maxEditLength) { + maxEditLength = Math.min(maxEditLength, options.maxEditLength); + } + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self3.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self3.pushComponent(basePath.components, true, void 0); + } + _oldPos = self3.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self3, basePath.components, newString, oldString, self3.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last2 = components[components.length - 1]; + if (last2 && last2.added === added && last2.removed === removed) { + components[components.length - 1] = { + count: last2.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join3(chars) { + return chars.join(""); + } +}; +function buildValues(diff2, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff2.join(value); + } else { + component.value = diff2.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff2.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff2.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; +} +function clonePath(path2) { + return { + newPos: path2.newPos, + components: path2.components.slice(0) + }; +} +var characterDiff = new Diff(); +function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); +} +var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; +var reWhitespace = /\S/; +var wordDiff = new Diff(); +wordDiff.equals = function(left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); +}; +wordDiff.tokenize = function(value) { + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); + for (var i = 0; i < tokens.length - 1; i++) { + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + return tokens; +}; +function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); +} +var lineDiff = new Diff(); +lineDiff.tokenize = function(value) { + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; +}; +var sentenceDiff = new Diff(); +sentenceDiff.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; +var cssDiff = new Diff(); +cssDiff.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); +}; +function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); +} +var objectPrototypeToString = Object.prototype.toString; +var jsonDiff = new Diff(); +jsonDiff.useLongestToken = true; +jsonDiff.tokenize = lineDiff.tokenize; +jsonDiff.castInput = function(value) { + var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _this$options$stringi; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); +}; +jsonDiff.equals = function(left, right) { + return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); +}; +function canonicalize(obj, stack, replacementStack, replacer, key2) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key2, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if (objectPrototypeToString.call(obj) === "[object Array]") { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key2); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} +var arrayDiff = new Diff(); +arrayDiff.tokenize = function(value) { + return value.slice(); +}; +arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; +}; + +// node_modules/diff2html/lib-esm/rematch.js +init_polyfill_buffer(); +function levenshtein(a, b) { + if (a.length === 0) { + return b.length; + } + if (b.length === 0) { + return a.length; + } + var matrix = []; + var i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + var j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + return matrix[b.length][a.length]; +} +function newDistanceFn(str) { + return function(x, y) { + var xValue = str(x).trim(); + var yValue = str(y).trim(); + var lev = levenshtein(xValue, yValue); + return lev / (xValue.length + yValue.length); + }; +} +function newMatcherFn(distance2) { + function findBestMatch(a, b, cache) { + if (cache === void 0) { + cache = new Map(); + } + var bestMatchDist = Infinity; + var bestMatch; + for (var i = 0; i < a.length; ++i) { + for (var j = 0; j < b.length; ++j) { + var cacheKey = JSON.stringify([a[i], b[j]]); + var md = void 0; + if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { + md = distance2(a[i], b[j]); + cache.set(cacheKey, md); + } + if (md < bestMatchDist) { + bestMatchDist = md; + bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; + } + } + } + return bestMatch; + } + function group(a, b, level, cache) { + if (level === void 0) { + level = 0; + } + if (cache === void 0) { + cache = new Map(); + } + var bm = findBestMatch(a, b, cache); + if (!bm || a.length + b.length < 3) { + return [[a, b]]; + } + var a1 = a.slice(0, bm.indexA); + var b1 = b.slice(0, bm.indexB); + var aMatch = [a[bm.indexA]]; + var bMatch = [b[bm.indexB]]; + var tailA = bm.indexA + 1; + var tailB = bm.indexB + 1; + var a2 = a.slice(tailA); + var b2 = b.slice(tailB); + var group1 = group(a1, b1, level + 1, cache); + var groupMatch = group(aMatch, bMatch, level + 1, cache); + var group2 = group(a2, b2, level + 1, cache); + var result = groupMatch; + if (bm.indexA > 0 || bm.indexB > 0) { + result = group1.concat(result); + } + if (a.length > tailA || b.length > tailB) { + result = result.concat(group2); + } + return result; + } + return group; +} + +// node_modules/diff2html/lib-esm/render-utils.js +var __assign = function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var CSSLineClass = { + INSERTS: "d2h-ins", + DELETES: "d2h-del", + CONTEXT: "d2h-cntx", + INFO: "d2h-info", + INSERT_CHANGES: "d2h-ins d2h-change", + DELETE_CHANGES: "d2h-del d2h-change" +}; +var defaultRenderConfig = { + matching: LineMatchingType.NONE, + matchWordsThreshold: 0.25, + maxLineLengthHighlight: 1e4, + diffStyle: DiffStyleType.WORD +}; +var separator = "/"; +var distance = newDistanceFn(function(change) { + return change.value; +}); +var matcher = newMatcherFn(distance); +function isDevNullName(name) { + return name.indexOf("dev/null") !== -1; +} +function removeInsElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ""); +} +function removeDelElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ""); +} +function toCSSClass(lineType) { + switch (lineType) { + case LineType.CONTEXT: + return CSSLineClass.CONTEXT; + case LineType.INSERT: + return CSSLineClass.INSERTS; + case LineType.DELETE: + return CSSLineClass.DELETES; + } +} +function prefixLength(isCombined) { + return isCombined ? 2 : 1; +} +function escapeForHtml(str) { + return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); +} +function deconstructLine(line, isCombined, escape) { + if (escape === void 0) { + escape = true; + } + var indexToSplit = prefixLength(isCombined); + return { + prefix: line.substring(0, indexToSplit), + content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) + }; +} +function filenameDiff(file) { + var oldFilename = unifyPath(file.oldName); + var newFilename = unifyPath(file.newName); + if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { + var prefixPaths = []; + var suffixPaths = []; + var oldFilenameParts = oldFilename.split(separator); + var newFilenameParts = newFilename.split(separator); + var oldFilenamePartsSize = oldFilenameParts.length; + var newFilenamePartsSize = newFilenameParts.length; + var i = 0; + var j = oldFilenamePartsSize - 1; + var k = newFilenamePartsSize - 1; + while (i < j && i < k) { + if (oldFilenameParts[i] === newFilenameParts[i]) { + prefixPaths.push(newFilenameParts[i]); + i += 1; + } else { + break; + } + } + while (j > i && k > i) { + if (oldFilenameParts[j] === newFilenameParts[k]) { + suffixPaths.unshift(newFilenameParts[k]); + j -= 1; + k -= 1; + } else { + break; + } + } + var finalPrefix = prefixPaths.join(separator); + var finalSuffix = suffixPaths.join(separator); + var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); + var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); + if (finalPrefix.length && finalSuffix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } else if (finalPrefix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}"; + } else if (finalSuffix.length) { + return "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } + return oldFilename + " \u2192 " + newFilename; + } else if (!isDevNullName(newFilename)) { + return newFilename; + } else { + return oldFilename; + } +} +function getHtmlId(file) { + return "d2h-".concat(hashCode(filenameDiff(file)).toString().slice(-6)); +} +function getFileIcon(file) { + var templateName = "file-changed"; + if (file.isRename) { + templateName = "file-renamed"; + } else if (file.isCopy) { + templateName = "file-renamed"; + } else if (file.isNew) { + templateName = "file-added"; + } else if (file.isDeleted) { + templateName = "file-deleted"; + } else if (file.newName !== file.oldName) { + templateName = "file-renamed"; + } + return templateName; +} +function diffHighlight(diffLine1, diffLine2, isCombined, config) { + if (config === void 0) { + config = {}; + } + var _a2 = __assign(__assign({}, defaultRenderConfig), config), matching = _a2.matching, maxLineLengthHighlight = _a2.maxLineLengthHighlight, matchWordsThreshold = _a2.matchWordsThreshold, diffStyle = _a2.diffStyle; + var line1 = deconstructLine(diffLine1, isCombined, false); + var line2 = deconstructLine(diffLine2, isCombined, false); + if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { + return { + oldLine: { + prefix: line1.prefix, + content: escapeForHtml(line1.content) + }, + newLine: { + prefix: line2.prefix, + content: escapeForHtml(line2.content) + } + }; + } + var diff2 = diffStyle === "char" ? diffChars(line1.content, line2.content) : diffWordsWithSpace(line1.content, line2.content); + var changedWords = []; + if (diffStyle === "word" && matching === "words") { + var removed = diff2.filter(function(element2) { + return element2.removed; + }); + var added = diff2.filter(function(element2) { + return element2.added; + }); + var chunks = matcher(added, removed); + chunks.forEach(function(chunk) { + if (chunk[0].length === 1 && chunk[1].length === 1) { + var dist = distance(chunk[0][0], chunk[1][0]); + if (dist < matchWordsThreshold) { + changedWords.push(chunk[0][0]); + changedWords.push(chunk[1][0]); + } + } + }); + } + var highlightedLine = diff2.reduce(function(highlightedLine2, part) { + var elemType = part.added ? "ins" : part.removed ? "del" : null; + var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; + var escapedValue = escapeForHtml(part.value); + return elemType !== null ? "".concat(highlightedLine2, "<").concat(elemType).concat(addClass, ">").concat(escapedValue, "") : "".concat(highlightedLine2).concat(escapedValue); + }, ""); + return { + oldLine: { + prefix: line1.prefix, + content: removeInsElements(highlightedLine) + }, + newLine: { + prefix: line2.prefix, + content: removeDelElements(highlightedLine) + } + }; +} + +// node_modules/diff2html/lib-esm/file-list-renderer.js +var baseTemplatesPath = "file-summary"; +var iconsBaseTemplatesPath = "icon"; +function render(diffFiles, hoganUtils) { + var files = diffFiles.map(function(file) { + return hoganUtils.render(baseTemplatesPath, "line", { + fileHtmlId: getHtmlId(file), + oldName: file.oldName, + newName: file.newName, + fileName: filenameDiff(file), + deletedLines: "-" + file.deletedLines, + addedLines: "+" + file.addedLines + }, { + fileIcon: hoganUtils.template(iconsBaseTemplatesPath, getFileIcon(file)) + }); + }).join("\n"); + return hoganUtils.render(baseTemplatesPath, "wrapper", { + filesNumber: diffFiles.length, + files + }); +} + +// node_modules/diff2html/lib-esm/line-by-line-renderer.js +init_polyfill_buffer(); +var __assign2 = function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); +}; +var defaultLineByLineRendererConfig = __assign2(__assign2({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath = "generic"; +var baseTemplatesPath2 = "line-by-line"; +var iconsBaseTemplatesPath2 = "icon"; +var tagsBaseTemplatesPath = "tag"; +var LineByLineRenderer = function() { + function LineByLineRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign2(__assign2({}, defaultLineByLineRendererConfig), config); + } + LineByLineRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); + }; + LineByLineRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath2, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath2, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + LineByLineRenderer2.prototype.generateEmptyDiff = function() { + return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { + contentClass: "d2h-code-line", + CSSLineClass + }); + }; + LineByLineRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher2 = newMatcherFn(newDistanceFn(function(e) { + return deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var lines = _this.hoganUtils.render(genericTemplatesPath, "block-header", { + CSSLineClass, + blockHeader: file.isTooBig ? block.header : escapeForHtml(block.header), + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line" + }); + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + lines += left2; + lines += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + lines += _this.generateSingleLineHtml({ + type: CSSLineClass.CONTEXT, + prefix, + content, + oldNumber: line.oldNumber, + newNumber: line.newNumber + }); + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + lines += left; + lines += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return lines; + }).join("\n"); + }; + LineByLineRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + LineByLineRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + }; + LineByLineRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + prefix: diff2.oldLine.prefix, + content: diff2.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : __assign2(__assign2({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + prefix: diff2.newLine.prefix, + content: diff2.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : __assign2(__assign2({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + LineByLineRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleLineHtml(oldLine), + right: this.generateSingleLineHtml(newLine) + }; + }; + LineByLineRenderer2.prototype.generateSingleLineHtml = function(line) { + if (line === void 0) + return ""; + var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath2, "numbers", { + oldNumber: line.oldNumber || "", + newNumber: line.newNumber || "" + }); + return this.hoganUtils.render(genericTemplatesPath, "line", { + type: line.type, + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line", + prefix: line.prefix === " " ? " " : line.prefix, + content: line.content, + lineNumber: lineNumberHtml + }); + }; + return LineByLineRenderer2; +}(); +var line_by_line_renderer_default = LineByLineRenderer; + +// node_modules/diff2html/lib-esm/side-by-side-renderer.js +init_polyfill_buffer(); +var __assign3 = function() { + __assign3 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign3.apply(this, arguments); +}; +var defaultSideBySideRendererConfig = __assign3(__assign3({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath2 = "generic"; +var baseTemplatesPath3 = "side-by-side"; +var iconsBaseTemplatesPath3 = "icon"; +var tagsBaseTemplatesPath2 = "tag"; +var SideBySideRenderer = function() { + function SideBySideRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign3(__assign3({}, defaultSideBySideRendererConfig), config); + } + SideBySideRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath2, "wrapper", { content: diffsHtml }); + }; + SideBySideRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath3, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath2, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath3, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath2, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + SideBySideRenderer2.prototype.generateEmptyDiff = function() { + return { + right: "", + left: this.hoganUtils.render(genericTemplatesPath2, "empty-diff", { + contentClass: "d2h-code-side-line", + CSSLineClass + }) + }; + }; + SideBySideRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher2 = newMatcherFn(newDistanceFn(function(e) { + return deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var fileHtml = { + left: _this.makeHeaderHtml(block.header, file), + right: _this.makeHeaderHtml("") + }; + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + var _b2 = _this.generateLineHtml({ + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.oldNumber + }, { + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.newNumber + }), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + fileHtml.left += left; + fileHtml.right += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return fileHtml; + }).reduce(function(accomulated, html2) { + return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; + }, { left: "", right: "" }); + }; + SideBySideRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + SideBySideRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + }; + SideBySideRenderer2.prototype.makeHeaderHtml = function(blockHeader, file) { + return this.hoganUtils.render(genericTemplatesPath2, "block-header", { + CSSLineClass, + blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : escapeForHtml(blockHeader), + lineClass: "d2h-code-side-linenumber", + contentClass: "d2h-code-side-line" + }); + }; + SideBySideRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + prefix: diff2.oldLine.prefix, + content: diff2.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : __assign3(__assign3({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + prefix: diff2.newLine.prefix, + content: diff2.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : __assign3(__assign3({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + SideBySideRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleHtml(oldLine), + right: this.generateSingleHtml(newLine) + }; + }; + SideBySideRenderer2.prototype.generateSingleHtml = function(line) { + var lineClass = "d2h-code-side-linenumber"; + var contentClass = "d2h-code-side-line"; + return this.hoganUtils.render(genericTemplatesPath2, "line", { + type: (line === null || line === void 0 ? void 0 : line.type) || "".concat(CSSLineClass.CONTEXT, " d2h-emptyplaceholder"), + lineClass: line !== void 0 ? lineClass : "".concat(lineClass, " d2h-code-side-emptyplaceholder"), + contentClass: line !== void 0 ? contentClass : "".concat(contentClass, " d2h-code-side-emptyplaceholder"), + prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, + content: line === null || line === void 0 ? void 0 : line.content, + lineNumber: line === null || line === void 0 ? void 0 : line.number + }); + }; + return SideBySideRenderer2; +}(); +var side_by_side_renderer_default = SideBySideRenderer; + +// node_modules/diff2html/lib-esm/hoganjs-utils.js +init_polyfill_buffer(); +var Hogan3 = __toModule(require_hogan()); + +// node_modules/diff2html/lib-esm/diff2html-templates.js +init_polyfill_buffer(); +var Hogan2 = __toModule(require_hogan()); +var defaultTemplates = {}; +defaultTemplates["file-summary-line"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
  • '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("addedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("deletedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
  • "); + return t.fl(); +}, partials: { "'); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' Files changed ('); + t.b(t.v(t.f("filesNumber", c, p, 0))); + t.b(")"); + t.b("\n" + i); + t.b(' hide'); + t.b("\n" + i); + t.b(' show'); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
      '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("files", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-block-header"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b(t.t(t.f("blockHeader", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-empty-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" File without changes"); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-file-path"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(''); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileDiffName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(t.rp(""); + t.b("\n" + i); + t.b('"); + return t.fl(); +}, partials: { ""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("lineNumber", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + if (t.s(t.f("prefix", c, p, 1), c, p, 0, 162, 238, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("prefix", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("prefix", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('  '); + t.b("\n" + i); + } + ; + if (t.s(t.f("content", c, p, 1), c, p, 0, 371, 445, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("content", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("content", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('
    '); + t.b("\n" + i); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-wrapper"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("content", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("diffs", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-numbers"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b(t.v(t.f("oldNumber", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b(t.v(t.f("newNumber", c, p, 0))); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["side-by-side-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.left", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.right", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('ADDED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('CHANGED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('DELETED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('RENAMED'); + return t.fl(); +}, partials: {}, subs: {} }); + +// node_modules/diff2html/lib-esm/hoganjs-utils.js +var __assign4 = function() { + __assign4 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign4.apply(this, arguments); +}; +var HoganJsUtils = function() { + function HoganJsUtils2(_a2) { + var _b = _a2.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a2.rawTemplates, rawTemplates = _c === void 0 ? {} : _c; + var compiledRawTemplates = Object.entries(rawTemplates).reduce(function(previousTemplates, _a3) { + var _b2; + var name = _a3[0], templateString = _a3[1]; + var compiledTemplate = Hogan3.compile(templateString, { asString: false }); + return __assign4(__assign4({}, previousTemplates), (_b2 = {}, _b2[name] = compiledTemplate, _b2)); + }, {}); + this.preCompiledTemplates = __assign4(__assign4(__assign4({}, defaultTemplates), compiledTemplates), compiledRawTemplates); + } + HoganJsUtils2.compile = function(templateString) { + return Hogan3.compile(templateString, { asString: false }); + }; + HoganJsUtils2.prototype.render = function(namespace, view, params, partials, indent2) { + var templateKey = this.templateKey(namespace, view); + try { + var template = this.preCompiledTemplates[templateKey]; + return template.render(params, partials, indent2); + } catch (e) { + throw new Error("Could not find template to render '".concat(templateKey, "'")); + } + }; + HoganJsUtils2.prototype.template = function(namespace, view) { + return this.preCompiledTemplates[this.templateKey(namespace, view)]; + }; + HoganJsUtils2.prototype.templateKey = function(namespace, view) { + return "".concat(namespace, "-").concat(view); + }; + return HoganJsUtils2; +}(); +var hoganjs_utils_default = HoganJsUtils; + +// node_modules/diff2html/lib-esm/diff2html.js +var __assign5 = function() { + __assign5 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign5.apply(this, arguments); +}; +var defaultDiff2HtmlConfig = __assign5(__assign5(__assign5({}, defaultLineByLineRendererConfig), defaultSideBySideRendererConfig), { outputFormat: OutputFormatType.LINE_BY_LINE, drawFileList: true }); +function html(diffInput, configuration) { + if (configuration === void 0) { + configuration = {}; + } + var config = __assign5(__assign5({}, defaultDiff2HtmlConfig), configuration); + var diffJson = typeof diffInput === "string" ? parse(diffInput, config) : diffInput; + var hoganUtils = new hoganjs_utils_default(config); + var fileList = config.drawFileList ? render(diffJson, hoganUtils) : ""; + var diffOutput = config.outputFormat === "side-by-side" ? new side_by_side_renderer_default(hoganUtils, config).render(diffJson) : new line_by_line_renderer_default(hoganUtils, config).render(diffJson); + return fileList + diffOutput; +} + +// src/ui/diff/diffView.ts +var import_obsidian11 = __toModule(require("obsidian")); +var DiffView = class extends import_obsidian11.ItemView { constructor(leaf, plugin) { super(leaf); this.plugin = plugin; @@ -11395,16 +27360,17 @@ var DiffView = class extends import_obsidian7.ItemView { var _a2; if (((_a2 = this.state) == null ? void 0 : _a2.file) && !this.gettingDiff && this.plugin.gitManager) { this.gettingDiff = true; - const diff = this.parser.parseFromString((0, import_diff2html.html)(yield this.plugin.gitManager.getDiffString(this.state.file, this.state.staged)), "text/html").querySelector(".d2h-file-diff"); + let diff2 = yield this.plugin.gitManager.getDiffString(this.state.file, this.state.staged); this.contentEl.empty(); - if (diff) { - this.contentEl.append(diff); - } else { - const div = this.contentEl.createDiv({ cls: "diff-err" }); - div.createSpan({ text: "\u26A0\uFE0F", cls: "diff-err-sign" }); - div.createEl("br"); - div.createSpan({ text: "No changes to " + this.state.file }); + if (!diff2) { + const content = yield this.app.vault.adapter.read(this.plugin.gitManager.getVaultPath(this.state.file)); + const header = `--- /dev/null ++++ ${this.state.file} +@@ -0,0 +1,${content.split("\n").length} @@`; + diff2 = [...header.split("\n"), ...content.split("\n").map((line) => `+${line}`)].join("\n"); } + const diffEl = this.parser.parseFromString(html(diff2), "text/html").querySelector(".d2h-file-diff"); + this.contentEl.append(diffEl); this.gettingDiff = false; } }); @@ -11412,12 +27378,15 @@ var DiffView = class extends import_obsidian7.ItemView { }; // src/ui/modals/generalModal.ts -var import_obsidian8 = __toModule(require("obsidian")); -var GeneralModal = class extends import_obsidian8.SuggestModal { - constructor(app2, remotes, placeholder) { +init_polyfill_buffer(); +var import_obsidian12 = __toModule(require("obsidian")); +var GeneralModal = class extends import_obsidian12.SuggestModal { + constructor(app2, options, placeholder, allowEmpty = false, onlySelection = false) { super(app2); + this.options = options; + this.allowEmpty = allowEmpty; + this.onlySelection = onlySelection; this.resolve = null; - this.list = remotes; this.setPlaceholder(placeholder); } open() { @@ -11427,8 +27396,16 @@ var GeneralModal = class extends import_obsidian8.SuggestModal { }); } selectSuggestion(value, evt) { - if (this.resolve) - this.resolve(value); + if (this.resolve) { + let res; + if (this.allowEmpty && value === " ") + res = ""; + else if (value === "...") + res = void 0; + else + res = value; + this.resolve(res); + } super.selectSuggestion(value, evt); } onClose() { @@ -11436,7 +27413,13 @@ var GeneralModal = class extends import_obsidian8.SuggestModal { this.resolve(void 0); } getSuggestions(query) { - return [query.length > 0 ? query : "...", ...this.list]; + if (this.onlySelection) { + return this.options; + } else if (this.allowEmpty) { + return [query.length > 0 ? query : " ", ...this.options]; + } else { + return [query.length > 0 ? query : "...", ...this.options]; + } } renderSuggestion(value, el) { el.innerText = value; @@ -11445,10 +27428,54 @@ var GeneralModal = class extends import_obsidian8.SuggestModal { } }; +// src/ui/modals/ignoreModal.ts +init_polyfill_buffer(); +var import_obsidian13 = __toModule(require("obsidian")); +var IgnoreModal = class extends import_obsidian13.Modal { + constructor(app2, content) { + super(app2); + this.content = content; + this.resolve = null; + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onOpen() { + let { contentEl, titleEl } = this; + titleEl.setText("Edit .gitignore"); + const div = contentEl.createDiv(); + const text2 = div.createEl("textarea", { + text: this.content, + cls: ["obsidian-git-textarea"], + attr: { rows: 10, cols: 30, wrap: "off" } + }); + div.createEl("button", { + cls: ["mod-cta", "obsidian-git-center-button"], + text: "Save" + }).addEventListener("click", () => __async(this, null, function* () { + this.resolve(text2.value); + this.close(); + })); + } + onClose() { + let { contentEl } = this; + this.resolve(void 0); + contentEl.empty(); + } +}; + // src/ui/sidebar/sidebarView.ts -var import_obsidian14 = __toModule(require("obsidian")); +init_polyfill_buffer(); +var import_obsidian20 = __toModule(require("obsidian")); + +// src/ui/sidebar/gitView.svelte +init_polyfill_buffer(); // node_modules/svelte/internal/index.mjs +init_polyfill_buffer(); function noop() { } var identity = (x) => x; @@ -11525,13 +27552,9 @@ function get_root_for_style(node) { } return node.ownerDocument; } -function append_empty_stylesheet(node) { - const style_element = element("style"); - append_stylesheet(get_root_for_style(node), style_element); - return style_element.sheet; -} function append_stylesheet(node, style) { append2(node.head || node, style); + return style.sheet; } function insert(target, node, anchor) { target.insertBefore(node, anchor || null); @@ -11601,8 +27624,8 @@ function hash(str) { hash2 = (hash2 << 5) - hash2 ^ str.charCodeAt(i); return hash2 >>> 0; } -function create_style_information(doc, node) { - const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; +function create_style_information(doc) { + const info = { style_element: element("style"), rules: {} }; managed_styles.set(doc, info); return info; } @@ -11618,8 +27641,9 @@ function create_rule(node, a, b, duration, delay2, ease, fn, uid = 0) { }`; const name = `__svelte_${hash(rule)}_${uid}`; const doc = get_root_for_style(node); - const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + const { style_element, rules } = managed_styles.get(doc) || create_style_information(doc); if (!rules[name]) { + const stylesheet = append_stylesheet(doc, style_element); rules[name] = true; stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); } @@ -11644,11 +27668,8 @@ function clear_rules() { if (active) return; managed_styles.forEach((info) => { - const { stylesheet } = info; - let i = stylesheet.cssRules.length; - while (i--) - stylesheet.deleteRule(i); - info.rules = {}; + const { style_element } = info; + detach(style_element); }); managed_styles.clear(); }); @@ -11791,7 +27812,7 @@ function create_bidirectional_transition(node, fn, params, intro) { if (animation_name) delete_rule(node, animation_name); } - function init2(program, duration) { + function init3(program, duration) { const d = program.b - t; duration *= Math.abs(d); return { @@ -11823,11 +27844,11 @@ function create_bidirectional_transition(node, fn, params, intro) { } if (b) tick2(0, 1); - running_program = init2(program, duration); + running_program = init3(program, duration); add_render_callback(() => dispatch(node, b, "start")); loop((now2) => { if (pending_program && now2 > pending_program.start) { - running_program = init2(pending_program, duration); + running_program = init3(pending_program, duration); pending_program = null; dispatch(node, running_program.b, "start"); if (css) { @@ -11938,7 +27959,7 @@ function make_dirty(component, i) { } component.$$.dirty[i / 31 | 0] |= 1 << i % 31; } -function init(component, options, instance5, create_fragment5, not_equal, props, append_styles2, dirty = [-1]) { +function init2(component, options, instance6, create_fragment6, not_equal, props, append_styles2, dirty = [-1]) { const parent_component = current_component; set_current_component(component); const $$ = component.$$ = { @@ -11961,7 +27982,7 @@ function init(component, options, instance5, create_fragment5, not_equal, props, }; append_styles2 && append_styles2($$.root); let ready2 = false; - $$.ctx = instance5 ? instance5(component, options.props || {}, (i, ret, ...rest) => { + $$.ctx = instance6 ? instance6(component, options.props || {}, (i, ret, ...rest) => { const value = rest.length ? rest[0] : ret; if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { if (!$$.skip_bound && $$.bound[i]) @@ -11974,7 +27995,7 @@ function init(component, options, instance5, create_fragment5, not_equal, props, $$.update(); ready2 = true; run_all($$.before_update); - $$.fragment = create_fragment5 ? create_fragment5($$.ctx) : false; + $$.fragment = create_fragment6 ? create_fragment6($$.ctx) : false; if (options.target) { if (options.hydrate) { start_hydrating(); @@ -12020,9 +28041,9 @@ if (typeof HTMLElement === "function") { const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); callbacks.push(callback); return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); + const index2 = callbacks.indexOf(callback); + if (index2 !== -1) + callbacks.splice(index2, 1); }; } $set($$props) { @@ -12043,9 +28064,9 @@ var SvelteComponent = class { const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); callbacks.push(callback); return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); + const index2 = callbacks.indexOf(callback); + if (index2 !== -1) + callbacks.splice(index2, 1); }; } $set($$props) { @@ -12058,10 +28079,11 @@ var SvelteComponent = class { }; // node_modules/tslib/modules/index.js +init_polyfill_buffer(); var import_tslib = __toModule(require_tslib()); var { __extends, - __assign, + __assign: __assign6, __rest, __decorate, __param, @@ -12074,7 +28096,7 @@ var { __read, __spread, __spreadArrays, - __spreadArray, + __spreadArray: __spreadArray2, __await, __asyncGenerator, __asyncDelegator, @@ -12088,9 +28110,16 @@ var { } = import_tslib.default; // src/ui/sidebar/gitView.svelte -var import_obsidian13 = __toModule(require("obsidian")); +var import_obsidian19 = __toModule(require("obsidian")); + +// node_modules/svelte/index.mjs +init_polyfill_buffer(); + +// node_modules/svelte/transition/index.mjs +init_polyfill_buffer(); // node_modules/svelte/easing/index.mjs +init_polyfill_buffer(); function cubicOut(t) { const f = t - 1; return f * f * f + 1; @@ -12116,11 +28145,16 @@ function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut } = } // src/ui/sidebar/components/fileComponent.svelte -var import_obsidian11 = __toModule(require("obsidian")); +init_polyfill_buffer(); +var import_obsidian16 = __toModule(require("obsidian")); + +// node_modules/obsidian-community-lib/dist/index.js +init_polyfill_buffer(); // node_modules/obsidian-community-lib/dist/utils.js +init_polyfill_buffer(); var feather = __toModule(require_feather()); -var import_obsidian9 = __toModule(require("obsidian")); +var import_obsidian14 = __toModule(require("obsidian")); function hoverPreview(event, view, to) { const targetEl = event.target; app.workspace.trigger("hover-link", { @@ -12134,7 +28168,7 @@ function hoverPreview(event, view, to) { function createNewMDNote(newName, currFilePath = "") { return __async(this, null, function* () { const newFileFolder = app.fileManager.getNewFileParent(currFilePath).path; - const newFilePath = (0, import_obsidian9.normalizePath)(`${newFileFolder}${newFileFolder === "/" ? "" : "/"}${addMD(newName)}`); + const newFilePath = (0, import_obsidian14.normalizePath)(`${newFileFolder}${newFileFolder === "/" ? "" : "/"}${addMD(newName)}`); return yield app.vault.create(newFilePath, ""); }); } @@ -12152,7 +28186,7 @@ function openOrSwitch(_0, _1) { const leavesWithDestAlreadyOpen = []; workspace.iterateAllLeaves((leaf) => { var _a2; - if (leaf.view instanceof import_obsidian9.MarkdownView) { + if (leaf.view instanceof import_obsidian14.MarkdownView) { const file = (_a2 = leaf.view) === null || _a2 === void 0 ? void 0 : _a2.file; if (file && file.basename + "." + file.extension === dest) { leavesWithDestAlreadyOpen.push(leaf); @@ -12170,8 +28204,9 @@ function openOrSwitch(_0, _1) { } // src/ui/modals/discardModal.ts -var import_obsidian10 = __toModule(require("obsidian")); -var DiscardModal = class extends import_obsidian10.Modal { +init_polyfill_buffer(); +var import_obsidian15 = __toModule(require("obsidian")); +var DiscardModal = class extends import_obsidian15.Modal { constructor(app2, deletion, filename) { super(app2); this.deletion = deletion; @@ -12377,7 +28412,7 @@ function instance($$self, $$props, $$invalidate) { let { manager } = $$props; let { workspace } = $$props; let buttons = []; - setImmediate(() => buttons.forEach((b) => (0, import_obsidian11.setIcon)(b, b.getAttr("data-icon"), 16))); + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian16.setIcon)(b, b.getAttr("data-icon"), 16)), 0); function hover(event) { if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { hoverPreview(event, view, change.vault_path.split("/").last().replace(".md", "")); @@ -12389,7 +28424,7 @@ function instance($$self, $$props, $$invalidate) { } } function stage() { - manager.stage(change.path).finally(() => { + manager.stage(change.path, false).finally(() => { dispatchEvent(new CustomEvent("git-refresh")); }); } @@ -12482,7 +28517,7 @@ function instance($$self, $$props, $$invalidate) { var FileComponent = class extends SvelteComponent { constructor(options) { super(); - init(this, options, instance, create_fragment, safe_not_equal, { + init2(this, options, instance, create_fragment, safe_not_equal, { change: 0, view: 1, manager: 9, @@ -12492,10 +28527,129 @@ var FileComponent = class extends SvelteComponent { }; var fileComponent_default = FileComponent; -// src/ui/sidebar/components/stagedFileComponent.svelte -var import_obsidian12 = __toModule(require("obsidian")); -var import_path2 = __toModule(require("path")); +// src/ui/sidebar/components/pulledFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian17 = __toModule(require("obsidian")); function add_css2(target) { + append_styles(target, "svelte-1pr4yz5", "main.svelte-1pr4yz5.svelte-1pr4yz5{cursor:pointer;background-color:var(--background-secondary);border-radius:4px;width:98%;display:flex;justify-content:space-between;font-size:0.8rem;margin-bottom:2px}main.svelte-1pr4yz5 .path.svelte-1pr4yz5{color:var(--text-muted);white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis}main.svelte-1pr4yz5:hover .path.svelte-1pr4yz5{color:var(--text-normal);transition:all 200ms}main.svelte-1pr4yz5 .tools.svelte-1pr4yz5{display:flex;align-items:center}main.svelte-1pr4yz5 .tools .type.svelte-1pr4yz5{height:16px;width:16px;margin:0;display:flex;align-items:center;justify-content:center}main.svelte-1pr4yz5 .tools .type[data-type=M].svelte-1pr4yz5{color:orange}main.svelte-1pr4yz5 .tools .type[data-type=D].svelte-1pr4yz5{color:red}"); +} +function create_fragment2(ctx) { + let main; + let span0; + let t0_value = ctx[0].vault_path.split("/").last().replace(".md", "") + ""; + let t0; + let span0_aria_label_value; + let t1; + let div; + let span1; + let t2_value = ctx[0].working_dir + ""; + let t2; + let span1_data_type_value; + let mounted; + let dispose; + return { + c() { + main = element("main"); + span0 = element("span"); + t0 = text(t0_value); + t1 = space(); + div = element("div"); + span1 = element("span"); + t2 = text(t2_value); + attr(span0, "class", "path svelte-1pr4yz5"); + attr(span0, "aria-label-position", ctx[1]); + attr(span0, "aria-label", span0_aria_label_value = ctx[0].vault_path.split("/").last() != ctx[0].vault_path ? ctx[0].vault_path : ""); + attr(span1, "class", "type svelte-1pr4yz5"); + attr(span1, "data-type", span1_data_type_value = ctx[0].working_dir); + attr(div, "class", "tools svelte-1pr4yz5"); + attr(main, "class", "svelte-1pr4yz5"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, span0); + append2(span0, t0); + append2(main, t1); + append2(main, div); + append2(div, span1); + append2(span1, t2); + if (!mounted) { + dispose = [ + listen(span0, "click", self2(ctx[3])), + listen(main, "mouseover", ctx[2]), + listen(main, "click", self2(ctx[3])), + listen(main, "focus", ctx[5]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 1 && t0_value !== (t0_value = ctx2[0].vault_path.split("/").last().replace(".md", "") + "")) + set_data(t0, t0_value); + if (dirty & 2) { + attr(span0, "aria-label-position", ctx2[1]); + } + if (dirty & 1 && span0_aria_label_value !== (span0_aria_label_value = ctx2[0].vault_path.split("/").last() != ctx2[0].vault_path ? ctx2[0].vault_path : "")) { + attr(span0, "aria-label", span0_aria_label_value); + } + if (dirty & 1 && t2_value !== (t2_value = ctx2[0].working_dir + "")) + set_data(t2, t2_value); + if (dirty & 1 && span1_data_type_value !== (span1_data_type_value = ctx2[0].working_dir)) { + attr(span1, "data-type", span1_data_type_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(main); + mounted = false; + run_all(dispose); + } + }; +} +function instance2($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + function hover(event) { + if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { + hoverPreview(event, view, change.vault_path.split("/").last().replace(".md", "")); + } + } + function open(event) { + if (!(change.path.startsWith(view.app.vault.configDir) || change.path.startsWith(".") || change.working_dir === "D")) { + openOrSwitch(change.vault_path, event); + } + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(4, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 16) { + $: + $$invalidate(1, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [change, side, hover, open, view, focus_handler]; +} +var PulledFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance2, create_fragment2, safe_not_equal, { change: 0, view: 4 }, add_css2); + } +}; +var pulledFileComponent_default = PulledFileComponent; + +// src/ui/sidebar/components/stagedFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian18 = __toModule(require("obsidian")); +function add_css3(target) { append_styles(target, "svelte-15heedx", "main.svelte-15heedx.svelte-15heedx.svelte-15heedx{cursor:pointer;background-color:var(--background-secondary);border-radius:4px;width:98%;display:flex;justify-content:space-between;font-size:0.8rem;margin-bottom:2px}main.svelte-15heedx .path.svelte-15heedx.svelte-15heedx{color:var(--text-muted);white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis}main.svelte-15heedx:hover .path.svelte-15heedx.svelte-15heedx{color:var(--text-normal);transition:all 200ms}main.svelte-15heedx .tools.svelte-15heedx.svelte-15heedx{display:flex;align-items:center}main.svelte-15heedx .tools .type.svelte-15heedx.svelte-15heedx{height:16px;width:16px;margin:0;display:flex;align-items:center;justify-content:center}main.svelte-15heedx .tools .type[data-type=M].svelte-15heedx.svelte-15heedx{color:orange}main.svelte-15heedx .tools .type[data-type=D].svelte-15heedx.svelte-15heedx{color:red}main.svelte-15heedx .tools .type[data-type=A].svelte-15heedx.svelte-15heedx{color:yellowgreen}main.svelte-15heedx .tools .type[data-type=R].svelte-15heedx.svelte-15heedx{color:violet}main.svelte-15heedx .tools .buttons.svelte-15heedx.svelte-15heedx{display:flex}main.svelte-15heedx .tools .buttons.svelte-15heedx>.svelte-15heedx{color:var(--text-faint);height:16px;width:16px;margin:0;transition:all 0.2s;border-radius:2px;margin-right:1px}main.svelte-15heedx .tools .buttons.svelte-15heedx>.svelte-15heedx:hover{color:var(--text-normal);background-color:var(--interactive-accent)}"); } function create_if_block2(ctx) { @@ -12527,7 +28681,7 @@ function create_if_block2(ctx) { } }; } -function create_fragment2(ctx) { +function create_fragment3(ctx) { let main; let span0; let t0_value = ctx[3].split("/").last().replace(".md", "") + ""; @@ -12642,14 +28796,14 @@ function create_fragment2(ctx) { } }; } -function instance2($$self, $$props, $$invalidate) { +function instance3($$self, $$props, $$invalidate) { let formattedPath; let side; let { change } = $$props; let { view } = $$props; let { manager } = $$props; let buttons = []; - setImmediate(() => buttons.forEach((b) => (0, import_obsidian12.setIcon)(b, b.getAttr("data-icon"), 16))); + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian18.setIcon)(b, b.getAttr("data-icon"), 16)), 0); function hover(event) { if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { hoverPreview(event, view, formattedPath.split("/").last().replace(".md", "")); @@ -12678,7 +28832,7 @@ function instance2($$self, $$props, $$invalidate) { } } function unstage() { - manager.unstage(change.path).finally(() => { + manager.unstage(change.path, false).finally(() => { dispatchEvent(new CustomEvent("git-refresh")); }); } @@ -12734,13 +28888,14 @@ function instance2($$self, $$props, $$invalidate) { var StagedFileComponent = class extends SvelteComponent { constructor(options) { super(); - init(this, options, instance2, create_fragment2, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css2); + init2(this, options, instance3, create_fragment3, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css3); } }; var stagedFileComponent_default = StagedFileComponent; // src/ui/sidebar/components/treeComponent.svelte -function add_css3(target) { +init_polyfill_buffer(); +function add_css4(target) { append_styles(target, "svelte-pgmdei", '@charset "UTF-8";main.svelte-pgmdei.svelte-pgmdei:not(.topLevel){margin-left:5px}.opener.svelte-pgmdei.svelte-pgmdei{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.opener.svelte-pgmdei .collapse-icon.svelte-pgmdei::after{content:"\xA0"}.opener.svelte-pgmdei div.svelte-pgmdei{display:flex}.opener.svelte-pgmdei svg.svelte-pgmdei{transform:rotate(-90deg)}.opener.open.svelte-pgmdei svg.svelte-pgmdei{transform:rotate(0)}.opener.svelte-pgmdei span.svelte-pgmdei{font-size:0.8rem}.file-view.svelte-pgmdei.svelte-pgmdei{margin-left:5px}'); } function get_each_context(ctx, list, i) { @@ -12748,7 +28903,7 @@ function get_each_context(ctx, list, i) { child_ctx[7] = list[i]; return child_ctx; } -function create_else_block_1(ctx) { +function create_else_block(ctx) { let div2; let div1; let div0; @@ -12764,7 +28919,7 @@ function create_else_block_1(ctx) { function click_handler() { return ctx[6](ctx[7]); } - let if_block = !ctx[5][ctx[7].title] && create_if_block_2(ctx); + let if_block = !ctx[5][ctx[7].title] && create_if_block_4(ctx); return { c() { div2 = element("div"); @@ -12806,7 +28961,7 @@ function create_else_block_1(ctx) { ctx = new_ctx; if ((!current || dirty & 1) && t1_value !== (t1_value = ctx[7].title + "")) set_data(t1, t1_value); - if (dirty & 33) { + if (!current || dirty & 33) { toggle_class(div2, "open", !ctx[5][ctx[7].title]); } if (!ctx[5][ctx[7].title]) { @@ -12816,7 +28971,7 @@ function create_else_block_1(ctx) { transition_in(if_block, 1); } } else { - if_block = create_if_block_2(ctx); + if_block = create_if_block_4(ctx); if_block.c(); transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); @@ -12859,25 +29014,33 @@ function create_if_block3(ctx) { let if_block; let t; let current; - const if_block_creators = [create_if_block_1, create_else_block]; + const if_block_creators = [create_if_block_1, create_if_block_2, create_if_block_3]; const if_blocks = []; function select_block_type_1(ctx2, dirty) { - if (ctx2[3]) + if (ctx2[3] == FileType.staged) return 0; - return 1; + if (ctx2[3] == FileType.changed) + return 1; + if (ctx2[3] == FileType.pulled) + return 2; + return -1; + } + if (~(current_block_type_index = select_block_type_1(ctx, -1))) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); } - current_block_type_index = select_block_type_1(ctx, -1); - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); return { c() { div = element("div"); - if_block.c(); + if (if_block) + if_block.c(); t = space(); attr(div, "class", "file-view svelte-pgmdei"); }, m(target, anchor) { insert(target, div, anchor); - if_blocks[current_block_type_index].m(div, null); + if (~current_block_type_index) { + if_blocks[current_block_type_index].m(div, null); + } append2(div, t); current = true; }, @@ -12885,22 +29048,30 @@ function create_if_block3(ctx) { let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_1(ctx2, dirty); if (current_block_type_index === previous_block_index) { - if_blocks[current_block_type_index].p(ctx2, dirty); - } else { - group_outros(); - transition_out(if_blocks[previous_block_index], 1, 1, () => { - if_blocks[previous_block_index] = null; - }); - check_outros(); - if_block = if_blocks[current_block_type_index]; - if (!if_block) { - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); - if_block.c(); - } else { - if_block.p(ctx2, dirty); + if (~current_block_type_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } + } else { + if (if_block) { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + } + if (~current_block_type_index) { + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, t); + } else { + if_block = null; } - transition_in(if_block, 1); - if_block.m(div, t); } }, i(local) { @@ -12916,11 +29087,13 @@ function create_if_block3(ctx) { d(detaching) { if (detaching) detach(div); - if_blocks[current_block_type_index].d(); + if (~current_block_type_index) { + if_blocks[current_block_type_index].d(); + } } }; } -function create_if_block_2(ctx) { +function create_if_block_4(ctx) { let div; let treecomponent; let t; @@ -12931,7 +29104,7 @@ function create_if_block_2(ctx) { hierarchy: ctx[7], plugin: ctx[1], view: ctx[2], - staged: ctx[3] + fileType: ctx[3] } }); return { @@ -12956,7 +29129,7 @@ function create_if_block_2(ctx) { if (dirty & 4) treecomponent_changes.view = ctx2[2]; if (dirty & 8) - treecomponent_changes.staged = ctx2[3]; + treecomponent_changes.fileType = ctx2[3]; treecomponent.$set(treecomponent_changes); }, i(local) { @@ -12990,7 +29163,47 @@ function create_if_block_2(ctx) { } }; } -function create_else_block(ctx) { +function create_if_block_3(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ctx[7].statusResult, + view: ctx[2] + } + }); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty & 1) + pulledfilecomponent_changes.change = ctx2[7].statusResult; + if (dirty & 4) + pulledfilecomponent_changes.view = ctx2[2]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_if_block_2(ctx) { let filecomponent; let current; filecomponent = new fileComponent_default({ @@ -13084,7 +29297,7 @@ function create_each_block(ctx) { let if_block; let if_block_anchor; let current; - const if_block_creators = [create_if_block3, create_else_block_1]; + const if_block_creators = [create_if_block3, create_else_block]; const if_blocks = []; function select_block_type(ctx2, dirty) { if (ctx2[7].statusResult) @@ -13142,7 +29355,7 @@ function create_each_block(ctx) { } }; } -function create_fragment3(ctx) { +function create_fragment4(ctx) { let main; let current; let each_value = ctx[0].children; @@ -13191,7 +29404,7 @@ function create_fragment3(ctx) { } check_outros(); } - if (dirty & 16) { + if (!current || dirty & 16) { toggle_class(main, "topLevel", ctx2[4]); } }, @@ -13217,11 +29430,11 @@ function create_fragment3(ctx) { } }; } -function instance3($$self, $$props, $$invalidate) { +function instance4($$self, $$props, $$invalidate) { let { hierarchy } = $$props; let { plugin } = $$props; let { view } = $$props; - let { staged } = $$props; + let { fileType } = $$props; let { topLevel = false } = $$props; const closed = {}; const click_handler = (entity) => { @@ -13234,42 +29447,47 @@ function instance3($$self, $$props, $$invalidate) { $$invalidate(1, plugin = $$props2.plugin); if ("view" in $$props2) $$invalidate(2, view = $$props2.view); - if ("staged" in $$props2) - $$invalidate(3, staged = $$props2.staged); + if ("fileType" in $$props2) + $$invalidate(3, fileType = $$props2.fileType); if ("topLevel" in $$props2) $$invalidate(4, topLevel = $$props2.topLevel); }; - return [hierarchy, plugin, view, staged, topLevel, closed, click_handler]; + return [hierarchy, plugin, view, fileType, topLevel, closed, click_handler]; } var TreeComponent = class extends SvelteComponent { constructor(options) { super(); - init(this, options, instance3, create_fragment3, safe_not_equal, { + init2(this, options, instance4, create_fragment4, safe_not_equal, { hierarchy: 0, plugin: 1, view: 2, - staged: 3, + fileType: 3, topLevel: 4 - }, add_css3); + }, add_css4); } }; var treeComponent_default = TreeComponent; // src/ui/sidebar/gitView.svelte -function add_css4(target) { +function add_css5(target) { append_styles(target, "svelte-1f0ksxd", '@charset "UTF-8";.commit-msg.svelte-1f0ksxd.svelte-1f0ksxd{width:100%;min-height:1.9em;height:1.9em;resize:vertical;padding:2px 5px;background-color:var(--background-modifier-form-field)}.search-input-container.svelte-1f0ksxd.svelte-1f0ksxd{width:100%}.file-view.svelte-1f0ksxd.svelte-1f0ksxd{margin-left:5px}.opener.svelte-1f0ksxd.svelte-1f0ksxd{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.opener.svelte-1f0ksxd .collapse-icon.svelte-1f0ksxd::after{content:"\xA0"}.opener.svelte-1f0ksxd div.svelte-1f0ksxd{display:flex}.opener.svelte-1f0ksxd svg.svelte-1f0ksxd{transform:rotate(-90deg)}.opener.open.svelte-1f0ksxd svg.svelte-1f0ksxd{transform:rotate(0)}.git-view-body.svelte-1f0ksxd.svelte-1f0ksxd{overflow-y:auto;padding-left:10px}main.svelte-1f0ksxd.svelte-1f0ksxd{display:flex;flex-direction:column;height:100%;overflow-y:hidden}.nav-buttons-container.svelte-1f0ksxd.svelte-1f0ksxd{justify-content:space-between}.group.svelte-1f0ksxd.svelte-1f0ksxd{display:flex}'); } function get_each_context2(ctx, list, i) { const child_ctx = ctx.slice(); - child_ctx[30] = list[i]; + child_ctx[34] = list[i]; return child_ctx; } function get_each_context_1(ctx, list, i) { const child_ctx = ctx.slice(); - child_ctx[33] = list[i]; + child_ctx[34] = list[i]; return child_ctx; } -function create_if_block_5(ctx) { +function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[39] = list[i]; + return child_ctx; +} +function create_if_block_8(ctx) { let div; let div_aria_label_value; let mounted; @@ -13283,7 +29501,7 @@ function create_if_block_5(ctx) { m(target, anchor) { insert(target, div, anchor); if (!mounted) { - dispose = listen(div, "click", ctx[26]); + dispose = listen(div, "click", ctx[29]); mounted = true; } }, @@ -13314,11 +29532,14 @@ function create_if_block4(ctx) { let t9_value = ctx[5].changed.length + ""; let t9; let t10; + let t11; + let if_block2_anchor; let current; let mounted; let dispose; - let if_block0 = ctx[11] && create_if_block_3(ctx); - let if_block1 = ctx[10] && create_if_block_12(ctx); + let if_block0 = ctx[13] && create_if_block_6(ctx); + let if_block1 = ctx[12] && create_if_block_42(ctx); + let if_block2 = ctx[6].length > 0 && create_if_block_12(ctx); return { c() { div3 = element("div"); @@ -13344,15 +29565,19 @@ function create_if_block4(ctx) { t10 = space(); if (if_block1) if_block1.c(); + t11 = space(); + if (if_block2) + if_block2.c(); + if_block2_anchor = empty(); attr(div1, "class", "svelte-1f0ksxd"); attr(span1, "class", "tree-item-flair"); attr(div2, "class", "opener tree-item-self is-clickable svelte-1f0ksxd"); - toggle_class(div2, "open", ctx[11]); + toggle_class(div2, "open", ctx[13]); attr(div3, "class", "staged"); attr(div5, "class", "svelte-1f0ksxd"); attr(span3, "class", "tree-item-flair"); attr(div6, "class", "opener tree-item-self is-clickable svelte-1f0ksxd"); - toggle_class(div6, "open", ctx[10]); + toggle_class(div6, "open", ctx[12]); attr(div7, "class", "changes"); }, m(target, anchor) { @@ -13375,11 +29600,15 @@ function create_if_block4(ctx) { append2(div7, t10); if (if_block1) if_block1.m(div7, null); + insert(target, t11, anchor); + if (if_block2) + if_block2.m(target, anchor); + insert(target, if_block2_anchor, anchor); current = true; if (!mounted) { dispose = [ - listen(div2, "click", ctx[27]), - listen(div6, "click", ctx[28]) + listen(div2, "click", ctx[30]), + listen(div6, "click", ctx[31]) ]; mounted = true; } @@ -13387,17 +29616,17 @@ function create_if_block4(ctx) { p(ctx2, dirty) { if ((!current || dirty[0] & 32) && t3_value !== (t3_value = ctx2[5].staged.length + "")) set_data(t3, t3_value); - if (dirty[0] & 2048) { - toggle_class(div2, "open", ctx2[11]); + if (!current || dirty[0] & 8192) { + toggle_class(div2, "open", ctx2[13]); } - if (ctx2[11]) { + if (ctx2[13]) { if (if_block0) { if_block0.p(ctx2, dirty); - if (dirty[0] & 2048) { + if (dirty[0] & 8192) { transition_in(if_block0, 1); } } else { - if_block0 = create_if_block_3(ctx2); + if_block0 = create_if_block_6(ctx2); if_block0.c(); transition_in(if_block0, 1); if_block0.m(div3, null); @@ -13411,17 +29640,17 @@ function create_if_block4(ctx) { } if ((!current || dirty[0] & 32) && t9_value !== (t9_value = ctx2[5].changed.length + "")) set_data(t9, t9_value); - if (dirty[0] & 1024) { - toggle_class(div6, "open", ctx2[10]); + if (!current || dirty[0] & 4096) { + toggle_class(div6, "open", ctx2[12]); } - if (ctx2[10]) { + if (ctx2[12]) { if (if_block1) { if_block1.p(ctx2, dirty); - if (dirty[0] & 1024) { + if (dirty[0] & 4096) { transition_in(if_block1, 1); } } else { - if_block1 = create_if_block_12(ctx2); + if_block1 = create_if_block_42(ctx2); if_block1.c(); transition_in(if_block1, 1); if_block1.m(div7, null); @@ -13433,17 +29662,38 @@ function create_if_block4(ctx) { }); check_outros(); } + if (ctx2[6].length > 0) { + if (if_block2) { + if_block2.p(ctx2, dirty); + if (dirty[0] & 64) { + transition_in(if_block2, 1); + } + } else { + if_block2 = create_if_block_12(ctx2); + if_block2.c(); + transition_in(if_block2, 1); + if_block2.m(if_block2_anchor.parentNode, if_block2_anchor); + } + } else if (if_block2) { + group_outros(); + transition_out(if_block2, 1, 1, () => { + if_block2 = null; + }); + check_outros(); + } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block1); + transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block1); + transition_out(if_block2); current = false; }, d(detaching) { @@ -13457,18 +29707,24 @@ function create_if_block4(ctx) { detach(div7); if (if_block1) if_block1.d(); + if (detaching) + detach(t11); + if (if_block2) + if_block2.d(detaching); + if (detaching) + detach(if_block2_anchor); mounted = false; run_all(dispose); } }; } -function create_if_block_3(ctx) { +function create_if_block_6(ctx) { let div; let current_block_type_index; let if_block; let div_transition; let current; - const if_block_creators = [create_if_block_4, create_else_block_12]; + const if_block_creators = [create_if_block_7, create_else_block_2]; const if_blocks = []; function select_block_type(ctx2, dirty) { if (ctx2[2]) @@ -13541,13 +29797,13 @@ function create_if_block_3(ctx) { } }; } -function create_else_block_12(ctx) { +function create_else_block_2(ctx) { let each_1_anchor; let current; - let each_value_1 = ctx[5].staged; + let each_value_2 = ctx[5].staged; let each_blocks = []; - for (let i = 0; i < each_value_1.length; i += 1) { - each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; @@ -13568,22 +29824,22 @@ function create_else_block_12(ctx) { }, p(ctx2, dirty) { if (dirty[0] & 35) { - each_value_1 = ctx2[5].staged; + each_value_2 = ctx2[5].staged; let i; - for (i = 0; i < each_value_1.length; i += 1) { - const child_ctx = get_each_context_1(ctx2, each_value_1, i); + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx2, each_value_2, i); if (each_blocks[i]) { each_blocks[i].p(child_ctx, dirty); transition_in(each_blocks[i], 1); } else { - each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i] = create_each_block_2(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); } } group_outros(); - for (i = each_value_1.length; i < each_blocks.length; i += 1) { + for (i = each_value_2.length; i < each_blocks.length; i += 1) { out(i); } check_outros(); @@ -13592,7 +29848,7 @@ function create_else_block_12(ctx) { i(local) { if (current) return; - for (let i = 0; i < each_value_1.length; i += 1) { + for (let i = 0; i < each_value_2.length; i += 1) { transition_in(each_blocks[i]); } current = true; @@ -13611,15 +29867,15 @@ function create_else_block_12(ctx) { } }; } -function create_if_block_4(ctx) { +function create_if_block_7(ctx) { let treecomponent; let current; treecomponent = new treeComponent_default({ props: { - hierarchy: ctx[9], + hierarchy: ctx[10], plugin: ctx[0], view: ctx[1], - staged: true, + fileType: FileType.staged, topLevel: true } }); @@ -13633,8 +29889,8 @@ function create_if_block_4(ctx) { }, p(ctx2, dirty) { const treecomponent_changes = {}; - if (dirty[0] & 512) - treecomponent_changes.hierarchy = ctx2[9]; + if (dirty[0] & 1024) + treecomponent_changes.hierarchy = ctx2[10]; if (dirty[0] & 1) treecomponent_changes.plugin = ctx2[0]; if (dirty[0] & 2) @@ -13656,12 +29912,12 @@ function create_if_block_4(ctx) { } }; } -function create_each_block_1(ctx) { +function create_each_block_2(ctx) { let stagedfilecomponent; let current; stagedfilecomponent = new stagedFileComponent_default({ props: { - change: ctx[33], + change: ctx[39], view: ctx[1], manager: ctx[0].gitManager } @@ -13677,7 +29933,7 @@ function create_each_block_1(ctx) { p(ctx2, dirty) { const stagedfilecomponent_changes = {}; if (dirty[0] & 32) - stagedfilecomponent_changes.change = ctx2[33]; + stagedfilecomponent_changes.change = ctx2[39]; if (dirty[0] & 2) stagedfilecomponent_changes.view = ctx2[1]; if (dirty[0] & 1) @@ -13699,13 +29955,13 @@ function create_each_block_1(ctx) { } }; } -function create_if_block_12(ctx) { +function create_if_block_42(ctx) { let div; let current_block_type_index; let if_block; let div_transition; let current; - const if_block_creators = [create_if_block_22, create_else_block2]; + const if_block_creators = [create_if_block_5, create_else_block_1]; const if_blocks = []; function select_block_type_1(ctx2, dirty) { if (ctx2[2]) @@ -13778,10 +30034,345 @@ function create_if_block_12(ctx) { } }; } +function create_else_block_1(ctx) { + let each_1_anchor; + let current; + let each_value_1 = ctx[5].changed; + let each_blocks = []; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & 35) { + each_value_1 = ctx2[5].changed; + let i; + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx2, each_value_1, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_1.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value_1.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) + detach(each_1_anchor); + } + }; +} +function create_if_block_5(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ctx[9], + plugin: ctx[0], + view: ctx[1], + fileType: FileType.changed, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & 512) + treecomponent_changes.hierarchy = ctx2[9]; + if (dirty[0] & 1) + treecomponent_changes.plugin = ctx2[0]; + if (dirty[0] & 2) + treecomponent_changes.view = ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_1(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ctx[34], + view: ctx[1], + manager: ctx[0].gitManager, + workspace: ctx[0].app.workspace + } + }); + filecomponent.$on("git-refresh", triggerRefresh); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty[0] & 32) + filecomponent_changes.change = ctx2[34]; + if (dirty[0] & 2) + filecomponent_changes.view = ctx2[1]; + if (dirty[0] & 1) + filecomponent_changes.manager = ctx2[0].gitManager; + if (dirty[0] & 1) + filecomponent_changes.workspace = ctx2[0].app.workspace; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_12(ctx) { + let div3; + let div2; + let div1; + let t2; + let span1; + let t3_value = ctx[6].length + ""; + let t3; + let t4; + let current; + let mounted; + let dispose; + let if_block = ctx[14] && create_if_block_22(ctx); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div1 = element("div"); + div1.innerHTML = `
    + Recently Pulled Changes`; + t2 = space(); + span1 = element("span"); + t3 = text(t3_value); + t4 = space(); + if (if_block) + if_block.c(); + attr(div1, "class", "svelte-1f0ksxd"); + attr(span1, "class", "tree-item-flair"); + attr(div2, "class", "opener tree-item-self is-clickable svelte-1f0ksxd"); + toggle_class(div2, "open", ctx[14]); + attr(div3, "class", "pulled"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append2(div3, div2); + append2(div2, div1); + append2(div2, t2); + append2(div2, span1); + append2(span1, t3); + append2(div3, t4); + if (if_block) + if_block.m(div3, null); + current = true; + if (!mounted) { + dispose = listen(div2, "click", ctx[32]); + mounted = true; + } + }, + p(ctx2, dirty) { + if ((!current || dirty[0] & 64) && t3_value !== (t3_value = ctx2[6].length + "")) + set_data(t3, t3_value); + if (!current || dirty[0] & 16384) { + toggle_class(div2, "open", ctx2[14]); + } + if (ctx2[14]) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty[0] & 16384) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_22(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div3, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div3); + if (if_block) + if_block.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block_22(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_32, create_else_block2]; + const if_blocks = []; + function select_block_type_2(ctx2, dirty) { + if (ctx2[2]) + return 0; + return 1; + } + current_block_type_index = select_block_type_2(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "file-view svelte-1f0ksxd"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_2(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} function create_else_block2(ctx) { let each_1_anchor; let current; - let each_value = ctx[5].changed; + let each_value = ctx[6]; let each_blocks = []; for (let i = 0; i < each_value.length; i += 1) { each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); @@ -13804,8 +30395,8 @@ function create_else_block2(ctx) { current = true; }, p(ctx2, dirty) { - if (dirty[0] & 35) { - each_value = ctx2[5].changed; + if (dirty[0] & 66) { + each_value = ctx2[6]; let i; for (i = 0; i < each_value.length; i += 1) { const child_ctx = get_each_context2(ctx2, each_value, i); @@ -13848,15 +30439,15 @@ function create_else_block2(ctx) { } }; } -function create_if_block_22(ctx) { +function create_if_block_32(ctx) { let treecomponent; let current; treecomponent = new treeComponent_default({ props: { - hierarchy: ctx[8], + hierarchy: ctx[11], plugin: ctx[0], view: ctx[1], - staged: false, + fileType: FileType.pulled, topLevel: true } }); @@ -13870,8 +30461,8 @@ function create_if_block_22(ctx) { }, p(ctx2, dirty) { const treecomponent_changes = {}; - if (dirty[0] & 256) - treecomponent_changes.hierarchy = ctx2[8]; + if (dirty[0] & 2048) + treecomponent_changes.hierarchy = ctx2[11]; if (dirty[0] & 1) treecomponent_changes.plugin = ctx2[0]; if (dirty[0] & 2) @@ -13894,53 +30485,47 @@ function create_if_block_22(ctx) { }; } function create_each_block2(ctx) { - let filecomponent; + let pulledfilecomponent; let current; - filecomponent = new fileComponent_default({ + pulledfilecomponent = new pulledFileComponent_default({ props: { - change: ctx[30], - view: ctx[1], - manager: ctx[0].gitManager, - workspace: ctx[0].app.workspace + change: ctx[34], + view: ctx[1] } }); - filecomponent.$on("git-refresh", triggerRefresh); + pulledfilecomponent.$on("git-refresh", triggerRefresh); return { c() { - create_component(filecomponent.$$.fragment); + create_component(pulledfilecomponent.$$.fragment); }, m(target, anchor) { - mount_component(filecomponent, target, anchor); + mount_component(pulledfilecomponent, target, anchor); current = true; }, p(ctx2, dirty) { - const filecomponent_changes = {}; - if (dirty[0] & 32) - filecomponent_changes.change = ctx2[30]; + const pulledfilecomponent_changes = {}; + if (dirty[0] & 64) + pulledfilecomponent_changes.change = ctx2[34]; if (dirty[0] & 2) - filecomponent_changes.view = ctx2[1]; - if (dirty[0] & 1) - filecomponent_changes.manager = ctx2[0].gitManager; - if (dirty[0] & 1) - filecomponent_changes.workspace = ctx2[0].app.workspace; - filecomponent.$set(filecomponent_changes); + pulledfilecomponent_changes.view = ctx2[1]; + pulledfilecomponent.$set(pulledfilecomponent_changes); }, i(local) { if (current) return; - transition_in(filecomponent.$$.fragment, local); + transition_in(pulledfilecomponent.$$.fragment, local); current = true; }, o(local) { - transition_out(filecomponent.$$.fragment, local); + transition_out(pulledfilecomponent.$$.fragment, local); current = false; }, d(detaching) { - destroy_component(filecomponent, detaching); + destroy_component(pulledfilecomponent, detaching); } }; } -function create_fragment4(ctx) { +function create_fragment5(ctx) { let main; let div9; let div6; @@ -13966,7 +30551,7 @@ function create_fragment4(ctx) { let current; let mounted; let dispose; - let if_block0 = ctx[6] && create_if_block_5(ctx); + let if_block0 = ctx[7] && create_if_block_8(ctx); let if_block1 = ctx[5] && create_if_block4(ctx); return { c() { @@ -14039,29 +30624,29 @@ function create_fragment4(ctx) { append2(main, div9); append2(div9, div6); append2(div6, div0); - ctx[17](div0); + ctx[20](div0); append2(div6, t0); append2(div6, div1); - ctx[18](div1); + ctx[21](div1); append2(div6, t1); append2(div6, div2); - ctx[19](div2); + ctx[22](div2); append2(div6, t2); append2(div6, div3); - ctx[20](div3); + ctx[23](div3); append2(div6, t3); append2(div6, div4); - ctx[21](div4); + ctx[24](div4); append2(div6, t4); append2(div6, div5); - ctx[22](div5); + ctx[25](div5); append2(div9, t5); append2(div9, div7); - ctx[24](div7); + ctx[27](div7); append2(div9, t6); append2(div9, div8); append2(div8, textarea); - set_input_value(textarea, ctx[6]); + set_input_value(textarea, ctx[7]); append2(div8, t7); if (if_block0) if_block0.m(div8, null); @@ -14072,30 +30657,30 @@ function create_fragment4(ctx) { current = true; if (!mounted) { dispose = [ - listen(div0, "click", ctx[12]), - listen(div1, "click", ctx[13]), - listen(div2, "click", ctx[14]), - listen(div3, "click", ctx[15]), - listen(div4, "click", ctx[16]), - listen(div5, "click", ctx[23]), + listen(div0, "click", ctx[15]), + listen(div1, "click", ctx[16]), + listen(div2, "click", ctx[17]), + listen(div3, "click", ctx[18]), + listen(div4, "click", ctx[19]), + listen(div5, "click", ctx[26]), listen(div7, "click", triggerRefresh), - listen(textarea, "input", ctx[25]) + listen(textarea, "input", ctx[28]) ]; mounted = true; } }, p(ctx2, dirty) { - if (dirty[0] & 16) { + if (!current || dirty[0] & 16) { toggle_class(div7, "loading", ctx2[4]); } - if (dirty[0] & 64) { - set_input_value(textarea, ctx2[6]); + if (dirty[0] & 128) { + set_input_value(textarea, ctx2[7]); } - if (ctx2[6]) { + if (ctx2[7]) { if (if_block0) { if_block0.p(ctx2, dirty); } else { - if_block0 = create_if_block_5(ctx2); + if_block0 = create_if_block_8(ctx2); if_block0.c(); if_block0.m(div8, null); } @@ -14136,13 +30721,13 @@ function create_fragment4(ctx) { d(detaching) { if (detaching) detach(main); - ctx[17](null); - ctx[18](null); - ctx[19](null); ctx[20](null); ctx[21](null); ctx[22](null); + ctx[23](null); ctx[24](null); + ctx[25](null); + ctx[27](null); if (if_block0) if_block0.d(); if (if_block1) @@ -14155,103 +30740,129 @@ function create_fragment4(ctx) { function triggerRefresh() { dispatchEvent(new CustomEvent("git-refresh")); } -function instance4($$self, $$props, $$invalidate) { +function instance5($$self, $$props, $$invalidate) { let { plugin } = $$props; let { view } = $$props; let loading; - let status; + let status2; + let lastPulledFiles = []; let commitMessage = plugin.settings.commitMessage; let buttons = []; let changeHierarchy; let stagedHierarchy; + let lastPulledFilesHierarchy; let changesOpen = true; let stagedOpen = true; + let lastPulledFilesOpen = true; let showTree = plugin.settings.treeStructure; let layoutBtn; addEventListener("git-view-refresh", refresh); - plugin.app.workspace.onLayoutReady(() => setImmediate(() => { - buttons.forEach((btn) => (0, import_obsidian13.setIcon)(btn, btn.getAttr("data-icon"), 16)); - (0, import_obsidian13.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); - })); + plugin.app.workspace.onLayoutReady(() => { + window.setTimeout(() => { + buttons.forEach((btn) => (0, import_obsidian19.setIcon)(btn, btn.getAttr("data-icon"), 16)); + (0, import_obsidian19.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + }, 0); + }); onDestroy(() => { removeEventListener("git-view-refresh", refresh); }); - function commit() { + function commit2() { return __awaiter(this, void 0, void 0, function* () { $$invalidate(4, loading = true); - if (yield plugin.hasTooBigFiles(status.staged)) { + if (yield plugin.hasTooBigFiles(status2.staged)) { plugin.setState(PluginState.idle); return false; } plugin.gitManager.commit(commitMessage).then(() => { if (commitMessage !== plugin.settings.commitMessage) { - $$invalidate(6, commitMessage = ""); + $$invalidate(7, commitMessage = ""); } }).finally(triggerRefresh); }); } function refresh() { return __awaiter(this, void 0, void 0, function* () { - $$invalidate(5, status = plugin.cachedStatus); - if (status) { - $$invalidate(8, changeHierarchy = { + if (!plugin.gitReady) { + $$invalidate(5, status2 = void 0); + return; + } + $$invalidate(5, status2 = plugin.cachedStatus); + if (plugin.lastPulledFiles && plugin.lastPulledFiles != lastPulledFiles) { + $$invalidate(6, lastPulledFiles = plugin.lastPulledFiles); + $$invalidate(11, lastPulledFilesHierarchy = { title: "", - children: plugin.gitManager.getTreeStructure(status.changed) - }); - $$invalidate(9, stagedHierarchy = { - title: "", - children: plugin.gitManager.getTreeStructure(status.staged) + children: plugin.gitManager.getTreeStructure(lastPulledFiles) }); } + if (status2) { + if (status2.changed.length + status2.staged.length > 500) { + $$invalidate(5, status2 = void 0); + if (!plugin.loading) { + plugin.displayError("Too many changes to display"); + } + } else { + $$invalidate(9, changeHierarchy = { + title: "", + children: plugin.gitManager.getTreeStructure(status2.changed) + }); + $$invalidate(10, stagedHierarchy = { + title: "", + children: plugin.gitManager.getTreeStructure(status2.staged) + }); + } + } else { + $$invalidate(9, changeHierarchy = void 0); + $$invalidate(10, stagedHierarchy = void 0); + } $$invalidate(4, loading = plugin.loading); }); } function stageAll() { $$invalidate(4, loading = true); - plugin.gitManager.stageAll().finally(triggerRefresh); + plugin.gitManager.stageAll({ status: status2 }).finally(triggerRefresh); } function unstageAll() { $$invalidate(4, loading = true); - plugin.gitManager.unstageAll().finally(triggerRefresh); + plugin.gitManager.unstageAll({ status: status2 }).finally(triggerRefresh); } - function push() { + function push2() { $$invalidate(4, loading = true); if (ready) { plugin.push().finally(triggerRefresh); } } - function pull() { + function pull2() { $$invalidate(4, loading = true); plugin.pullChangesFromRemote().finally(triggerRefresh); } function div0_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { buttons[0] = $$value; - $$invalidate(7, buttons); + $$invalidate(8, buttons); }); } function div1_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { buttons[1] = $$value; - $$invalidate(7, buttons); + $$invalidate(8, buttons); }); } function div2_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { buttons[2] = $$value; - $$invalidate(7, buttons); + $$invalidate(8, buttons); }); } function div3_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { buttons[3] = $$value; - $$invalidate(7, buttons); + $$invalidate(8, buttons); }); } function div4_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { buttons[4] = $$value; - $$invalidate(7, buttons); + $$invalidate(8, buttons); }); } function div5_binding($$value) { @@ -14268,16 +30879,17 @@ function instance4($$self, $$props, $$invalidate) { function div7_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { buttons[6] = $$value; - $$invalidate(7, buttons); + $$invalidate(8, buttons); }); } function textarea_input_handler() { commitMessage = this.value; - $$invalidate(6, commitMessage); + $$invalidate(7, commitMessage); } - const click_handler_1 = () => $$invalidate(6, commitMessage = ""); - const click_handler_2 = () => $$invalidate(11, stagedOpen = !stagedOpen); - const click_handler_3 = () => $$invalidate(10, changesOpen = !changesOpen); + const click_handler_1 = () => $$invalidate(7, commitMessage = ""); + const click_handler_2 = () => $$invalidate(13, stagedOpen = !stagedOpen); + const click_handler_3 = () => $$invalidate(12, changesOpen = !changesOpen); + const click_handler_4 = () => $$invalidate(14, lastPulledFilesOpen = !lastPulledFilesOpen); $$self.$$set = ($$props2) => { if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); @@ -14289,7 +30901,7 @@ function instance4($$self, $$props, $$invalidate) { $: { if (layoutBtn) { layoutBtn.empty(); - (0, import_obsidian13.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + (0, import_obsidian19.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); } } } @@ -14300,18 +30912,21 @@ function instance4($$self, $$props, $$invalidate) { showTree, layoutBtn, loading, - status, + status2, + lastPulledFiles, commitMessage, buttons, changeHierarchy, stagedHierarchy, + lastPulledFilesHierarchy, changesOpen, stagedOpen, - commit, + lastPulledFilesOpen, + commit2, stageAll, unstageAll, - push, - pull, + push2, + pull2, div0_binding, div1_binding, div2_binding, @@ -14323,19 +30938,20 @@ function instance4($$self, $$props, $$invalidate) { textarea_input_handler, click_handler_1, click_handler_2, - click_handler_3 + click_handler_3, + click_handler_4 ]; } var GitView = class extends SvelteComponent { constructor(options) { super(); - init(this, options, instance4, create_fragment4, safe_not_equal, { plugin: 0, view: 1 }, add_css4, [-1, -1]); + init2(this, options, instance5, create_fragment5, safe_not_equal, { plugin: 0, view: 1 }, add_css5, [-1, -1]); } }; var gitView_default = GitView; // src/ui/sidebar/sidebarView.ts -var GitView2 = class extends import_obsidian14.ItemView { +var GitView2 = class extends import_obsidian20.ItemView { constructor(leaf, plugin) { super(leaf); this.plugin = plugin; @@ -14351,7 +30967,6 @@ var GitView2 = class extends import_obsidian14.ItemView { return GIT_VIEW_CONFIG.icon; } onClose() { - this._view.$destroy(); return super.onClose(); } onOpen() { @@ -14367,7 +30982,7 @@ var GitView2 = class extends import_obsidian14.ItemView { }; // src/main.ts -var ObsidianGit = class extends import_obsidian15.Plugin { +var ObsidianGit = class extends import_obsidian21.Plugin { constructor() { super(...arguments); this.gitReady = false; @@ -14375,7 +30990,7 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.conflictOutputFile = "conflict-files-obsidian-git.md"; this.offlineMode = false; this.loading = false; - this.debRefresh = (0, import_obsidian15.debounce)(() => { + this.debRefresh = (0, import_obsidian21.debounce)(() => { if (this.settings.refreshSourceControl) { this.refresh(); } @@ -14407,24 +31022,9 @@ var ObsidianGit = class extends import_obsidian15.Plugin { onload() { return __async(this, null, function* () { console.log("loading " + this.manifest.name + " plugin"); + this.localStorage = new LocalStorageSettings(this); yield this.loadSettings(); this.migrateSettings(); - this.modifyEvent = this.app.vault.on("modify", () => { - this.debRefresh(); - }); - this.deleteEvent = this.app.vault.on("delete", () => { - this.debRefresh(); - }); - this.createEvent = this.app.vault.on("create", () => { - this.debRefresh(); - }); - this.renameEvent = this.app.vault.on("rename", () => { - this.debRefresh(); - }); - this.registerEvent(this.modifyEvent); - this.registerEvent(this.deleteEvent); - this.registerEvent(this.createEvent); - this.registerEvent(this.renameEvent); addEventListener("git-refresh", this.refresh.bind(this)); this.registerView(GIT_VIEW_CONFIG.type, (leaf) => { return new GitView2(leaf, this); @@ -14437,6 +31037,19 @@ var ObsidianGit = class extends import_obsidian15.Plugin { defaultMod: true }); this.addSettingTab(new ObsidianGitSettingsTab(this.app, this)); + this.addCommand({ + id: "edit-gitignore", + name: "Edit .gitignore", + callback: () => __async(this, null, function* () { + const content = yield this.app.vault.adapter.read(this.gitManager.getVaultPath(".gitignore")); + const modal = new IgnoreModal(this.app, content); + const res = yield modal.open(); + if (res !== void 0) { + yield this.app.vault.adapter.write(this.gitManager.getVaultPath(".gitignore"), res); + this.refresh(); + } + }) + }); this.addCommand({ id: "open-git-view", name: "Open source control view", @@ -14472,11 +31085,33 @@ var ObsidianGit = class extends import_obsidian15.Plugin { name: "Pull", callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) }); + this.addCommand({ + id: "add-to-gitignore", + name: "Add file to gitignore", + checkCallback: (checking) => { + const file = app.workspace.getActiveFile(); + if (checking) { + return file !== void 0; + } else { + app.vault.adapter.append(this.gitManager.getVaultPath(".gitignore"), "\n" + this.gitManager.getPath(file.path, true)).then(() => { + this.refresh(); + }); + } + } + }); this.addCommand({ id: "push", name: "Create backup", callback: () => this.promiseQueue.addTask(() => this.createBackup(false)) }); + this.addCommand({ + id: "backup-and-close", + name: "Create backup and close", + callback: () => this.promiseQueue.addTask(() => __async(this, null, function* () { + yield this.createBackup(false); + window.close(); + })) + }); this.addCommand({ id: "commit-push-specified-message", name: "Create backup with specific message", @@ -14492,11 +31127,43 @@ var ObsidianGit = class extends import_obsidian15.Plugin { name: "Commit all changes with specific message", callback: () => this.promiseQueue.addTask(() => this.commit(false, true)) }); + this.addCommand({ + id: "commit-staged", + name: "Commit staged", + callback: () => this.promiseQueue.addTask(() => this.commit(false, false, true)) + }); + this.addCommand({ + id: "commit-staged-specified-message", + name: "Commit staged with specific message", + callback: () => this.promiseQueue.addTask(() => this.commit(false, true, true)) + }); this.addCommand({ id: "push2", name: "Push", callback: () => this.promiseQueue.addTask(() => this.push()) }); + this.addCommand({ + id: "stage-current-file", + name: "Stage current file", + checkCallback: (checking) => { + if (checking) { + return this.app.workspace.getActiveFile() !== null; + } else { + this.promiseQueue.addTask(() => this.stageCurrentFile()); + } + } + }); + this.addCommand({ + id: "unstage-current-file", + name: "Unstage current file", + checkCallback: (checking) => { + if (checking) { + return this.app.workspace.getActiveFile() !== null; + } else { + this.promiseQueue.addTask(() => this.unstageCurrentFile()); + } + } + }); this.addCommand({ id: "edit-remotes", name: "Edit remotes", @@ -14511,6 +31178,25 @@ var ObsidianGit = class extends import_obsidian15.Plugin { return this.removeRemote(); }) }); + this.addCommand({ + id: "delete-repo", + name: "CAUTION: Delete repository", + callback: () => __async(this, null, function* () { + const repoExists = yield this.app.vault.adapter.exists(`${this.settings.basePath}/.git`); + if (repoExists) { + const modal = new GeneralModal(this.app, ["NO", "YES"], "Do you really want to delete the repository (.git directory)? This action cannot be undone.", false, true); + const shouldDelete = (yield modal.open()) === "YES"; + if (shouldDelete) { + yield this.app.vault.adapter.rmdir(`${this.settings.basePath}/.git`, true); + new import_obsidian21.Notice("Successfully deleted repository. Reloading plugin..."); + this.unloadPlugin(); + this.init(); + } + } else { + new import_obsidian21.Notice("No repository found"); + } + }) + }); this.addCommand({ id: "init-repo", name: "Initialize a new repo", @@ -14529,11 +31215,20 @@ var ObsidianGit = class extends import_obsidian15.Plugin { id: "list-changed-files", name: "List changed files", callback: () => __async(this, null, function* () { - const status = yield this.gitManager.status(); + if (!(yield this.isAllInitialized())) + return; + const status2 = yield this.gitManager.status(); this.setState(PluginState.idle); - new ChangedFilesModal(this, status.changed).open(); + if (status2.changed.length + status2.staged.length > 500) { + this.displayError("Too many changes to display"); + return; + } + new ChangedFilesModal(this, status2.changed).open(); }) }); + this.registerEvent(this.app.workspace.on("file-menu", (menu, file, source) => { + this.handleFileMenu(menu, file, source); + })); if (this.settings.showStatusBar) { let statusBarEl = this.addStatusBarItem(); this.statusBar = new StatusBar(statusBarEl, this); @@ -14542,6 +31237,53 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.app.workspace.onLayoutReady(() => this.init()); }); } + showNotices() { + return __async(this, null, function* () { + const length = 1e4; + if (this.manifest.id === "obsidian-git" && import_obsidian21.Platform.isDesktopApp && !this.settings.showedMobileNotice) { + new import_obsidian21.Notice("Obsidian Git is now available on mobile! Please read the plugin's README for more information.", length); + this.settings.showedMobileNotice = true; + yield this.saveSettings(); + } + if (this.manifest.id === "obsidian-git-isomorphic") { + new import_obsidian21.Notice("Obsidian Git Mobile is now deprecated. Please uninstall it and install Obsidian Git instead.", length); + } + }); + } + handleFileMenu(menu, file, source) { + if (source !== "file-explorer-context-menu") { + return; + } + if (!file) { + return; + } + if (!this.gitReady) + return; + menu.addItem((item) => { + item.setTitle(`Git: Stage`).setIcon("plus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(() => __async(this, null, function* () { + if (file instanceof import_obsidian21.TFile) { + yield this.gitManager.stage(file.path, true); + } else { + yield this.gitManager.stageAll({ dir: this.gitManager.getPath(file.path, true) }); + } + this.displayMessage(`Staged ${file.path}`); + })); + }); + }); + menu.addItem((item) => { + item.setTitle(`Git: Unstage`).setIcon("minus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(() => __async(this, null, function* () { + if (file instanceof import_obsidian21.TFile) { + yield this.gitManager.unstage(file.path, true); + } else { + yield this.gitManager.unstageAll({ dir: this.gitManager.getPath(file.path, true) }); + } + this.displayMessage(`Unstaged ${file.path}`); + })); + }); + }); + } migrateSettings() { if (this.settings.mergeOnPull != void 0) { this.settings.syncMethod = this.settings.mergeOnPull ? "merge" : "rebase"; @@ -14552,25 +31294,41 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.settings.autoCommitMessage = this.settings.commitMessage; this.saveSettings(); } + if (this.settings.gitPath != void 0) { + this.localStorage.setGitPath(this.settings.gitPath); + this.settings.gitPath = void 0; + this.saveSettings(); + } + } + unloadPlugin() { + this.gitReady = false; + dispatchEvent(new CustomEvent("git-refresh")); + this.clearAutoPull(); + this.clearAutoPush(); + this.clearAutoBackup(); + removeEventListener("git-refresh", this.refresh.bind(this)); + this.app.metadataCache.offref(this.modifyEvent); + this.app.metadataCache.offref(this.deleteEvent); + this.app.metadataCache.offref(this.createEvent); + this.app.metadataCache.offref(this.renameEvent); + this.debRefresh.cancel(); } onunload() { return __async(this, null, function* () { this.app.workspace.unregisterHoverLinkSource(GIT_VIEW_CONFIG.type); this.app.workspace.detachLeavesOfType(GIT_VIEW_CONFIG.type); this.app.workspace.detachLeavesOfType(DIFF_VIEW_CONFIG.type); - this.clearAutoPull(); - this.clearAutoBackup(); - removeEventListener("git-refresh", this.refresh.bind(this)); - this.app.metadataCache.offref(this.modifyEvent); - this.app.metadataCache.offref(this.deleteEvent); - this.app.metadataCache.offref(this.createEvent); - this.app.metadataCache.offref(this.renameEvent); + this.unloadPlugin(); console.log("unloading " + this.manifest.name + " plugin"); }); } loadSettings() { return __async(this, null, function* () { - this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + let data = yield this.loadData(); + if (data == void 0) { + data = { showedMobileNotice: true }; + } + this.settings = Object.assign({}, DEFAULT_SETTINGS, data); }); } saveSettings() { @@ -14581,11 +31339,11 @@ var ObsidianGit = class extends import_obsidian15.Plugin { saveLastAuto(date, mode) { return __async(this, null, function* () { if (mode === "backup") { - window.localStorage.setItem(this.manifest.id + ":lastAutoBackup", date.toString()); + this.localStorage.setLastAutoBackup(date.toString()); } else if (mode === "pull") { - window.localStorage.setItem(this.manifest.id + ":lastAutoPull", date.toString()); + this.localStorage.setLastAutoPull(date.toString()); } else if (mode === "push") { - window.localStorage.setItem(this.manifest.id + ":lastAutoPush", date.toString()); + this.localStorage.setLastAutoPush(date.toString()); } }); } @@ -14593,18 +31351,21 @@ var ObsidianGit = class extends import_obsidian15.Plugin { return __async(this, null, function* () { var _a2, _b, _c; return { - "backup": new Date((_a2 = window.localStorage.getItem(this.manifest.id + ":lastAutoBackup")) != null ? _a2 : ""), - "pull": new Date((_b = window.localStorage.getItem(this.manifest.id + ":lastAutoPull")) != null ? _b : ""), - "push": new Date((_c = window.localStorage.getItem(this.manifest.id + ":lastAutoPush")) != null ? _c : "") + "backup": new Date((_a2 = this.localStorage.getLastAutoBackup()) != null ? _a2 : ""), + "pull": new Date((_b = this.localStorage.getLastAutoPull()) != null ? _b : ""), + "push": new Date((_c = this.localStorage.getLastAutoPush()) != null ? _c : "") }; }); } init() { return __async(this, null, function* () { + this.showNotices(); try { - this.gitManager = new SimpleGit(this); - if (this.gitManager instanceof SimpleGit) { + if (import_obsidian21.Platform.isDesktopApp) { + this.gitManager = new SimpleGit(this); yield this.gitManager.setGitInstance(); + } else { + this.gitManager = new IsomorphicGit(this); } const result = yield this.gitManager.checkRequirements(); switch (result) { @@ -14612,11 +31373,27 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.displayError("Cannot run git command"); break; case "missing-repo": - new import_obsidian15.Notice("Can't find a valid git repository. Please create one via the given command."); + new import_obsidian21.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo."); break; case "valid": this.gitReady = true; this.setState(PluginState.idle); + this.modifyEvent = this.app.vault.on("modify", () => { + this.debRefresh(); + }); + this.deleteEvent = this.app.vault.on("delete", () => { + this.debRefresh(); + }); + this.createEvent = this.app.vault.on("create", () => { + this.debRefresh(); + }); + this.renameEvent = this.app.vault.on("rename", () => { + this.debRefresh(); + }); + this.registerEvent(this.modifyEvent); + this.registerEvent(this.deleteEvent); + this.registerEvent(this.createEvent); + this.registerEvent(this.renameEvent); dispatchEvent(new CustomEvent("git-refresh")); if (this.settings.autoPullOnBoot) { this.promiseQueue.addTask(() => this.pullChangesFromRemote()); @@ -14624,18 +31401,18 @@ var ObsidianGit = class extends import_obsidian15.Plugin { const lastAutos = yield this.loadLastAuto(); if (this.settings.autoSaveInterval > 0) { const now2 = new Date(); - const diff = this.settings.autoSaveInterval - Math.round((now2.getTime() - lastAutos.backup.getTime()) / 1e3 / 60); - this.startAutoBackup(diff <= 0 ? 0 : diff); + const diff2 = this.settings.autoSaveInterval - Math.round((now2.getTime() - lastAutos.backup.getTime()) / 1e3 / 60); + this.startAutoBackup(diff2 <= 0 ? 0 : diff2); } if (this.settings.differentIntervalCommitAndPush && this.settings.autoPushInterval > 0) { const now2 = new Date(); - const diff = this.settings.autoPushInterval - Math.round((now2.getTime() - lastAutos.push.getTime()) / 1e3 / 60); - this.startAutoPush(diff <= 0 ? 0 : diff); + const diff2 = this.settings.autoPushInterval - Math.round((now2.getTime() - lastAutos.push.getTime()) / 1e3 / 60); + this.startAutoPush(diff2 <= 0 ? 0 : diff2); } if (this.settings.autoPullInterval > 0) { const now2 = new Date(); - const diff = this.settings.autoPullInterval - Math.round((now2.getTime() - lastAutos.pull.getTime()) / 1e3 / 60); - this.startAutoPull(diff <= 0 ? 0 : diff); + const diff2 = this.settings.autoPullInterval - Math.round((now2.getTime() - lastAutos.pull.getTime()) / 1e3 / 60); + this.startAutoPull(diff2 <= 0 ? 0 : diff2); } break; default: @@ -14650,7 +31427,8 @@ var ObsidianGit = class extends import_obsidian15.Plugin { createNewRepo() { return __async(this, null, function* () { yield this.gitManager.init(); - new import_obsidian15.Notice("Initialized new repo"); + new import_obsidian21.Notice("Initialized new repo"); + yield this.init(); }); } cloneNewRepo() { @@ -14658,12 +31436,42 @@ var ObsidianGit = class extends import_obsidian15.Plugin { const modal = new GeneralModal(this.app, [], "Enter remote URL"); const url = yield modal.open(); if (url) { - let dir = yield new GeneralModal(this.app, [], "Enter directory for clone. It needs to be empty or not existent.").open(); - if (dir) { - dir = path2.normalize(dir); - new import_obsidian15.Notice(`Cloning new repo into "${dir}"`); + const confirmOption = "Vault Root"; + let dir = yield new GeneralModal(this.app, [confirmOption], "Enter directory for clone. It needs to be empty or not existent.", this.gitManager instanceof IsomorphicGit).open(); + if (dir !== void 0) { + if (dir === confirmOption) { + dir = "."; + } + dir = (0, import_obsidian21.normalizePath)(dir); + if (dir === "/") { + dir = "."; + } + if (dir === ".") { + const modal2 = new GeneralModal(this.app, ["NO", "YES"], `Does your remote repo contain a ${app.vault.configDir} directory at the root?`, false, true); + const containsConflictDir = yield modal2.open(); + if (containsConflictDir === void 0) { + new import_obsidian21.Notice("Aborted clone"); + return; + } else if (containsConflictDir === "YES") { + const confirmOption2 = "DELETE ALL YOUR LOCAL CONFIG AND PLUGINS"; + const modal3 = new GeneralModal(this.app, ["Abort clone", confirmOption2], `To avoid conflicts, the local ${app.vault.configDir} directory needs to be deleted.`, false, true); + const shouldDelete = (yield modal3.open()) === confirmOption2; + if (shouldDelete) { + yield this.app.vault.adapter.rmdir(app.vault.configDir, true); + } else { + new import_obsidian21.Notice("Aborted clone"); + return; + } + } + } + new import_obsidian21.Notice(`Cloning new repo into "${dir}"`); yield this.gitManager.clone(url, dir); - new import_obsidian15.Notice("Cloned new repo"); + new import_obsidian21.Notice("Cloned new repo."); + new import_obsidian21.Notice("Please restart Obsidian"); + if (dir && dir !== ".") { + this.settings.basePath = dir; + this.saveSettings(); + } } } }); @@ -14685,10 +31493,10 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.displayMessage("Everything is up-to-date"); } if (this.gitManager instanceof SimpleGit) { - const status = yield this.gitManager.status(); - if (status.conflicted.length > 0) { - this.displayError(`You have ${status.conflicted.length} conflict ${status.conflicted.length > 1 ? "files" : "file"}`); - this.handleConflict(status.conflicted); + const status2 = yield this.gitManager.status(); + if (status2.conflicted.length > 0) { + this.displayError(`You have ${status2.conflicted.length} conflict ${status2.conflicted.length > 1 ? "files" : "file"}`); + this.handleConflict(status2.conflicted); } } dispatchEvent(new CustomEvent("git-refresh")); @@ -14715,34 +31523,50 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.setState(PluginState.idle); }); } - commit(fromAutoBackup, requestCustomMessage = false) { + commit(fromAutoBackup, requestCustomMessage = false, onlyStaged = false) { return __async(this, null, function* () { if (!(yield this.isAllInitialized())) return false; - const file = this.app.vault.getAbstractFileByPath(this.conflictOutputFile); - if (file) - yield this.app.vault.delete(file); - let status; + const hadConflict = this.localStorage.getConflict() === "true"; + let changedFiles; + let status2; + let unstagedFiles; if (this.gitManager instanceof SimpleGit) { - status = yield this.gitManager.status(); - if (fromAutoBackup && status.conflicted.length > 0) { - this.displayError(`Did not commit, because you have ${status.conflicted.length} conflict ${status.conflicted.length > 1 ? "files" : "file"}. Please resolve them and commit per command.`); - this.handleConflict(status.conflicted); + const file = this.app.vault.getAbstractFileByPath(this.conflictOutputFile); + yield this.app.vault.delete(file); + status2 = yield this.updateCachedStatus(); + if (fromAutoBackup && status2.conflicted.length > 0) { + this.displayError(`Did not commit, because you have ${status2.conflicted.length} conflict ${status2.conflicted.length > 1 ? "files" : "file"}. Please resolve them and commit per command.`); + this.handleConflict(status2.conflicted); return; } + changedFiles = [...status2.changed, ...status2.staged]; + } else if (fromAutoBackup && hadConflict) { + this.setState(PluginState.conflicted); + this.displayError(`Did not commit, because you have conflict files. Please resolve them and commit per command.`); + return; + } else if (hadConflict) { + const file = this.app.vault.getAbstractFileByPath(this.conflictOutputFile); + yield this.app.vault.delete(file); + status2 = yield this.updateCachedStatus(); + changedFiles = [...status2.changed, ...status2.staged]; } else { - status = yield this.gitManager.status(); + if (onlyStaged) { + changedFiles = yield this.gitManager.getStagedFiles(); + } else { + unstagedFiles = yield this.gitManager.getUnstagedFiles(); + changedFiles = unstagedFiles.map(({ filepath }) => ({ vault_path: this.gitManager.getVaultPath(filepath) })); + } } - if (yield this.hasTooBigFiles([...status.staged, ...status.changed])) { + if (yield this.hasTooBigFiles(changedFiles)) { this.setState(PluginState.idle); return false; } - const changedFiles = status.changed.length + status.staged.length; - if (changedFiles !== 0) { + if (changedFiles.length !== 0 || hadConflict) { let commitMessage = fromAutoBackup ? this.settings.autoCommitMessage : this.settings.commitMessage; if (fromAutoBackup && this.settings.customMessageOnAutoBackup || requestCustomMessage) { if (!this.settings.disablePopups && fromAutoBackup) { - new import_obsidian15.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort"); + new import_obsidian21.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort"); } const tempMessage = yield new CustomMessageModal(this, true).open(); if (tempMessage != void 0 && tempMessage != "" && tempMessage != "...") { @@ -14752,8 +31576,18 @@ var ObsidianGit = class extends import_obsidian15.Plugin { return false; } } - const committedFiles = yield this.gitManager.commitAll(commitMessage); - this.displayMessage(`Committed ${committedFiles} ${committedFiles > 1 ? "files" : "file"}`); + let committedFiles; + if (onlyStaged) { + committedFiles = yield this.gitManager.commit(commitMessage); + } else { + committedFiles = yield this.gitManager.commitAll({ message: commitMessage, status: status2, unstagedFiles }); + } + let roughly = false; + if (committedFiles === void 0) { + roughly = true; + committedFiles = changedFiles.length; + } + this.displayMessage(`Committed${roughly ? " approx." : ""} ${committedFiles} ${committedFiles > 1 ? "files" : "file"}`); } else { this.displayMessage("No changes to commit"); } @@ -14772,7 +31606,7 @@ var ObsidianGit = class extends import_obsidian15.Plugin { if (remoteUrl.includes("github.com")) { const tooBigFiles = files.filter((f) => { const file = this.app.vault.getAbstractFileByPath(f.vault_path); - if (file instanceof import_obsidian15.TFile) { + if (file instanceof import_obsidian21.TFile) { return file.stat.size >= 1e8; } return false; @@ -14790,19 +31624,27 @@ var ObsidianGit = class extends import_obsidian15.Plugin { return __async(this, null, function* () { if (!(yield this.isAllInitialized())) return false; - if (!this.remotesAreSet()) { + if (!(yield this.remotesAreSet())) { return false; } const file = this.app.vault.getAbstractFileByPath(this.conflictOutputFile); - if (file) + const hadConflict = this.localStorage.getConflict() === "true"; + if (this.gitManager instanceof SimpleGit && file) yield this.app.vault.delete(file); - let status; - if (this.gitManager instanceof SimpleGit && (status = yield this.gitManager.status()).conflicted.length > 0) { - this.displayError(`Cannot push. You have ${status.conflicted.length} conflict ${status.conflicted.length > 1 ? "files" : "file"}`); - this.handleConflict(status.conflicted); + let status2; + if (this.gitManager instanceof SimpleGit && (status2 = yield this.updateCachedStatus()).conflicted.length > 0) { + this.displayError(`Cannot push. You have ${status2.conflicted.length} conflict ${status2.conflicted.length > 1 ? "files" : "file"}`); + this.handleConflict(status2.conflicted); return false; - } else { + } else if (this.gitManager instanceof IsomorphicGit && hadConflict) { + this.displayError(`Cannot push. You have conflict files`); + this.setState(PluginState.conflicted); + return false; + } + { + console.log("Pushing...."); const pushedFiles = yield this.gitManager.push(); + console.log("Pushed!", pushedFiles); this.lastUpdate = Date.now(); if (pushedFiles > 0) { this.displayMessage(`Pushed ${pushedFiles} ${pushedFiles > 1 ? "files" : "file"} to remote`); @@ -14817,21 +31659,49 @@ var ObsidianGit = class extends import_obsidian15.Plugin { } pull() { return __async(this, null, function* () { - const pulledFilesLength = yield this.gitManager.pull(); - this.offlineMode = false; - if (pulledFilesLength > 0) { - this.displayMessage(`Pulled ${pulledFilesLength} ${pulledFilesLength > 1 ? "files" : "file"} from remote`); + if (!(yield this.remotesAreSet())) { + return false; } - return pulledFilesLength != 0; + const pulledFiles = yield this.gitManager.pull(); + this.offlineMode = false; + if (pulledFiles.length > 0) { + this.displayMessage(`Pulled ${pulledFiles.length} ${pulledFiles.length > 1 ? "files" : "file"} from remote`); + this.lastPulledFiles = pulledFiles; + } + return pulledFiles.length != 0; + }); + } + stageCurrentFile() { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return false; + const file = this.app.workspace.getActiveFile(); + yield this.gitManager.stage(file.path, true); + this.displayMessage(`Staged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(PluginState.idle); + return true; + }); + } + unstageCurrentFile() { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return false; + const file = this.app.workspace.getActiveFile(); + yield this.gitManager.unstage(file.path, true); + this.displayMessage(`Unstaged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(PluginState.idle); + return true; }); } remotesAreSet() { return __async(this, null, function* () { if (!(yield this.gitManager.branchInfo()).tracking) { - new import_obsidian15.Notice("No upstream branch is set. Please select one."); + new import_obsidian21.Notice("No upstream branch is set. Please select one."); const remoteBranch = yield this.selectRemoteBranch(); if (remoteBranch == void 0) { - this.displayError("Did not push. No upstream-branch is set!", 1e4); + this.displayError("Aborted. No upstream-branch is set!", 1e4); this.setState(PluginState.idle); return false; } else { @@ -14849,7 +31719,7 @@ var ObsidianGit = class extends import_obsidian15.Plugin { this.doAutoBackup(); } else { this.onFileModifyEventRef = this.app.vault.on("modify", () => this.autoBackupDebouncer()); - this.autoBackupDebouncer = (0, import_obsidian15.debounce)(() => this.doAutoBackup(), time, true); + this.autoBackupDebouncer = (0, import_obsidian21.debounce)(() => this.doAutoBackup(), time, true); } } else { this.timeoutIDBackup = window.setTimeout(() => this.doAutoBackup(), time); @@ -14918,20 +31788,24 @@ var ObsidianGit = class extends import_obsidian15.Plugin { handleConflict(conflicted) { return __async(this, null, function* () { this.setState(PluginState.conflicted); - const lines = [ - "# Conflict files", - "Please resolve them and commit per command (This file will be deleted before the commit).", - ...conflicted.map((e) => { - const file = this.app.vault.getAbstractFileByPath(e); - if (file instanceof import_obsidian15.TFile) { - const link = this.app.metadataCache.fileToLinktext(file, "/"); - return `- [[${link}]]`; - } else { - return `- Not a file: ${e}`; - } - }) - ]; - this.writeAndOpenFile(lines.join("\n")); + this.localStorage.setConflict("true"); + let lines; + if (conflicted !== void 0) { + lines = [ + "# Conflict files", + "Please resolve them and commit per command (This file will be deleted before the commit).", + ...conflicted.map((e) => { + const file = this.app.vault.getAbstractFileByPath(e); + if (file instanceof import_obsidian21.TFile) { + const link = this.app.metadataCache.fileToLinktext(file, "/"); + return `- [[${link}]]`; + } else { + return `- Not a file: ${e}`; + } + }) + ]; + } + this.writeAndOpenFile(lines == null ? void 0 : lines.join("\n")); }); } editRemotes() { @@ -14944,8 +31818,10 @@ var ObsidianGit = class extends import_obsidian15.Plugin { if (remoteName) { const urlModal = new GeneralModal(this.app, [], "Enter the remote URL"); const remoteURL = yield urlModal.open(); - yield this.gitManager.setRemote(remoteName, remoteURL); - return remoteName; + if (remoteURL) { + yield this.gitManager.setRemote(remoteName, remoteURL); + return remoteName; + } } }); } @@ -14984,7 +31860,9 @@ var ObsidianGit = class extends import_obsidian15.Plugin { } writeAndOpenFile(text2) { return __async(this, null, function* () { - yield this.app.vault.adapter.write(this.conflictOutputFile, text2); + if (text2 !== void 0) { + yield this.app.vault.adapter.write(this.conflictOutputFile, text2); + } let fileIsAlreadyOpened = false; this.app.workspace.iterateAllLeaves((leaf) => { if (leaf.getDisplayText() != "" && this.conflictOutputFile.startsWith(leaf.getDisplayText())) { @@ -15000,25 +31878,29 @@ var ObsidianGit = class extends import_obsidian15.Plugin { var _a2; (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); if (!this.settings.disablePopups) { - new import_obsidian15.Notice(message, 5 * 1e3); + new import_obsidian21.Notice(message, 5 * 1e3); } console.log(`git obsidian message: ${message}`); } displayError(message, timeout = 10 * 1e3) { var _a2; message = message.toString(); - new import_obsidian15.Notice(message, timeout); + new import_obsidian21.Notice(message, timeout); console.log(`git obsidian error: ${message}`); (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); } }; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = {}); /*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -15033,3 +31915,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ +/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/notes/.obsidian/plugins/obsidian-git/manifest.json b/notes/.obsidian/plugins/obsidian-git/manifest.json index abe521b..dfc8ed6 100644 --- a/notes/.obsidian/plugins/obsidian-git/manifest.json +++ b/notes/.obsidian/plugins/obsidian-git/manifest.json @@ -1,8 +1,8 @@ { "id": "obsidian-git", "name": "Obsidian Git", - "description": "Backup your vault with git.", - "isDesktopOnly": true, + "description": "Backup your vault with Git.", + "isDesktopOnly": false, "js": "main.js", - "version": "1.27.1" + "version": "2.0.3" } diff --git a/notes/.obsidian/plugins/obsidian-git/styles.css b/notes/.obsidian/plugins/obsidian-git/styles.css index 68a06f0..e283d44 100644 --- a/notes/.obsidian/plugins/obsidian-git/styles.css +++ b/notes/.obsidian/plugins/obsidian-git/styles.css @@ -2,11 +2,13 @@ 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } } -.loading > svg { + +.loading>svg { animation: 2s linear infinite loading; transform-origin: 50% 50%; display: inline-block; @@ -17,6 +19,17 @@ width: 50%; } +.obsidian-git-textarea { + display: block; + margin-left: auto; + margin-right: auto; +} + +.obsidian-git-center-button { + display: block; + margin: 20px auto; +} + .tooltip.mod-left { overflow-wrap: break-word; } @@ -44,9 +57,11 @@ .workspace-leaf-content[data-type="diff-view"] .d2h-d-none { display: none; } + .workspace-leaf-content[data-type="diff-view"] .d2h-wrapper { text-align: left; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-header { background-color: var(--background-primary); border-bottom: 1px solid var(--interactive-accent); @@ -54,16 +69,19 @@ height: 35px; padding: 5px 10px; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-header, .workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { display: -webkit-box; display: -ms-flexbox; display: flex; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { font-size: 14px; margin-left: auto; } + .workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { border: 1px solid #b4e2b4; border-radius: 5px 0 0 5px; @@ -72,6 +90,7 @@ text-align: right; vertical-align: middle; } + .workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted { border: 1px solid #e9aeae; border-radius: 0 5px 5px 0; @@ -81,6 +100,7 @@ text-align: left; vertical-align: middle; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { -webkit-box-align: center; -ms-flex-align: center; @@ -91,16 +111,19 @@ font-size: 15px; width: 100%; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-name { overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { border: 1px solid var(--background-modifier-border); border-radius: 3px; margin-bottom: 1em; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { -webkit-box-pack: end; -ms-flex-pack: end; @@ -115,24 +138,30 @@ justify-content: flex-end; padding: 4px 8px; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { background-color: #c8e1ff; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { margin: 0 4px 0 0; } + .workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { border-collapse: collapse; font-family: Menlo, Consolas, monospace; font-size: 13px; width: 100%; } + .workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { width: 100%; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { overflow-y: hidden; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { display: inline-block; margin-bottom: -8px; @@ -141,9 +170,11 @@ overflow-y: hidden; width: 50%; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-line { padding: 0 8em; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-line, .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { display: inline-block; @@ -154,9 +185,11 @@ white-space: nowrap; width: 100%; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { padding: 0 4.5em; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { word-wrap: normal; background: none; @@ -170,20 +203,17 @@ white-space: pre; width: 100%; } + .theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - del { +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del { background-color: #ffb6ba; } + .theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - del { +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del { background-color: #8d232881; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, @@ -194,22 +224,19 @@ text-decoration: none; vertical-align: middle; } + .theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - ins { +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { background-color: #97f295; text-align: left; } + .theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - ins { +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { background-color: #1d921996; text-align: left; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { word-wrap: normal; background: none; @@ -217,9 +244,11 @@ padding: 0; white-space: pre; } + .workspace-leaf-content[data-type="diff-view"] .line-num1 { float: left; } + .workspace-leaf-content[data-type="diff-view"] .line-num1, .workspace-leaf-content[data-type="diff-view"] .line-num2 { -webkit-box-sizing: border-box; @@ -229,9 +258,11 @@ text-overflow: ellipsis; width: 3.5em; } + .workspace-leaf-content[data-type="diff-view"] .line-num2 { float: right; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { background-color: var(--background-primary); border: solid var(--background-modifier-border); @@ -245,9 +276,11 @@ text-align: right; width: 7.5em; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { content: "\200b"; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { background-color: var(--background-primary); border: solid var(--background-modifier-border); @@ -264,14 +297,17 @@ text-overflow: ellipsis; width: 4em; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { content: "\200b"; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, .workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { background-color: var(--background-primary); border-color: var(--background-modifier-border); } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, .workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, @@ -281,115 +317,127 @@ -ms-user-select: none; user-select: none; } + .workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { direction: rtl; } + .theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { background-color: #fee8e9; border-color: #e9aeae; } + .theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { background-color: #dfd; border-color: #b4e2b4; } + .theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { background-color: #521b1d83; border-color: #691d1d73; } + .theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { background-color: rgba(30, 71, 30, 0.5); border-color: #13501381; } + .workspace-leaf-content[data-type="diff-view"] .d2h-info { background-color: var(--background-primary); border-color: var(--background-modifier-border); color: var(--text-normal); } -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-del.d2h-change { + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change { background-color: #fdf2d0; } -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-del.d2h-change { + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change { background-color: #55492480; } -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-ins.d2h-change { + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change { background-color: #ded; } -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-ins.d2h-change { + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change { background-color: rgba(37, 78, 37, 0.418); } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { margin-bottom: 10px; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { color: #3572b0; text-decoration: none; } -.workspace-leaf-content[data-type="diff-view"] - .d2h-file-list-wrapper - a:visited { + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a:visited { color: #3572b0; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { text-align: left; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { font-weight: 700; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { display: -webkit-box; display: -ms-flexbox; display: flex; text-align: left; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-list { display: block; list-style: none; margin: 0; padding: 0; } -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li { + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li { border-bottom: 1px solid var(--background-modifier-border); margin: 0; padding: 5px 10px; } -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li:last-child { + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li:last-child { border-bottom: none; } + .workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { cursor: pointer; display: none; font-size: 10px; } + .workspace-leaf-content[data-type="diff-view"] .d2h-icon { fill: currentColor; margin-right: 10px; vertical-align: middle; } + .workspace-leaf-content[data-type="diff-view"] .d2h-deleted { color: #c33; } + .workspace-leaf-content[data-type="diff-view"] .d2h-added { color: #399839; } + .workspace-leaf-content[data-type="diff-view"] .d2h-changed { color: #d0b44c; } + .workspace-leaf-content[data-type="diff-view"] .d2h-moved { color: #3572b0; } + .workspace-leaf-content[data-type="diff-view"] .d2h-tag { background-color: var(--background-primary); display: -webkit-box; @@ -399,15 +447,19 @@ margin-left: 5px; padding: 0 2px; } + .workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag { border: 2px solid #c33; } + .workspace-leaf-content[data-type="diff-view"] .d2h-added-tag { border: 1px solid #399839; } + .workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag { border: 1px solid #d0b44c; } + .workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag { border: 1px solid #3572b0; -} +} \ No newline at end of file diff --git a/notes/.obsidian/plugins/obsidian-kanban/main.js b/notes/.obsidian/plugins/obsidian-kanban/main.js index b356356..91de3ca 100644 --- a/notes/.obsidian/plugins/obsidian-kanban/main.js +++ b/notes/.obsidian/plugins/obsidian-kanban/main.js @@ -2,75 +2,79 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source visit the plugins github repository */ +const requestAnimationFrame = (cb) => activeWindow.requestAnimationFrame(cb); +const cancelAnimationFrame = (id) => activeWindow.cancelAnimationFrame(id); +const setTimeout = (...args) => activeWindow.setTimeout(...args); +const clearTimeout = (id) => activeWindow.clearTimeout(id); -var jw=Object.create;var Ba=Object.defineProperty;var qw=Object.getOwnPropertyDescriptor;var Yw=Object.getOwnPropertyNames;var Jw=Object.getPrototypeOf,Gw=Object.prototype.hasOwnProperty;var Gd=e=>Ba(e,"__esModule",{value:!0});var tl=(e,t)=>()=>(e&&(t=e(e=0)),t);var ot=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ci=(e,t)=>{Gd(e);for(var r in t)Ba(e,r,{get:t[r],enumerable:!0})},Qw=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Yw(t))!Gw.call(e,n)&&n!=="default"&&Ba(e,n,{get:()=>t[n],enumerable:!(r=qw(t,n))||r.enumerable});return e},ge=e=>Qw(Gd(Ba(e!=null?jw(Jw(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);function On(e,t){for(var r in t)e[r]=t[r];return e}function nf(e){var t=e.parentNode;t&&t.removeChild(e)}function v(e,t,r){var n,i,a,o={};for(a in t)a=="key"?n=t[a]:a=="ref"?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Ti.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return Ii(e,o,n,i,null)}function Ii(e,t,r,n,i){var a={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:i??++Qd};return i==null&&fe.vnode!=null&&fe.vnode(a),a}function Ai(){return{current:null}}function S(e){return e.children}function vt(e,t){this.props=e,this.context=t}function $r(e,t){if(t==null)return e.__?$r(e.__,e.__.__k.indexOf(e)+1):null;for(var r;t0?Ii(p.type,p.props,p.key,null,p.__v):p)!=null){if(p.__=r,p.__b=r.__b+1,(f=k[c])===null||f&&p.key==f.key&&p.type===f.type)k[c]=void 0;else for(d=0;d2&&(o.children=arguments.length>3?Ti.call(arguments,2):r),Ii(e.type,o,n||e.key,i||e.ref,null)}function Li(e,t){var r={__c:t="__cC"+ef++,__:e,Consumer:function(n,i){return n.children(i)},Provider:function(n){var i,a;return this.getChildContext||(i=[],(a={})[t]=this,this.getChildContext=function(){return a},this.shouldComponentUpdate=function(o){this.props.value!==o.value&&i.some(nl)},this.sub=function(o){i.push(o);var s=o.componentWillUnmount;o.componentWillUnmount=function(){i.splice(i.indexOf(o),1),s&&s.call(o)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}var Ti,fe,Qd,Xw,Mi,Xd,Zd,ef,Ka,tf,Zw,yr=tl(()=>{h();Ka={},tf=[],Zw=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;Ti=tf.slice,fe={__e:function(e,t,r,n){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,n||{}),o=i.__d),o)return i.__E=i}catch(s){e=s}throw e}},Qd=0,Xw=function(e){return e!=null&&e.constructor===void 0},vt.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=On({},this.state),typeof e=="function"&&(e=e(On({},r),this.props)),e&&On(r,e),e!=null&&this.__v&&(t&&this.__h.push(t),nl(this))},vt.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),nl(this))},vt.prototype.render=S,Mi=[],Xd=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$a.__r=0,ef=0});var h=tl(()=>{yr()});var _t=ot((kn,Kf)=>{h();"use strict";Object.defineProperty(kn,"__esModule",{value:!0});function yn(e){return typeof e=="object"&&!("toString"in e)?Object.prototype.toString.call(e).slice(8,-1):e}var ME=typeof process=="object"&&!0;function cn(e,t){if(!e)throw ME?new Error("Invariant failed"):new Error(t())}kn.invariant=cn;var hl=Object.prototype.hasOwnProperty,IE=Array.prototype.splice,AE=Object.prototype.toString;function br(e){return AE.call(e).slice(8,-1)}var Ga=Object.assign||function(e,t){return ml(t).forEach(function(r){hl.call(t,r)&&(e[r]=t[r])}),e},ml=typeof Object.getOwnPropertySymbols=="function"?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function Xn(e){return Array.isArray(e)?Ga(e.constructor(e.length),e):br(e)==="Map"?new Map(e):br(e)==="Set"?new Set(e):e&&typeof e=="object"?Ga(Object.create(Object.getPrototypeOf(e)),e):e}var Nf=function(){function e(){this.commands=Ga({},LE),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(t,r){return t===r},this.update.newContext=function(){return new e().update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(t){this.update.isEquals=t},enumerable:!0,configurable:!0}),e.prototype.extend=function(t,r){this.commands[t]=r},e.prototype.update=function(t,r){var n=this,i=typeof r=="function"?{$apply:r}:r;Array.isArray(t)&&Array.isArray(i)||cn(!Array.isArray(i),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),cn(typeof i=="object"&&i!==null,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the "+("following commands: "+Object.keys(n.commands).join(", ")+".")});var a=t;return ml(i).forEach(function(o){if(hl.call(n.commands,o)){var s=t===a;a=n.commands[o](i[o],a,i,t),s&&n.isEquals(a,t)&&(a=t)}else{var u=br(t)==="Map"?n.update(t.get(o),i[o]):n.update(t[o],i[o]),l=br(a)==="Map"?a.get(o):a[o];(!n.isEquals(u,l)||typeof u=="undefined"&&!hl.call(t,o))&&(a===t&&(a=Xn(t)),br(a)==="Map"?a.set(o,u):a[o]=u)}}),a},e}();kn.Context=Nf;var LE={$push:function(e,t,r){return Rf(t,r,"$push"),e.length?t.concat(e):t},$unshift:function(e,t,r){return Rf(t,r,"$unshift"),e.length?e.concat(t):t},$splice:function(e,t,r,n){return PE(t,r),e.forEach(function(i){Hf(i),t===n&&i.length&&(t=Xn(n)),IE.apply(t,i)}),t},$set:function(e,t,r){return OE(r),e},$toggle:function(e,t){Ki(e,"$toggle");var r=e.length?Xn(t):t;return e.forEach(function(n){r[n]=!t[n]}),r},$unset:function(e,t,r,n){return Ki(e,"$unset"),e.forEach(function(i){Object.hasOwnProperty.call(t,i)&&(t===n&&(t=Xn(n)),delete t[i])}),t},$add:function(e,t,r,n){return Bf(t,"$add"),Ki(e,"$add"),br(t)==="Map"?e.forEach(function(i){var a=i[0],o=i[1];t===n&&t.get(a)!==o&&(t=Xn(n)),t.set(a,o)}):e.forEach(function(i){t===n&&!t.has(i)&&(t=Xn(n)),t.add(i)}),t},$remove:function(e,t,r,n){return Bf(t,"$remove"),Ki(e,"$remove"),e.forEach(function(i){t===n&&t.has(i)&&(t=Xn(n)),t.delete(i)}),t},$merge:function(e,t,r,n){return NE(t,e),ml(e).forEach(function(i){e[i]!==t[i]&&(t===n&&(t=Xn(n)),t[i]=e[i])}),t},$apply:function(e,t){return FE(e),e(t)}},gl=new Nf;kn.isEquals=gl.update.isEquals;kn.extend=gl.extend;kn.default=gl.update;kn.default.default=Kf.exports=Ga(kn.default,kn);function Rf(e,t,r){cn(Array.isArray(e),function(){return"update(): expected target of "+yn(r)+" to be an array; got "+yn(e)+"."}),Ki(t[r],r)}function Ki(e,t){cn(Array.isArray(e),function(){return"update(): expected spec of "+yn(t)+" to be an array; got "+yn(e)+". Did you forget to wrap your parameter in an array?"})}function PE(e,t){cn(Array.isArray(e),function(){return"Expected $splice target to be an array; got "+yn(e)}),Hf(t.$splice)}function Hf(e){cn(Array.isArray(e),function(){return"update(): expected spec of $splice to be an array of arrays; got "+yn(e)+". Did you forget to wrap your parameters in an array?"})}function FE(e){cn(typeof e=="function",function(){return"update(): expected spec of $apply to be a function; got "+yn(e)+"."})}function OE(e){cn(Object.keys(e).length===1,function(){return"Cannot have more than one key in an object with $set"})}function NE(e,t){cn(t&&typeof t=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+yn(t)}),cn(e&&typeof e=="object",function(){return"update(): $merge expects a target of type 'object'; got "+yn(e)})}function Bf(e,t){var r=br(e);cn(r==="Map"||r==="Set",function(){return"update(): "+yn(t)+" expects a target of type Set or Map; got "+yn(r)})}});var zf=ot((fT,Vf)=>{h();"use strict";var RE=function(t){return HE(t)&&!BE(t)};function HE(e){return!!e&&typeof e=="object"}function BE(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||UE(e)}var KE=typeof Symbol=="function"&&Symbol.for,$E=KE?Symbol.for("react.element"):60103;function UE(e){return e.$$typeof===$E}function VE(e){return Array.isArray(e)?[]:{}}function $i(e,t){return t.clone!==!1&&t.isMergeableObject(e)?zr(VE(e),e,t):e}function zE(e,t,r){return e.concat(t).map(function(n){return $i(n,r)})}function WE(e,t){if(!t.customMerge)return zr;var r=t.customMerge(e);return typeof r=="function"?r:zr}function jE(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function $f(e){return Object.keys(e).concat(jE(e))}function Uf(e,t){try{return t in e}catch(r){return!1}}function qE(e,t){return Uf(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function YE(e,t,r){var n={};return r.isMergeableObject(e)&&$f(e).forEach(function(i){n[i]=$i(e[i],r)}),$f(t).forEach(function(i){qE(e,i)||(Uf(e,i)&&r.isMergeableObject(t[i])?n[i]=WE(i,r)(e[i],t[i],r):n[i]=$i(t[i],r))}),n}function zr(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||zE,r.isMergeableObject=r.isMergeableObject||RE,r.cloneUnlessOtherwiseSpecified=$i;var n=Array.isArray(t),i=Array.isArray(e),a=n===i;return a?n?r.arrayMerge(e,t,r):YE(e,t,r):$i(t,r)}zr.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,i){return zr(n,i,r)},{})};var JE=zr;Vf.exports=JE});var ao=ot(rt=>{h();"use strict";var Cl=32;rt.INT_BITS=Cl;rt.INT_MAX=2147483647;rt.INT_MIN=-1<0)-(e<0)};rt.abs=function(e){var t=e>>Cl-1;return(e^t)-t};rt.min=function(e,t){return t^(e^t)&-(e65535)<<4,e>>>=t,r=(e>255)<<3,e>>>=r,t|=r,r=(e>15)<<2,e>>>=r,t|=r,r=(e>3)<<1,e>>>=r,t|=r,t|e>>1};rt.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};rt.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function op(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}rt.countTrailingZeros=op;rt.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};rt.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};rt.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var Yi=new Array(256);(function(e){for(var t=0;t<256;++t){var r=t,n=t,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=r&1,--i;e[t]=n<>>8&255]<<16|Yi[e>>>16&255]<<8|Yi[e>>>24&255]};rt.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};rt.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};rt.interleave3=function(e,t,r){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,r&=1023,r=(r|r<<16)&4278190335,r=(r|r<<8)&251719695,r=(r|r<<4)&3272356035,r=(r|r<<2)&1227133513,e|r<<2};rt.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};rt.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>op(e)+1}});var cp=ot((WT,lp)=>{h();"use strict";function sp(e,t,r){var n=e[r]|0;if(n<=0)return[];var i=new Array(n),a;if(r===e.length-1)for(a=0;a0)return ox(e|0,t);break;case"object":if(typeof e.length=="number")return sp(e,t,0);break}return[]}lp.exports=sx});var Mp={};Ci(Mp,{Buffer:()=>ne,INSPECT_MAX_BYTES:()=>hp,SlowBuffer:()=>yx,isBuffer:()=>Cp,kMaxLength:()=>px});function up(){Tl=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new lx(s*3/4-a),n=a>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,o[u++]=i>>8&255,o[u++]=i&255;return a===2?(i=un[e.charCodeAt(t)]<<2|un[e.charCodeAt(t+1)]>>4,o[u++]=i&255):a===1&&(i=un[e.charCodeAt(t)]<<10|un[e.charCodeAt(t+1)]<<4|un[e.charCodeAt(t+2)]>>2,o[u++]=i>>8&255,o[u++]=i&255),o}function ux(e){return Dn[e>>18&63]+Dn[e>>12&63]+Dn[e>>6&63]+Dn[e&63]}function dx(e,t,r){for(var n,i=[],a=t;au?u:s+o));return n===1?(t=e[r-1],i+=Dn[t>>2],i+=Dn[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=Dn[t>>10],i+=Dn[t>>4&63],i+=Dn[t<<2&63],i+="="),a.push(i),a.join("")}function oo(e,t,r,n,i){var a,o,s=i*8-n-1,u=(1<>1,c=-7,d=r?i-1:0,f=r?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=a*256+e[t+d],d+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=o*256+e[t+d],d+=f,c-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-l}return(p?-1:1)*o*Math.pow(2,a-n)}function fp(e,t,r,n,i,a){var o,s,u,l=a*8-i-1,c=(1<>1,f=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,m=n?1:-1,y=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+d>=1?t+=f/u:t+=f*Math.pow(2,1-d),t*u>=2&&(o++,u/=2),o+d>=c?(s=0,o=c):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=s&255,p+=m,s/=256,i-=8);for(o=o<0;e[r+p]=o&255,p+=m,o/=256,l-=8);e[r+p-m]|=y*128}function so(){return ne.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Rn(e,t){if(so()=so())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+so().toString(16)+" bytes");return e|0}function yx(e){return+e!=e&&(e=0),ne.alloc(+e)}function Cn(e){return!!(e!=null&&e._isBuffer)}function vp(e,t){if(Cn(e))return e.length;if(typeof ArrayBuffer!="undefined"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var r=e.length;if(r===0)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return uo(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return Dp(e).length;default:if(n)return uo(e).length;t=(""+t).toLowerCase(),n=!0}}function bx(e,t,r){var n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Mx(this,t,r);case"utf8":case"utf-8":return Ep(this,t,r);case"ascii":return Cx(this,t,r);case"latin1":case"binary":return Tx(this,t,r);case"base64":return _x(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ix(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function Er(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function yp(e,t,r,n,i){if(e.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=ne.from(t,n)),Cn(t))return t.length===0?-1:bp(e,t,r,n,i);if(typeof t=="number")return t=t&255,ne.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):bp(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function bp(e,t,r,n,i){var a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function u(p,m){return a===1?p[m]:p.readUInt16BE(m*a)}var l;if(i){var c=-1;for(l=r;lo&&(r=o-s),l=r;l>=0;l--){for(var d=!0,f=0;fi&&(n=i)):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o239?4:a>223?3:a>191?2:1;if(i+s<=r){var u,l,c,d;switch(s){case 1:a<128&&(o=a);break;case 2:u=e[i+1],(u&192)==128&&(d=(a&31)<<6|u&63,d>127&&(o=d));break;case 3:u=e[i+1],l=e[i+2],(u&192)==128&&(l&192)==128&&(d=(a&15)<<12|(u&63)<<6|l&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],(u&192)==128&&(l&192)==128&&(c&192)==128&&(d=(a&15)<<18|(u&63)<<12|(l&63)<<6|c&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return Dx(n)}function Dx(e){var t=e.length;if(t<=xp)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function Yt(e,t,r,n,i,a){if(!Cn(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function lo(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>(n?i:1-i)*8}function co(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>(n?i:3-i)*8&255}function kp(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Sp(e,t,r,n,i){return i||kp(e,t,r,4),fp(e,t,r,n,23,4),r+4}function _p(e,t,r,n,i){return i||kp(e,t,r,8),fp(e,t,r,n,52,8),r+8}function Lx(e){if(e=Px(e).replace(Ax,""),e.length<2)return"";for(;e.length%4!=0;)e=e+"=";return e}function Px(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Fx(e){return e<16?"0"+e.toString(16):e.toString(16)}function uo(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function Ox(e){for(var t=[],r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function Dp(e){return cx(Lx(e))}function fo(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Rx(e){return e!==e}function Cp(e){return e!=null&&(!!e._isBuffer||Tp(e)||Hx(e))}function Tp(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function Hx(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&Tp(e.slice(0,0))}var Dn,un,lx,Tl,fx,pp,hp,px,xp,Ax,Ip=tl(()=>{h();Dn=[],un=[],lx=typeof Uint8Array!="undefined"?Uint8Array:Array,Tl=!1;fx={}.toString,pp=Array.isArray||function(e){return fx.call(e)=="[object Array]"};hp=50;ne.TYPED_ARRAY_SUPPORT=window.TYPED_ARRAY_SUPPORT!==void 0?window.TYPED_ARRAY_SUPPORT:!0;px=so();ne.poolSize=8192;ne._augment=function(e){return e.__proto__=ne.prototype,e};ne.from=function(e,t,r){return mp(null,e,t,r)};ne.TYPED_ARRAY_SUPPORT&&(ne.prototype.__proto__=Uint8Array.prototype,ne.__proto__=Uint8Array);ne.alloc=function(e,t,r){return hx(null,e,t,r)};ne.allocUnsafe=function(e){return Ml(null,e)};ne.allocUnsafeSlow=function(e){return Ml(null,e)};ne.isBuffer=Cp;ne.compare=function(t,r){if(!Cn(t)||!Cn(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var n=t.length,i=r.length,a=0,o=Math.min(n,i);a0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""};ne.prototype.compare=function(t,r,n,i,a){if(!Cn(t))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;for(var o=a-i,s=n-r,u=Math.min(o,s),l=this.slice(i,a),c=t.slice(r,n),d=0;da)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return wx(this,t,r,n);case"utf8":case"utf-8":return Ex(this,t,r,n);case"ascii":return wp(this,t,r,n);case"latin1":case"binary":return xx(this,t,r,n);case"base64":return kx(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Sx(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}};ne.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};xp=4096;ne.prototype.slice=function(t,r){var n=this.length;t=~~t,r=r===void 0?n:~~r,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r0&&(a*=256);)i+=this[t+--r]*a;return i};ne.prototype.readUInt8=function(t,r){return r||Et(t,1,this.length),this[t]};ne.prototype.readUInt16LE=function(t,r){return r||Et(t,2,this.length),this[t]|this[t+1]<<8};ne.prototype.readUInt16BE=function(t,r){return r||Et(t,2,this.length),this[t]<<8|this[t+1]};ne.prototype.readUInt32LE=function(t,r){return r||Et(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};ne.prototype.readUInt32BE=function(t,r){return r||Et(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};ne.prototype.readIntLE=function(t,r,n){t=t|0,r=r|0,n||Et(t,r,this.length);for(var i=this[t],a=1,o=0;++o=a&&(i-=Math.pow(2,8*r)),i};ne.prototype.readIntBE=function(t,r,n){t=t|0,r=r|0,n||Et(t,r,this.length);for(var i=r,a=1,o=this[t+--i];i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o};ne.prototype.readInt8=function(t,r){return r||Et(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};ne.prototype.readInt16LE=function(t,r){r||Et(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt16BE=function(t,r){r||Et(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt32LE=function(t,r){return r||Et(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};ne.prototype.readInt32BE=function(t,r){return r||Et(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};ne.prototype.readFloatLE=function(t,r){return r||Et(t,4,this.length),oo(this,t,!0,23,4)};ne.prototype.readFloatBE=function(t,r){return r||Et(t,4,this.length),oo(this,t,!1,23,4)};ne.prototype.readDoubleLE=function(t,r){return r||Et(t,8,this.length),oo(this,t,!0,52,8)};ne.prototype.readDoubleBE=function(t,r){return r||Et(t,8,this.length),oo(this,t,!1,52,8)};ne.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;Yt(this,t,r,n,a,0)}var o=1,s=0;for(this[r]=t&255;++s=0&&(s*=256);)this[r+o]=t/s&255;return r+n};ne.prototype.writeUInt8=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,1,255,0),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};ne.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):lo(this,t,r,!0),r+2};ne.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):lo(this,t,r,!1),r+2};ne.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255):co(this,t,r,!0),r+4};ne.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):co(this,t,r,!1),r+4};ne.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Yt(this,t,r,n,a-1,-a)}var o=0,s=1,u=0;for(this[r]=t&255;++o>0)-u&255;return r+n};ne.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Yt(this,t,r,n,a-1,-a)}var o=n-1,s=1,u=0;for(this[r+o]=t&255;--o>=0&&(s*=256);)t<0&&u===0&&this[r+o+1]!==0&&(u=1),this[r+o]=(t/s>>0)-u&255;return r+n};ne.prototype.writeInt8=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,1,127,-128),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=t&255,r+1};ne.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):lo(this,t,r,!0),r+2};ne.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):lo(this,t,r,!1),r+2};ne.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,2147483647,-2147483648),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):co(this,t,r,!0),r+4};ne.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):co(this,t,r,!1),r+4};ne.prototype.writeFloatLE=function(t,r,n){return Sp(this,t,r,!0,n)};ne.prototype.writeFloatBE=function(t,r,n){return Sp(this,t,r,!1,n)};ne.prototype.writeDoubleLE=function(t,r,n){return _p(this,t,r,!0,n)};ne.prototype.writeDoubleBE=function(t,r,n){return _p(this,t,r,!1,n)};ne.prototype.copy=function(t,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r=0;--o)t[o+r]=this[o+n];else if(a<1e3||!ne.TYPED_ARRAY_SUPPORT)for(o=0;o>>0,n=n===void 0?this.length:n>>>0,t||(t=0);var o;if(typeof t=="number")for(o=r;o{h();var xr=(Ip(),Mp);if(xr&&xr.default){po.exports=xr.default;for(let e in xr)po.exports[e]=xr[e]}else xr&&(po.exports=xr)});var go=ot(Re=>{h();"use strict";var rr=ao(),Dt=cp(),Lp=Ap().Buffer;window.__TYPEDARRAY_POOL||(window.__TYPEDARRAY_POOL={UINT8:Dt([32,0]),UINT16:Dt([32,0]),UINT32:Dt([32,0]),BIGUINT64:Dt([32,0]),INT8:Dt([32,0]),INT16:Dt([32,0]),INT32:Dt([32,0]),BIGINT64:Dt([32,0]),FLOAT:Dt([32,0]),DOUBLE:Dt([32,0]),DATA:Dt([32,0]),UINT8C:Dt([32,0]),BUFFER:Dt([32,0])});var Bx=typeof Uint8ClampedArray!="undefined",Kx=typeof BigUint64Array!="undefined",$x=typeof BigInt64Array!="undefined",st=window.__TYPEDARRAY_POOL;st.UINT8C||(st.UINT8C=Dt([32,0]));st.BIGUINT64||(st.BIGUINT64=Dt([32,0]));st.BIGINT64||(st.BIGINT64=Dt([32,0]));st.BUFFER||(st.BUFFER=Dt([32,0]));var ho=st.DATA,mo=st.BUFFER;Re.free=function(t){if(Lp.isBuffer(t))mo[rr.log2(t.length)].push(t);else{if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!t)return;var r=t.length||t.byteLength,n=rr.log2(r)|0;ho[n].push(t)}};function Pp(e){if(!!e){var t=e.length||e.byteLength,r=rr.log2(t);ho[r].push(e)}}function Ux(e){Pp(e.buffer)}Re.freeUint8=Re.freeUint16=Re.freeUint32=Re.freeBigUint64=Re.freeInt8=Re.freeInt16=Re.freeInt32=Re.freeBigInt64=Re.freeFloat32=Re.freeFloat=Re.freeFloat64=Re.freeDouble=Re.freeUint8Clamped=Re.freeDataView=Ux;Re.freeArrayBuffer=Pp;Re.freeBuffer=function(t){mo[rr.log2(t.length)].push(t)};Re.malloc=function(t,r){if(r===void 0||r==="arraybuffer")return Jt(t);switch(r){case"uint8":return Ll(t);case"uint16":return Fp(t);case"uint32":return Op(t);case"int8":return Np(t);case"int16":return Rp(t);case"int32":return Hp(t);case"float":case"float32":return Bp(t);case"double":case"float64":return Kp(t);case"uint8_clamped":return $p(t);case"bigint64":return Vp(t);case"biguint64":return Up(t);case"buffer":return Wp(t);case"data":case"dataview":return zp(t);default:return null}return null};function Jt(e){var e=rr.nextPow2(e),t=rr.log2(e),r=ho[t];return r.length>0?r.pop():new ArrayBuffer(e)}Re.mallocArrayBuffer=Jt;function Ll(e){return new Uint8Array(Jt(e),0,e)}Re.mallocUint8=Ll;function Fp(e){return new Uint16Array(Jt(2*e),0,e)}Re.mallocUint16=Fp;function Op(e){return new Uint32Array(Jt(4*e),0,e)}Re.mallocUint32=Op;function Np(e){return new Int8Array(Jt(e),0,e)}Re.mallocInt8=Np;function Rp(e){return new Int16Array(Jt(2*e),0,e)}Re.mallocInt16=Rp;function Hp(e){return new Int32Array(Jt(4*e),0,e)}Re.mallocInt32=Hp;function Bp(e){return new Float32Array(Jt(4*e),0,e)}Re.mallocFloat32=Re.mallocFloat=Bp;function Kp(e){return new Float64Array(Jt(8*e),0,e)}Re.mallocFloat64=Re.mallocDouble=Kp;function $p(e){return Bx?new Uint8ClampedArray(Jt(e),0,e):Ll(e)}Re.mallocUint8Clamped=$p;function Up(e){return Kx?new BigUint64Array(Jt(8*e),0,e):null}Re.mallocBigUint64=Up;function Vp(e){return $x?new BigInt64Array(Jt(8*e),0,e):null}Re.mallocBigInt64=Vp;function zp(e){return new DataView(Jt(e),0,e)}Re.mallocDataView=zp;function Wp(e){e=rr.nextPow2(e);var t=rr.log2(e),r=mo[t];return r.length>0?r.pop():new Lp(e)}Re.mallocBuffer=Wp;Re.clearCache=function(){for(var t=0;t<32;++t)st.UINT8[t].length=0,st.UINT16[t].length=0,st.UINT32[t].length=0,st.INT8[t].length=0,st.INT16[t].length=0,st.INT32[t].length=0,st.FLOAT[t].length=0,st.DOUBLE[t].length=0,st.BIGUINT64[t].length=0,st.BIGINT64[t].length=0,st.UINT8C[t].length=0,ho[t].length=0,mo[t].length=0}});var Gp=ot((YT,Jp)=>{h();"use strict";Jp.exports=Vx;var vo=32;function Vx(e,t){t<=4*vo?yo(0,t-1,e):wo(0,t-1,e)}function yo(e,t,r){for(var n=2*(e+1),i=e+1;i<=t;++i){for(var a=r[n++],o=r[n++],s=i,u=n-2;s-- >e;){var l=r[u-2],c=r[u-1];if(lr[t+1]:!0}function bo(e,t,r,n){e*=2;var i=n[e];return i>1,s=o-n,u=o+n,l=i,c=s,d=o,f=u,p=a,m=e+1,y=t-1,b=0;Hn(l,c,r)&&(b=l,l=c,c=b),Hn(f,p,r)&&(b=f,f=p,p=b),Hn(l,d,r)&&(b=l,l=d,d=b),Hn(c,d,r)&&(b=c,c=d,d=b),Hn(l,f,r)&&(b=l,l=f,f=b),Hn(d,f,r)&&(b=d,d=f,f=b),Hn(c,p,r)&&(b=c,c=p,p=b),Hn(c,d,r)&&(b=c,c=d,d=b),Hn(f,p,r)&&(b=f,f=p,p=b);for(var k=r[2*c],T=r[2*c+1],D=r[2*f],A=r[2*f+1],B=2*l,C=2*d,N=2*p,U=2*i,W=2*o,te=2*a,Z=0;Z<2;++Z){var le=r[B+Z],X=r[C+Z],G=r[N+Z];r[U+Z]=le,r[W+Z]=X,r[te+Z]=G}qp(s,e,r),qp(u,t,r);for(var re=m;re<=y;++re)if(bo(re,k,T,r))re!==m&&jp(re,m,r),++m;else if(!bo(re,D,A,r))for(;;)if(bo(y,D,A,r)){bo(y,k,T,r)?(zx(re,m,y,r),++m,--y):(jp(re,y,r),--y);break}else{if(--y{h();"use strict";Qp.exports={init:jx,sweepBipartite:qx,sweepComplete:Yx,scanBipartite:Jx,scanComplete:Gx};var lt=go(),Wx=ao(),Eo=Gp(),nn=1<<28,kr=1024,Ct=lt.mallocInt32(kr),Bn=lt.mallocInt32(kr),Kn=lt.mallocInt32(kr),Sr=lt.mallocInt32(kr),Yr=lt.mallocInt32(kr),Ji=lt.mallocInt32(kr),Ce=lt.mallocDouble(kr*8);function jx(e){var t=Wx.nextPow2(e);Ct.length>>1;Eo(Ce,T);for(var D=0,A=0,m=0;m=nn)B=B-nn|0,Jr(Kn,Sr,A--,B);else if(B>=0)Jr(Ct,Bn,D--,B);else if(B<=-nn){B=-B-nn|0;for(var C=0;C>>1;Eo(Ce,T);for(var D=0,A=0,B=0,m=0;m>1==Ce[2*m+3]>>1&&(N=2,m+=1),C<0){for(var U=-(C>>1)-1,W=0;W>1)-1;N===0?Jr(Ct,Bn,D--,U):N===1?Jr(Kn,Sr,A--,U):N===2&&Jr(Yr,Ji,B--,U)}}}function Jx(e,t,r,n,i,a,o,s,u,l,c,d){var f=0,p=2*e,m=t,y=t+e,b=1,k=1;n?k=nn:b=nn;for(var T=i;T>>1;Eo(Ce,C);for(var N=0,T=0;T=nn?(W=!n,D-=nn):(W=!!n,D-=1),W)Gr(Ct,Bn,N++,D);else{var te=d[D],Z=p*D,le=c[Z+t+1],X=c[Z+t+1+e];e:for(var G=0;G>>1;Eo(Ce,D);for(var A=0,y=0;y=nn)Ct[A++]=b-nn;else{b-=1;var C=c[b],N=f*b,U=l[N+t+1],W=l[N+t+1+e];e:for(var te=0;te=0;--te)if(Ct[te]===b){for(var G=te+1;G{h();"use strict";var _r="d",Qr="ax",Xp="vv",Fl="fp",Gi="es",xo="rs",Ol="re",Qi="rb",Zp="ri",Xr="rp",ko="bs",Nl="be",Xi="bb",eh="bi",Zr="bp",Rl="rv",Hl="Q",Bl=[_r,Qr,Xp,xo,Ol,Qi,Zp,ko,Nl,Xi,eh];function Qx(e,t,r){var n="bruteForce"+(e?"Red":"Blue")+(t?"Flip":"")+(r?"Full":""),i=["function ",n,"(",Bl.join(),"){","var ",Gi,"=2*",_r,";"],a="for(var i="+xo+","+Xr+"="+Gi+"*"+xo+";i<"+Ol+";++i,"+Xr+"+="+Gi+"){var x0="+Qi+"["+Qr+"+"+Xr+"],x1="+Qi+"["+Qr+"+"+Xr+"+"+_r+"],xi="+Zp+"[i];",o="for(var j="+ko+","+Zr+"="+Gi+"*"+ko+";j<"+Nl+";++j,"+Zr+"+="+Gi+"){var y0="+Xi+"["+Qr+"+"+Zr+"],"+(r?"y1="+Xi+"["+Qr+"+"+Zr+"+"+_r+"],":"")+"yi="+eh+"[j];";return e?i.push(a,Hl,":",o):i.push(o,Hl,":",a),r?i.push("if(y1"+Nl+"-"+ko+"){"),e?(a(!0,!1),i.push("}else{"),a(!1,!1)):(i.push("if("+Fl+"){"),a(!0,!0),i.push("}else{"),a(!0,!1),i.push("}}else{if("+Fl+"){"),a(!1,!0),i.push("}else{"),a(!1,!1),i.push("}")),i.push("}}return "+t);var o=r.join("")+i.join(""),s=new Function(o);return s()}Kl.partial=th(!1);Kl.full=th(!0)});var $l=ot((QT,rh)=>{h();"use strict";rh.exports=Zx;var Xx="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";function Zx(e,t){var r="abcdef".split("").concat(t),n=[];return e.indexOf("lo")>=0&&n.push("lo=e[k+n]"),e.indexOf("hi")>=0&&n.push("hi=e[k+o]"),r.push(Xx.replace("_",n.join()).replace("$",e)),Function.apply(void 0,r)}});var oh=ot((XT,ah)=>{h();"use strict";ah.exports=rk;var ek=$l(),ih=ek("lor&&i[d+t]>l;--c,d-=o){for(var f=d,p=d+o,m=0;m>>1,l=2*e,c=u,d=i[l*u+t];o=b?(c=y,d=b):m>=T?(c=p,d=m):(c=k,d=T):b>=T?(c=y,d=b):T>=m?(c=p,d=m):(c=k,d=T);for(var D=l*(s-1),A=l*c,B=0;B{h();"use strict";fh.exports=gk;var ei=go(),Ul=ao(),sh=nh(),ik=sh.partial,ak=sh.full,ir=Pl(),ok=oh(),ti=$l(),lh=128,sk=1<<22,lk=1<<22,ck=ti("!(lo>=p0)&&!(p1>=hi)",["p0","p1"]),ch=ti("lo===p0",["p0"]),uk=ti("lo0;){l-=1;var f=l*Vl,p=Ut[f],m=Ut[f+1],y=Ut[f+2],b=Ut[f+3],k=Ut[f+4],T=Ut[f+5],D=l*zl,A=Dr[D],B=Dr[D+1],C=T&1,N=!!(T&16),U=i,W=a,te=s,Z=u;if(C&&(U=s,W=u,te=i,Z=a),!(T&2&&(y=uk(e,p,m,y,U,W,B),m>=y))&&!(T&4&&(m=dk(e,p,m,y,U,W,A),m>=y))){var le=y-m,X=k-b;if(N){if(e*le*(le+X){h();"use strict";gh.exports=Ek;var ar=go(),So=Pl(),vk=ph();function yk(e,t){for(var r=0;r>>1;if(!(o<=0)){var s,u=ar.mallocDouble(2*o*i),l=ar.mallocInt32(i);if(i=hh(e,o,u,l),i>0){if(o===1&&n)So.init(i),s=So.sweepComplete(o,r,0,i,u,l,0,i,u,l);else{var c=ar.mallocDouble(2*o*a),d=ar.mallocInt32(a);a=hh(t,o,c,d),a>0&&(So.init(i+a),o===1?s=So.sweepBipartite(o,r,0,i,u,l,0,a,c,d):s=vk(o,r,n,i,u,l,a,c,d),ar.free(c),ar.free(d))}ar.free(u),ar.free(l)}return s}}}var Zi;function mh(e,t){Zi.push([e,t])}function bk(e){return Zi=[],_o(e,e,mh,!0),Zi}function wk(e,t){return Zi=[],_o(e,t,mh,!1),Zi}function Ek(e,t,r){var n;switch(arguments.length){case 1:return bk(e);case 2:return typeof t=="function"?_o(e,e,t,!0):wk(e,t);case 3:return _o(e,t,r,!1);default:throw new Error("box-intersect: Invalid arguments")}}});var Bh=ot((nM,Mo)=>{h();var yh,bh,wh,Eh,xh,kh,Sh,_h,Dh,Co,Wl,Ch,Th,Mh,ni,Ih,Ah,Lh,Ph,Fh,Oh,Nh,Rh,Hh,To;(function(e){var t=typeof window=="object"?window:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof Mo=="object"&&typeof Mo.exports=="object"?e(r(t,r(Mo.exports))):e(r(t));function r(n,i){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(a,o){return n[a]=i?i(a,o):o}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])};yh=function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");t(n,i);function a(){this.constructor=n}n.prototype=i===null?Object.create(i):(a.prototype=i.prototype,new a)},bh=Object.assign||function(n){for(var i,a=1,o=arguments.length;a=0;c--)(l=n[c])&&(u=(s<3?l(u):s>3?l(i,a,u):l(i,a))||u);return s>3&&u&&Object.defineProperty(i,a,u),u},xh=function(n,i){return function(a,o){i(a,o,n)}},kh=function(n,i){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,i)},Sh=function(n,i,a,o){function s(u){return u instanceof a?u:new a(function(l){l(u)})}return new(a||(a=Promise))(function(u,l){function c(p){try{f(o.next(p))}catch(m){l(m)}}function d(p){try{f(o.throw(p))}catch(m){l(m)}}function f(p){p.done?u(p.value):s(p.value).then(c,d)}f((o=o.apply(n,i||[])).next())})},_h=function(n,i){var a={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},o,s,u,l;return l={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(f){return function(p){return d([f,p])}}function d(f){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,s&&(u=f[0]&2?s.return:f[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,f[1])).done)return u;switch(s=0,u&&(f=[f[0]&2,u.value]),f[0]){case 0:case 1:u=f;break;case 4:return a.label++,{value:f[1],done:!1};case 5:a.label++,s=f[1],f=[0];continue;case 7:f=a.ops.pop(),a.trys.pop();continue;default:if(u=a.trys,!(u=u.length>0&&u[u.length-1])&&(f[0]===6||f[0]===2)){a=0;continue}if(f[0]===3&&(!u||f[1]>u[0]&&f[1]=n.length&&(n=void 0),{value:n&&n[o++],done:!n}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")},Wl=function(n,i){var a=typeof Symbol=="function"&&n[Symbol.iterator];if(!a)return n;var o=a.call(n),s,u=[],l;try{for(;(i===void 0||i-- >0)&&!(s=o.next()).done;)u.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(a=o.return)&&a.call(o)}finally{if(l)throw l.error}}return u},Ch=function(){for(var n=[],i=0;i1||c(y,b)})})}function c(y,b){try{d(o[y](b))}catch(k){m(u[0][3],k)}}function d(y){y.value instanceof ni?Promise.resolve(y.value.v).then(f,p):m(u[0][2],y)}function f(y){c("next",y)}function p(y){c("throw",y)}function m(y,b){y(b),u.shift(),u.length&&c(u[0][0],u[0][1])}},Ah=function(n){var i,a;return i={},o("next"),o("throw",function(s){throw s}),o("return"),i[Symbol.iterator]=function(){return this},i;function o(s,u){i[s]=n[s]?function(l){return(a=!a)?{value:ni(n[s](l)),done:s==="return"}:u?u(l):l}:u}},Lh=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n[Symbol.asyncIterator],a;return i?i.call(n):(n=typeof Co=="function"?Co(n):n[Symbol.iterator](),a={},o("next"),o("throw"),o("return"),a[Symbol.asyncIterator]=function(){return this},a);function o(u){a[u]=n[u]&&function(l){return new Promise(function(c,d){l=n[u](l),s(c,d,l.done,l.value)})}}function s(u,l,c,d){Promise.resolve(d).then(function(f){u({value:f,done:c})},l)}},Ph=function(n,i){return Object.defineProperty?Object.defineProperty(n,"raw",{value:i}):n.raw=i,n};var r=Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i};Fh=function(n){if(n&&n.__esModule)return n;var i={};if(n!=null)for(var a in n)a!=="default"&&Object.prototype.hasOwnProperty.call(n,a)&&To(i,n,a);return r(i,n),i},Oh=function(n){return n&&n.__esModule?n:{default:n}},Nh=function(n,i,a,o){if(a==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof i=="function"?n!==i||!o:!i.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return a==="m"?o:a==="a"?o.call(n):o?o.value:i.get(n)},Rh=function(n,i,a,o,s){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof i=="function"?n!==i||!s:!i.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?s.call(n,a):s?s.value=a:i.set(n,a),a},Hh=function(n,i){if(i===null||typeof i!="object"&&typeof i!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?i===n:n.has(i)},e("__extends",yh),e("__assign",bh),e("__rest",wh),e("__decorate",Eh),e("__param",xh),e("__metadata",kh),e("__awaiter",Sh),e("__generator",_h),e("__exportStar",Dh),e("__createBinding",To),e("__values",Co),e("__read",Wl),e("__spread",Ch),e("__spreadArrays",Th),e("__spreadArray",Mh),e("__await",ni),e("__asyncGenerator",Ih),e("__asyncDelegator",Ah),e("__asyncValues",Lh),e("__makeTemplateObject",Ph),e("__importStar",Fh),e("__importDefault",Oh),e("__classPrivateFieldGet",Nh),e("__classPrivateFieldSet",Rh),e("__classPrivateFieldIn",Hh)})});var Gl=ot(Le=>{h();"use strict";Object.defineProperty(Le,"__esModule",{value:!0});var tt=require("obsidian"),Yl="YYYY-MM-DD",Jl="gggg-[W]ww",jh="YYYY-MM",qh="YYYY-[Q]Q",Yh="YYYY";function ta(e){let t=window.app.plugins.getPlugin("periodic-notes");return t&&t.settings?.[e]?.enabled}function na(){try{let{internalPlugins:e,plugins:t}=window.app;if(ta("daily")){let{format:a,folder:o,template:s}=t.getPlugin("periodic-notes")?.settings?.daily||{};return{format:a||Yl,folder:o?.trim()||"",template:s?.trim()||""}}let{folder:r,format:n,template:i}=e.getPluginById("daily-notes")?.instance?.options||{};return{format:n||Yl,folder:r?.trim()||"",template:i?.trim()||""}}catch(e){console.info("No custom daily note settings found!",e)}}function ra(){try{let e=window.app.plugins,t=e.getPlugin("calendar")?.options,r=e.getPlugin("periodic-notes")?.settings?.weekly;if(ta("weekly"))return{format:r.format||Jl,folder:r.folder?.trim()||"",template:r.template?.trim()||""};let n=t||{};return{format:n.weeklyNoteFormat||Jl,folder:n.weeklyNoteFolder?.trim()||"",template:n.weeklyNoteTemplate?.trim()||""}}catch(e){console.info("No custom weekly note settings found!",e)}}function ia(){let e=window.app.plugins;try{let t=ta("monthly")&&e.getPlugin("periodic-notes")?.settings?.monthly||{};return{format:t.format||jh,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom monthly note settings found!",t)}}function aa(){let e=window.app.plugins;try{let t=ta("quarterly")&&e.getPlugin("periodic-notes")?.settings?.quarterly||{};return{format:t.format||qh,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom quarterly note settings found!",t)}}function oa(){let e=window.app.plugins;try{let t=ta("yearly")&&e.getPlugin("periodic-notes")?.settings?.yearly||{};return{format:t.format||Yh,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom yearly note settings found!",t)}}function Jh(...e){let t=[];for(let n=0,i=e.length;n{let T=n(),D=e.clone().set({hour:T.get("hour"),minute:T.get("minute"),second:T.get("second")});return m&&D.add(parseInt(y,10),b),k?D.format(k.substring(1).trim()):D.format(a)}).replace(/{{\s*yesterday\s*}}/gi,e.clone().subtract(1,"day").format(a)).replace(/{{\s*tomorrow\s*}}/gi,e.clone().add(1,"d").format(a)));return t.foldManager.save(d,u),d}catch(d){console.error(`Failed to create file: '${c}'`,d),new tt.Notice("Unable to create new file.")}}function Rk(e,t){return t[wn(e,"day")]??null}function Hk(){let{vault:e}=window.app,{folder:t}=na(),r=e.getAbstractFileByPath(tt.normalizePath(t));if(!r)throw new Xh("Failed to find daily notes folder");let n={};return tt.Vault.recurseChildren(r,i=>{if(i instanceof tt.TFile){let a=oi(i,"day");if(a){let o=wn(a,"day");n[o]=i}}}),n}var em=class extends Error{};function Bk(){let{moment:e}=window,t=e.localeData()._week.dow,r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];for(;t;)r.push(r.shift()),t--;return r}function Kk(e){return Bk().indexOf(e.toLowerCase())}async function tm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ra(),[a,o]=await ai(r),s=e.format(n),u=await sa(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,y)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),y?k.format(y.substring(1).trim()):k.format(n)}).replace(/{{\s*title\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi,(c,d,f)=>{let p=Kk(d);return e.weekday(p).format(f.trim())}));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function $k(e,t){return t[wn(e,"week")]??null}function Uk(){let e={};if(!om())return e;let{vault:t}=window.app,{folder:r}=ra(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new em("Failed to find weekly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=oi(i,"week");if(a){let o=wn(a,"week");e[o]=i}}}),e}var nm=class extends Error{};async function rm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ia(),[a,o]=await ai(r),s=e.format(n),u=await sa(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,y)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),y?k.format(y.substring(1).trim()):k.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function Vk(e,t){return t[wn(e,"month")]??null}function zk(){let e={};if(!sm())return e;let{vault:t}=window.app,{folder:r}=ia(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new nm("Failed to find monthly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=oi(i,"month");if(a){let o=wn(a,"month");e[o]=i}}}),e}var im=class extends Error{};async function Wk(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=aa(),[a,o]=await ai(r),s=e.format(n),u=await sa(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,y)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),y?k.format(y.substring(1).trim()):k.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function jk(e,t){return t[wn(e,"quarter")]??null}function qk(){let e={};if(!lm())return e;let{vault:t}=window.app,{folder:r}=aa(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new im("Failed to find quarterly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=oi(i,"quarter");if(a){let o=wn(a,"quarter");e[o]=i}}}),e}var am=class extends Error{};async function Yk(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=oa(),[a,o]=await ai(r),s=e.format(n),u=await sa(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,y)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),y?k.format(y.substring(1).trim()):k.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function Jk(e,t){return t[wn(e,"year")]??null}function Gk(){let e={};if(!cm())return e;let{vault:t}=window.app,{folder:r}=oa(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new am("Failed to find yearly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=oi(i,"year");if(a){let o=wn(a,"year");e[o]=i}}}),e}function Qk(){let{app:e}=window,t=e.internalPlugins.plugins["daily-notes"];if(t&&t.enabled)return!0;let r=e.plugins.getPlugin("periodic-notes");return r&&r.settings?.daily?.enabled}function om(){let{app:e}=window;if(e.plugins.getPlugin("calendar"))return!0;let t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.weekly?.enabled}function sm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.monthly?.enabled}function lm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.quarterly?.enabled}function cm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.yearly?.enabled}function Xk(e){return{day:na,week:ra,month:ia,quarter:aa,year:oa}[e]()}function Zk(e,t){return{day:Zh,month:rm,week:tm}[e](t)}Le.DEFAULT_DAILY_NOTE_FORMAT=Yl;Le.DEFAULT_MONTHLY_NOTE_FORMAT=jh;Le.DEFAULT_QUARTERLY_NOTE_FORMAT=qh;Le.DEFAULT_WEEKLY_NOTE_FORMAT=Jl;Le.DEFAULT_YEARLY_NOTE_FORMAT=Yh;Le.appHasDailyNotesPluginLoaded=Qk;Le.appHasMonthlyNotesPluginLoaded=sm;Le.appHasQuarterlyNotesPluginLoaded=lm;Le.appHasWeeklyNotesPluginLoaded=om;Le.appHasYearlyNotesPluginLoaded=cm;Le.createDailyNote=Zh;Le.createMonthlyNote=rm;Le.createPeriodicNote=Zk;Le.createQuarterlyNote=Wk;Le.createWeeklyNote=tm;Le.createYearlyNote=Yk;Le.getAllDailyNotes=Hk;Le.getAllMonthlyNotes=zk;Le.getAllQuarterlyNotes=qk;Le.getAllWeeklyNotes=Uk;Le.getAllYearlyNotes=Gk;Le.getDailyNote=Rk;Le.getDailyNoteSettings=na;Le.getDateFromFile=oi;Le.getDateFromPath=Nk;Le.getDateUID=wn;Le.getMonthlyNote=Vk;Le.getMonthlyNoteSettings=ia;Le.getPeriodicNoteSettings=Xk;Le.getQuarterlyNote=jk;Le.getQuarterlyNoteSettings=aa;Le.getTemplateInfo=ai;Le.getWeeklyNote=$k;Le.getWeeklyNoteSettings=ra;Le.getYearlyNote=Jk;Le.getYearlyNoteSettings=oa});var ha=ot((kF,Lu)=>{h();"use strict";var a0=Object.prototype.hasOwnProperty,Vt="~";function pa(){}Object.create&&(pa.prototype=Object.create(null),new pa().__proto__||(Vt=!1));function o0(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function Iv(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new o0(r,n||e,i),o=Vt?Vt+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],a]:e._events[o].push(a):(e._events[o]=a,e._eventsCount++),e}function rs(e,t){--e._eventsCount==0?e._events=new pa:delete e._events[t]}function Rt(){this._events=new pa,this._eventsCount=0}Rt.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)a0.call(r,n)&&t.push(Vt?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Rt.prototype.listeners=function(t){var r=Vt?Vt+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=new Array(a);i{h();(function(){var e=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],t=typeof window!="undefined",r=t&&window.mozInnerScreenX!=null;function n(i,a,o){if(!t)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");var s=o&&o.debug||!1;if(s){var u=document.querySelector("#input-textarea-caret-position-mirror-div");u&&u.parentNode.removeChild(u)}var l=document.createElement("div");l.id="input-textarea-caret-position-mirror-div",document.body.appendChild(l);var c=l.style,d=window.getComputedStyle?window.getComputedStyle(i):i.currentStyle,f=i.nodeName==="INPUT";c.whiteSpace="pre-wrap",f||(c.wordWrap="break-word"),c.position="absolute",s||(c.visibility="hidden"),e.forEach(function(y){f&&y==="lineHeight"?c.lineHeight=d.height:c[y]=d[y]}),r?i.scrollHeight>parseInt(d.height)&&(c.overflowY="scroll"):c.overflow="hidden",l.textContent=i.value.substring(0,a),f&&(l.textContent=l.textContent.replace(/\s/g,"\xA0"));var p=document.createElement("span");p.textContent=i.value.substring(a)||".",l.appendChild(p);var m={top:p.offsetTop+parseInt(d.borderTopWidth),left:p.offsetLeft+parseInt(d.borderLeftWidth),height:parseInt(d.lineHeight)};return s?p.style.backgroundColor="#aaa":document.body.removeChild(l),m}typeof is!="undefined"&&typeof is.exports!="undefined"?is.exports=n:t&&(window.getCaretCoordinates=n)})()});var ry=ot((Wu,ju)=>{h();(function(e,t){typeof Wu=="object"&&typeof ju!="undefined"?ju.exports=t():typeof define=="function"&&define.amd?define(t):e.Mark=t()})(Wu,function(){"use strict";var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},t=function(s,u){if(!(s instanceof u))throw new TypeError("Cannot call a class as a function")},r=function(){function s(u,l){for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:!0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5e3;t(this,s),this.ctx=u,this.iframes=l,this.exclude=c,this.iframesTimeout=d}return r(s,[{key:"getContexts",value:function(){var l=void 0,c=[];return typeof this.ctx=="undefined"||!this.ctx?l=[]:NodeList.prototype.isPrototypeOf(this.ctx)?l=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?l=this.ctx:typeof this.ctx=="string"?l=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):l=[this.ctx],l.forEach(function(d){var f=c.filter(function(p){return p.contains(d)}).length>0;c.indexOf(d)===-1&&!f&&c.push(d)}),c}},{key:"getIframeContents",value:function(l,c){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},f=void 0;try{var p=l.contentWindow;if(f=p.document,!p||!f)throw new Error("iframe inaccessible")}catch(m){d()}f&&c(f)}},{key:"isIframeBlank",value:function(l){var c="about:blank",d=l.getAttribute("src").trim(),f=l.contentWindow.location.href;return f===c&&d!==c&&d}},{key:"observeIframeLoad",value:function(l,c,d){var f=this,p=!1,m=null,y=function b(){if(!p){p=!0,clearTimeout(m);try{f.isIframeBlank(l)||(l.removeEventListener("load",b),f.getIframeContents(l,c,d))}catch(k){d()}}};l.addEventListener("load",y),m=setTimeout(y,this.iframesTimeout)}},{key:"onIframeReady",value:function(l,c,d){try{l.contentWindow.document.readyState==="complete"?this.isIframeBlank(l)?this.observeIframeLoad(l,c,d):this.getIframeContents(l,c,d):this.observeIframeLoad(l,c,d)}catch(f){d()}}},{key:"waitForIframes",value:function(l,c){var d=this,f=0;this.forEachIframe(l,function(){return!0},function(p){f++,d.waitForIframes(p.querySelector("html"),function(){--f||c()})},function(p){p||c()})}},{key:"forEachIframe",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},m=l.querySelectorAll("iframe"),y=m.length,b=0;m=Array.prototype.slice.call(m);var k=function(){--y<=0&&p(b)};y||k(),m.forEach(function(T){s.matches(T,f.exclude)?k():f.onIframeReady(T,function(D){c(T)&&(b++,d(D)),k()},k)})}},{key:"createIterator",value:function(l,c,d){return document.createNodeIterator(l,c,d,!1)}},{key:"createInstanceOnIframe",value:function(l){return new s(l.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(l,c,d){var f=l.compareDocumentPosition(d),p=Node.DOCUMENT_POSITION_PRECEDING;if(f&p)if(c!==null){var m=c.compareDocumentPosition(d),y=Node.DOCUMENT_POSITION_FOLLOWING;if(m&y)return!0}else return!0;return!1}},{key:"getIteratorNode",value:function(l){var c=l.previousNode(),d=void 0;return c===null?d=l.nextNode():d=l.nextNode()&&l.nextNode(),{prevNode:c,node:d}}},{key:"checkIframeFilter",value:function(l,c,d,f){var p=!1,m=!1;return f.forEach(function(y,b){y.val===d&&(p=b,m=y.handled)}),this.compareNodeIframe(l,c,d)?(p===!1&&!m?f.push({val:d,handled:!0}):p!==!1&&!m&&(f[p].handled=!0),!0):(p===!1&&f.push({val:d,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(l,c,d,f){var p=this;l.forEach(function(m){m.handled||p.getIframeContents(m.val,function(y){p.createInstanceOnIframe(y).forEachNode(c,d,f)})})}},{key:"iterateThroughNodes",value:function(l,c,d,f,p){for(var m=this,y=this.createIterator(c,l,f),b=[],k=[],T=void 0,D=void 0,A=function(){var C=m.getIteratorNode(y);return D=C.prevNode,T=C.node,T};A();)this.iframes&&this.forEachIframe(c,function(B){return m.checkIframeFilter(T,D,B,b)},function(B){m.createInstanceOnIframe(B).forEachNode(l,function(C){return k.push(C)},f)}),k.push(T);k.forEach(function(B){d(B)}),this.iframes&&this.handleOpenIframes(b,l,d,f),p()}},{key:"forEachNode",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},m=this.getContexts(),y=m.length;y||p(),m.forEach(function(b){var k=function(){f.iterateThroughNodes(l,b,c,d,function(){--y<=0&&p()})};f.iframes?f.waitForIframes(b,k):k()})}}],[{key:"matches",value:function(l,c){var d=typeof c=="string"?[c]:c,f=l.matches||l.matchesSelector||l.msMatchesSelector||l.mozMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector;if(f){var p=!1;return d.every(function(m){return f.call(l,m)?(p=!0,!1):!0}),p}else return!1}}]),s}(),a=function(){function s(u){t(this,s),this.ctx=u,this.ie=!1;var l=window.navigator.userAgent;(l.indexOf("MSIE")>-1||l.indexOf("Trident")>-1)&&(this.ie=!0)}return r(s,[{key:"log",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"debug",d=this.opt.log;!this.opt.debug||(typeof d=="undefined"?"undefined":e(d))==="object"&&typeof d[c]=="function"&&d[c]("mark.js: "+l)}},{key:"escapeStr",value:function(l){return l.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(l){return this.opt.wildcards!=="disabled"&&(l=this.setupWildcardsRegExp(l)),l=this.escapeStr(l),Object.keys(this.opt.synonyms).length&&(l=this.createSynonymsRegExp(l)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),this.opt.diacritics&&(l=this.createDiacriticsRegExp(l)),l=this.createMergedBlanksRegExp(l),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.createJoinersRegExp(l)),this.opt.wildcards!=="disabled"&&(l=this.createWildcardsRegExp(l)),l=this.createAccuracyRegExp(l),l}},{key:"createSynonymsRegExp",value:function(l){var c=this.opt.synonyms,d=this.opt.caseSensitive?"":"i",f=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var p in c)if(c.hasOwnProperty(p)){var m=c[p],y=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(p):this.escapeStr(p),b=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(m):this.escapeStr(m);y!==""&&b!==""&&(l=l.replace(new RegExp("("+this.escapeStr(y)+"|"+this.escapeStr(b)+")","gm"+d),f+("("+this.processSynomyms(y)+"|")+(this.processSynomyms(b)+")")+f))}return l}},{key:"processSynomyms",value:function(l){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),l}},{key:"setupWildcardsRegExp",value:function(l){return l=l.replace(/(?:\\)*\?/g,function(c){return c.charAt(0)==="\\"?"?":""}),l.replace(/(?:\\)*\*/g,function(c){return c.charAt(0)==="\\"?"*":""})}},{key:"createWildcardsRegExp",value:function(l){var c=this.opt.wildcards==="withSpaces";return l.replace(/\u0001/g,c?"[\\S\\s]?":"\\S?").replace(/\u0002/g,c?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(l){return l.replace(/[^(|)\\]/g,function(c,d,f){var p=f.charAt(d+1);return/[(|)\\]/.test(p)||p===""?c:c+"\0"})}},{key:"createJoinersRegExp",value:function(l){var c=[],d=this.opt.ignorePunctuation;return Array.isArray(d)&&d.length&&c.push(this.escapeStr(d.join(""))),this.opt.ignoreJoiners&&c.push("\\u00ad\\u200b\\u200c\\u200d"),c.length?l.split(/\u0000+/).join("["+c.join("")+"]*"):l}},{key:"createDiacriticsRegExp",value:function(l){var c=this.opt.caseSensitive?"":"i",d=this.opt.caseSensitive?["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105","A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010D","C\xC7\u0106\u010C","d\u0111\u010F","D\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119","E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012B","I\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142","L\u0141","n\xF1\u0148\u0144","N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014D","O\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159","R\u0158","s\u0161\u015B\u0219\u015F","S\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163","T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016B","U\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFF","Y\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017A","Z\u017D\u017B\u0179"]:["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010DC\xC7\u0106\u010C","d\u0111\u010FD\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012BI\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142L\u0141","n\xF1\u0148\u0144N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014DO\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159R\u0158","s\u0161\u015B\u0219\u015FS\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016BU\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFFY\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017AZ\u017D\u017B\u0179"],f=[];return l.split("").forEach(function(p){d.every(function(m){if(m.indexOf(p)!==-1){if(f.indexOf(m)>-1)return!1;l=l.replace(new RegExp("["+m+"]","gm"+c),"["+m+"]"),f.push(m)}return!0})}),l}},{key:"createMergedBlanksRegExp",value:function(l){return l.replace(/[\s]+/gmi,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(l){var c=this,d="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xA1\xBF",f=this.opt.accuracy,p=typeof f=="string"?f:f.value,m=typeof f=="string"?[]:f.limiters,y="";switch(m.forEach(function(b){y+="|"+c.escapeStr(b)}),p){case"partially":default:return"()("+l+")";case"complementary":return y="\\s"+(y||this.escapeStr(d)),"()([^"+y+"]*"+l+"[^"+y+"]*)";case"exactly":return"(^|\\s"+y+")("+l+")(?=$|\\s"+y+")"}}},{key:"getSeparatedKeywords",value:function(l){var c=this,d=[];return l.forEach(function(f){c.opt.separateWordSearch?f.split(" ").forEach(function(p){p.trim()&&d.indexOf(p)===-1&&d.push(p)}):f.trim()&&d.indexOf(f)===-1&&d.push(f)}),{keywords:d.sort(function(f,p){return p.length-f.length}),length:d.length}}},{key:"isNumeric",value:function(l){return Number(parseFloat(l))==l}},{key:"checkRanges",value:function(l){var c=this;if(!Array.isArray(l)||Object.prototype.toString.call(l[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(l),[];var d=[],f=0;return l.sort(function(p,m){return p.start-m.start}).forEach(function(p){var m=c.callNoMatchOnInvalidRanges(p,f),y=m.start,b=m.end,k=m.valid;k&&(p.start=y,p.length=b-y,d.push(p),f=b)}),d}},{key:"callNoMatchOnInvalidRanges",value:function(l,c){var d=void 0,f=void 0,p=!1;return l&&typeof l.start!="undefined"?(d=parseInt(l.start,10),f=d+parseInt(l.length,10),this.isNumeric(l.start)&&this.isNumeric(l.length)&&f-c>0&&f-d>0?p=!0:(this.log("Ignoring invalid or overlapping range: "+(""+JSON.stringify(l))),this.opt.noMatch(l))):(this.log("Ignoring invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:d,end:f,valid:p}}},{key:"checkWhitespaceRanges",value:function(l,c,d){var f=void 0,p=!0,m=d.length,y=c-m,b=parseInt(l.start,10)-y;return b=b>m?m:b,f=b+parseInt(l.length,10),f>m&&(f=m,this.log("End range automatically set to the max value of "+m)),b<0||f-b<0||b>m||f>m?(p=!1,this.log("Invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)):d.substring(b,f).replace(/\s+/g,"")===""&&(p=!1,this.log("Skipping whitespace only range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:b,end:f,valid:p}}},{key:"getTextNodes",value:function(l){var c=this,d="",f=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(p){f.push({start:d.length,end:(d+=p.textContent).length,node:p})},function(p){return c.matchesExclude(p.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){l({value:d,nodes:f})})}},{key:"matchesExclude",value:function(l){return i.matches(l,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(l,c,d){var f=this.opt.element?this.opt.element:"mark",p=l.splitText(c),m=p.splitText(d-c),y=document.createElement(f);return y.setAttribute("data-markjs","true"),this.opt.className&&y.setAttribute("class",this.opt.className),y.textContent=p.textContent,p.parentNode.replaceChild(y,p),m}},{key:"wrapRangeInMappedTextNode",value:function(l,c,d,f,p){var m=this;l.nodes.every(function(y,b){var k=l.nodes[b+1];if(typeof k=="undefined"||k.start>c){if(!f(y.node))return!1;var T=c-y.start,D=(d>y.end?y.end:d)-y.start,A=l.value.substr(0,y.start),B=l.value.substr(D+y.start);if(y.node=m.wrapRangeInTextNode(y.node,T,D),l.value=A+B,l.nodes.forEach(function(C,N){N>=b&&(l.nodes[N].start>0&&N!==b&&(l.nodes[N].start-=D),l.nodes[N].end-=D)}),d-=D,p(y.node.previousSibling,y.start),d>y.end)c=y.end;else return!1}return!0})}},{key:"wrapMatches",value:function(l,c,d,f,p){var m=this,y=c===0?0:c+1;this.getTextNodes(function(b){b.nodes.forEach(function(k){k=k.node;for(var T=void 0;(T=l.exec(k.textContent))!==null&&T[y]!=="";)if(!!d(T[y],k)){var D=T.index;if(y!==0)for(var A=1;A{h();(function(t,r){typeof xs=="object"&&typeof sd=="object"?sd.exports=r():typeof define=="function"&&define.amd?define([],r):typeof xs=="object"?xs.Choices=r():t.Choices=r()})(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:a})},r.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,i){if(i&1&&(n=r(n)),i&8||i&4&&typeof n=="object"&&n&&n.__esModule)return n;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:n}),i&2&&typeof n!="string")for(var o in n)r.d(a,o,function(s){return n[s]}.bind(null,o));return a},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="/public/assets/scripts/",r(r.s=4)}([function(e,t,r){"use strict";var n=function(A){return i(A)&&!a(A)};function i(D){return!!D&&typeof D=="object"}function a(D){var A=Object.prototype.toString.call(D);return A==="[object RegExp]"||A==="[object Date]"||u(D)}var o=typeof Symbol=="function"&&Symbol.for,s=o?Symbol.for("react.element"):60103;function u(D){return D.$$typeof===s}function l(D){return Array.isArray(D)?[]:{}}function c(D,A){return A.clone!==!1&&A.isMergeableObject(D)?k(l(D),D,A):D}function d(D,A,B){return D.concat(A).map(function(C){return c(C,B)})}function f(D,A){if(!A.customMerge)return k;var B=A.customMerge(D);return typeof B=="function"?B:k}function p(D){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(D).filter(function(A){return D.propertyIsEnumerable(A)}):[]}function m(D){return Object.keys(D).concat(p(D))}function y(D,A){try{return A in D&&!(Object.hasOwnProperty.call(D,A)&&Object.propertyIsEnumerable.call(D,A))}catch(B){return!1}}function b(D,A,B){var C={};return B.isMergeableObject(D)&&m(D).forEach(function(N){C[N]=c(D[N],B)}),m(A).forEach(function(N){y(D,N)||(!B.isMergeableObject(A[N])||!D[N]?C[N]=c(A[N],B):C[N]=f(N,B)(D[N],A[N],B))}),C}function k(D,A,B){B=B||{},B.arrayMerge=B.arrayMerge||d,B.isMergeableObject=B.isMergeableObject||n,B.cloneUnlessOtherwiseSpecified=c;var C=Array.isArray(A),N=Array.isArray(D),U=C===N;return U?C?B.arrayMerge(D,A,B):b(D,A,B):c(A,B)}k.all=function(A,B){if(!Array.isArray(A))throw new Error("first argument should be an array");return A.reduce(function(C,N){return k(C,N,B)},{})};var T=k;e.exports=T},function(e,t,r){"use strict";(function(n,i){var a=r(3),o;typeof self!="undefined"?o=self:typeof window!="undefined"?o=window:typeof n!="undefined"?o=n:o=i;var s=Object(a.a)(o);t.a=s}).call(this,r(5),r(6)(e))},function(e,t,r){(function(n,i){e.exports=i()})(this,function(){return function(n){var i={};function a(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return n[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=n,a.c=i,a.d=function(o,s,u){a.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:u})},a.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},a.t=function(o,s){if(1&s&&(o=a(o)),8&s||4&s&&typeof o=="object"&&o&&o.__esModule)return o;var u=Object.create(null);if(a.r(u),Object.defineProperty(u,"default",{enumerable:!0,value:o}),2&s&&typeof o!="string")for(var l in o)a.d(u,l,function(c){return o[c]}.bind(null,l));return u},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="",a(a.s=1)}([function(n,i){n.exports=function(a){return Array.isArray?Array.isArray(a):Object.prototype.toString.call(a)==="[object Array]"}},function(n,i,a){function o(f){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p})(f)}function s(f,p){for(var m=0;m1&&arguments[1]!==void 0?arguments[1]:{limit:!1};this._log(`--------- -Search pattern: "`.concat(b,'"'));var T=this._prepareSearchers(b),D=T.tokenSearchers,A=T.fullSearcher,B=this._search(D,A),C=B.weights,N=B.results;return this._computeScore(C,N),this.options.shouldSort&&this._sort(N),k.limit&&typeof k.limit=="number"&&(N=N.slice(0,k.limit)),this._format(N)}},{key:"_prepareSearchers",value:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",k=[];if(this.options.tokenize)for(var T=b.split(this.options.tokenSeparator),D=0,A=T.length;D0&&arguments[0]!==void 0?arguments[0]:[],k=arguments.length>1?arguments[1]:void 0,T=this.list,D={},A=[];if(typeof T[0]=="string"){for(var B=0,C=T.length;B1)throw new Error("Key weight has to be > 0 and <= 1");X=X.name}else N[X]={weight:1};this._analyze({key:X,value:this.options.getFn(te,X),record:te,index:U},{resultMap:D,results:A,tokenSearchers:b,fullSearcher:k})}return{weights:N,results:A}}},{key:"_analyze",value:function(b,k){var T=b.key,D=b.arrayIndex,A=D===void 0?-1:D,B=b.value,C=b.record,N=b.index,U=k.tokenSearchers,W=U===void 0?[]:U,te=k.fullSearcher,Z=te===void 0?[]:te,le=k.resultMap,X=le===void 0?{}:le,G=k.results,re=G===void 0?[]:G;if(B!=null){var pe=!1,he=-1,ve=0;if(typeof B=="string"){this._log(` -Key: `.concat(T===""?"-":T));var be=Z.search(B);if(this._log('Full text: "'.concat(B,'", score: ').concat(be.score)),this.options.tokenize){for(var Te=B.split(this.options.tokenSeparator),L=[],P=0;P-1&&($e=($e+he)/2),this._log("Score average:",$e);var ut=!this.options.tokenize||!this.options.matchAllTokens||ve>=W.length;if(this._log(` -Check Matches: `.concat(ut)),(pe||be.isMatch)&&ut){var ht=X[N];ht?ht.output.push({key:T,arrayIndex:A,value:B,score:$e,matchedIndices:be.matchedIndices}):(X[N]={item:C,output:[{key:T,arrayIndex:A,value:B,score:$e,matchedIndices:be.matchedIndices}]},re.push(X[N]))}}else if(c(B))for(var Lt=0,An=B.length;LtBa(e,"__esModule",{value:!0});var nl=(e,t)=>()=>(e&&(t=e(e=0)),t);var dt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ti=(e,t)=>{Qd(e);for(var r in t)Ba(e,r,{get:t[r],enumerable:!0})},Xw=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Jw(t))!Qw.call(e,n)&&n!=="default"&&Ba(e,n,{get:()=>t[n],enumerable:!(r=Yw(t,n))||r.enumerable});return e},ye=e=>Xw(Qd(Ba(e!=null?qw(Gw(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);function On(e,t){for(var r in t)e[r]=t[r];return e}function rf(e){var t=e.parentNode;t&&t.removeChild(e)}function y(e,t,r){var n,i,a,o={};for(a in t)a=="key"?n=t[a]:a=="ref"?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Mi.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return Ai(e,o,n,i,null)}function Ai(e,t,r,n,i){var a={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:i??++Xd};return i==null&&fe.vnode!=null&&fe.vnode(a),a}function Li(){return{current:null}}function S(e){return e.children}function vt(e,t){this.props=e,this.context=t}function Ur(e,t){if(t==null)return e.__?Ur(e.__,e.__.__k.indexOf(e)+1):null;for(var r;t0?Ai(p.type,p.props,p.key,null,p.__v):p)!=null){if(p.__=r,p.__b=r.__b+1,(f=k[c])===null||f&&p.key==f.key&&p.type===f.type)k[c]=void 0;else for(d=0;d2&&(o.children=arguments.length>3?Mi.call(arguments,2):r),Ai(e.type,o,n||e.key,i||e.ref,null)}function Pi(e,t){var r={__c:t="__cC"+tf++,__:e,Consumer:function(n,i){return n.children(i)},Provider:function(n){var i,a;return this.getChildContext||(i=[],(a={})[t]=this,this.getChildContext=function(){return a},this.shouldComponentUpdate=function(o){this.props.value!==o.value&&i.some(rl)},this.sub=function(o){i.push(o);var s=o.componentWillUnmount;o.componentWillUnmount=function(){i.splice(i.indexOf(o),1),s&&s.call(o)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}var Mi,fe,Xd,Zw,Ii,Zd,ef,tf,Ka,nf,eE,vr=nl(()=>{h();Ka={},nf=[],eE=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;Mi=nf.slice,fe={__e:function(e,t,r,n){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,n||{}),o=i.__d),o)return i.__E=i}catch(s){e=s}throw e}},Xd=0,Zw=function(e){return e!=null&&e.constructor===void 0},vt.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=On({},this.state),typeof e=="function"&&(e=e(On({},r),this.props)),e&&On(r,e),e!=null&&this.__v&&(t&&this.__h.push(t),rl(this))},vt.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),rl(this))},vt.prototype.render=S,Ii=[],Zd=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$a.__r=0,tf=0});var h=nl(()=>{vr()});var _t=dt((kn,$f)=>{h();"use strict";Object.defineProperty(kn,"__esModule",{value:!0});function vn(e){return typeof e=="object"&&!("toString"in e)?Object.prototype.toString.call(e).slice(8,-1):e}var IE=typeof process=="object"&&!0;function cn(e,t){if(!e)throw IE?new Error("Invariant failed"):new Error(t())}kn.invariant=cn;var ml=Object.prototype.hasOwnProperty,AE=Array.prototype.splice,LE=Object.prototype.toString;function br(e){return LE.call(e).slice(8,-1)}var Ga=Object.assign||function(e,t){return gl(t).forEach(function(r){ml.call(t,r)&&(e[r]=t[r])}),e},gl=typeof Object.getOwnPropertySymbols=="function"?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function Xn(e){return Array.isArray(e)?Ga(e.constructor(e.length),e):br(e)==="Map"?new Map(e):br(e)==="Set"?new Set(e):e&&typeof e=="object"?Ga(Object.create(Object.getPrototypeOf(e)),e):e}var Rf=function(){function e(){this.commands=Ga({},PE),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(t,r){return t===r},this.update.newContext=function(){return new e().update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(t){this.update.isEquals=t},enumerable:!0,configurable:!0}),e.prototype.extend=function(t,r){this.commands[t]=r},e.prototype.update=function(t,r){var n=this,i=typeof r=="function"?{$apply:r}:r;Array.isArray(t)&&Array.isArray(i)||cn(!Array.isArray(i),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),cn(typeof i=="object"&&i!==null,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the "+("following commands: "+Object.keys(n.commands).join(", ")+".")});var a=t;return gl(i).forEach(function(o){if(ml.call(n.commands,o)){var s=t===a;a=n.commands[o](i[o],a,i,t),s&&n.isEquals(a,t)&&(a=t)}else{var u=br(t)==="Map"?n.update(t.get(o),i[o]):n.update(t[o],i[o]),l=br(a)==="Map"?a.get(o):a[o];(!n.isEquals(u,l)||typeof u=="undefined"&&!ml.call(t,o))&&(a===t&&(a=Xn(t)),br(a)==="Map"?a.set(o,u):a[o]=u)}}),a},e}();kn.Context=Rf;var PE={$push:function(e,t,r){return Hf(t,r,"$push"),e.length?t.concat(e):t},$unshift:function(e,t,r){return Hf(t,r,"$unshift"),e.length?e.concat(t):t},$splice:function(e,t,r,n){return FE(t,r),e.forEach(function(i){Bf(i),t===n&&i.length&&(t=Xn(n)),AE.apply(t,i)}),t},$set:function(e,t,r){return NE(r),e},$toggle:function(e,t){$i(e,"$toggle");var r=e.length?Xn(t):t;return e.forEach(function(n){r[n]=!t[n]}),r},$unset:function(e,t,r,n){return $i(e,"$unset"),e.forEach(function(i){Object.hasOwnProperty.call(t,i)&&(t===n&&(t=Xn(n)),delete t[i])}),t},$add:function(e,t,r,n){return Kf(t,"$add"),$i(e,"$add"),br(t)==="Map"?e.forEach(function(i){var a=i[0],o=i[1];t===n&&t.get(a)!==o&&(t=Xn(n)),t.set(a,o)}):e.forEach(function(i){t===n&&!t.has(i)&&(t=Xn(n)),t.add(i)}),t},$remove:function(e,t,r,n){return Kf(t,"$remove"),$i(e,"$remove"),e.forEach(function(i){t===n&&t.has(i)&&(t=Xn(n)),t.delete(i)}),t},$merge:function(e,t,r,n){return RE(t,e),gl(e).forEach(function(i){e[i]!==t[i]&&(t===n&&(t=Xn(n)),t[i]=e[i])}),t},$apply:function(e,t){return OE(e),e(t)}},yl=new Rf;kn.isEquals=yl.update.isEquals;kn.extend=yl.extend;kn.default=yl.update;kn.default.default=$f.exports=Ga(kn.default,kn);function Hf(e,t,r){cn(Array.isArray(e),function(){return"update(): expected target of "+vn(r)+" to be an array; got "+vn(e)+"."}),$i(t[r],r)}function $i(e,t){cn(Array.isArray(e),function(){return"update(): expected spec of "+vn(t)+" to be an array; got "+vn(e)+". Did you forget to wrap your parameter in an array?"})}function FE(e,t){cn(Array.isArray(e),function(){return"Expected $splice target to be an array; got "+vn(e)}),Bf(t.$splice)}function Bf(e){cn(Array.isArray(e),function(){return"update(): expected spec of $splice to be an array of arrays; got "+vn(e)+". Did you forget to wrap your parameters in an array?"})}function OE(e){cn(typeof e=="function",function(){return"update(): expected spec of $apply to be a function; got "+vn(e)+"."})}function NE(e){cn(Object.keys(e).length===1,function(){return"Cannot have more than one key in an object with $set"})}function RE(e,t){cn(t&&typeof t=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+vn(t)}),cn(e&&typeof e=="object",function(){return"update(): $merge expects a target of type 'object'; got "+vn(e)})}function Kf(e,t){var r=br(e);cn(r==="Map"||r==="Set",function(){return"update(): "+vn(t)+" expects a target of type Set or Map; got "+vn(r)})}});var zf=dt((fT,Vf)=>{h();"use strict";var HE=function(t){return BE(t)&&!KE(t)};function BE(e){return!!e&&typeof e=="object"}function KE(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||WE(e)}var $E=typeof Symbol=="function"&&Symbol.for,UE=$E?Symbol.for("react.element"):60103;function WE(e){return e.$$typeof===UE}function VE(e){return Array.isArray(e)?[]:{}}function Ui(e,t){return t.clone!==!1&&t.isMergeableObject(e)?zr(VE(e),e,t):e}function zE(e,t,r){return e.concat(t).map(function(n){return Ui(n,r)})}function jE(e,t){if(!t.customMerge)return zr;var r=t.customMerge(e);return typeof r=="function"?r:zr}function qE(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function Uf(e){return Object.keys(e).concat(qE(e))}function Wf(e,t){try{return t in e}catch(r){return!1}}function YE(e,t){return Wf(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function JE(e,t,r){var n={};return r.isMergeableObject(e)&&Uf(e).forEach(function(i){n[i]=Ui(e[i],r)}),Uf(t).forEach(function(i){YE(e,i)||(Wf(e,i)&&r.isMergeableObject(t[i])?n[i]=jE(i,r)(e[i],t[i],r):n[i]=Ui(t[i],r))}),n}function zr(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||zE,r.isMergeableObject=r.isMergeableObject||HE,r.cloneUnlessOtherwiseSpecified=Ui;var n=Array.isArray(t),i=Array.isArray(e),a=n===i;return a?n?r.arrayMerge(e,t,r):JE(e,t,r):Ui(t,r)}zr.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,i){return zr(n,i,r)},{})};var GE=zr;Vf.exports=GE});var ao=dt(rt=>{h();"use strict";var Tl=32;rt.INT_BITS=Tl;rt.INT_MAX=2147483647;rt.INT_MIN=-1<0)-(e<0)};rt.abs=function(e){var t=e>>Tl-1;return(e^t)-t};rt.min=function(e,t){return t^(e^t)&-(e65535)<<4,e>>>=t,r=(e>255)<<3,e>>>=r,t|=r,r=(e>15)<<2,e>>>=r,t|=r,r=(e>3)<<1,e>>>=r,t|=r,t|e>>1};rt.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};rt.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function sp(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}rt.countTrailingZeros=sp;rt.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};rt.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};rt.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var Ji=new Array(256);(function(e){for(var t=0;t<256;++t){var r=t,n=t,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=r&1,--i;e[t]=n<>>8&255]<<16|Ji[e>>>16&255]<<8|Ji[e>>>24&255]};rt.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};rt.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};rt.interleave3=function(e,t,r){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,r&=1023,r=(r|r<<16)&4278190335,r=(r|r<<8)&251719695,r=(r|r<<4)&3272356035,r=(r|r<<2)&1227133513,e|r<<2};rt.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};rt.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>sp(e)+1}});var up=dt((zT,cp)=>{h();"use strict";function lp(e,t,r){var n=e[r]|0;if(n<=0)return[];var i=new Array(n),a;if(r===e.length-1)for(a=0;a0)return sx(e|0,t);break;case"object":if(typeof e.length=="number")return lp(e,t,0);break}return[]}cp.exports=lx});var Ip={};Ti(Ip,{Buffer:()=>ne,INSPECT_MAX_BYTES:()=>mp,SlowBuffer:()=>bx,isBuffer:()=>Tp,kMaxLength:()=>hx});function dp(){Ml=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new cx(s*3/4-a),n=a>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,o[u++]=i>>8&255,o[u++]=i&255;return a===2?(i=un[e.charCodeAt(t)]<<2|un[e.charCodeAt(t+1)]>>4,o[u++]=i&255):a===1&&(i=un[e.charCodeAt(t)]<<10|un[e.charCodeAt(t+1)]<<4|un[e.charCodeAt(t+2)]>>2,o[u++]=i>>8&255,o[u++]=i&255),o}function dx(e){return Dn[e>>18&63]+Dn[e>>12&63]+Dn[e>>6&63]+Dn[e&63]}function fx(e,t,r){for(var n,i=[],a=t;au?u:s+o));return n===1?(t=e[r-1],i+=Dn[t>>2],i+=Dn[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=Dn[t>>10],i+=Dn[t>>4&63],i+=Dn[t<<2&63],i+="="),a.push(i),a.join("")}function oo(e,t,r,n,i){var a,o,s=i*8-n-1,u=(1<>1,c=-7,d=r?i-1:0,f=r?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=a*256+e[t+d],d+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=o*256+e[t+d],d+=f,c-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-l}return(p?-1:1)*o*Math.pow(2,a-n)}function pp(e,t,r,n,i,a){var o,s,u,l=a*8-i-1,c=(1<>1,f=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,m=n?1:-1,v=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+d>=1?t+=f/u:t+=f*Math.pow(2,1-d),t*u>=2&&(o++,u/=2),o+d>=c?(s=0,o=c):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=s&255,p+=m,s/=256,i-=8);for(o=o<0;e[r+p]=o&255,p+=m,o/=256,l-=8);e[r+p-m]|=v*128}function so(){return ne.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Rn(e,t){if(so()=so())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+so().toString(16)+" bytes");return e|0}function bx(e){return+e!=e&&(e=0),ne.alloc(+e)}function Cn(e){return!!(e!=null&&e._isBuffer)}function vp(e,t){if(Cn(e))return e.length;if(typeof ArrayBuffer!="undefined"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var r=e.length;if(r===0)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return uo(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return Cp(e).length;default:if(n)return uo(e).length;t=(""+t).toLowerCase(),n=!0}}function wx(e,t,r){var n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Ix(this,t,r);case"utf8":case"utf-8":return xp(this,t,r);case"ascii":return Tx(this,t,r);case"latin1":case"binary":return Mx(this,t,r);case"base64":return Dx(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ax(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function Er(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function bp(e,t,r,n,i){if(e.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=ne.from(t,n)),Cn(t))return t.length===0?-1:wp(e,t,r,n,i);if(typeof t=="number")return t=t&255,ne.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):wp(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function wp(e,t,r,n,i){var a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function u(p,m){return a===1?p[m]:p.readUInt16BE(m*a)}var l;if(i){var c=-1;for(l=r;lo&&(r=o-s),l=r;l>=0;l--){for(var d=!0,f=0;fi&&(n=i)):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o239?4:a>223?3:a>191?2:1;if(i+s<=r){var u,l,c,d;switch(s){case 1:a<128&&(o=a);break;case 2:u=e[i+1],(u&192)==128&&(d=(a&31)<<6|u&63,d>127&&(o=d));break;case 3:u=e[i+1],l=e[i+2],(u&192)==128&&(l&192)==128&&(d=(a&15)<<12|(u&63)<<6|l&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],(u&192)==128&&(l&192)==128&&(c&192)==128&&(d=(a&15)<<18|(u&63)<<12|(l&63)<<6|c&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return Cx(n)}function Cx(e){var t=e.length;if(t<=kp)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function Yt(e,t,r,n,i,a){if(!Cn(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function lo(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>(n?i:1-i)*8}function co(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>(n?i:3-i)*8&255}function Sp(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function _p(e,t,r,n,i){return i||Sp(e,t,r,4),pp(e,t,r,n,23,4),r+4}function Dp(e,t,r,n,i){return i||Sp(e,t,r,8),pp(e,t,r,n,52,8),r+8}function Px(e){if(e=Fx(e).replace(Lx,""),e.length<2)return"";for(;e.length%4!=0;)e=e+"=";return e}function Fx(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Ox(e){return e<16?"0"+e.toString(16):e.toString(16)}function uo(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function Nx(e){for(var t=[],r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function Cp(e){return ux(Px(e))}function fo(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Hx(e){return e!==e}function Tp(e){return e!=null&&(!!e._isBuffer||Mp(e)||Bx(e))}function Mp(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function Bx(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&Mp(e.slice(0,0))}var Dn,un,cx,Ml,px,hp,mp,hx,kp,Lx,Ap=nl(()=>{h();Dn=[],un=[],cx=typeof Uint8Array!="undefined"?Uint8Array:Array,Ml=!1;px={}.toString,hp=Array.isArray||function(e){return px.call(e)=="[object Array]"};mp=50;ne.TYPED_ARRAY_SUPPORT=window.TYPED_ARRAY_SUPPORT!==void 0?window.TYPED_ARRAY_SUPPORT:!0;hx=so();ne.poolSize=8192;ne._augment=function(e){return e.__proto__=ne.prototype,e};ne.from=function(e,t,r){return gp(null,e,t,r)};ne.TYPED_ARRAY_SUPPORT&&(ne.prototype.__proto__=Uint8Array.prototype,ne.__proto__=Uint8Array);ne.alloc=function(e,t,r){return mx(null,e,t,r)};ne.allocUnsafe=function(e){return Il(null,e)};ne.allocUnsafeSlow=function(e){return Il(null,e)};ne.isBuffer=Tp;ne.compare=function(t,r){if(!Cn(t)||!Cn(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var n=t.length,i=r.length,a=0,o=Math.min(n,i);a0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""};ne.prototype.compare=function(t,r,n,i,a){if(!Cn(t))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;for(var o=a-i,s=n-r,u=Math.min(o,s),l=this.slice(i,a),c=t.slice(r,n),d=0;da)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return Ex(this,t,r,n);case"utf8":case"utf-8":return xx(this,t,r,n);case"ascii":return Ep(this,t,r,n);case"latin1":case"binary":return kx(this,t,r,n);case"base64":return Sx(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _x(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}};ne.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};kp=4096;ne.prototype.slice=function(t,r){var n=this.length;t=~~t,r=r===void 0?n:~~r,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r0&&(a*=256);)i+=this[t+--r]*a;return i};ne.prototype.readUInt8=function(t,r){return r||Et(t,1,this.length),this[t]};ne.prototype.readUInt16LE=function(t,r){return r||Et(t,2,this.length),this[t]|this[t+1]<<8};ne.prototype.readUInt16BE=function(t,r){return r||Et(t,2,this.length),this[t]<<8|this[t+1]};ne.prototype.readUInt32LE=function(t,r){return r||Et(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};ne.prototype.readUInt32BE=function(t,r){return r||Et(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};ne.prototype.readIntLE=function(t,r,n){t=t|0,r=r|0,n||Et(t,r,this.length);for(var i=this[t],a=1,o=0;++o=a&&(i-=Math.pow(2,8*r)),i};ne.prototype.readIntBE=function(t,r,n){t=t|0,r=r|0,n||Et(t,r,this.length);for(var i=r,a=1,o=this[t+--i];i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o};ne.prototype.readInt8=function(t,r){return r||Et(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};ne.prototype.readInt16LE=function(t,r){r||Et(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt16BE=function(t,r){r||Et(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt32LE=function(t,r){return r||Et(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};ne.prototype.readInt32BE=function(t,r){return r||Et(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};ne.prototype.readFloatLE=function(t,r){return r||Et(t,4,this.length),oo(this,t,!0,23,4)};ne.prototype.readFloatBE=function(t,r){return r||Et(t,4,this.length),oo(this,t,!1,23,4)};ne.prototype.readDoubleLE=function(t,r){return r||Et(t,8,this.length),oo(this,t,!0,52,8)};ne.prototype.readDoubleBE=function(t,r){return r||Et(t,8,this.length),oo(this,t,!1,52,8)};ne.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;Yt(this,t,r,n,a,0)}var o=1,s=0;for(this[r]=t&255;++s=0&&(s*=256);)this[r+o]=t/s&255;return r+n};ne.prototype.writeUInt8=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,1,255,0),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};ne.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):lo(this,t,r,!0),r+2};ne.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):lo(this,t,r,!1),r+2};ne.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255):co(this,t,r,!0),r+4};ne.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):co(this,t,r,!1),r+4};ne.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Yt(this,t,r,n,a-1,-a)}var o=0,s=1,u=0;for(this[r]=t&255;++o>0)-u&255;return r+n};ne.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Yt(this,t,r,n,a-1,-a)}var o=n-1,s=1,u=0;for(this[r+o]=t&255;--o>=0&&(s*=256);)t<0&&u===0&&this[r+o+1]!==0&&(u=1),this[r+o]=(t/s>>0)-u&255;return r+n};ne.prototype.writeInt8=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,1,127,-128),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=t&255,r+1};ne.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):lo(this,t,r,!0),r+2};ne.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):lo(this,t,r,!1),r+2};ne.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,2147483647,-2147483648),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):co(this,t,r,!0),r+4};ne.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||Yt(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):co(this,t,r,!1),r+4};ne.prototype.writeFloatLE=function(t,r,n){return _p(this,t,r,!0,n)};ne.prototype.writeFloatBE=function(t,r,n){return _p(this,t,r,!1,n)};ne.prototype.writeDoubleLE=function(t,r,n){return Dp(this,t,r,!0,n)};ne.prototype.writeDoubleBE=function(t,r,n){return Dp(this,t,r,!1,n)};ne.prototype.copy=function(t,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r=0;--o)t[o+r]=this[o+n];else if(a<1e3||!ne.TYPED_ARRAY_SUPPORT)for(o=0;o>>0,n=n===void 0?this.length:n>>>0,t||(t=0);var o;if(typeof t=="number")for(o=r;o{h();var xr=(Ap(),Ip);if(xr&&xr.default){po.exports=xr.default;for(let e in xr)po.exports[e]=xr[e]}else xr&&(po.exports=xr)});var go=dt(Re=>{h();"use strict";var rr=ao(),Dt=up(),Pp=Lp().Buffer;window.__TYPEDARRAY_POOL||(window.__TYPEDARRAY_POOL={UINT8:Dt([32,0]),UINT16:Dt([32,0]),UINT32:Dt([32,0]),BIGUINT64:Dt([32,0]),INT8:Dt([32,0]),INT16:Dt([32,0]),INT32:Dt([32,0]),BIGINT64:Dt([32,0]),FLOAT:Dt([32,0]),DOUBLE:Dt([32,0]),DATA:Dt([32,0]),UINT8C:Dt([32,0]),BUFFER:Dt([32,0])});var Kx=typeof Uint8ClampedArray!="undefined",$x=typeof BigUint64Array!="undefined",Ux=typeof BigInt64Array!="undefined",ot=window.__TYPEDARRAY_POOL;ot.UINT8C||(ot.UINT8C=Dt([32,0]));ot.BIGUINT64||(ot.BIGUINT64=Dt([32,0]));ot.BIGINT64||(ot.BIGINT64=Dt([32,0]));ot.BUFFER||(ot.BUFFER=Dt([32,0]));var ho=ot.DATA,mo=ot.BUFFER;Re.free=function(t){if(Pp.isBuffer(t))mo[rr.log2(t.length)].push(t);else{if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!t)return;var r=t.length||t.byteLength,n=rr.log2(r)|0;ho[n].push(t)}};function Fp(e){if(!!e){var t=e.length||e.byteLength,r=rr.log2(t);ho[r].push(e)}}function Wx(e){Fp(e.buffer)}Re.freeUint8=Re.freeUint16=Re.freeUint32=Re.freeBigUint64=Re.freeInt8=Re.freeInt16=Re.freeInt32=Re.freeBigInt64=Re.freeFloat32=Re.freeFloat=Re.freeFloat64=Re.freeDouble=Re.freeUint8Clamped=Re.freeDataView=Wx;Re.freeArrayBuffer=Fp;Re.freeBuffer=function(t){mo[rr.log2(t.length)].push(t)};Re.malloc=function(t,r){if(r===void 0||r==="arraybuffer")return Jt(t);switch(r){case"uint8":return Pl(t);case"uint16":return Op(t);case"uint32":return Np(t);case"int8":return Rp(t);case"int16":return Hp(t);case"int32":return Bp(t);case"float":case"float32":return Kp(t);case"double":case"float64":return $p(t);case"uint8_clamped":return Up(t);case"bigint64":return Vp(t);case"biguint64":return Wp(t);case"buffer":return jp(t);case"data":case"dataview":return zp(t);default:return null}return null};function Jt(e){var e=rr.nextPow2(e),t=rr.log2(e),r=ho[t];return r.length>0?r.pop():new ArrayBuffer(e)}Re.mallocArrayBuffer=Jt;function Pl(e){return new Uint8Array(Jt(e),0,e)}Re.mallocUint8=Pl;function Op(e){return new Uint16Array(Jt(2*e),0,e)}Re.mallocUint16=Op;function Np(e){return new Uint32Array(Jt(4*e),0,e)}Re.mallocUint32=Np;function Rp(e){return new Int8Array(Jt(e),0,e)}Re.mallocInt8=Rp;function Hp(e){return new Int16Array(Jt(2*e),0,e)}Re.mallocInt16=Hp;function Bp(e){return new Int32Array(Jt(4*e),0,e)}Re.mallocInt32=Bp;function Kp(e){return new Float32Array(Jt(4*e),0,e)}Re.mallocFloat32=Re.mallocFloat=Kp;function $p(e){return new Float64Array(Jt(8*e),0,e)}Re.mallocFloat64=Re.mallocDouble=$p;function Up(e){return Kx?new Uint8ClampedArray(Jt(e),0,e):Pl(e)}Re.mallocUint8Clamped=Up;function Wp(e){return $x?new BigUint64Array(Jt(8*e),0,e):null}Re.mallocBigUint64=Wp;function Vp(e){return Ux?new BigInt64Array(Jt(8*e),0,e):null}Re.mallocBigInt64=Vp;function zp(e){return new DataView(Jt(e),0,e)}Re.mallocDataView=zp;function jp(e){e=rr.nextPow2(e);var t=rr.log2(e),r=mo[t];return r.length>0?r.pop():new Pp(e)}Re.mallocBuffer=jp;Re.clearCache=function(){for(var t=0;t<32;++t)ot.UINT8[t].length=0,ot.UINT16[t].length=0,ot.UINT32[t].length=0,ot.INT8[t].length=0,ot.INT16[t].length=0,ot.INT32[t].length=0,ot.FLOAT[t].length=0,ot.DOUBLE[t].length=0,ot.BIGUINT64[t].length=0,ot.BIGINT64[t].length=0,ot.UINT8C[t].length=0,ho[t].length=0,mo[t].length=0}});var Qp=dt((YT,Gp)=>{h();"use strict";Gp.exports=Vx;var yo=32;function Vx(e,t){t<=4*yo?vo(0,t-1,e):wo(0,t-1,e)}function vo(e,t,r){for(var n=2*(e+1),i=e+1;i<=t;++i){for(var a=r[n++],o=r[n++],s=i,u=n-2;s-- >e;){var l=r[u-2],c=r[u-1];if(lr[t+1]:!0}function bo(e,t,r,n){e*=2;var i=n[e];return i>1,s=o-n,u=o+n,l=i,c=s,d=o,f=u,p=a,m=e+1,v=t-1,b=0;Hn(l,c,r)&&(b=l,l=c,c=b),Hn(f,p,r)&&(b=f,f=p,p=b),Hn(l,d,r)&&(b=l,l=d,d=b),Hn(c,d,r)&&(b=c,c=d,d=b),Hn(l,f,r)&&(b=l,l=f,f=b),Hn(d,f,r)&&(b=d,d=f,f=b),Hn(c,p,r)&&(b=c,c=p,p=b),Hn(c,d,r)&&(b=c,c=d,d=b),Hn(f,p,r)&&(b=f,f=p,p=b);for(var k=r[2*c],T=r[2*c+1],D=r[2*f],I=r[2*f+1],H=2*l,C=2*d,F=2*p,U=2*i,z=2*o,ee=2*a,Z=0;Z<2;++Z){var le=r[H+Z],X=r[C+Z],G=r[F+Z];r[U+Z]=le,r[z+Z]=X,r[ee+Z]=G}Yp(s,e,r),Yp(u,t,r);for(var re=m;re<=v;++re)if(bo(re,k,T,r))re!==m&&qp(re,m,r),++m;else if(!bo(re,D,I,r))for(;;)if(bo(v,D,I,r)){bo(v,k,T,r)?(zx(re,m,v,r),++m,--v):(qp(re,v,r),--v);break}else{if(--v{h();"use strict";Xp.exports={init:qx,sweepBipartite:Yx,sweepComplete:Jx,scanBipartite:Gx,scanComplete:Qx};var st=go(),jx=ao(),Eo=Qp(),nn=1<<28,kr=1024,Ct=st.mallocInt32(kr),Bn=st.mallocInt32(kr),Kn=st.mallocInt32(kr),Sr=st.mallocInt32(kr),Jr=st.mallocInt32(kr),Gi=st.mallocInt32(kr),Ce=st.mallocDouble(kr*8);function qx(e){var t=jx.nextPow2(e);Ct.length>>1;Eo(Ce,T);for(var D=0,I=0,m=0;m=nn)H=H-nn|0,Gr(Kn,Sr,I--,H);else if(H>=0)Gr(Ct,Bn,D--,H);else if(H<=-nn){H=-H-nn|0;for(var C=0;C>>1;Eo(Ce,T);for(var D=0,I=0,H=0,m=0;m>1==Ce[2*m+3]>>1&&(F=2,m+=1),C<0){for(var U=-(C>>1)-1,z=0;z>1)-1;F===0?Gr(Ct,Bn,D--,U):F===1?Gr(Kn,Sr,I--,U):F===2&&Gr(Jr,Gi,H--,U)}}}function Gx(e,t,r,n,i,a,o,s,u,l,c,d){var f=0,p=2*e,m=t,v=t+e,b=1,k=1;n?k=nn:b=nn;for(var T=i;T>>1;Eo(Ce,C);for(var F=0,T=0;T=nn?(z=!n,D-=nn):(z=!!n,D-=1),z)Qr(Ct,Bn,F++,D);else{var ee=d[D],Z=p*D,le=c[Z+t+1],X=c[Z+t+1+e];e:for(var G=0;G>>1;Eo(Ce,D);for(var I=0,v=0;v=nn)Ct[I++]=b-nn;else{b-=1;var C=c[b],F=f*b,U=l[F+t+1],z=l[F+t+1+e];e:for(var ee=0;ee=0;--ee)if(Ct[ee]===b){for(var G=ee+1;G{h();"use strict";var _r="d",Xr="ax",Zp="vv",Ol="fp",Qi="es",xo="rs",Nl="re",Xi="rb",eh="ri",Zr="rp",ko="bs",Rl="be",Zi="bb",th="bi",ei="bp",Hl="rv",Bl="Q",Kl=[_r,Xr,Zp,xo,Nl,Xi,eh,ko,Rl,Zi,th];function Xx(e,t,r){var n="bruteForce"+(e?"Red":"Blue")+(t?"Flip":"")+(r?"Full":""),i=["function ",n,"(",Kl.join(),"){","var ",Qi,"=2*",_r,";"],a="for(var i="+xo+","+Zr+"="+Qi+"*"+xo+";i<"+Nl+";++i,"+Zr+"+="+Qi+"){var x0="+Xi+"["+Xr+"+"+Zr+"],x1="+Xi+"["+Xr+"+"+Zr+"+"+_r+"],xi="+eh+"[i];",o="for(var j="+ko+","+ei+"="+Qi+"*"+ko+";j<"+Rl+";++j,"+ei+"+="+Qi+"){var y0="+Zi+"["+Xr+"+"+ei+"],"+(r?"y1="+Zi+"["+Xr+"+"+ei+"+"+_r+"],":"")+"yi="+th+"[j];";return e?i.push(a,Bl,":",o):i.push(o,Bl,":",a),r?i.push("if(y1"+Rl+"-"+ko+"){"),e?(a(!0,!1),i.push("}else{"),a(!1,!1)):(i.push("if("+Ol+"){"),a(!0,!0),i.push("}else{"),a(!0,!1),i.push("}}else{if("+Ol+"){"),a(!1,!0),i.push("}else{"),a(!1,!1),i.push("}")),i.push("}}return "+t);var o=r.join("")+i.join(""),s=new Function(o);return s()}$l.partial=nh(!1);$l.full=nh(!0)});var Ul=dt((QT,ih)=>{h();"use strict";ih.exports=ek;var Zx="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";function ek(e,t){var r="abcdef".split("").concat(t),n=[];return e.indexOf("lo")>=0&&n.push("lo=e[k+n]"),e.indexOf("hi")>=0&&n.push("hi=e[k+o]"),r.push(Zx.replace("_",n.join()).replace("$",e)),Function.apply(void 0,r)}});var sh=dt((XT,oh)=>{h();"use strict";oh.exports=ik;var tk=Ul(),ah=tk("lor&&i[d+t]>l;--c,d-=o){for(var f=d,p=d+o,m=0;m>>1,l=2*e,c=u,d=i[l*u+t];o=b?(c=v,d=b):m>=T?(c=p,d=m):(c=k,d=T):b>=T?(c=v,d=b):T>=m?(c=p,d=m):(c=k,d=T);for(var D=l*(s-1),I=l*c,H=0;H{h();"use strict";ph.exports=yk;var ti=go(),Wl=ao(),lh=rh(),ak=lh.partial,ok=lh.full,ir=Fl(),sk=sh(),ni=Ul(),ch=128,lk=1<<22,ck=1<<22,uk=ni("!(lo>=p0)&&!(p1>=hi)",["p0","p1"]),uh=ni("lo===p0",["p0"]),dk=ni("lo0;){l-=1;var f=l*Vl,p=Ut[f],m=Ut[f+1],v=Ut[f+2],b=Ut[f+3],k=Ut[f+4],T=Ut[f+5],D=l*zl,I=Dr[D],H=Dr[D+1],C=T&1,F=!!(T&16),U=i,z=a,ee=s,Z=u;if(C&&(U=s,z=u,ee=i,Z=a),!(T&2&&(v=dk(e,p,m,v,U,z,H),m>=v))&&!(T&4&&(m=fk(e,p,m,v,U,z,I),m>=v))){var le=v-m,X=k-b;if(F){if(e*le*(le+X){h();"use strict";yh.exports=xk;var ar=go(),So=Fl(),vk=hh();function bk(e,t){for(var r=0;r>>1;if(!(o<=0)){var s,u=ar.mallocDouble(2*o*i),l=ar.mallocInt32(i);if(i=mh(e,o,u,l),i>0){if(o===1&&n)So.init(i),s=So.sweepComplete(o,r,0,i,u,l,0,i,u,l);else{var c=ar.mallocDouble(2*o*a),d=ar.mallocInt32(a);a=mh(t,o,c,d),a>0&&(So.init(i+a),o===1?s=So.sweepBipartite(o,r,0,i,u,l,0,a,c,d):s=vk(o,r,n,i,u,l,a,c,d),ar.free(c),ar.free(d))}ar.free(u),ar.free(l)}return s}}}var ea;function gh(e,t){ea.push([e,t])}function wk(e){return ea=[],_o(e,e,gh,!0),ea}function Ek(e,t){return ea=[],_o(e,t,gh,!1),ea}function xk(e,t,r){var n;switch(arguments.length){case 1:return wk(e);case 2:return typeof t=="function"?_o(e,e,t,!0):Ek(e,t);case 3:return _o(e,t,r,!1);default:throw new Error("box-intersect: Invalid arguments")}}});var Kh=dt((tM,To)=>{h();var bh,wh,Eh,xh,kh,Sh,_h,Dh,Ch,Do,jl,Th,Mh,Ih,ri,Ah,Lh,Ph,Fh,Oh,Nh,Rh,Hh,Bh,Co;(function(e){var t=typeof window=="object"?window:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof To=="object"&&typeof To.exports=="object"?e(r(t,r(To.exports))):e(r(t));function r(n,i){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(a,o){return n[a]=i?i(a,o):o}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])};bh=function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");t(n,i);function a(){this.constructor=n}n.prototype=i===null?Object.create(i):(a.prototype=i.prototype,new a)},wh=Object.assign||function(n){for(var i,a=1,o=arguments.length;a=0;c--)(l=n[c])&&(u=(s<3?l(u):s>3?l(i,a,u):l(i,a))||u);return s>3&&u&&Object.defineProperty(i,a,u),u},kh=function(n,i){return function(a,o){i(a,o,n)}},Sh=function(n,i){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,i)},_h=function(n,i,a,o){function s(u){return u instanceof a?u:new a(function(l){l(u)})}return new(a||(a=Promise))(function(u,l){function c(p){try{f(o.next(p))}catch(m){l(m)}}function d(p){try{f(o.throw(p))}catch(m){l(m)}}function f(p){p.done?u(p.value):s(p.value).then(c,d)}f((o=o.apply(n,i||[])).next())})},Dh=function(n,i){var a={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},o,s,u,l;return l={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(f){return function(p){return d([f,p])}}function d(f){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,s&&(u=f[0]&2?s.return:f[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,f[1])).done)return u;switch(s=0,u&&(f=[f[0]&2,u.value]),f[0]){case 0:case 1:u=f;break;case 4:return a.label++,{value:f[1],done:!1};case 5:a.label++,s=f[1],f=[0];continue;case 7:f=a.ops.pop(),a.trys.pop();continue;default:if(u=a.trys,!(u=u.length>0&&u[u.length-1])&&(f[0]===6||f[0]===2)){a=0;continue}if(f[0]===3&&(!u||f[1]>u[0]&&f[1]=n.length&&(n=void 0),{value:n&&n[o++],done:!n}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")},jl=function(n,i){var a=typeof Symbol=="function"&&n[Symbol.iterator];if(!a)return n;var o=a.call(n),s,u=[],l;try{for(;(i===void 0||i-- >0)&&!(s=o.next()).done;)u.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(a=o.return)&&a.call(o)}finally{if(l)throw l.error}}return u},Th=function(){for(var n=[],i=0;i1||c(v,b)})})}function c(v,b){try{d(o[v](b))}catch(k){m(u[0][3],k)}}function d(v){v.value instanceof ri?Promise.resolve(v.value.v).then(f,p):m(u[0][2],v)}function f(v){c("next",v)}function p(v){c("throw",v)}function m(v,b){v(b),u.shift(),u.length&&c(u[0][0],u[0][1])}},Lh=function(n){var i,a;return i={},o("next"),o("throw",function(s){throw s}),o("return"),i[Symbol.iterator]=function(){return this},i;function o(s,u){i[s]=n[s]?function(l){return(a=!a)?{value:ri(n[s](l)),done:s==="return"}:u?u(l):l}:u}},Ph=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n[Symbol.asyncIterator],a;return i?i.call(n):(n=typeof Do=="function"?Do(n):n[Symbol.iterator](),a={},o("next"),o("throw"),o("return"),a[Symbol.asyncIterator]=function(){return this},a);function o(u){a[u]=n[u]&&function(l){return new Promise(function(c,d){l=n[u](l),s(c,d,l.done,l.value)})}}function s(u,l,c,d){Promise.resolve(d).then(function(f){u({value:f,done:c})},l)}},Fh=function(n,i){return Object.defineProperty?Object.defineProperty(n,"raw",{value:i}):n.raw=i,n};var r=Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i};Oh=function(n){if(n&&n.__esModule)return n;var i={};if(n!=null)for(var a in n)a!=="default"&&Object.prototype.hasOwnProperty.call(n,a)&&Co(i,n,a);return r(i,n),i},Nh=function(n){return n&&n.__esModule?n:{default:n}},Rh=function(n,i,a,o){if(a==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof i=="function"?n!==i||!o:!i.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return a==="m"?o:a==="a"?o.call(n):o?o.value:i.get(n)},Hh=function(n,i,a,o,s){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof i=="function"?n!==i||!s:!i.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?s.call(n,a):s?s.value=a:i.set(n,a),a},Bh=function(n,i){if(i===null||typeof i!="object"&&typeof i!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?i===n:n.has(i)},e("__extends",bh),e("__assign",wh),e("__rest",Eh),e("__decorate",xh),e("__param",kh),e("__metadata",Sh),e("__awaiter",_h),e("__generator",Dh),e("__exportStar",Ch),e("__createBinding",Co),e("__values",Do),e("__read",jl),e("__spread",Th),e("__spreadArrays",Mh),e("__spreadArray",Ih),e("__await",ri),e("__asyncGenerator",Ah),e("__asyncDelegator",Lh),e("__asyncValues",Ph),e("__makeTemplateObject",Fh),e("__importStar",Oh),e("__importDefault",Nh),e("__classPrivateFieldGet",Rh),e("__classPrivateFieldSet",Hh),e("__classPrivateFieldIn",Bh)})});var Ql=dt(Le=>{h();"use strict";Object.defineProperty(Le,"__esModule",{value:!0});var tt=require("obsidian"),Jl="YYYY-MM-DD",Gl="gggg-[W]ww",qh="YYYY-MM",Yh="YYYY-[Q]Q",Jh="YYYY";function na(e){let t=window.app.plugins.getPlugin("periodic-notes");return t&&t.settings?.[e]?.enabled}function ra(){try{let{internalPlugins:e,plugins:t}=window.app;if(na("daily")){let{format:a,folder:o,template:s}=t.getPlugin("periodic-notes")?.settings?.daily||{};return{format:a||Jl,folder:o?.trim()||"",template:s?.trim()||""}}let{folder:r,format:n,template:i}=e.getPluginById("daily-notes")?.instance?.options||{};return{format:n||Jl,folder:r?.trim()||"",template:i?.trim()||""}}catch(e){console.info("No custom daily note settings found!",e)}}function ia(){try{let e=window.app.plugins,t=e.getPlugin("calendar")?.options,r=e.getPlugin("periodic-notes")?.settings?.weekly;if(na("weekly"))return{format:r.format||Gl,folder:r.folder?.trim()||"",template:r.template?.trim()||""};let n=t||{};return{format:n.weeklyNoteFormat||Gl,folder:n.weeklyNoteFolder?.trim()||"",template:n.weeklyNoteTemplate?.trim()||""}}catch(e){console.info("No custom weekly note settings found!",e)}}function aa(){let e=window.app.plugins;try{let t=na("monthly")&&e.getPlugin("periodic-notes")?.settings?.monthly||{};return{format:t.format||qh,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom monthly note settings found!",t)}}function oa(){let e=window.app.plugins;try{let t=na("quarterly")&&e.getPlugin("periodic-notes")?.settings?.quarterly||{};return{format:t.format||Yh,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom quarterly note settings found!",t)}}function sa(){let e=window.app.plugins;try{let t=na("yearly")&&e.getPlugin("periodic-notes")?.settings?.yearly||{};return{format:t.format||Jh,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom yearly note settings found!",t)}}function Gh(...e){let t=[];for(let n=0,i=e.length;n{let T=n(),D=e.clone().set({hour:T.get("hour"),minute:T.get("minute"),second:T.get("second")});return m&&D.add(parseInt(v,10),b),k?D.format(k.substring(1).trim()):D.format(a)}).replace(/{{\s*yesterday\s*}}/gi,e.clone().subtract(1,"day").format(a)).replace(/{{\s*tomorrow\s*}}/gi,e.clone().add(1,"d").format(a)));return t.foldManager.save(d,u),d}catch(d){console.error(`Failed to create file: '${c}'`,d),new tt.Notice("Unable to create new file.")}}function Rk(e,t){return t[wn(e,"day")]??null}function Hk(){let{vault:e}=window.app,{folder:t}=ra(),r=e.getAbstractFileByPath(tt.normalizePath(t));if(!r)throw new Zh("Failed to find daily notes folder");let n={};return tt.Vault.recurseChildren(r,i=>{if(i instanceof tt.TFile){let a=si(i,"day");if(a){let o=wn(a,"day");n[o]=i}}}),n}var tm=class extends Error{};function Bk(){let{moment:e}=window,t=e.localeData()._week.dow,r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];for(;t;)r.push(r.shift()),t--;return r}function Kk(e){return Bk().indexOf(e.toLowerCase())}async function nm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ia(),[a,o]=await oi(r),s=e.format(n),u=await la(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,v)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),v?k.format(v.substring(1).trim()):k.format(n)}).replace(/{{\s*title\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi,(c,d,f)=>{let p=Kk(d);return e.weekday(p).format(f.trim())}));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function $k(e,t){return t[wn(e,"week")]??null}function Uk(){let e={};if(!sm())return e;let{vault:t}=window.app,{folder:r}=ia(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new tm("Failed to find weekly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=si(i,"week");if(a){let o=wn(a,"week");e[o]=i}}}),e}var rm=class extends Error{};async function im(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=aa(),[a,o]=await oi(r),s=e.format(n),u=await la(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,v)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),v?k.format(v.substring(1).trim()):k.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function Wk(e,t){return t[wn(e,"month")]??null}function Vk(){let e={};if(!lm())return e;let{vault:t}=window.app,{folder:r}=aa(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new rm("Failed to find monthly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=si(i,"month");if(a){let o=wn(a,"month");e[o]=i}}}),e}var am=class extends Error{};async function zk(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=oa(),[a,o]=await oi(r),s=e.format(n),u=await la(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,v)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),v?k.format(v.substring(1).trim()):k.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function jk(e,t){return t[wn(e,"quarter")]??null}function qk(){let e={};if(!cm())return e;let{vault:t}=window.app,{folder:r}=oa(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new am("Failed to find quarterly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=si(i,"quarter");if(a){let o=wn(a,"quarter");e[o]=i}}}),e}var om=class extends Error{};async function Yk(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=sa(),[a,o]=await oi(r),s=e.format(n),u=await la(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,m,v)=>{let b=window.moment(),k=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(p,10),m),v?k.format(v.substring(1).trim()):k.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new tt.Notice("Unable to create new file.")}}function Jk(e,t){return t[wn(e,"year")]??null}function Gk(){let e={};if(!um())return e;let{vault:t}=window.app,{folder:r}=sa(),n=t.getAbstractFileByPath(tt.normalizePath(r));if(!n)throw new om("Failed to find yearly notes folder");return tt.Vault.recurseChildren(n,i=>{if(i instanceof tt.TFile){let a=si(i,"year");if(a){let o=wn(a,"year");e[o]=i}}}),e}function Qk(){let{app:e}=window,t=e.internalPlugins.plugins["daily-notes"];if(t&&t.enabled)return!0;let r=e.plugins.getPlugin("periodic-notes");return r&&r.settings?.daily?.enabled}function sm(){let{app:e}=window;if(e.plugins.getPlugin("calendar"))return!0;let t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.weekly?.enabled}function lm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.monthly?.enabled}function cm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.quarterly?.enabled}function um(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.yearly?.enabled}function Xk(e){return{day:ra,week:ia,month:aa,quarter:oa,year:sa}[e]()}function Zk(e,t){return{day:em,month:im,week:nm}[e](t)}Le.DEFAULT_DAILY_NOTE_FORMAT=Jl;Le.DEFAULT_MONTHLY_NOTE_FORMAT=qh;Le.DEFAULT_QUARTERLY_NOTE_FORMAT=Yh;Le.DEFAULT_WEEKLY_NOTE_FORMAT=Gl;Le.DEFAULT_YEARLY_NOTE_FORMAT=Jh;Le.appHasDailyNotesPluginLoaded=Qk;Le.appHasMonthlyNotesPluginLoaded=lm;Le.appHasQuarterlyNotesPluginLoaded=cm;Le.appHasWeeklyNotesPluginLoaded=sm;Le.appHasYearlyNotesPluginLoaded=um;Le.createDailyNote=em;Le.createMonthlyNote=im;Le.createPeriodicNote=Zk;Le.createQuarterlyNote=zk;Le.createWeeklyNote=nm;Le.createYearlyNote=Yk;Le.getAllDailyNotes=Hk;Le.getAllMonthlyNotes=Vk;Le.getAllQuarterlyNotes=qk;Le.getAllWeeklyNotes=Uk;Le.getAllYearlyNotes=Gk;Le.getDailyNote=Rk;Le.getDailyNoteSettings=ra;Le.getDateFromFile=si;Le.getDateFromPath=Nk;Le.getDateUID=wn;Le.getMonthlyNote=Wk;Le.getMonthlyNoteSettings=aa;Le.getPeriodicNoteSettings=Xk;Le.getQuarterlyNote=jk;Le.getQuarterlyNoteSettings=oa;Le.getTemplateInfo=oi;Le.getWeeklyNote=$k;Le.getWeeklyNoteSettings=ia;Le.getYearlyNote=Jk;Le.getYearlyNoteSettings=sa});var ma=dt((SF,Pu)=>{h();"use strict";var l0=Object.prototype.hasOwnProperty,Wt="~";function ha(){}Object.create&&(ha.prototype=Object.create(null),new ha().__proto__||(Wt=!1));function c0(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function Oy(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new c0(r,n||e,i),o=Wt?Wt+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],a]:e._events[o].push(a):(e._events[o]=a,e._eventsCount++),e}function as(e,t){--e._eventsCount==0?e._events=new ha:delete e._events[t]}function Rt(){this._events=new ha,this._eventsCount=0}Rt.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)l0.call(r,n)&&t.push(Wt?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Rt.prototype.listeners=function(t){var r=Wt?Wt+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=new Array(a);i{h();(function(e,t){typeof ju=="object"&&typeof qu!="undefined"?qu.exports=t():typeof define=="function"&&define.amd?define(t):e.Mark=t()})(ju,function(){"use strict";var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},t=function(s,u){if(!(s instanceof u))throw new TypeError("Cannot call a class as a function")},r=function(){function s(u,l){for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:!0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5e3;t(this,s),this.ctx=u,this.iframes=l,this.exclude=c,this.iframesTimeout=d}return r(s,[{key:"getContexts",value:function(){var l=void 0,c=[];return typeof this.ctx=="undefined"||!this.ctx?l=[]:NodeList.prototype.isPrototypeOf(this.ctx)?l=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?l=this.ctx:typeof this.ctx=="string"?l=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):l=[this.ctx],l.forEach(function(d){var f=c.filter(function(p){return p.contains(d)}).length>0;c.indexOf(d)===-1&&!f&&c.push(d)}),c}},{key:"getIframeContents",value:function(l,c){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},f=void 0;try{var p=l.contentWindow;if(f=p.document,!p||!f)throw new Error("iframe inaccessible")}catch(m){d()}f&&c(f)}},{key:"isIframeBlank",value:function(l){var c="about:blank",d=l.getAttribute("src").trim(),f=l.contentWindow.location.href;return f===c&&d!==c&&d}},{key:"observeIframeLoad",value:function(l,c,d){var f=this,p=!1,m=null,v=function b(){if(!p){p=!0,clearTimeout(m);try{f.isIframeBlank(l)||(l.removeEventListener("load",b),f.getIframeContents(l,c,d))}catch(k){d()}}};l.addEventListener("load",v),m=setTimeout(v,this.iframesTimeout)}},{key:"onIframeReady",value:function(l,c,d){try{l.contentWindow.document.readyState==="complete"?this.isIframeBlank(l)?this.observeIframeLoad(l,c,d):this.getIframeContents(l,c,d):this.observeIframeLoad(l,c,d)}catch(f){d()}}},{key:"waitForIframes",value:function(l,c){var d=this,f=0;this.forEachIframe(l,function(){return!0},function(p){f++,d.waitForIframes(p.querySelector("html"),function(){--f||c()})},function(p){p||c()})}},{key:"forEachIframe",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},m=l.querySelectorAll("iframe"),v=m.length,b=0;m=Array.prototype.slice.call(m);var k=function(){--v<=0&&p(b)};v||k(),m.forEach(function(T){s.matches(T,f.exclude)?k():f.onIframeReady(T,function(D){c(T)&&(b++,d(D)),k()},k)})}},{key:"createIterator",value:function(l,c,d){return document.createNodeIterator(l,c,d,!1)}},{key:"createInstanceOnIframe",value:function(l){return new s(l.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(l,c,d){var f=l.compareDocumentPosition(d),p=Node.DOCUMENT_POSITION_PRECEDING;if(f&p)if(c!==null){var m=c.compareDocumentPosition(d),v=Node.DOCUMENT_POSITION_FOLLOWING;if(m&v)return!0}else return!0;return!1}},{key:"getIteratorNode",value:function(l){var c=l.previousNode(),d=void 0;return c===null?d=l.nextNode():d=l.nextNode()&&l.nextNode(),{prevNode:c,node:d}}},{key:"checkIframeFilter",value:function(l,c,d,f){var p=!1,m=!1;return f.forEach(function(v,b){v.val===d&&(p=b,m=v.handled)}),this.compareNodeIframe(l,c,d)?(p===!1&&!m?f.push({val:d,handled:!0}):p!==!1&&!m&&(f[p].handled=!0),!0):(p===!1&&f.push({val:d,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(l,c,d,f){var p=this;l.forEach(function(m){m.handled||p.getIframeContents(m.val,function(v){p.createInstanceOnIframe(v).forEachNode(c,d,f)})})}},{key:"iterateThroughNodes",value:function(l,c,d,f,p){for(var m=this,v=this.createIterator(c,l,f),b=[],k=[],T=void 0,D=void 0,I=function(){var C=m.getIteratorNode(v);return D=C.prevNode,T=C.node,T};I();)this.iframes&&this.forEachIframe(c,function(H){return m.checkIframeFilter(T,D,H,b)},function(H){m.createInstanceOnIframe(H).forEachNode(l,function(C){return k.push(C)},f)}),k.push(T);k.forEach(function(H){d(H)}),this.iframes&&this.handleOpenIframes(b,l,d,f),p()}},{key:"forEachNode",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},m=this.getContexts(),v=m.length;v||p(),m.forEach(function(b){var k=function(){f.iterateThroughNodes(l,b,c,d,function(){--v<=0&&p()})};f.iframes?f.waitForIframes(b,k):k()})}}],[{key:"matches",value:function(l,c){var d=typeof c=="string"?[c]:c,f=l.matches||l.matchesSelector||l.msMatchesSelector||l.mozMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector;if(f){var p=!1;return d.every(function(m){return f.call(l,m)?(p=!0,!1):!0}),p}else return!1}}]),s}(),a=function(){function s(u){t(this,s),this.ctx=u,this.ie=!1;var l=window.navigator.userAgent;(l.indexOf("MSIE")>-1||l.indexOf("Trident")>-1)&&(this.ie=!0)}return r(s,[{key:"log",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"debug",d=this.opt.log;!this.opt.debug||(typeof d=="undefined"?"undefined":e(d))==="object"&&typeof d[c]=="function"&&d[c]("mark.js: "+l)}},{key:"escapeStr",value:function(l){return l.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(l){return this.opt.wildcards!=="disabled"&&(l=this.setupWildcardsRegExp(l)),l=this.escapeStr(l),Object.keys(this.opt.synonyms).length&&(l=this.createSynonymsRegExp(l)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),this.opt.diacritics&&(l=this.createDiacriticsRegExp(l)),l=this.createMergedBlanksRegExp(l),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.createJoinersRegExp(l)),this.opt.wildcards!=="disabled"&&(l=this.createWildcardsRegExp(l)),l=this.createAccuracyRegExp(l),l}},{key:"createSynonymsRegExp",value:function(l){var c=this.opt.synonyms,d=this.opt.caseSensitive?"":"i",f=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var p in c)if(c.hasOwnProperty(p)){var m=c[p],v=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(p):this.escapeStr(p),b=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(m):this.escapeStr(m);v!==""&&b!==""&&(l=l.replace(new RegExp("("+this.escapeStr(v)+"|"+this.escapeStr(b)+")","gm"+d),f+("("+this.processSynomyms(v)+"|")+(this.processSynomyms(b)+")")+f))}return l}},{key:"processSynomyms",value:function(l){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),l}},{key:"setupWildcardsRegExp",value:function(l){return l=l.replace(/(?:\\)*\?/g,function(c){return c.charAt(0)==="\\"?"?":""}),l.replace(/(?:\\)*\*/g,function(c){return c.charAt(0)==="\\"?"*":""})}},{key:"createWildcardsRegExp",value:function(l){var c=this.opt.wildcards==="withSpaces";return l.replace(/\u0001/g,c?"[\\S\\s]?":"\\S?").replace(/\u0002/g,c?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(l){return l.replace(/[^(|)\\]/g,function(c,d,f){var p=f.charAt(d+1);return/[(|)\\]/.test(p)||p===""?c:c+"\0"})}},{key:"createJoinersRegExp",value:function(l){var c=[],d=this.opt.ignorePunctuation;return Array.isArray(d)&&d.length&&c.push(this.escapeStr(d.join(""))),this.opt.ignoreJoiners&&c.push("\\u00ad\\u200b\\u200c\\u200d"),c.length?l.split(/\u0000+/).join("["+c.join("")+"]*"):l}},{key:"createDiacriticsRegExp",value:function(l){var c=this.opt.caseSensitive?"":"i",d=this.opt.caseSensitive?["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105","A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010D","C\xC7\u0106\u010C","d\u0111\u010F","D\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119","E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012B","I\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142","L\u0141","n\xF1\u0148\u0144","N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014D","O\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159","R\u0158","s\u0161\u015B\u0219\u015F","S\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163","T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016B","U\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFF","Y\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017A","Z\u017D\u017B\u0179"]:["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010DC\xC7\u0106\u010C","d\u0111\u010FD\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012BI\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142L\u0141","n\xF1\u0148\u0144N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014DO\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159R\u0158","s\u0161\u015B\u0219\u015FS\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016BU\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFFY\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017AZ\u017D\u017B\u0179"],f=[];return l.split("").forEach(function(p){d.every(function(m){if(m.indexOf(p)!==-1){if(f.indexOf(m)>-1)return!1;l=l.replace(new RegExp("["+m+"]","gm"+c),"["+m+"]"),f.push(m)}return!0})}),l}},{key:"createMergedBlanksRegExp",value:function(l){return l.replace(/[\s]+/gmi,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(l){var c=this,d="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xA1\xBF",f=this.opt.accuracy,p=typeof f=="string"?f:f.value,m=typeof f=="string"?[]:f.limiters,v="";switch(m.forEach(function(b){v+="|"+c.escapeStr(b)}),p){case"partially":default:return"()("+l+")";case"complementary":return v="\\s"+(v||this.escapeStr(d)),"()([^"+v+"]*"+l+"[^"+v+"]*)";case"exactly":return"(^|\\s"+v+")("+l+")(?=$|\\s"+v+")"}}},{key:"getSeparatedKeywords",value:function(l){var c=this,d=[];return l.forEach(function(f){c.opt.separateWordSearch?f.split(" ").forEach(function(p){p.trim()&&d.indexOf(p)===-1&&d.push(p)}):f.trim()&&d.indexOf(f)===-1&&d.push(f)}),{keywords:d.sort(function(f,p){return p.length-f.length}),length:d.length}}},{key:"isNumeric",value:function(l){return Number(parseFloat(l))==l}},{key:"checkRanges",value:function(l){var c=this;if(!Array.isArray(l)||Object.prototype.toString.call(l[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(l),[];var d=[],f=0;return l.sort(function(p,m){return p.start-m.start}).forEach(function(p){var m=c.callNoMatchOnInvalidRanges(p,f),v=m.start,b=m.end,k=m.valid;k&&(p.start=v,p.length=b-v,d.push(p),f=b)}),d}},{key:"callNoMatchOnInvalidRanges",value:function(l,c){var d=void 0,f=void 0,p=!1;return l&&typeof l.start!="undefined"?(d=parseInt(l.start,10),f=d+parseInt(l.length,10),this.isNumeric(l.start)&&this.isNumeric(l.length)&&f-c>0&&f-d>0?p=!0:(this.log("Ignoring invalid or overlapping range: "+(""+JSON.stringify(l))),this.opt.noMatch(l))):(this.log("Ignoring invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:d,end:f,valid:p}}},{key:"checkWhitespaceRanges",value:function(l,c,d){var f=void 0,p=!0,m=d.length,v=c-m,b=parseInt(l.start,10)-v;return b=b>m?m:b,f=b+parseInt(l.length,10),f>m&&(f=m,this.log("End range automatically set to the max value of "+m)),b<0||f-b<0||b>m||f>m?(p=!1,this.log("Invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)):d.substring(b,f).replace(/\s+/g,"")===""&&(p=!1,this.log("Skipping whitespace only range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:b,end:f,valid:p}}},{key:"getTextNodes",value:function(l){var c=this,d="",f=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(p){f.push({start:d.length,end:(d+=p.textContent).length,node:p})},function(p){return c.matchesExclude(p.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){l({value:d,nodes:f})})}},{key:"matchesExclude",value:function(l){return i.matches(l,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(l,c,d){var f=this.opt.element?this.opt.element:"mark",p=l.splitText(c),m=p.splitText(d-c),v=document.createElement(f);return v.setAttribute("data-markjs","true"),this.opt.className&&v.setAttribute("class",this.opt.className),v.textContent=p.textContent,p.parentNode.replaceChild(v,p),m}},{key:"wrapRangeInMappedTextNode",value:function(l,c,d,f,p){var m=this;l.nodes.every(function(v,b){var k=l.nodes[b+1];if(typeof k=="undefined"||k.start>c){if(!f(v.node))return!1;var T=c-v.start,D=(d>v.end?v.end:d)-v.start,I=l.value.substr(0,v.start),H=l.value.substr(D+v.start);if(v.node=m.wrapRangeInTextNode(v.node,T,D),l.value=I+H,l.nodes.forEach(function(C,F){F>=b&&(l.nodes[F].start>0&&F!==b&&(l.nodes[F].start-=D),l.nodes[F].end-=D)}),d-=D,p(v.node.previousSibling,v.start),d>v.end)c=v.end;else return!1}return!0})}},{key:"wrapMatches",value:function(l,c,d,f,p){var m=this,v=c===0?0:c+1;this.getTextNodes(function(b){b.nodes.forEach(function(k){k=k.node;for(var T=void 0;(T=l.exec(k.textContent))!==null&&T[v]!=="";)if(!!d(T[v],k)){var D=T.index;if(v!==0)for(var I=1;I{h();(function(t,r){typeof Ss=="object"&&typeof ld=="object"?ld.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Ss=="object"?Ss.Choices=r():t.Choices=r()})(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:a})},r.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,i){if(i&1&&(n=r(n)),i&8||i&4&&typeof n=="object"&&n&&n.__esModule)return n;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:n}),i&2&&typeof n!="string")for(var o in n)r.d(a,o,function(s){return n[s]}.bind(null,o));return a},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="/public/assets/scripts/",r(r.s=4)}([function(e,t,r){"use strict";var n=function(I){return i(I)&&!a(I)};function i(D){return!!D&&typeof D=="object"}function a(D){var I=Object.prototype.toString.call(D);return I==="[object RegExp]"||I==="[object Date]"||u(D)}var o=typeof Symbol=="function"&&Symbol.for,s=o?Symbol.for("react.element"):60103;function u(D){return D.$$typeof===s}function l(D){return Array.isArray(D)?[]:{}}function c(D,I){return I.clone!==!1&&I.isMergeableObject(D)?k(l(D),D,I):D}function d(D,I,H){return D.concat(I).map(function(C){return c(C,H)})}function f(D,I){if(!I.customMerge)return k;var H=I.customMerge(D);return typeof H=="function"?H:k}function p(D){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(D).filter(function(I){return D.propertyIsEnumerable(I)}):[]}function m(D){return Object.keys(D).concat(p(D))}function v(D,I){try{return I in D&&!(Object.hasOwnProperty.call(D,I)&&Object.propertyIsEnumerable.call(D,I))}catch(H){return!1}}function b(D,I,H){var C={};return H.isMergeableObject(D)&&m(D).forEach(function(F){C[F]=c(D[F],H)}),m(I).forEach(function(F){v(D,F)||(!H.isMergeableObject(I[F])||!D[F]?C[F]=c(I[F],H):C[F]=f(F,H)(D[F],I[F],H))}),C}function k(D,I,H){H=H||{},H.arrayMerge=H.arrayMerge||d,H.isMergeableObject=H.isMergeableObject||n,H.cloneUnlessOtherwiseSpecified=c;var C=Array.isArray(I),F=Array.isArray(D),U=C===F;return U?C?H.arrayMerge(D,I,H):b(D,I,H):c(I,H)}k.all=function(I,H){if(!Array.isArray(I))throw new Error("first argument should be an array");return I.reduce(function(C,F){return k(C,F,H)},{})};var T=k;e.exports=T},function(e,t,r){"use strict";(function(n,i){var a=r(3),o;typeof self!="undefined"?o=self:typeof window!="undefined"?o=window:typeof n!="undefined"?o=n:o=i;var s=Object(a.a)(o);t.a=s}).call(this,r(5),r(6)(e))},function(e,t,r){(function(n,i){e.exports=i()})(this,function(){return function(n){var i={};function a(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return n[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=n,a.c=i,a.d=function(o,s,u){a.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:u})},a.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},a.t=function(o,s){if(1&s&&(o=a(o)),8&s||4&s&&typeof o=="object"&&o&&o.__esModule)return o;var u=Object.create(null);if(a.r(u),Object.defineProperty(u,"default",{enumerable:!0,value:o}),2&s&&typeof o!="string")for(var l in o)a.d(u,l,function(c){return o[c]}.bind(null,l));return u},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="",a(a.s=1)}([function(n,i){n.exports=function(a){return Array.isArray?Array.isArray(a):Object.prototype.toString.call(a)==="[object Array]"}},function(n,i,a){function o(f){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p})(f)}function s(f,p){for(var m=0;m1&&arguments[1]!==void 0?arguments[1]:{limit:!1};this._log(`--------- +Search pattern: "`.concat(b,'"'));var T=this._prepareSearchers(b),D=T.tokenSearchers,I=T.fullSearcher,H=this._search(D,I),C=H.weights,F=H.results;return this._computeScore(C,F),this.options.shouldSort&&this._sort(F),k.limit&&typeof k.limit=="number"&&(F=F.slice(0,k.limit)),this._format(F)}},{key:"_prepareSearchers",value:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",k=[];if(this.options.tokenize)for(var T=b.split(this.options.tokenSeparator),D=0,I=T.length;D0&&arguments[0]!==void 0?arguments[0]:[],k=arguments.length>1?arguments[1]:void 0,T=this.list,D={},I=[];if(typeof T[0]=="string"){for(var H=0,C=T.length;H1)throw new Error("Key weight has to be > 0 and <= 1");X=X.name}else F[X]={weight:1};this._analyze({key:X,value:this.options.getFn(ee,X),record:ee,index:U},{resultMap:D,results:I,tokenSearchers:b,fullSearcher:k})}return{weights:F,results:I}}},{key:"_analyze",value:function(b,k){var T=b.key,D=b.arrayIndex,I=D===void 0?-1:D,H=b.value,C=b.record,F=b.index,U=k.tokenSearchers,z=U===void 0?[]:U,ee=k.fullSearcher,Z=ee===void 0?[]:ee,le=k.resultMap,X=le===void 0?{}:le,G=k.results,re=G===void 0?[]:G;if(H!=null){var pe=!1,he=-1,ge=0;if(typeof H=="string"){this._log(` +Key: `.concat(T===""?"-":T));var be=Z.search(H);if(this._log('Full text: "'.concat(H,'", score: ').concat(be.score)),this.options.tokenize){for(var Te=H.split(this.options.tokenSeparator),L=[],P=0;P-1&&($e=($e+he)/2),this._log("Score average:",$e);var ct=!this.options.tokenize||!this.options.matchAllTokens||ge>=z.length;if(this._log(` +Check Matches: `.concat(ct)),(pe||be.isMatch)&&ct){var mt=X[F];mt?mt.output.push({key:T,arrayIndex:I,value:H,score:$e,matchedIndices:be.matchedIndices}):(X[F]={item:C,output:[{key:T,arrayIndex:I,value:H,score:$e,matchedIndices:be.matchedIndices}]},re.push(X[F]))}}else if(c(H))for(var Lt=0,An=H.length;Lt-1&&(pe.arrayIndex=re.arrayIndex),Z.matches.push(pe)}}}),this.options.includeScore&&D.push(function(te,Z){Z.score=te.score});for(var A=0,B=b.length;Ak)return s(y,this.pattern,T);var D=this.options,A=D.location,B=D.distance,C=D.threshold,N=D.findAllMatches,U=D.minMatchCharLength;return u(y,this.pattern,this.patternAlphabet,{location:A,distance:B,threshold:C,findAllMatches:N,minMatchCharLength:U})}}])&&o(f.prototype,p),m&&o(f,m),d}();n.exports=c},function(n,i){var a=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;n.exports=function(o,s){var u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:/ +/g,l=new RegExp(s.replace(a,"\\$&").replace(u,"|")),c=o.match(l),d=!!c,f=[];if(d)for(var p=0,m=c.length;p=P;V-=1){var j=V-1,q=c[u.charAt(j)];if(q&&(Z[j]=1),Ge[V]=(Ge[V+1]<<1|1)&q,be!==0&&(Ge[V]|=(re[V+1]|re[V])<<1|1|re[V+1]),Ge[V]&ve&&(pe=o(l,{errors:be,currentLocation:j,expectedLocation:C,distance:y}))<=U){if(U=pe,(W=j)<=C)break;P=Math.max(1,2*C-W)}}if(o(l,{errors:be+1,currentLocation:C,expectedLocation:C,distance:y})>U)break;re=Ge}return{isMatch:W>=0,score:pe===0?.001:pe,matchedIndices:s(Z,B)}}},function(n,i){n.exports=function(a,o){var s=o.errors,u=s===void 0?0:s,l=o.currentLocation,c=l===void 0?0:l,d=o.expectedLocation,f=d===void 0?0:d,p=o.distance,m=p===void 0?100:p,y=u/a.length,b=Math.abs(f-c);return m?y+b/m:b?1:y}},function(n,i){n.exports=function(){for(var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,s=[],u=-1,l=-1,c=0,d=a.length;c=o&&s.push([u,l]),u=-1)}return a[c-1]&&c-u>=o&&s.push([u,c-1]),s}},function(n,i){n.exports=function(a){for(var o={},s=a.length,u=0;u0)return"Unexpected "+(O.length>1?"keys":"key")+" "+('"'+O.join('", "')+'" found in '+I+". ")+"Expected to find one of the known reducer keys instead: "+('"'+x.join('", "')+'". Unexpected keys will be ignored.')}function y(F){Object.keys(F).forEach(function(w){var E=F[w],g=E(void 0,{type:l.INIT});if(typeof g=="undefined")throw new Error('Reducer "'+w+`" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);if(typeof E(void 0,{type:l.PROBE_UNKNOWN_ACTION()})=="undefined")throw new Error('Reducer "'+w+'" returned undefined when probed with a random type. '+("Don't try to handle "+l.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function b(F){for(var w=Object.keys(F),E={},g=0;g-1?F.map(function(E){var g=E;return g.id===parseInt(w.choiceId,10)&&(g.selected=!0),g}):F;case"REMOVE_ITEM":return w.choiceId>-1?F.map(function(E){var g=E;return g.id===parseInt(w.choiceId,10)&&(g.selected=!1),g}):F;case"FILTER_CHOICES":return F.map(function(E){var g=E;return g.active=w.results.some(function(x){var I=x.item,O=x.score;return I.id===g.id?(g.score=O,!0):!1}),g});case"ACTIVATE_CHOICES":return F.map(function(E){var g=E;return g.active=w.active,g});case"CLEAR_CHOICES":return X;default:return F}}var re={loading:!1},pe=function(w,E){switch(w===void 0&&(w=re),E.type){case"SET_IS_LOADING":return{loading:E.isLoading};default:return w}},he=pe,ve=function(w,E){return Math.floor(Math.random()*(E-w)+w)},be=function(w){return Array.from({length:w},function(){return ve(0,36).toString(36)}).join("")},Te=function(w,E){var g=w.id||w.name&&w.name+"-"+be(2)||be(4);return g=g.replace(/(:|\.|\[|\]|,)/g,""),g=E+"-"+g,g},L=function(w){return Object.prototype.toString.call(w).slice(8,-1)},P=function(w,E){return E!=null&&L(E)===w},ct=function(w,E){return E===void 0&&(E=document.createElement("div")),w.nextSibling?w.parentNode.insertBefore(E,w.nextSibling):w.parentNode.appendChild(E),E.appendChild(w)},Ge=function(w,E,g){if(g===void 0&&(g=1),!(!(w instanceof Element)||typeof E!="string")){for(var x=(g>0?"next":"previous")+"ElementSibling",I=w[x];I;){if(I.matches(E))return I;I=I[x]}return I}},V=function(w,E,g){if(g===void 0&&(g=1),!w)return!1;var x;return g>0?x=E.scrollTop+E.offsetHeight>=w.offsetTop+w.offsetHeight:x=w.offsetTop>=E.scrollTop,x},j=function(w){return typeof w!="string"?w:w.replace(/&/g,"&").replace(/>/g,"&rt;").replace(/"'+j(w)+'"'},maxItemText:function(w){return"Only "+w+" values can be added"},valueComparer:function(w,E){return w===E},fuseOptions:{includeScore:!0},callbackOnInit:null,callbackOnCreateTemplates:null,classNames:Br},Pt={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice"},Kt={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL"},mt={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},Y="text",oe="select-one",Ee="select-multiple",We=4,kt=function(){function F(E){var g=E.element,x=E.type,I=E.classNames,O=E.position;this.element=g,this.classNames=I,this.type=x,this.position=O,this.isOpen=!1,this.isFlipped=!1,this.isFocussed=!1,this.isDisabled=!1,this.isLoading=!1,this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this)}var w=F.prototype;return w.addEventListeners=function(){this.element.addEventListener("focus",this._onFocus),this.element.addEventListener("blur",this._onBlur)},w.removeEventListeners=function(){this.element.removeEventListener("focus",this._onFocus),this.element.removeEventListener("blur",this._onBlur)},w.shouldFlip=function(g){if(typeof g!="number")return!1;var x=!1;return this.position==="auto"?x=!window.matchMedia("(min-height: "+(g+1)+"px)").matches:this.position==="top"&&(x=!0),x},w.setActiveDescendant=function(g){this.element.setAttribute("aria-activedescendant",g)},w.removeActiveDescendant=function(){this.element.removeAttribute("aria-activedescendant")},w.open=function(g){this.element.classList.add(this.classNames.openState),this.element.setAttribute("aria-expanded","true"),this.isOpen=!0,this.shouldFlip(g)&&(this.element.classList.add(this.classNames.flippedState),this.isFlipped=!0)},w.close=function(){this.element.classList.remove(this.classNames.openState),this.element.setAttribute("aria-expanded","false"),this.removeActiveDescendant(),this.isOpen=!1,this.isFlipped&&(this.element.classList.remove(this.classNames.flippedState),this.isFlipped=!1)},w.focus=function(){this.isFocussed||this.element.focus()},w.addFocusState=function(){this.element.classList.add(this.classNames.focusState)},w.removeFocusState=function(){this.element.classList.remove(this.classNames.focusState)},w.enable=function(){this.element.classList.remove(this.classNames.disabledState),this.element.removeAttribute("aria-disabled"),this.type===oe&&this.element.setAttribute("tabindex","0"),this.isDisabled=!1},w.disable=function(){this.element.classList.add(this.classNames.disabledState),this.element.setAttribute("aria-disabled","true"),this.type===oe&&this.element.setAttribute("tabindex","-1"),this.isDisabled=!0},w.wrap=function(g){ct(g,this.element)},w.unwrap=function(g){this.element.parentNode.insertBefore(g,this.element),this.element.parentNode.removeChild(this.element)},w.addLoadingState=function(){this.element.classList.add(this.classNames.loadingState),this.element.setAttribute("aria-busy","true"),this.isLoading=!0},w.removeLoadingState=function(){this.element.classList.remove(this.classNames.loadingState),this.element.removeAttribute("aria-busy"),this.isLoading=!1},w._onFocus=function(){this.isFocussed=!0},w._onBlur=function(){this.isFocussed=!1},F}();function gn(F,w){for(var E=0;E0?this.element.scrollTop+ae-$:g.offsetTop;requestAnimationFrame(function(){I._animateScroll(de,x)})}},w._scrollDown=function(g,x,I){var O=(I-g)/x,$=O>1?O:1;this.element.scrollTop=g+$},w._scrollUp=function(g,x,I){var O=(g-I)/x,$=O>1?O:1;this.element.scrollTop=g-$},w._animateScroll=function(g,x){var I=this,O=We,$=this.element.scrollTop,J=!1;x>0?(this._scrollDown($,O,g),$g&&(J=!0)),J&&requestAnimationFrame(function(){I._animateScroll(g,x)})},F}();function ln(F,w){for(var E=0;E0?"treeitem":"option"),Object.assign(Ne.dataset,{choice:"",id:de,value:xe,selectText:g}),De?(Ne.classList.add(J),Ne.dataset.choiceDisabled="",Ne.setAttribute("aria-disabled","true")):(Ne.classList.add(O),Ne.dataset.choiceSelectable=""),Ne},input:function(w,E){var g=w.input,x=w.inputCloned,I=Object.assign(document.createElement("input"),{type:"text",className:g+" "+x,autocomplete:"off",autocapitalize:"off",spellcheck:!1});return I.setAttribute("role","textbox"),I.setAttribute("aria-autocomplete","list"),I.setAttribute("aria-label",E),I},dropdown:function(w){var E=w.list,g=w.listDropdown,x=document.createElement("div");return x.classList.add(E,g),x.setAttribute("aria-expanded","false"),x},notice:function(w,E,g){var x=w.item,I=w.itemChoice,O=w.noResults,$=w.noChoices;g===void 0&&(g="");var J=[x,I];return g==="no-choices"?J.push($):g==="no-results"&&J.push(O),Object.assign(document.createElement("div"),{innerHTML:E,className:J.join(" ")})},option:function(w){var E=w.label,g=w.value,x=w.customProperties,I=w.active,O=w.disabled,$=new Option(E,g,!1,I);return x&&($.dataset.customProperties=x),$.disabled=O,$}},se=Q,ie=function(w){var E=w.value,g=w.label,x=w.id,I=w.groupId,O=w.disabled,$=w.elementId,J=w.customProperties,ae=w.placeholder,de=w.keyCode;return{type:Kt.ADD_CHOICE,value:E,label:g,id:x,groupId:I,disabled:O,elementId:$,customProperties:J,placeholder:ae,keyCode:de}},me=function(w){return{type:Kt.FILTER_CHOICES,results:w}},ue=function(w){return w===void 0&&(w=!0),{type:Kt.ACTIVATE_CHOICES,active:w}},Pe=function(){return{type:Kt.CLEAR_CHOICES}},Fe=function(w){var E=w.value,g=w.label,x=w.id,I=w.choiceId,O=w.groupId,$=w.customProperties,J=w.placeholder,ae=w.keyCode;return{type:Kt.ADD_ITEM,value:E,label:g,id:x,choiceId:I,groupId:O,customProperties:$,placeholder:J,keyCode:ae}},Me=function(w,E){return{type:Kt.REMOVE_ITEM,id:w,choiceId:E}},jt=function(w,E){return{type:Kt.HIGHLIGHT_ITEM,id:w,highlighted:E}},gt=function(w){var E=w.value,g=w.id,x=w.active,I=w.disabled;return{type:Kt.ADD_GROUP,value:E,id:g,active:x,disabled:I}},Gn=function(){return{type:"CLEAR_ALL"}},Qn=function(w){return{type:"RESET_TO",state:w}},_i=function(w){return{type:"SET_IS_LOADING",isLoading:w}};function Ha(F,w){for(var E=0;E=0?this._store.getGroupById($):null;return this._store.dispatch(jt(I,!0)),x&&this.passedElement.triggerEvent(Pt.highlightItem,{id:I,value:ae,label:xe,groupValue:ye&&ye.value?ye.value:null}),this},w.unhighlightItem=function(g){if(!g)return this;var x=g.id,I=g.groupId,O=I===void 0?-1:I,$=g.value,J=$===void 0?"":$,ae=g.label,de=ae===void 0?"":ae,xe=O>=0?this._store.getGroupById(O):null;return this._store.dispatch(jt(x,!1)),this.passedElement.triggerEvent(Pt.highlightItem,{id:x,value:J,label:de,groupValue:xe&&xe.value?xe.value:null}),this},w.highlightAll=function(){var g=this;return this._store.items.forEach(function(x){return g.highlightItem(x)}),this},w.unhighlightAll=function(){var g=this;return this._store.items.forEach(function(x){return g.unhighlightItem(x)}),this},w.removeActiveItemsByValue=function(g){var x=this;return this._store.activeItems.filter(function(I){return I.value===g}).forEach(function(I){return x._removeItem(I)}),this},w.removeActiveItems=function(g){var x=this;return this._store.activeItems.filter(function(I){var O=I.id;return O!==g}).forEach(function(I){return x._removeItem(I)}),this},w.removeHighlightedItems=function(g){var x=this;return g===void 0&&(g=!1),this._store.highlightedActiveItems.forEach(function(I){x._removeItem(I),g&&x._triggerChange(I.value)}),this},w.showDropdown=function(g){var x=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){x.dropdown.show(),x.containerOuter.open(x.dropdown.distanceFromTopWindow),!g&&x._canSearch&&x.input.focus(),x.passedElement.triggerEvent(Pt.showDropdown,{})}),this)},w.hideDropdown=function(g){var x=this;return this.dropdown.isActive?(requestAnimationFrame(function(){x.dropdown.hide(),x.containerOuter.close(),!g&&x._canSearch&&(x.input.removeActiveDescendant(),x.input.blur()),x.passedElement.triggerEvent(Pt.hideDropdown,{})}),this):this},w.getValue=function(g){g===void 0&&(g=!1);var x=this._store.activeItems.reduce(function(I,O){var $=g?O.value:O;return I.push($),I},[]);return this._isSelectOneElement?x[0]:x},w.setValue=function(g){var x=this;return this.initialised?(g.forEach(function(I){return x._setChoiceOrItem(I)}),this):this},w.setChoiceByValue=function(g){var x=this;if(!this.initialised||this._isTextElement)return this;var I=Array.isArray(g)?g:[g];return I.forEach(function(O){return x._findAndSelectChoiceByValue(O)}),this},w.setChoices=function(g,x,I,O){var $=this;if(g===void 0&&(g=[]),x===void 0&&(x="value"),I===void 0&&(I="label"),O===void 0&&(O=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof x!="string"||!x)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(O&&this.clearChoices(),typeof g=="function"){var J=g(this);if(typeof Promise=="function"&&J instanceof Promise)return new Promise(function(ae){return requestAnimationFrame(ae)}).then(function(){return $._handleLoadingState(!0)}).then(function(){return J}).then(function(ae){return $.setChoices(ae,x,I,O)}).catch(function(ae){$.config.silent||console.error(ae)}).then(function(){return $._handleLoadingState(!1)}).then(function(){return $});if(!Array.isArray(J))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: "+typeof J);return this.setChoices(J,x,I,!1)}if(!Array.isArray(g))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),g.forEach(function(ae){ae.choices?$._addGroup({id:parseInt(ae.id,10)||null,group:ae,valueKey:x,labelKey:I}):$._addChoice({value:ae[x],label:ae[I],isSelected:ae.selected,isDisabled:ae.disabled,customProperties:ae.customProperties,placeholder:ae.placeholder})}),this._stopLoading(),this},w.clearChoices=function(){return this._store.dispatch(Pe()),this},w.clearStore=function(){return this._store.dispatch(Gn()),this},w.clearInput=function(){var g=!this._isSelectOneElement;return this.input.clear(g),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch(ue(!0))),this},w._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var g=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,x=this._isSelectElement,I=this._currentState.items!==this._prevState.items;!g||(x&&this._renderChoices(),I&&this._renderItems(),this._prevState=this._currentState)}},w._renderChoices=function(){var g=this,x=this._store,I=x.activeGroups,O=x.activeChoices,$=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return g.choiceList.scrollToTop()}),I.length>=1&&!this._isSearching){var J=O.filter(function(Ie){return Ie.placeholder===!0&&Ie.groupId===-1});J.length>=1&&($=this._createChoicesFragment(J,$)),$=this._createGroupsFragment(I,O,$)}else O.length>=1&&($=this._createChoicesFragment(O,$));if($.childNodes&&$.childNodes.length>0){var ae=this._store.activeItems,de=this._canAddItem(ae,this.input.value);de.response?(this.choiceList.append($),this._highlightChoice()):this.choiceList.append(this._getTemplate("notice",de.notice))}else{var xe,ye;this._isSearching?(ye=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,xe=this._getTemplate("notice",ye,"no-results")):(ye=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,xe=this._getTemplate("notice",ye,"no-choices")),this.choiceList.append(xe)}},w._renderItems=function(){var g=this._store.activeItems||[];this.itemList.clear();var x=this._createItemsFragment(g);x.childNodes&&this.itemList.append(x)},w._createGroupsFragment=function(g,x,I){var O=this;I===void 0&&(I=document.createDocumentFragment());var $=function(ae){return x.filter(function(de){return O._isSelectOneElement?de.groupId===ae.id:de.groupId===ae.id&&(O.config.renderSelectedChoices==="always"||!de.selected)})};return this.config.shouldSort&&g.sort(this.config.sorter),g.forEach(function(J){var ae=$(J);if(ae.length>=1){var de=O._getTemplate("choiceGroup",J);I.appendChild(de),O._createChoicesFragment(ae,I,!0)}}),I},w._createChoicesFragment=function(g,x,I){var O=this;x===void 0&&(x=document.createDocumentFragment()),I===void 0&&(I=!1);var $=this.config,J=$.renderSelectedChoices,ae=$.searchResultLimit,de=$.renderChoiceLimit,xe=this._isSearching?we:this.config.sorter,ye=function($t){var mr=J==="auto"?O._isSelectOneElement||!$t.selected:!0;if(mr){var gr=O._getTemplate("choice",$t,O.config.itemSelectText);x.appendChild(gr)}},Ie=g;J==="auto"&&!this._isSelectOneElement&&(Ie=g.filter(function(Ft){return!Ft.selected}));var Oe=Ie.reduce(function(Ft,$t){return $t.placeholder?Ft.placeholderChoices.push($t):Ft.normalChoices.push($t),Ft},{placeholderChoices:[],normalChoices:[]}),De=Oe.placeholderChoices,Be=Oe.normalChoices;(this.config.shouldSort||this._isSearching)&&Be.sort(xe);var Ae=Ie.length,Ne=this._isSelectOneElement?[].concat(De,Be):Be;this._isSearching?Ae=ae:de&&de>0&&!I&&(Ae=de);for(var dt=0;dt=O){var ae=$?this._searchChoices(g):0;this.passedElement.triggerEvent(Pt.search,{value:g,resultCount:ae})}else J&&(this._isSearching=!1,this._store.dispatch(ue(!0)))}},w._canAddItem=function(g,x){var I=!0,O=typeof this.config.addItemText=="function"?this.config.addItemText(x):this.config.addItemText;if(!this._isSelectOneElement){var $=$e(g,x);this.config.maxItemCount>0&&this.config.maxItemCount<=g.length&&(I=!1,O=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&$&&I&&(I=!1,O=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(x):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&I&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(x)&&(I=!1,O=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(x):this.config.customAddItemText)}return{response:I,notice:O}},w._searchChoices=function(g){var x=typeof g=="string"?g.trim():g,I=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(x.length<1&&x===I+" ")return 0;var O=this._store.searchableChoices,$=x,J=[].concat(this.config.searchFields),ae=Object.assign(this.config.fuseOptions,{keys:J}),de=new i.a(O,ae),xe=de.search($);return this._currentValue=x,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch(me(xe)),xe.length},w._addEventListeners=function(){var g=document,x=g.documentElement;x.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),x.addEventListener("click",this._onClick,{passive:!0}),x.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},w._removeEventListeners=function(){var g=document,x=g.documentElement;x.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),x.removeEventListener("click",this._onClick),x.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},w._onKeyDown=function(g){var x,I=g.target,O=g.keyCode,$=g.ctrlKey,J=g.metaKey,ae=this._store.activeItems,de=this.input.isFocussed,xe=this.dropdown.isActive,ye=this.itemList.hasChildren(),Ie=String.fromCharCode(O),Oe=mt.BACK_KEY,De=mt.DELETE_KEY,Be=mt.ENTER_KEY,Ae=mt.A_KEY,Ne=mt.ESC_KEY,dt=mt.UP_KEY,Ft=mt.DOWN_KEY,$t=mt.PAGE_UP_KEY,mr=mt.PAGE_DOWN_KEY,gr=$||J;!this._isTextElement&&/[a-zA-Z0-9-_ ]/.test(Ie)&&this.showDropdown();var Kr=(x={},x[Ae]=this._onAKey,x[Be]=this._onEnterKey,x[Ne]=this._onEscapeKey,x[dt]=this._onDirectionKey,x[$t]=this._onDirectionKey,x[Ft]=this._onDirectionKey,x[mr]=this._onDirectionKey,x[De]=this._onDeleteKey,x[Oe]=this._onDeleteKey,x);Kr[O]&&Kr[O]({event:g,target:I,keyCode:O,metaKey:J,activeItems:ae,hasFocusedInput:de,hasActiveDropdown:xe,hasItems:ye,hasCtrlDownKeyPressed:gr})},w._onKeyUp=function(g){var x=g.target,I=g.keyCode,O=this.input.value,$=this._store.activeItems,J=this._canAddItem($,O),ae=mt.BACK_KEY,de=mt.DELETE_KEY;if(this._isTextElement){var xe=J.notice&&O;if(xe){var ye=this._getTemplate("notice",J.notice);this.dropdown.element.innerHTML=ye.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var Ie=(I===ae||I===de)&&!x.value,Oe=!this._isTextElement&&this._isSearching,De=this._canSearch&&J.response;Ie&&Oe?(this._isSearching=!1,this._store.dispatch(ue(!0))):De&&this._handleSearch(this.input.value)}this._canSearch=this.config.searchEnabled},w._onAKey=function(g){var x=g.hasItems,I=g.hasCtrlDownKeyPressed;if(I&&x){this._canSearch=!1;var O=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;O&&this.highlightAll()}},w._onEnterKey=function(g){var x=g.event,I=g.target,O=g.activeItems,$=g.hasActiveDropdown,J=mt.ENTER_KEY,ae=I.hasAttribute("data-button");if(this._isTextElement&&I.value){var de=this.input.value,xe=this._canAddItem(O,de);xe.response&&(this.hideDropdown(!0),this._addItem({value:de}),this._triggerChange(de),this.clearInput())}if(ae&&(this._handleButtonAction(O,I),x.preventDefault()),$){var ye=this.dropdown.getChild("."+this.config.classNames.highlightedState);ye&&(O[0]&&(O[0].keyCode=J),this._handleChoiceAction(O,ye)),x.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),x.preventDefault())},w._onEscapeKey=function(g){var x=g.hasActiveDropdown;x&&(this.hideDropdown(!0),this.containerOuter.focus())},w._onDirectionKey=function(g){var x=g.event,I=g.hasActiveDropdown,O=g.keyCode,$=g.metaKey,J=mt.DOWN_KEY,ae=mt.PAGE_UP_KEY,de=mt.PAGE_DOWN_KEY;if(I||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var xe=O===J||O===de?1:-1,ye=$||O===de||O===ae,Ie="[data-choice-selectable]",Oe;if(ye)xe>0?Oe=this.dropdown.element.querySelector(Ie+":last-of-type"):Oe=this.dropdown.element.querySelector(Ie);else{var De=this.dropdown.element.querySelector("."+this.config.classNames.highlightedState);De?Oe=Ge(De,Ie,xe):Oe=this.dropdown.element.querySelector(Ie)}Oe&&(V(Oe,this.choiceList.element,xe)||this.choiceList.scrollToChildElement(Oe,xe),this._highlightChoice(Oe)),x.preventDefault()}},w._onDeleteKey=function(g){var x=g.event,I=g.target,O=g.hasFocusedInput,$=g.activeItems;O&&!I.value&&!this._isSelectOneElement&&(this._handleBackspace($),x.preventDefault())},w._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},w._onTouchEnd=function(g){var x=g||g.touches[0],I=x.target,O=this._wasTap&&this.containerOuter.element.contains(I);if(O){var $=I===this.containerOuter.element||I===this.containerInner.element;$&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),g.stopPropagation()}this._wasTap=!0},w._onMouseDown=function(g){var x=g.target;if(x instanceof HTMLElement){if(Di&&this.choiceList.element.contains(x)){var I=this.choiceList.element.firstElementChild,O=this._direction==="ltr"?g.offsetX>=I.offsetWidth:g.offsetX0;O&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},w._onFocus=function(g){var x=this,I,O=g.target,$=this.containerOuter.element.contains(O);if(!!$){var J=(I={},I[Y]=function(){O===x.input.element&&x.containerOuter.addFocusState()},I[oe]=function(){x.containerOuter.addFocusState(),O===x.input.element&&x.showDropdown(!0)},I[Ee]=function(){O===x.input.element&&(x.showDropdown(!0),x.containerOuter.addFocusState())},I);J[this.passedElement.element.type]()}},w._onBlur=function(g){var x=this,I=g.target,O=this.containerOuter.element.contains(I);if(O&&!this._isScrollingOnIe){var $,J=this._store.activeItems,ae=J.some(function(xe){return xe.highlighted}),de=($={},$[Y]=function(){I===x.input.element&&(x.containerOuter.removeFocusState(),ae&&x.unhighlightAll(),x.hideDropdown(!0))},$[oe]=function(){x.containerOuter.removeFocusState(),(I===x.input.element||I===x.containerOuter.element&&!x._canSearch)&&x.hideDropdown(!0)},$[Ee]=function(){I===x.input.element&&(x.containerOuter.removeFocusState(),x.hideDropdown(!0),ae&&x.unhighlightAll())},$);de[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},w._onFormReset=function(){this._store.dispatch(Qn(this._initialState))},w._highlightChoice=function(g){var x=this;g===void 0&&(g=null);var I=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(!!I.length){var O=g,$=Array.from(this.dropdown.element.querySelectorAll("."+this.config.classNames.highlightedState));$.forEach(function(J){J.classList.remove(x.config.classNames.highlightedState),J.setAttribute("aria-selected","false")}),O?this._highlightPosition=I.indexOf(O):(I.length>this._highlightPosition?O=I[this._highlightPosition]:O=I[I.length-1],O||(O=I[0])),O.classList.add(this.config.classNames.highlightedState),O.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(Pt.highlightChoice,{el:O}),this.dropdown.isActive&&(this.input.setActiveDescendant(O.id),this.containerOuter.setActiveDescendant(O.id))}},w._addItem=function(g){var x=g.value,I=g.label,O=I===void 0?null:I,$=g.choiceId,J=$===void 0?-1:$,ae=g.groupId,de=ae===void 0?-1:ae,xe=g.customProperties,ye=xe===void 0?null:xe,Ie=g.placeholder,Oe=Ie===void 0?!1:Ie,De=g.keyCode,Be=De===void 0?null:De,Ae=typeof x=="string"?x.trim():x,Ne=Be,dt=ye,Ft=this._store.items,$t=O||Ae,mr=J||-1,gr=de>=0?this._store.getGroupById(de):null,Kr=Ft?Ft.length+1:1;return this.config.prependValue&&(Ae=this.config.prependValue+Ae.toString()),this.config.appendValue&&(Ae+=this.config.appendValue.toString()),this._store.dispatch(Fe({value:Ae,label:$t,id:Kr,choiceId:mr,groupId:de,customProperties:ye,placeholder:Oe,keyCode:Ne})),this._isSelectOneElement&&this.removeActiveItems(Kr),this.passedElement.triggerEvent(Pt.addItem,{id:Kr,value:Ae,label:$t,customProperties:dt,groupValue:gr&&gr.value?gr.value:void 0,keyCode:Ne}),this},w._removeItem=function(g){if(!g||!P("Object",g))return this;var x=g.id,I=g.value,O=g.label,$=g.choiceId,J=g.groupId,ae=J>=0?this._store.getGroupById(J):null;return this._store.dispatch(Me(x,$)),ae&&ae.value?this.passedElement.triggerEvent(Pt.removeItem,{id:x,value:I,label:O,groupValue:ae.value}):this.passedElement.triggerEvent(Pt.removeItem,{id:x,value:I,label:O}),this},w._addChoice=function(g){var x=g.value,I=g.label,O=I===void 0?null:I,$=g.isSelected,J=$===void 0?!1:$,ae=g.isDisabled,de=ae===void 0?!1:ae,xe=g.groupId,ye=xe===void 0?-1:xe,Ie=g.customProperties,Oe=Ie===void 0?null:Ie,De=g.placeholder,Be=De===void 0?!1:De,Ae=g.keyCode,Ne=Ae===void 0?null:Ae;if(!(typeof x=="undefined"||x===null)){var dt=this._store.choices,Ft=O||x,$t=dt?dt.length+1:1,mr=this._baseId+"-"+this._idNames.itemChoice+"-"+$t;this._store.dispatch(ie({id:$t,groupId:ye,elementId:mr,value:x,label:Ft,disabled:de,customProperties:Oe,placeholder:Be,keyCode:Ne})),J&&this._addItem({value:x,label:Ft,choiceId:$t,customProperties:Oe,placeholder:Be,keyCode:Ne})}},w._addGroup=function(g){var x=this,I=g.group,O=g.id,$=g.valueKey,J=$===void 0?"value":$,ae=g.labelKey,de=ae===void 0?"label":ae,xe=P("Object",I)?I.choices:Array.from(I.getElementsByTagName("OPTION")),ye=O||Math.floor(new Date().valueOf()*Math.random()),Ie=I.disabled?I.disabled:!1;if(xe){this._store.dispatch(gt({value:I.label,id:ye,active:!0,disabled:Ie}));var Oe=function(Be){var Ae=Be.disabled||Be.parentNode&&Be.parentNode.disabled;x._addChoice({value:Be[J],label:P("Object",Be)?Be[de]:Be.innerHTML,isSelected:Be.selected,isDisabled:Ae,groupId:ye,customProperties:Be.customProperties,placeholder:Be.placeholder})};xe.forEach(Oe)}else this._store.dispatch(gt({value:I.label,id:I.id,active:!1,disabled:I.disabled}))},w._getTemplate=function(g){var x;if(!g)return null;for(var I=this.config.classNames,O=arguments.length,$=new Array(O>1?O-1:0),J=1;J{h();(function(e,t){typeof Fs=="object"&&typeof Ab!="undefined"?t(Fs):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e.immutableJSONPatch={}))})(Fs,function(e){"use strict";function t(V){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(q){return typeof q}:t=function(q){return q&&typeof Symbol=="function"&&q.constructor===Symbol&&q!==Symbol.prototype?"symbol":typeof q},t(V)}function r(V,j){return JSON.stringify(V)===JSON.stringify(j)}function n(V,j){return V===j}function i(V){return V.slice(0,V.length-1)}function a(V){return V[V.length-1]}function o(V,j){var q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:n;if(V.length3&&arguments[3]!==void 0?arguments[3]:!1;if(j.length===0)return q;var we=j[0],ke=y(V?V[we]:void 0,j.slice(1),q,ee);if(!s(V))if(ee){var $e=typeof we=="number"?[]:{};return $e[we]=ke,$e}else throw new Error("Path does not exist");return p(V,we,ke)}function b(V,j,q){if(j.length===0)return q(V);if(!s(V))throw new Error("Path doesn't exist");var ee=j[0],we=b(V[ee],j.slice(1),q);return p(V,ee,we)}function k(V,j){if(j.length===0)return V;if(!s(V))throw new Error("Path does not exist");if(j.length===1){var q=j[0];if(q in V){var ee=f(V);return Array.isArray(ee)?ee.splice(q,1):delete ee[q],ee}else return V}var we=j[0],ke=k(V[we],j.slice(1));return p(V,we,ke)}function T(V,j,q){var ee=j.slice(0,j.length-1),we=j[j.length-1];return b(V,ee,function(ke){if(!Array.isArray(ke))throw new TypeError("Array expected at path "+JSON.stringify(ee));var $e=f(ke);return $e.splice(we,0,q),$e})}function D(V,j){return V===void 0?!1:j.length===0?!0:D(V[j[0]],j.slice(1))}function A(V){var j=V.split("/");return j.shift(),j.map(function(q){return q.replace(/~1/g,"/").replace(/~0/g,"~")})}function B(V){return V.map(function(j){return"/"+String(j).replace(/~/g,"~0").replace(/\//g,"~1")}).join("")}function C(V,j,q){for(var ee=V,we=0;we{h();(function(){var e;typeof Kd!="undefined"?e=Kd.exports=n:e=function(){return this||(0,eval)("this")}(),e.format=n,e.vsprintf=r,typeof console!="undefined"&&typeof console.log=="function"&&(e.printf=t);function t(){console.log(n.apply(null,arguments))}function r(i,a){return n.apply(null,[i].concat(a))}function n(i){for(var a=1,o=[].slice.call(arguments),s=0,u=i.length,l="",c,d=!1,f,p,m=!1,y,b=function(){return o[a++]},k=function(){for(var T="";/\d/.test(i[s]);)T+=i[s++],c=i[s];return T.length>0?parseInt(T):null};sYd});h();h();function al(e,t){let r=Object.keys(t).map(n=>rE(e,n,t[n]));return r.length===1?r[0]:function(){r.forEach(n=>n())}}function rE(e,t,r){let n=e[t],i=e.hasOwnProperty(t),a=r(n);return n&&Object.setPrototypeOf(a,n),Object.setPrototypeOf(o,a),e[t]=o,s;function o(...u){return a===n&&e[t]===o&&s(),a.apply(this,u)}function s(){e[t]===o&&(i?e[t]=n:delete e[t]),a!==n&&(a=n,Object.setPrototypeOf(o,n||Function))}}var xt=ge(require("obsidian"));h();h();yr();var Ur,yt,ol,hf,Vr=0,mf=[],za=[],gf=fe.__b,vf=fe.__r,yf=fe.diffed,bf=fe.__c,wf=fe.unmount;function Pi(e,t){fe.__h&&fe.__h(yt,e,Vr||t),Vr=0;var r=yt.__H||(yt.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:za}),r.__[e]}function Fi(e){return Vr=1,Wa(xf,e)}function Wa(e,t,r){var n=Pi(Ur++,2);return n.t=e,n.__c||(n.__=[r?r(t):xf(void 0,t),function(i){var a=n.t(n.__[0],i);n.__[0]!==a&&(n.__=[a,n.__[1]],n.__c.setState({}))}],n.__c=yt),n.__}function Oi(e,t){var r=Pi(Ur++,3);!fe.__s&&dl(r.__H,t)&&(r.__=e,r.u=t,yt.__H.__h.push(r))}function ja(e,t){var r=Pi(Ur++,4);!fe.__s&&dl(r.__H,t)&&(r.__=e,r.u=t,yt.__h.push(r))}function Ni(e){return Vr=5,Ri(function(){return{current:e}},[])}function sl(e,t,r){Vr=6,ja(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},r==null?r:r.concat(e))}function Ri(e,t){var r=Pi(Ur++,7);return dl(r.__H,t)?(r.__V=e(),r.u=t,r.__h=e,r.__V):r.__}function Hi(e,t){return Vr=8,Ri(function(){return e},t)}function ll(e){var t=yt.context[e.__c],r=Pi(Ur++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(yt)),t.props.value):e.__}function cl(e,t){fe.useDebugValue&&fe.useDebugValue(t?t(e):e)}function iE(){for(var e;e=mf.shift();)if(e.__P)try{e.__H.__h.forEach(qa),e.__H.__h.forEach(ul),e.__H.__h=[]}catch(t){e.__H.__h=[],fe.__e(t,e.__v)}}fe.__b=function(e){yt=null,gf&&gf(e)},fe.__r=function(e){vf&&vf(e),Ur=0;var t=(yt=e.__c).__H;t&&(ol===yt?(t.__h=[],yt.__h=[],t.__.forEach(function(r){r.__V=za,r.u=void 0})):(t.__h.forEach(qa),t.__h.forEach(ul),t.__h=[])),ol=yt},fe.diffed=function(e){yf&&yf(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(mf.push(t)!==1&&hf===fe.requestAnimationFrame||((hf=fe.requestAnimationFrame)||function(r){var n,i=function(){clearTimeout(a),Ef&&cancelAnimationFrame(n),setTimeout(r)},a=setTimeout(i,100);Ef&&(n=requestAnimationFrame(i))})(iE)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.__V!==za&&(r.__=r.__V),r.u=void 0,r.__V=za})),ol=yt=null},fe.__c=function(e,t){t.some(function(r){try{r.__h.forEach(qa),r.__h=r.__h.filter(function(n){return!n.__||ul(n)})}catch(n){t.some(function(i){i.__h&&(i.__h=[])}),t=[],fe.__e(n,r.__v)}}),bf&&bf(e,t)},fe.unmount=function(e){wf&&wf(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{qa(n)}catch(i){t=i}}),t&&fe.__e(t,r.__v))};var Ef=typeof requestAnimationFrame=="function";function qa(e){var t=yt,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),yt=t}function ul(e){var t=yt;e.__c=e.__(),yt=t}function dl(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function xf(e,t){return typeof t=="function"?t(e):t}yr();yr();function kf(e,t){for(var r in t)e[r]=t[r];return e}function fl(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function pl(e){this.props=e}function aE(e,t){function r(i){var a=this.props.ref,o=a==i.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,i)||!o:fl(this.props,i)}function n(i){return this.shouldComponentUpdate=r,v(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(pl.prototype=new vt).isPureReactComponent=!0,pl.prototype.shouldComponentUpdate=function(e,t){return fl(this.props,e)||fl(this.state,t)};var Sf=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Sf&&Sf(e)};var oE=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function sE(e){function t(r){var n=kf({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=oE,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var _f=function(e,t){return e==null?null:qt(qt(e).map(t))},lE={map:_f,forEach:_f,count:function(e){return e?qt(e).length:0},only:function(e){var t=qt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:qt},cE=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}cE(e,t,r,n)};var Df=fe.unmount;function Ya(){this.__u=0,this.t=null,this.__b=null}function Cf(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function uE(e){var t,r,n;function i(a){if(t||(t=e()).then(function(o){r=o.default||o},function(o){n=o}),n)throw n;if(!r)throw t;return v(r,a)}return i.displayName="Lazy",i.__f=!0,i}function Bi(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),Df&&Df(e)},(Ya.prototype=new vt).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=Cf(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,m){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(y){return d(y,p,m)}),f.__c&&f.__c.__P===p&&(f.__e&&m.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=m)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},Ya.prototype.componentWillUnmount=function(){this.t=[]},Ya.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=kf({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&v(S,null,e.fallback);return i&&(i.__h=null),[v(S,null,t.__e?null:e.children),i]};var Tf=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),vr(v(dE,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function pE(e,t){var r=v(fE,{__v:e,i:t});return r.containerInfo=t,r}(Bi.prototype=new vt).__e=function(e){var t=this,r=Cf(t.__v),n=t.o.get(e);return n[0]++,function(i){var a=function(){t.props.revealOrder?(n.push(i),Tf(t,e,n)):i()};r?r(a):a()}},Bi.prototype.render=function(e){this.u=null,this.o=new Map;var t=qt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},Bi.prototype.componentDidUpdate=Bi.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){Tf(e,r,t)})};var Mf=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,hE=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,mE=typeof document!="undefined",gE=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function vE(e,t,r){return t.__k==null&&(t.textContent=""),vr(e,t),typeof r=="function"&&r(),e?e.__c:null}function yE(e,t,r){return Va(e,t),typeof r=="function"&&r(),e?e.__c:null}vt.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(vt.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var If=fe.event;function bE(){}function wE(){return this.cancelBubble}function EE(){return this.defaultPrevented}fe.event=function(e){return If&&(e=If(e)),e.persist=bE,e.isPropagationStopped=wE,e.isDefaultPrevented=EE,e.nativeEvent=e};var Af,Lf={configurable:!0,get:function(){return this.class}},Pf=fe.vnode;fe.vnode=function(e){var t=e.type,r=e.props,n=r;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var a in n={},r){var o=r[a];mE&&a==="children"&&t==="noscript"||a==="value"&&"defaultValue"in r&&o==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&o===!0?o="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+t)&&!gE(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():i&&hE.test(a)?a=a.replace(/[A-Z0-9]/,"-$&").toLowerCase():o===null&&(o=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),n[a]&&(a="oninputCapture")),n[a]=o)}t=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=qt(r.children).forEach(function(s){s.props.selected=n.value.indexOf(s.props.value)!=-1})),t=="select"&&n.defaultValue!=null&&(n.value=qt(r.children).forEach(function(s){s.props.selected=n.multiple?n.defaultValue.indexOf(s.props.value)!=-1:n.defaultValue==s.props.value})),e.props=n,r.class!=r.className&&(Lf.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",Lf))}e.$$typeof=Mf,Pf&&Pf(e)};var Ff=fe.__r;fe.__r=function(e){Ff&&Ff(e),Af=e.__c};var xE={ReactCurrentDispatcher:{current:{readContext:function(e){return Af.__n[e.__c].props.value}}}};function kE(e){return v.bind(null,e)}function Of(e){return!!e&&e.$$typeof===Mf}function SE(e){return Of(e)?il.apply(null,arguments):e}function _E(e){return!!e.__k&&(vr(null,e),!0)}function DE(e){return e&&(e.base||e.nodeType===1&&e)||null}var CE=function(e,t){return e(t)},TE=function(e,t){return e(t)};var R={useState:Fi,useReducer:Wa,useEffect:Oi,useLayoutEffect:ja,useRef:Ni,useImperativeHandle:sl,useMemo:Ri,useCallback:Hi,useContext:ll,useDebugValue:cl,version:"17.0.2",Children:lE,render:vE,hydrate:yE,unmountComponentAtNode:_E,createPortal:pE,createElement:v,createContext:Li,createFactory:kE,cloneElement:SE,createRef:Ai,Fragment:S,isValidElement:Of,findDOMNode:DE,Component:vt,PureComponent:pl,memo:aE,forwardRef:sE,flushSync:TE,unstable_batchedUpdates:CE,StrictMode:S,Suspense:Ya,SuspenseList:Bi,lazy:uE,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:xE};h();function Je(e){return e.ownerDocument.defaultView}function Ja(e){return e.ownerDocument.body}h();var sb=ge(_t());h();var Ve=R.createContext(null),Qa=R.createContext(null);h();var Xf=ge(_t()),Za=ge(require("obsidian"));h();var qf=ge(zf()),Zn=ge(_t());h();function Wf(e){return Object.prototype.toString.call(e)==="[object Object]"}function jf(e){var t,r;return Wf(e)===!1?!1:(t=e.constructor,t===void 0?!0:(r=t.prototype,!(Wf(r)===!1||r.hasOwnProperty("isPrototypeOf")===!1)))}h();function GE(e,t){return e.length!==t.length?!1:e.every((r,n,i)=>n===i.length-1?r!==t[n]:r===t[n])}function QE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}var en;(function(i){i[i.Before=0]="Before",i[i.After=1]="After",i[i.Self=2]="Self",i[i.NotSiblings=3]="NotSiblings"})(en||(en={}));function Ui(e,t){if(QE(e,t))return 2;if(!GE(e,t))return 3;let r=e.length-1;return e[r]=0;n--)r={children:{[e[n]]:r}};return r}function Vi(e,t){let r=t;for(let n=e.length-2;n>=0;n--)r={children:{[e[n]]:r}};return r}function Yf(e){return Vi(e,{children:{$splice:[[e[e.length-1],1]]}})}function Jf(e,t,r=0){return Vi(e,{children:{$splice:[[e[e.length-1]+r,0,...t]]}})}function ZE(e,t){return Vi(e,{children:{$push:t}})}function ex(e,t){return Vi(e,{children:{$unshift:t}})}function Gf(e,t,r,n){let i=n?n(ft(e,t)):ft(e,t),o=Ui(t,r)===en.After?-1:0,s=Yf(t),u=Jf(r,[i],o),l=(0,qf.default)(s,u,{isMergeableObject:d=>jf(d)||Array.isArray(d)});return(0,Zn.default)(e,l)}function wr(e,t){return(0,Zn.default)(e,Yf(t))}function er(e,t,r){return(0,Zn.default)(e,Jf(t,r))}function vl(e,t,r){return(0,Zn.default)(e,ZE(t,r))}function Qf(e,t,r){return(0,Zn.default)(e,ex(t,r))}function Xa(e,t,r){return(0,Zn.default)(e,XE(t,r))}function yl(e,t,r){return(0,Zn.default)(e,Vi(t,r))}var bl="kanban-plugin";function Wr(){}function z(e){return`${bl}__${e}`}function ze(e=9){return Math.random().toString(36).slice(2,2+e)}function wl(e,t,r,n,i){var l,c;let a=ft(e,t.slice(0,-1)),o=ft(r,n.slice(0,-1)),s=(l=a==null?void 0:a.data)==null?void 0:l.shouldMarkItemsComplete,u=(c=o==null?void 0:o.data)==null?void 0:c.shouldMarkItemsComplete;return!s&&!u||u===!!i.data.isComplete?i:(0,Xf.default)(i,{data:{isComplete:{$set:u}}})}function eo(){let e=R.useRef(!1);return{oncompositionstart:()=>{e.current=!0},oncompositionend:()=>{e.current=!1},getShouldIMEBlockAction:()=>e.current}}var tx=/<%/;async function Zf(e,t){let r=t?e.app.vault.getAbstractFileByPath(t):null;if(r&&r instanceof Za.TFile){let n=app.workspace.getActiveViewOfType(Za.MarkdownView);try{(n==null?void 0:n.getMode())!=="source"&&await n.setState({...n.getState(),mode:"source"},{});let{templatesEnabled:i,templaterEnabled:a,templatesPlugin:o,templaterPlugin:s}=El(e.app),u=await e.app.vault.read(r);if(i&&a)return tx.test(u)?await s.append_template_to_active_file(r):await o.instance.insertTemplate(r);if(i)return await o.instance.insertTemplate(r);if(a)return await s.append_template_to_active_file(r);await e.app.vault.modify(e.app.workspace.getActiveFile(),u)}catch(i){console.error(i),e.setError(i)}}}function jr(e){var s,u,l,c,d;let t=e.internalPlugins.plugins,r=(s=t["daily-notes"])==null?void 0:s.enabled,n=(u=t["daily-notes"])==null?void 0:u.instance.options.format,i=(l=e.plugins.plugins["nldates-obsidian"])==null?void 0:l.settings.format,a=(c=t.templates)==null?void 0:c.enabled,o=(d=t.templates)==null?void 0:d.instance.options.dateFormat;return r&&n||i||a&&o||"YYYY-MM-DD"}function zi(e){var a,o,s;let t=e.internalPlugins.plugins,r=(a=e.plugins.plugins["nldates-obsidian"])==null?void 0:a.settings.timeFormat,n=(o=t.templates)==null?void 0:o.enabled,i=(s=t.templates)==null?void 0:s.instance.options.timeFormat;return r||n&&i||"HH:mm"}var ep=/[\\^$.*+?()[\]{}|]/g,nx=RegExp(ep.source);function Sn(e){return e&&nx.test(e)?e.replace(ep,"\\$&"):e||""}function El(e){var s;let t=e.internalPlugins.plugins.templates,r=t.enabled,n=e.plugins.plugins["templater-obsidian"],i=e.plugins.enabledPlugins.has("templater-obsidian"),a=n&&((s=this.app.plugins.plugins["templater-obsidian"].settings)==null?void 0:s.empty_file_template),o=r?t.instance.options.folder:n?n.settings.template_folder:void 0;return{templatesPlugin:t,templatesEnabled:r,templaterPlugin:n==null?void 0:n.templater,templaterEnabled:i,templaterEmptyFileTemplate:a,templateFolder:o}}h();h();function bt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,n;r{n.has(t)&&(n.delete(t),n.size===0&&r.push(i))}),r.forEach(n=>{this.idScopes.delete(n),this.scrollStates.delete(n)})}};var wt=R.createContext(null),tr=R.createContext(""),ji=R.createContext(null),qi=R.createContext(new Wi),to=R.createContext(null),no=R.createContext(null);h();h();h();var tp={bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0,toJSON(){}},np=[0,0,0,0];function Xe(e){return e===void 0?0:e}function ro(e,t,r,n){return[e.left+Xe(t==null?void 0:t.x)+Xe(r==null?void 0:r.x)-Xe(n==null?void 0:n.x),e.top+Xe(t==null?void 0:t.y)+Xe(r==null?void 0:r.y)-Xe(n==null?void 0:n.y),e.left+e.width+Xe(t==null?void 0:t.x)+Xe(r==null?void 0:r.x)-Xe(n==null?void 0:n.x),e.top+e.height+Xe(t==null?void 0:t.y)+Xe(r==null?void 0:r.y)-Xe(n==null?void 0:n.y)]}function xl(e,t,r,n){let i=ro(e,t,r,null);return n==="top"?(i[3]=i[1]+35,i):n==="right"?(i[0]=i[0]+e.width-35,i):n==="bottom"?(i[1]=i[1]+e.height-35,i):(i[2]=i[0]+35,i)}function io(e,t,r,n,i,a){return[e-Xe(i==null?void 0:i.x)-Xe(a==null?void 0:a.x),t-Xe(i==null?void 0:i.y)-Xe(a==null?void 0:a.y),r-Xe(i==null?void 0:i.x)-Xe(a==null?void 0:a.x),n-Xe(i==null?void 0:i.y)-Xe(a==null?void 0:a.y)]}var rx=e=>ix(e,(t,r)=>t{if(o.entityId===r)return 1/0;let s=o.getHitbox(),u=ip(s)[0],l=ax(t),c=o.getData().sortAxis==="horizontal"?"x":"y",d=l[c]>n[c]?1e3:0;return qr(u,n)+d}),a=rx(i);return e[a]?e[a]:null}function Sl(e){let{scrollLeft:t,scrollTop:r,scrollWidth:n,scrollHeight:i,offsetWidth:a,offsetHeight:o}=e,s=t,u=r,l=n-a,c=i-o;return{x:s,y:u,maxX:Math.max(l,0),maxY:Math.max(c,0)}}function ap(e,t,r){let n=Math.trunc((r.x-t.x)*100)/100,i=Math.trunc((r.y-t.y)*100)/100;return[e[0]+n,e[1]+i,e[2]+n,e[3]+i]}function _l(e,t=[0,0,0,0]){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]+t[2],o=e[3]+t[3]-n;return{width:i-r,height:o}}var Dl=class{constructor(t,r,n,i,a,o,s,u,l,c){this.isVisible=!1;this.id=n,this.instanceId=ze(),this.scopeId=r,this.entityId=`${r}-${n}`,this.dndManager=t,this.index=i,this.children=new Map,this.parent=a,this.scrollParent=o,this.getEntityData=c,this.sortManager=s,this.pollForNodes(u,l)}pollForNodes(t,r){!t()||!r()?requestAnimationFrame(()=>this.pollForNodes(t,r)):this.initNodes(t(),r())}initNodes(t,r){var n,i;if(this.entityNode=t,this.measureNode=r,r.dataset.hitboxid=this.entityId,(n=this.sortManager)==null||n.registerSortable(this.entityId,this.getEntity(tp),t,r),this.scrollParent)this.scrollParent.registerObserverHandler(this.entityId,r,a=>{var s,u;let o=Je(a.target);if(a.isIntersecting){let l=this.getEntity(a.boundingClientRect);(s=this.parent)==null||s.children.set(this.entityId,{entity:l,manager:this}),this.dndManager.observeResize(r),(!this.parent||this.parent.isVisible)&&(this.dndManager.registerHitboxEntity(this.entityId,l,o),this.children.forEach((c,d)=>{this.dndManager.registerHitboxEntity(d,c.entity,o)}),this.setVisibility(!0))}else this.dndManager.unregisterHitboxEntity(this.entityId,o),this.children.forEach((l,c)=>{this.dndManager.unregisterHitboxEntity(c,o)}),(u=this.parent)==null||u.children.delete(this.entityId),this.dndManager.unobserveResize(r),this.setVisibility(!1)});else{let a=this.getEntity(r.getBoundingClientRect());this.dndManager.observeResize(r),this.dndManager.registerHitboxEntity(this.entityId,a,Je(t)),(i=this.parent)==null||i.children.set(this.entityId,{entity:a,manager:this}),this.setVisibility(!0)}}setVisibility(t){this.isVisible=t,this.children.forEach(r=>{r.manager.setVisibility(t)})}destroy(){var t,r,n;this.dndManager.unobserveResize(this.measureNode),(t=this.sortManager)==null||t.unregisterSortable(this.entityId),(r=this.scrollParent)==null||r.unregisterObserverHandler(this.entityId,this.measureNode),this.entityNode&&this.dndManager.unregisterHitboxEntity(this.entityId,Je(this.entityNode)),(n=this.parent)==null||n.children.delete(this.entityId)}getPath(){var t;return[...((t=this.parent)==null?void 0:t.getPath())||[],this.index]}getEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:this.entityId,initial:ro(t,((n=r.scrollParent)==null?void 0:n.scrollState)||tn,((i=r.scrollParent)==null?void 0:i.getScrollShift())||_n,null),getParentScrollState(){var a;return((a=r.scrollParent)==null?void 0:a.scrollState)||tn},getParentScrollShift(){var a;return((a=r.scrollParent)==null?void 0:a.getScrollShift())||_n},recalcInitial(){var a,o;this.initial=ro(r.measureNode.getBoundingClientRect(),((a=r.scrollParent)==null?void 0:a.scrollState)||tn,((o=r.scrollParent)==null?void 0:o.getScrollShift())||_n,null)},getHitbox(){return io(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath()},getData(){var a;return{...r.getEntityData(),sortAxis:(a=r.sortManager)==null?void 0:a.axis,win:Je(r.measureNode)}}}}};var nr=R.memo(function({id:t,index:r,elementRef:n,measureRef:i,children:a,data:o}){let s=R.useContext(wt),u=R.useContext(to),l=R.useContext(tr),c=R.useContext(no),d=R.useContext(ji),f=R.useRef(o),p=R.useRef();f.current=o;let m=R.useMemo(()=>{if(s){p.current&&p.current.destroy();let y=new Dl(s,l,t,r,c,d,u,()=>n.current,()=>i.current,()=>f.current);return p.current=y,y}return null},[t,r,s,l,c,d,u]);return R.useEffect(()=>()=>{var y;return(y=p.current)==null?void 0:y.destroy()},[]),m?v(no.Provider,{value:m},a):null});function Nn(e){let t=R.useContext(no),r=(t==null?void 0:t.getPath())||[];return e!==void 0&&r.push(e),R.useMemo(()=>r,r)}h();var fu=ge(vh());h();var xk=function(t){var r=[],n=null,i=function(){for(var o=arguments.length,s=new Array(o),u=0;u0?n:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function Sk(e){var t=e.name,r=t&&t.lastIndexOf(".")!==-1;if(r&&!e.type){var n=t.split(".").pop().toLowerCase(),i=kk.get(n);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var _k=[".DS_Store","Thumbs.db"];function jl(e){return ri(this,void 0,void 0,function(){return ii(this,function(t){return[2,Dk(e)&&e.dataTransfer?Mk(e.dataTransfer,e.type):Ck(e)]})})}function Dk(e){return!!e.dataTransfer}function Ck(e){var t=Tk(e.target)?e.target.files?ql(e.target.files):[]:[];return t.map(function(r){return ea(r)})}function Tk(e){return e!==null}function Mk(e,t){return ri(this,void 0,void 0,function(){var r,n;return ii(this,function(i){switch(i.label){case 0:return e.items?(r=ql(e.items).filter(function(a){return a.kind==="file"}),t!=="drop"?[2,r]:[4,Promise.all(r.map(Ik))]):[3,2];case 1:return n=i.sent(),[2,Uh(Vh(n))];case 2:return[2,Uh(ql(e.files).map(function(a){return ea(a)}))]}})})}function Uh(e){return e.filter(function(t){return _k.indexOf(t.name)===-1})}function ql(e){for(var t=[],r=0;r".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmaq \xFC\xE7\xFCn s\xFCr\xFC\u015Fd\xFCr\xFCn",toggleTitle:"A\xE7 / Ba\u011Fla",amPM:["G\u018F","GS"],time_24hr:!0};mm.l10ns.az=ec;var BM=mm.l10ns;h();var gm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},tc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0410\u045E","\u0421\u0440","\u0427\u0446","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u044F\u0434\u0437\u0435\u043B\u044F","\u041F\u0430\u043D\u044F\u0434\u0437\u0435\u043B\u0430\u043A","\u0410\u045E\u0442\u043E\u0440\u0430\u043A","\u0421\u0435\u0440\u0430\u0434\u0430","\u0427\u0430\u0446\u0432\u0435\u0440","\u041F\u044F\u0442\u043D\u0456\u0446\u0430","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0442\u0443","\u041B\u044E\u0442","\u0421\u0430\u043A","\u041A\u0440\u0430","\u0422\u0440\u0430","\u0427\u044D\u0440","\u041B\u0456\u043F","\u0416\u043D\u0456","\u0412\u0435\u0440","\u041A\u0430\u0441","\u041B\u0456\u0441","\u0421\u043D\u0435"],longhand:["\u0421\u0442\u0443\u0434\u0437\u0435\u043D\u044C","\u041B\u044E\u0442\u044B","\u0421\u0430\u043A\u0430\u0432\u0456\u043A","\u041A\u0440\u0430\u0441\u0430\u0432\u0456\u043A","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u044D\u0440\u0432\u0435\u043D\u044C","\u041B\u0456\u043F\u0435\u043D\u044C","\u0416\u043D\u0456\u0432\u0435\u043D\u044C","\u0412\u0435\u0440\u0430\u0441\u0435\u043D\u044C","\u041A\u0430\u0441\u0442\u0440\u044B\u0447\u043D\u0456\u043A","\u041B\u0456\u0441\u0442\u0430\u043F\u0430\u0434","\u0421\u043D\u0435\u0436\u0430\u043D\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0422\u044B\u0434.",scrollTitle:"\u041F\u0440\u0430\u043A\u0440\u0443\u0446\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0430\u0432\u0435\u043B\u0456\u0447\u044D\u043D\u043D\u044F",toggleTitle:"\u041D\u0430\u0446\u0456\u0441\u043D\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};gm.l10ns.be=tc;var $M=gm.l10ns;h();var vm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},nc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0435\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u044F\u0434\u0430","\u0427\u0435\u0442\u0432\u044A\u0440\u0442\u044A\u043A","\u041F\u0435\u0442\u044A\u043A","\u0421\u044A\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0443","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},time_24hr:!0,firstDayOfWeek:1};vm.l10ns.bg=nc;var VM=vm.l10ns;h();var ym=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},rc={weekdays:{shorthand:["\u09B0\u09AC\u09BF","\u09B8\u09CB\u09AE","\u09AE\u0999\u09CD\u0997\u09B2","\u09AC\u09C1\u09A7","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF","\u09B6\u09C1\u0995\u09CD\u09B0","\u09B6\u09A8\u09BF"],longhand:["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]},months:{shorthand:["\u099C\u09BE\u09A8\u09C1","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7","\u0985\u0995\u09CD\u099F\u09CB","\u09A8\u09AD\u09C7","\u09A1\u09BF\u09B8\u09C7"],longhand:["\u099C\u09BE\u09A8\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997\u09B8\u09CD\u099F","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7\u09AE\u09CD\u09AC\u09B0","\u0985\u0995\u09CD\u099F\u09CB\u09AC\u09B0","\u09A8\u09AD\u09C7\u09AE\u09CD\u09AC\u09B0","\u09A1\u09BF\u09B8\u09C7\u09AE\u09CD\u09AC\u09B0"]}};ym.l10ns.bn=rc;var WM=ym.l10ns;h();var bm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ic={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Juni","Juli","Avgust","Septembar","Oktobar","Novembar","Decembar"]},time_24hr:!0};bm.l10ns.bs=ic;var qM=bm.l10ns;h();var ac=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ao={weekdays:{shorthand:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],longhand:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},months:{shorthand:["Gen","Febr","Mar\xE7","Abr","Maig","Juny","Jul","Ag","Set","Oct","Nov","Des"],longhand:["Gener","Febrer","Mar\xE7","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"]},ordinal:e=>{let t=e%100;if(t>3&&t<21)return"\xE8";switch(t%10){case 1:return"r";case 2:return"n";case 3:return"r";case 4:return"t";default:return"\xE8"}},firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};ac.l10ns.cat=ac.l10ns.ca=Ao;var JM=ac.l10ns;h();var wm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},oc={weekdays:{shorthand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"],longhand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"]},months:{shorthand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"],longhand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"]},firstDayOfWeek:6,ordinal:()=>""};wm.l10ns.ckb=oc;var QM=wm.l10ns;h();var Em=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},sc={weekdays:{shorthand:["Ne","Po","\xDAt","St","\u010Ct","P\xE1","So"],longhand:["Ned\u011Ble","Pond\u011Bl\xED","\xDAter\xFD","St\u0159eda","\u010Ctvrtek","P\xE1tek","Sobota"]},months:{shorthand:["Led","\xDAn","B\u0159e","Dub","Kv\u011B","\u010Cer","\u010Cvc","Srp","Z\xE1\u0159","\u0158\xEDj","Lis","Pro"],longhand:["Leden","\xDAnor","B\u0159ezen","Duben","Kv\u011Bten","\u010Cerven","\u010Cervenec","Srpen","Z\xE1\u0159\xED","\u0158\xEDjen","Listopad","Prosinec"]},firstDayOfWeek:1,ordinal:function(){return"."},rangeSeparator:" do ",weekAbbreviation:"T\xFDd.",scrollTitle:"Rolujte pro zm\u011Bnu",toggleTitle:"P\u0159epnout dopoledne/odpoledne",amPM:["dop.","odp."],yearAriaLabel:"Rok",time_24hr:!0};Em.l10ns.cs=sc;var ZM=Em.l10ns;h();var xm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},lc={weekdays:{shorthand:["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],longhand:["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"]},months:{shorthand:["Ion","Chwef","Maw","Ebr","Mai","Meh","Gorff","Awst","Medi","Hyd","Tach","Rhag"],longhand:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"]},firstDayOfWeek:1,ordinal:e=>e===1?"af":e===2?"ail":e===3||e===4?"ydd":e===5||e===6?"ed":e>=7&&e<=10||e==12||e==15||e==18||e==20?"fed":e==11||e==13||e==14||e==16||e==17||e==19?"eg":e>=21&&e<=39?"ain":"",time_24hr:!0};xm.l10ns.cy=lc;var t1=xm.l10ns;h();var km=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},cc={weekdays:{shorthand:["s\xF8n","man","tir","ons","tors","fre","l\xF8r"],longhand:["s\xF8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\xF8rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"uge",time_24hr:!0};km.l10ns.da=cc;var r1=km.l10ns;h();var Sm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},uc={weekdays:{shorthand:["So","Mo","Di","Mi","Do","Fr","Sa"],longhand:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},months:{shorthand:["Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],longhand:["Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},firstDayOfWeek:1,weekAbbreviation:"KW",rangeSeparator:" bis ",scrollTitle:"Zum \xC4ndern scrollen",toggleTitle:"Zum Umschalten klicken",time_24hr:!0};Sm.l10ns.de=uc;var a1=Sm.l10ns;h();var Cr={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:e=>{let t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Lo=Cr;h();var _m=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},dc={firstDayOfWeek:1,rangeSeparator:" \u011Dis ",weekAbbreviation:"Sem",scrollTitle:"Rulumu por pligrandigi la valoron",toggleTitle:"Klaku por \u015Dalti",weekdays:{shorthand:["Dim","Lun","Mar","Mer","\u0134a\u016D","Ven","Sab"],longhand:["diman\u0109o","lundo","mardo","merkredo","\u0135a\u016Ddo","vendredo","sabato"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","A\u016Dg","Sep","Okt","Nov","Dec"],longhand:["januaro","februaro","marto","aprilo","majo","junio","julio","a\u016Dgusto","septembro","oktobro","novembro","decembro"]},ordinal:()=>"-a",time_24hr:!0};_m.l10ns.eo=dc;var l1=_m.l10ns;h();var Dm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},fc={weekdays:{shorthand:["Dom","Lun","Mar","Mi\xE9","Jue","Vie","S\xE1b"],longhand:["Domingo","Lunes","Martes","Mi\xE9rcoles","Jueves","Viernes","S\xE1bado"]},months:{shorthand:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],longhand:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]},ordinal:()=>"\xBA",firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};Dm.l10ns.es=fc;var u1=Dm.l10ns;h();var Cm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},pc={weekdays:{shorthand:["P","E","T","K","N","R","L"],longhand:["P\xFChap\xE4ev","Esmasp\xE4ev","Teisip\xE4ev","Kolmap\xE4ev","Neljap\xE4ev","Reede","Laup\xE4ev"]},months:{shorthand:["Jaan","Veebr","M\xE4rts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],longhand:["Jaanuar","Veebruar","M\xE4rts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"]},firstDayOfWeek:1,ordinal:function(){return"."},weekAbbreviation:"N\xE4d",rangeSeparator:" kuni ",scrollTitle:"Keri, et suurendada",toggleTitle:"Kl\xF5psa, et vahetada",time_24hr:!0};Cm.l10ns.et=pc;var f1=Cm.l10ns;h();var Tm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},hc={weekdays:{shorthand:["\u06CC\u06A9","\u062F\u0648","\u0633\u0647","\u0686\u0647\u0627\u0631","\u067E\u0646\u062C","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"],longhand:["\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647","\u062F\u0648\u0634\u0646\u0628\u0647","\u0633\u0647\u200C\u0634\u0646\u0628\u0647","\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647","\u067E\u0646\u0686\u200C\u0634\u0646\u0628\u0647","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"]},months:{shorthand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"],longhand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"]},firstDayOfWeek:6,ordinal:()=>""};Tm.l10ns.fa=hc;var h1=Tm.l10ns;h();var Mm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},mc={firstDayOfWeek:1,weekdays:{shorthand:["su","ma","ti","ke","to","pe","la"],longhand:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},months:{shorthand:["tammi","helmi","maalis","huhti","touko","kes\xE4","hein\xE4","elo","syys","loka","marras","joulu"],longhand:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kes\xE4kuu","hein\xE4kuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"]},ordinal:()=>".",time_24hr:!0};Mm.l10ns.fi=mc;var g1=Mm.l10ns;h();var Im=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},gc={weekdays:{shorthand:["Sun","M\xE1n","T\xFDs","Mik","H\xF3s","Fr\xED","Ley"],longhand:["Sunnudagur","M\xE1nadagur","T\xFDsdagur","Mikudagur","H\xF3sdagur","Fr\xEDggjadagur","Leygardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","Apr\xEDl","Mai","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",scrollTitle:"Rulla fyri at broyta",toggleTitle:"Tr\xFDst fyri at skifta",yearAriaLabel:"\xC1r",time_24hr:!0};Im.l10ns.fo=gc;var y1=Im.l10ns;h();var Am=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},vc={firstDayOfWeek:1,weekdays:{shorthand:["dim","lun","mar","mer","jeu","ven","sam"],longhand:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},months:{shorthand:["janv","f\xE9vr","mars","avr","mai","juin","juil","ao\xFBt","sept","oct","nov","d\xE9c"],longhand:["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"]},ordinal:e=>e>1?"":"er",rangeSeparator:" au ",weekAbbreviation:"Sem",scrollTitle:"D\xE9filer pour augmenter la valeur",toggleTitle:"Cliquer pour basculer",time_24hr:!0};Am.l10ns.fr=vc;var w1=Am.l10ns;h();var Lm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},yc={weekdays:{shorthand:["\u039A\u03C5","\u0394\u03B5","\u03A4\u03C1","\u03A4\u03B5","\u03A0\u03AD","\u03A0\u03B1","\u03A3\u03AC"],longhand:["\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE","\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1","\u03A4\u03C1\u03AF\u03C4\u03B7","\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7","\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7","\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE","\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF"]},months:{shorthand:["\u0399\u03B1\u03BD","\u03A6\u03B5\u03B2","\u039C\u03AC\u03C1","\u0391\u03C0\u03C1","\u039C\u03AC\u03B9","\u0399\u03BF\u03CD\u03BD","\u0399\u03BF\u03CD\u03BB","\u0391\u03CD\u03B3","\u03A3\u03B5\u03C0","\u039F\u03BA\u03C4","\u039D\u03BF\u03AD","\u0394\u03B5\u03BA"],longhand:["\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2","\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2","\u039C\u03AC\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2","\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2","\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2","\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2"]},firstDayOfWeek:1,ordinal:function(){return""},weekAbbreviation:"\u0395\u03B2\u03B4",rangeSeparator:" \u03AD\u03C9\u03C2 ",scrollTitle:"\u039C\u03B5\u03C4\u03B1\u03BA\u03C5\u03BB\u03AE\u03C3\u03C4\u03B5 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B1\u03CD\u03BE\u03B7\u03C3\u03B7",toggleTitle:"\u039A\u03AC\u03BD\u03C4\u03B5 \u03BA\u03BB\u03B9\u03BA \u03B3\u03B9\u03B1 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AE",amPM:["\u03A0\u039C","\u039C\u039C"],yearAriaLabel:"\u03C7\u03C1\u03CC\u03BD\u03BF\u03C2",monthAriaLabel:"\u03BC\u03AE\u03BD\u03B1\u03C2",hourAriaLabel:"\u03CE\u03C1\u03B1",minuteAriaLabel:"\u03BB\u03B5\u03C0\u03C4\u03CC"};Lm.l10ns.gr=yc;var x1=Lm.l10ns;h();var Pm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},bc={weekdays:{shorthand:["\u05D0","\u05D1","\u05D2","\u05D3","\u05D4","\u05D5","\u05E9"],longhand:["\u05E8\u05D0\u05E9\u05D5\u05DF","\u05E9\u05E0\u05D9","\u05E9\u05DC\u05D9\u05E9\u05D9","\u05E8\u05D1\u05D9\u05E2\u05D9","\u05D7\u05DE\u05D9\u05E9\u05D9","\u05E9\u05D9\u05E9\u05D9","\u05E9\u05D1\u05EA"]},months:{shorthand:["\u05D9\u05E0\u05D5\u05F3","\u05E4\u05D1\u05E8\u05F3","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05F3","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05F3","\u05E1\u05E4\u05D8\u05F3","\u05D0\u05D5\u05E7\u05F3","\u05E0\u05D5\u05D1\u05F3","\u05D3\u05E6\u05DE\u05F3"],longhand:["\u05D9\u05E0\u05D5\u05D0\u05E8","\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05D9\u05DC","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8","\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8","\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8","\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8","\u05D3\u05E6\u05DE\u05D1\u05E8"]},rangeSeparator:" \u05D0\u05DC ",time_24hr:!0};Pm.l10ns.he=bc;var S1=Pm.l10ns;h();var Fm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},wc={weekdays:{shorthand:["\u0930\u0935\u093F","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],longhand:["\u0930\u0935\u093F\u0935\u093E\u0930","\u0938\u094B\u092E\u0935\u093E\u0930","\u092E\u0902\u0917\u0932\u0935\u093E\u0930","\u092C\u0941\u0927\u0935\u093E\u0930","\u0917\u0941\u0930\u0941\u0935\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930","\u0936\u0928\u093F\u0935\u093E\u0930"]},months:{shorthand:["\u091C\u0928","\u092B\u0930","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917","\u0938\u093F\u0924","\u0905\u0915\u094D\u091F","\u0928\u0935","\u0926\u093F"],longhand:["\u091C\u0928\u0935\u0930\u0940 ","\u092B\u0930\u0935\u0930\u0940","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917\u0938\u094D\u0924 ","\u0938\u093F\u0924\u092E\u094D\u092C\u0930","\u0905\u0915\u094D\u091F\u0942\u092C\u0930","\u0928\u0935\u092E\u094D\u092C\u0930","\u0926\u093F\u0938\u092E\u094D\u092C\u0930"]}};Fm.l10ns.hi=wc;var D1=Fm.l10ns;h();var Om=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ec={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Sij","Velj","O\u017Eu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],longhand:["Sije\u010Danj","Velja\u010Da","O\u017Eujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"]},time_24hr:!0};Om.l10ns.hr=Ec;var T1=Om.l10ns;h();var Nm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},xc={firstDayOfWeek:1,weekdays:{shorthand:["V","H","K","Sz","Cs","P","Szo"],longhand:["Vas\xE1rnap","H\xE9tf\u0151","Kedd","Szerda","Cs\xFCt\xF6rt\xF6k","P\xE9ntek","Szombat"]},months:{shorthand:["Jan","Feb","M\xE1r","\xC1pr","M\xE1j","J\xFAn","J\xFAl","Aug","Szep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","M\xE1rcius","\xC1prilis","M\xE1jus","J\xFAnius","J\xFAlius","Augusztus","Szeptember","Okt\xF3ber","November","December"]},ordinal:function(){return"."},weekAbbreviation:"H\xE9t",scrollTitle:"G\xF6rgessen",toggleTitle:"Kattintson a v\xE1lt\xE1shoz",rangeSeparator:" - ",time_24hr:!0};Nm.l10ns.hu=xc;var I1=Nm.l10ns;h();var Rm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},kc={weekdays:{shorthand:["\u053F\u056B\u0580","\u0535\u0580\u056F","\u0535\u0580\u0584","\u0549\u0580\u0584","\u0540\u0576\u0563","\u0548\u0582\u0580\u0562","\u0547\u0562\u0569"],longhand:["\u053F\u056B\u0580\u0561\u056F\u056B","\u0535\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B","\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0540\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B","\u0548\u0582\u0580\u0562\u0561\u0569","\u0547\u0561\u0562\u0561\u0569"]},months:{shorthand:["\u0540\u0576\u057E","\u0553\u057F\u0580","\u0544\u0561\u0580","\u0531\u057A\u0580","\u0544\u0561\u0575","\u0540\u0576\u057D","\u0540\u056C\u057D","\u0555\u0563\u057D","\u054D\u0565\u057A","\u0540\u0578\u056F","\u0546\u0574\u0562","\u0534\u0565\u056F"],longhand:["\u0540\u0578\u0582\u0576\u057E\u0561\u0580","\u0553\u0565\u057F\u0580\u057E\u0561\u0580","\u0544\u0561\u0580\u057F","\u0531\u057A\u0580\u056B\u056C","\u0544\u0561\u0575\u056B\u057D","\u0540\u0578\u0582\u0576\u056B\u057D","\u0540\u0578\u0582\u056C\u056B\u057D","\u0555\u0563\u0578\u057D\u057F\u0578\u057D","\u054D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580","\u0540\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580","\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580","\u0534\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0547\u0532\u054F",scrollTitle:"\u0548\u056C\u0578\u0580\u0565\u0584\u055D \u0574\u0565\u056E\u0561\u0581\u0576\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",toggleTitle:"\u054D\u0565\u0572\u0574\u0565\u0584\u055D \u0583\u0578\u056D\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",amPM:["\u0544\u053F","\u053F\u0540"],yearAriaLabel:"\u054F\u0561\u0580\u056B",monthAriaLabel:"\u0531\u0574\u056B\u057D",hourAriaLabel:"\u053A\u0561\u0574",minuteAriaLabel:"\u0550\u0578\u057A\u0565",time_24hr:!0};Rm.l10ns.hy=kc;var L1=Rm.l10ns;h();var Hm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Sc={weekdays:{shorthand:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],longhand:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],longhand:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0,rangeSeparator:" - "};Hm.l10ns.id=Sc;var F1=Hm.l10ns;h();var Bm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},_c={weekdays:{shorthand:["Sun","M\xE1n","\xDEri","Mi\xF0","Fim","F\xF6s","Lau"],longhand:["Sunnudagur","M\xE1nudagur","\xDEri\xF0judagur","Mi\xF0vikudagur","Fimmtudagur","F\xF6studagur","Laugardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Ma\xED","J\xFAn","J\xFAl","\xC1g\xFA","Sep","Okt","N\xF3v","Des"],longhand:["Jan\xFAar","Febr\xFAar","Mars","Apr\xEDl","Ma\xED","J\xFAn\xED","J\xFAl\xED","\xC1g\xFAst","September","Okt\xF3ber","N\xF3vember","Desember"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",yearAriaLabel:"\xC1r",time_24hr:!0};Bm.l10ns.is=_c;var N1=Bm.l10ns;h();var Km=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Dc={weekdays:{shorthand:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],longhand:["Domenica","Luned\xEC","Marted\xEC","Mercoled\xEC","Gioved\xEC","Venerd\xEC","Sabato"]},months:{shorthand:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],longhand:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"]},firstDayOfWeek:1,ordinal:()=>"\xB0",rangeSeparator:" al ",weekAbbreviation:"Se",scrollTitle:"Scrolla per aumentare",toggleTitle:"Clicca per cambiare",time_24hr:!0};Km.l10ns.it=Dc;var H1=Km.l10ns;h();var $m=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Cc={weekdays:{shorthand:["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"],longhand:["\u65E5\u66DC\u65E5","\u6708\u66DC\u65E5","\u706B\u66DC\u65E5","\u6C34\u66DC\u65E5","\u6728\u66DC\u65E5","\u91D1\u66DC\u65E5","\u571F\u66DC\u65E5"]},months:{shorthand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],longhand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"]},time_24hr:!0,rangeSeparator:" \u304B\u3089 ",monthAriaLabel:"\u6708",amPM:["\u5348\u524D","\u5348\u5F8C"],yearAriaLabel:"\u5E74",hourAriaLabel:"\u6642\u9593",minuteAriaLabel:"\u5206"};$m.l10ns.ja=Cc;var K1=$m.l10ns;h();var Um=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Tc={weekdays:{shorthand:["\u10D9\u10D5","\u10DD\u10E0","\u10E1\u10D0","\u10DD\u10D7","\u10EE\u10E3","\u10DE\u10D0","\u10E8\u10D0"],longhand:["\u10D9\u10D5\u10D8\u10E0\u10D0","\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8","\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8"]},months:{shorthand:["\u10D8\u10D0\u10DC","\u10D7\u10D4\u10D1","\u10DB\u10D0\u10E0","\u10D0\u10DE\u10E0","\u10DB\u10D0\u10D8","\u10D8\u10D5\u10DC","\u10D8\u10D5\u10DA","\u10D0\u10D2\u10D5","\u10E1\u10D4\u10E5","\u10DD\u10E5\u10E2","\u10DC\u10DD\u10D4","\u10D3\u10D4\u10D9"],longhand:["\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8","\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8","\u10DB\u10D0\u10E0\u10E2\u10D8","\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8","\u10DB\u10D0\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8","\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD","\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u10D9\u10D5.",scrollTitle:"\u10D3\u10D0\u10E1\u10E5\u10E0\u10DD\u10DA\u10D4\u10D7 \u10D2\u10D0\u10E1\u10D0\u10D3\u10D8\u10D3\u10D4\u10D1\u10DA\u10D0\u10D3",toggleTitle:"\u10D3\u10D0\u10D0\u10D9\u10DA\u10D8\u10D9\u10D4\u10D7 \u10D2\u10D0\u10D3\u10D0\u10E0\u10D7\u10D5\u10D8\u10E1\u10D7\u10D5\u10D8\u10E1",amPM:["AM","PM"],yearAriaLabel:"\u10EC\u10D4\u10DA\u10D8",time_24hr:!0};Um.l10ns.ka=Tc;var U1=Um.l10ns;h();var Vm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Mc={weekdays:{shorthand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F.","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"],longhand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F\u17D2\u1794\u178F\u17B7\u17CD","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"]},months:{shorthand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"],longhand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"]},ordinal:()=>"",firstDayOfWeek:1,rangeSeparator:" \u178A\u179B\u17CB ",weekAbbreviation:"\u179F\u1794\u17D2\u178F\u17B6\u17A0\u17CD",scrollTitle:"\u179A\u17C6\u1780\u17B7\u179B\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1794\u1784\u17D2\u1780\u17BE\u1793",toggleTitle:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1795\u17D2\u179B\u17B6\u179F\u17CB\u1794\u17D2\u178A\u17BC\u179A",yearAriaLabel:"\u1786\u17D2\u1793\u17B6\u17C6",time_24hr:!0};Vm.l10ns.km=Mc;var z1=Vm.l10ns;h();var zm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ic={weekdays:{shorthand:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],longhand:["\uC77C\uC694\uC77C","\uC6D4\uC694\uC77C","\uD654\uC694\uC77C","\uC218\uC694\uC77C","\uBAA9\uC694\uC77C","\uAE08\uC694\uC77C","\uD1A0\uC694\uC77C"]},months:{shorthand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"],longhand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"]},ordinal:()=>"\uC77C",rangeSeparator:" ~ ",amPM:["\uC624\uC804","\uC624\uD6C4"]};zm.l10ns.ko=Ic;var j1=zm.l10ns;h();var Wm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ac={weekdays:{shorthand:["\u0416\u0441","\u0414\u0441","\u0421c","\u0421\u0440","\u0411\u0441","\u0416\u043C","\u0421\u0431"],longhand:["\u0416\u0435\u043A\u0441\u0435\u043D\u0431i","\u0414\u04AF\u0439\u0441\u0435\u043D\u0431i","\u0421\u0435\u0439\u0441\u0435\u043D\u0431i","\u0421\u04D9\u0440\u0441\u0435\u043D\u0431i","\u0411\u0435\u0439\u0441\u0435\u043D\u0431i","\u0416\u04B1\u043C\u0430","\u0421\u0435\u043D\u0431i"]},months:{shorthand:["\u049A\u0430\u04A3","\u0410\u049B\u043F","\u041D\u0430\u0443","\u0421\u04D9\u0443","\u041C\u0430\u043C","\u041C\u0430\u0443","\u0428i\u043B","\u0422\u0430\u043C","\u049A\u044B\u0440","\u049A\u0430\u0437","\u049A\u0430\u0440","\u0416\u0435\u043B"],longhand:["\u049A\u0430\u04A3\u0442\u0430\u0440","\u0410\u049B\u043F\u0430\u043D","\u041D\u0430\u0443\u0440\u044B\u0437","\u0421\u04D9\u0443i\u0440","\u041C\u0430\u043C\u044B\u0440","\u041C\u0430\u0443\u0441\u044B\u043C","\u0428i\u043B\u0434\u0435","\u0422\u0430\u043C\u044B\u0437","\u049A\u044B\u0440\u043A\u04AF\u0439\u0435\u043A","\u049A\u0430\u0437\u0430\u043D","\u049A\u0430\u0440\u0430\u0448\u0430","\u0416\u0435\u043B\u0442\u043E\u049B\u0441\u0430\u043D"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0410\u043F\u0442\u0430",scrollTitle:"\u04AE\u043B\u043A\u0435\u0439\u0442\u0443 \u04AF\u0448\u0456\u043D \u0430\u0439\u043D\u0430\u043B\u0434\u044B\u0440\u044B\u04A3\u044B\u0437",toggleTitle:"\u0410\u0443\u044B\u0441\u0442\u044B\u0440\u0443 \u04AF\u0448\u0456\u043D \u0431\u0430\u0441\u044B\u04A3\u044B\u0437",amPM:["\u0422\u0414","\u0422\u041A"],yearAriaLabel:"\u0416\u044B\u043B"};Wm.l10ns.kz=Ac;var Y1=Wm.l10ns;h();var jm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Lc={weekdays:{shorthand:["S","Pr","A","T","K","Pn","\u0160"],longhand:["Sekmadienis","Pirmadienis","Antradienis","Tre\u010Diadienis","Ketvirtadienis","Penktadienis","\u0160e\u0161tadienis"]},months:{shorthand:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd"],longhand:["Sausis","Vasaris","Kovas","Balandis","Gegu\u017E\u0117","Bir\u017Eelis","Liepa","Rugpju\u0304tis","Rugse\u0307jis","Spalis","Lapkritis","Gruodis"]},firstDayOfWeek:1,ordinal:function(){return"-a"},rangeSeparator:" iki ",weekAbbreviation:"Sav",scrollTitle:"Keisti laik\u0105 pel\u0117s rateliu",toggleTitle:"Perjungti laiko format\u0105",time_24hr:!0};jm.l10ns.lt=Lc;var G1=jm.l10ns;h();var qm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Pc={firstDayOfWeek:1,weekdays:{shorthand:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],longhand:["Sv\u0113tdiena","Pirmdiena","Otrdiena","Tre\u0161diena","Ceturtdiena","Piektdiena","Sestdiena"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","J\u016Bn","J\u016Bl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janv\u0101ris","Febru\u0101ris","Marts","Apr\u012Blis","Maijs","J\u016Bnijs","J\u016Blijs","Augusts","Septembris","Oktobris","Novembris","Decembris"]},rangeSeparator:" l\u012Bdz ",time_24hr:!0};qm.l10ns.lv=Pc;var X1=qm.l10ns;h();var Ym=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Fc={weekdays:{shorthand:["\u041D\u0435","\u041F\u043E","\u0412\u0442","\u0421\u0440","\u0427\u0435","\u041F\u0435","\u0421\u0430"],longhand:["\u041D\u0435\u0434\u0435\u043B\u0430","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u043E\u043A","\u041F\u0435\u0442\u043E\u043A","\u0421\u0430\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0408\u0430\u043D","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0458","\u0408\u0443\u043D","\u0408\u0443\u043B","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u0408\u0430\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0458","\u0408\u0443\u043D\u0438","\u0408\u0443\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},firstDayOfWeek:1,weekAbbreviation:"\u041D\u0435\u0434.",rangeSeparator:" \u0434\u043E ",time_24hr:!0};Ym.l10ns.mk=Fc;var eI=Ym.l10ns;h();var Jm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Oc={firstDayOfWeek:1,weekdays:{shorthand:["\u0414\u0430","\u041C\u044F","\u041B\u0445","\u041F\u04AF","\u0411\u0430","\u0411\u044F","\u041D\u044F"],longhand:["\u0414\u0430\u0432\u0430\u0430","\u041C\u044F\u0433\u043C\u0430\u0440","\u041B\u0445\u0430\u0433\u0432\u0430","\u041F\u04AF\u0440\u044D\u0432","\u0411\u0430\u0430\u0441\u0430\u043D","\u0411\u044F\u043C\u0431\u0430","\u041D\u044F\u043C"]},months:{shorthand:["1-\u0440 \u0441\u0430\u0440","2-\u0440 \u0441\u0430\u0440","3-\u0440 \u0441\u0430\u0440","4-\u0440 \u0441\u0430\u0440","5-\u0440 \u0441\u0430\u0440","6-\u0440 \u0441\u0430\u0440","7-\u0440 \u0441\u0430\u0440","8-\u0440 \u0441\u0430\u0440","9-\u0440 \u0441\u0430\u0440","10-\u0440 \u0441\u0430\u0440","11-\u0440 \u0441\u0430\u0440","12-\u0440 \u0441\u0430\u0440"],longhand:["\u041D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0425\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u04E9\u0440\u04E9\u0432\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0417\u0443\u0440\u0433\u0430\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u043E\u043B\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u041D\u0430\u0439\u043C\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0415\u0441\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u043D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u0445\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440"]},rangeSeparator:"-\u0441 ",time_24hr:!0};Jm.l10ns.mn=Oc;var nI=Jm.l10ns;h();var eS=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Gm={weekdays:{shorthand:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],longhand:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"]},months:{shorthand:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],longhand:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"]},firstDayOfWeek:1,ordinal:()=>""},iI=eS.l10ns;h();var Qm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Nc={weekdays:{shorthand:["\u1014\u103D\u1031","\u101C\u102C","\u1002\u102B","\u101F\u1030\u1038","\u1000\u103C\u102C","\u101E\u1031\u102C","\u1014\u1031"],longhand:["\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031","\u1010\u1014\u1004\u103A\u1039\u101C\u102C","\u1021\u1004\u103A\u1039\u1002\u102B","\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038","\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038","\u101E\u1031\u102C\u1000\u103C\u102C","\u1005\u1014\u1031"]},months:{shorthand:["\u1007\u1014\u103A","\u1016\u1031","\u1019\u1010\u103A","\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u101C\u102D\u102F\u1004\u103A","\u101E\u103C","\u1005\u1000\u103A","\u1021\u1031\u102C\u1000\u103A","\u1014\u102D\u102F","\u1012\u102E"],longhand:["\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E","\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E","\u1019\u1010\u103A","\u1027\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u1007\u1030\u101C\u102D\u102F\u1004\u103A","\u101E\u103C\u1002\u102F\u1010\u103A","\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C","\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C","\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C","\u1012\u102E\u1007\u1004\u103A\u1018\u102C"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0};Qm.l10ns.my=Nc;var oI=Qm.l10ns;h();var Xm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Rc={weekdays:{shorthand:["zo","ma","di","wo","do","vr","za"],longhand:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},months:{shorthand:["jan","feb","mrt","apr","mei","jun","jul","aug","sept","okt","nov","dec"],longhand:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},firstDayOfWeek:1,weekAbbreviation:"wk",rangeSeparator:" t/m ",scrollTitle:"Scroll voor volgende / vorige",toggleTitle:"Klik om te wisselen",time_24hr:!0,ordinal:e=>e===1||e===8||e>=20?"ste":"de"};Xm.l10ns.nl=Rc;var lI=Xm.l10ns;h();var Zm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Hc={weekdays:{shorthand:["S\xF8.","M\xE5.","Ty.","On.","To.","Fr.","La."],longhand:["S\xF8ndag","M\xE5ndag","Tysdag","Onsdag","Torsdag","Fredag","Laurdag"]},months:{shorthand:["Jan","Feb","Mars","Apr","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Veke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};Zm.l10ns.nn=Hc;var uI=Zm.l10ns;h();var eg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Bc={weekdays:{shorthand:["S\xF8n","Man","Tir","Ons","Tor","Fre","L\xF8r"],longhand:["S\xF8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\xF8rdag"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Uke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};eg.l10ns.no=Bc;var fI=eg.l10ns;h();var tg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Kc={weekdays:{shorthand:["\u0A10\u0A24","\u0A38\u0A4B\u0A2E","\u0A2E\u0A70\u0A17\u0A32","\u0A2C\u0A41\u0A71\u0A27","\u0A35\u0A40\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30"],longhand:["\u0A10\u0A24\u0A35\u0A3E\u0A30","\u0A38\u0A4B\u0A2E\u0A35\u0A3E\u0A30","\u0A2E\u0A70\u0A17\u0A32\u0A35\u0A3E\u0A30","\u0A2C\u0A41\u0A71\u0A27\u0A35\u0A3E\u0A30","\u0A35\u0A40\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30\u0A35\u0A3E\u0A30"]},months:{shorthand:["\u0A1C\u0A28","\u0A2B\u0A3C\u0A30","\u0A2E\u0A3E\u0A30","\u0A05\u0A2A\u0A4D\u0A30\u0A48","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E","\u0A05\u0A17","\u0A38\u0A24\u0A70","\u0A05\u0A15","\u0A28\u0A35\u0A70","\u0A26\u0A38\u0A70"],longhand:["\u0A1C\u0A28\u0A35\u0A30\u0A40","\u0A2B\u0A3C\u0A30\u0A35\u0A30\u0A40","\u0A2E\u0A3E\u0A30\u0A1A","\u0A05\u0A2A\u0A4D\u0A30\u0A48\u0A32","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E\u0A08","\u0A05\u0A17\u0A38\u0A24","\u0A38\u0A24\u0A70\u0A2C\u0A30","\u0A05\u0A15\u0A24\u0A42\u0A2C\u0A30","\u0A28\u0A35\u0A70\u0A2C\u0A30","\u0A26\u0A38\u0A70\u0A2C\u0A30"]},time_24hr:!0};tg.l10ns.pa=Kc;var hI=tg.l10ns;h();var ng=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},$c={weekdays:{shorthand:["Nd","Pn","Wt","\u015Ar","Cz","Pt","So"],longhand:["Niedziela","Poniedzia\u0142ek","Wtorek","\u015Aroda","Czwartek","Pi\u0105tek","Sobota"]},months:{shorthand:["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Pa\u017A","Lis","Gru"],longhand:["Stycze\u0144","Luty","Marzec","Kwiecie\u0144","Maj","Czerwiec","Lipiec","Sierpie\u0144","Wrzesie\u0144","Pa\u017Adziernik","Listopad","Grudzie\u0144"]},rangeSeparator:" do ",weekAbbreviation:"tydz.",scrollTitle:"Przewi\u0144, aby zwi\u0119kszy\u0107",toggleTitle:"Kliknij, aby prze\u0142\u0105czy\u0107",firstDayOfWeek:1,time_24hr:!0,ordinal:()=>"."};ng.l10ns.pl=$c;var gI=ng.l10ns;h();var rg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Uc={weekdays:{shorthand:["Dom","Seg","Ter","Qua","Qui","Sex","S\xE1b"],longhand:["Domingo","Segunda-feira","Ter\xE7a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S\xE1bado"]},months:{shorthand:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],longhand:["Janeiro","Fevereiro","Mar\xE7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]},rangeSeparator:" at\xE9 ",time_24hr:!0};rg.l10ns.pt=Uc;var yI=rg.l10ns;h();var ig=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Vc={weekdays:{shorthand:["Dum","Lun","Mar","Mie","Joi","Vin","S\xE2m"],longhand:["Duminic\u0103","Luni","Mar\u021Bi","Miercuri","Joi","Vineri","S\xE2mb\u0103t\u0103"]},months:{shorthand:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec"],longhand:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"]},firstDayOfWeek:1,time_24hr:!0,ordinal:()=>""};ig.l10ns.ro=Vc;var wI=ig.l10ns;h();var ag=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},zc={weekdays:{shorthand:["\u0412\u0441","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440\u0433","\u041F\u044F\u0442\u043D\u0438\u0446\u0430","\u0421\u0443\u0431\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440\u044C","\u0424\u0435\u0432\u0440\u0430\u043B\u044C","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B\u044C","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C","\u041E\u043A\u0442\u044F\u0431\u0440\u044C","\u041D\u043E\u044F\u0431\u0440\u044C","\u0414\u0435\u043A\u0430\u0431\u0440\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u041D\u0435\u0434.",scrollTitle:"\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0435 \u0434\u043B\u044F \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u044F",toggleTitle:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};ag.l10ns.ru=zc;var xI=ag.l10ns;h();var og=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Wc={weekdays:{shorthand:["\u0D89","\u0DC3","\u0D85","\u0DB6","\u0DB6\u0DCA\u200D\u0DBB","\u0DC3\u0DD2","\u0DC3\u0DD9"],longhand:["\u0D89\u0DBB\u0DD2\u0DAF\u0DCF","\u0DC3\u0DB3\u0DD4\u0DAF\u0DCF","\u0D85\u0D9F\u0DC4\u0DBB\u0DD4\u0DC0\u0DCF\u0DAF\u0DCF","\u0DB6\u0DAF\u0DCF\u0DAF\u0DCF","\u0DB6\u0DCA\u200D\u0DBB\u0DC4\u0DC3\u0DCA\u0DB4\u0DAD\u0DD2\u0DB1\u0DCA\u0DAF\u0DCF","\u0DC3\u0DD2\u0D9A\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF","\u0DC3\u0DD9\u0DB1\u0DC3\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF"]},months:{shorthand:["\u0DA2\u0DB1","\u0DB4\u0DD9\u0DB6","\u0DB8\u0DCF\u0DBB\u0DCA","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD","\u0DC3\u0DD0\u0DB4\u0DCA","\u0D94\u0D9A\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0","\u0DAF\u0DD9\u0DC3\u0DD0"],longhand:["\u0DA2\u0DB1\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB4\u0DD9\u0DB6\u0DBB\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB8\u0DCF\u0DBB\u0DCA\u0DAD\u0DD4","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA\u0DBD\u0DCA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD\u0DC3\u0DCA\u0DAD\u0DD4","\u0DC3\u0DD0\u0DB4\u0DCA\u0DAD\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0D94\u0D9A\u0DCA\u0DAD\u0DDD\u0DB6\u0DBB\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0DAF\u0DD9\u0DC3\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA"]},time_24hr:!0};og.l10ns.si=Wc;var SI=og.l10ns;h();var sg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},jc={weekdays:{shorthand:["Ned","Pon","Ut","Str","\u0160tv","Pia","Sob"],longhand:["Nede\u013Ea","Pondelok","Utorok","Streda","\u0160tvrtok","Piatok","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","M\xE1j","J\xFAn","J\xFAl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","Marec","Apr\xEDl","M\xE1j","J\xFAn","J\xFAl","August","September","Okt\xF3ber","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};sg.l10ns.sk=jc;var DI=sg.l10ns;h();var lg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},qc={weekdays:{shorthand:["Ned","Pon","Tor","Sre","\u010Cet","Pet","Sob"],longhand:["Nedelja","Ponedeljek","Torek","Sreda","\u010Cetrtek","Petek","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};lg.l10ns.sl=qc;var TI=lg.l10ns;h();var cg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Yc={weekdays:{shorthand:["Di","H\xEB","Ma","M\xEB","En","Pr","Sh"],longhand:["E Diel","E H\xEBn\xEB","E Mart\xEB","E M\xEBrkur\xEB","E Enjte","E Premte","E Shtun\xEB"]},months:{shorthand:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","N\xEBn","Dhj"],longhand:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","N\xEBntor","Dhjetor"]},firstDayOfWeek:1,rangeSeparator:" deri ",weekAbbreviation:"Java",yearAriaLabel:"Viti",monthAriaLabel:"Muaji",hourAriaLabel:"Ora",minuteAriaLabel:"Minuta",time_24hr:!0};cg.l10ns.sq=Yc;var II=cg.l10ns;h();var ug=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Jc={weekdays:{shorthand:["Ned","Pon","Uto","Sre","\u010Cet","Pet","Sub"],longhand:["Nedelja","Ponedeljak","Utorak","Sreda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"]},firstDayOfWeek:1,weekAbbreviation:"Ned.",rangeSeparator:" do ",time_24hr:!0};ug.l10ns.sr=Jc;var LI=ug.l10ns;h();var dg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Gc={firstDayOfWeek:1,weekAbbreviation:"v",weekdays:{shorthand:["s\xF6n","m\xE5n","tis","ons","tor","fre","l\xF6r"],longhand:["s\xF6ndag","m\xE5ndag","tisdag","onsdag","torsdag","fredag","l\xF6rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},rangeSeparator:" till ",time_24hr:!0,ordinal:()=>"."};dg.l10ns.sv=Gc;var FI=dg.l10ns;h();var fg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Qc={weekdays:{shorthand:["\u0E2D\u0E32","\u0E08","\u0E2D","\u0E1E","\u0E1E\u0E24","\u0E28","\u0E2A"],longhand:["\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C","\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C","\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23","\u0E1E\u0E38\u0E18","\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35","\u0E28\u0E38\u0E01\u0E23\u0E4C","\u0E40\u0E2A\u0E32\u0E23\u0E4C"]},months:{shorthand:["\u0E21.\u0E04.","\u0E01.\u0E1E.","\u0E21\u0E35.\u0E04.","\u0E40\u0E21.\u0E22.","\u0E1E.\u0E04.","\u0E21\u0E34.\u0E22.","\u0E01.\u0E04.","\u0E2A.\u0E04.","\u0E01.\u0E22.","\u0E15.\u0E04.","\u0E1E.\u0E22.","\u0E18.\u0E04."],longhand:["\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21","\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C","\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21","\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19","\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21","\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19","\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21","\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21","\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19","\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21","\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19","\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"]},firstDayOfWeek:1,rangeSeparator:" \u0E16\u0E36\u0E07 ",scrollTitle:"\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E14",toggleTitle:"\u0E04\u0E25\u0E34\u0E01\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19",time_24hr:!0,ordinal:()=>""};fg.l10ns.th=Qc;var NI=fg.l10ns;h();var pg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Xc={weekdays:{shorthand:["Paz","Pzt","Sal","\xC7ar","Per","Cum","Cmt"],longhand:["Pazar","Pazartesi","Sal\u0131","\xC7ar\u015Famba","Per\u015Fembe","Cuma","Cumartesi"]},months:{shorthand:["Oca","\u015Eub","Mar","Nis","May","Haz","Tem","A\u011Fu","Eyl","Eki","Kas","Ara"],longhand:["Ocak","\u015Eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011Fustos","Eyl\xFCl","Ekim","Kas\u0131m","Aral\u0131k"]},firstDayOfWeek:1,ordinal:()=>".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmak i\xE7in kayd\u0131r\u0131n",toggleTitle:"A\xE7/Kapa",amPM:["\xD6\xD6","\xD6S"],time_24hr:!0};pg.l10ns.tr=Xc;var HI=pg.l10ns;h();var hg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Zc={firstDayOfWeek:1,weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0456\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A","\u0412\u0456\u0432\u0442\u043E\u0440\u043E\u043A","\u0421\u0435\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440","\u041F'\u044F\u0442\u043D\u0438\u0446\u044F","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0456\u0447","\u041B\u044E\u0442","\u0411\u0435\u0440","\u041A\u0432\u0456","\u0422\u0440\u0430","\u0427\u0435\u0440","\u041B\u0438\u043F","\u0421\u0435\u0440","\u0412\u0435\u0440","\u0416\u043E\u0432","\u041B\u0438\u0441","\u0413\u0440\u0443"],longhand:["\u0421\u0456\u0447\u0435\u043D\u044C","\u041B\u044E\u0442\u0438\u0439","\u0411\u0435\u0440\u0435\u0437\u0435\u043D\u044C","\u041A\u0432\u0456\u0442\u0435\u043D\u044C","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u0435\u0440\u0432\u0435\u043D\u044C","\u041B\u0438\u043F\u0435\u043D\u044C","\u0421\u0435\u0440\u043F\u0435\u043D\u044C","\u0412\u0435\u0440\u0435\u0441\u0435\u043D\u044C","\u0416\u043E\u0432\u0442\u0435\u043D\u044C","\u041B\u0438\u0441\u0442\u043E\u043F\u0430\u0434","\u0413\u0440\u0443\u0434\u0435\u043D\u044C"]},time_24hr:!0};hg.l10ns.uk=Zc;var KI=hg.l10ns;h();var mg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},eu={weekdays:{shorthand:["\u042F\u043A\u0448","\u0414\u0443\u0448","\u0421\u0435\u0448","\u0427\u043E\u0440","\u041F\u0430\u0439","\u0416\u0443\u043C","\u0428\u0430\u043D"],longhand:["\u042F\u043A\u0448\u0430\u043D\u0431\u0430","\u0414\u0443\u0448\u0430\u043D\u0431\u0430","\u0421\u0435\u0448\u0430\u043D\u0431\u0430","\u0427\u043E\u0440\u0448\u0430\u043D\u0431\u0430","\u041F\u0430\u0439\u0448\u0430\u043D\u0431\u0430","\u0416\u0443\u043C\u0430","\u0428\u0430\u043D\u0431\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440","\u0424\u0435\u0432\u0440\u0430\u043B","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440","\u041E\u043A\u0442\u044F\u0431\u0440","\u041D\u043E\u044F\u0431\u0440","\u0414\u0435\u043A\u0430\u0431\u0440"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u04B2\u0430\u0444\u0442\u0430",scrollTitle:"\u041A\u0430\u0442\u0442\u0430\u043B\u0430\u0448\u0442\u0438\u0440\u0438\u0448 \u0443\u0447\u0443\u043D \u0430\u0439\u043B\u0430\u043D\u0442\u0438\u0440\u0438\u043D\u0433",toggleTitle:"\u040E\u0442\u0438\u0448 \u0443\u0447\u0443\u043D \u0431\u043E\u0441\u0438\u043D\u0433",amPM:["AM","PM"],yearAriaLabel:"\u0419\u0438\u043B",time_24hr:!0};mg.l10ns.uz=eu;var UI=mg.l10ns;h();var gg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},tu={weekdays:{shorthand:["Ya","Du","Se","Cho","Pa","Ju","Sha"],longhand:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"]},months:{shorthand:["Yan","Fev","Mar","Apr","May","Iyun","Iyul","Avg","Sen","Okt","Noy","Dek"],longhand:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"Hafta",scrollTitle:"Kattalashtirish uchun aylantiring",toggleTitle:"O\u2018tish uchun bosing",amPM:["AM","PM"],yearAriaLabel:"Yil",time_24hr:!0};gg.l10ns.uz_latn=tu;var zI=gg.l10ns;h();var vg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},nu={weekdays:{shorthand:["CN","T2","T3","T4","T5","T6","T7"],longhand:["Ch\u1EE7 nh\u1EADt","Th\u1EE9 hai","Th\u1EE9 ba","Th\u1EE9 t\u01B0","Th\u1EE9 n\u0103m","Th\u1EE9 s\xE1u","Th\u1EE9 b\u1EA3y"]},months:{shorthand:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],longhand:["Th\xE1ng m\u1ED9t","Th\xE1ng hai","Th\xE1ng ba","Th\xE1ng t\u01B0","Th\xE1ng n\u0103m","Th\xE1ng s\xE1u","Th\xE1ng b\u1EA3y","Th\xE1ng t\xE1m","Th\xE1ng ch\xEDn","Th\xE1ng m\u01B0\u1EDDi","Th\xE1ng m\u01B0\u1EDDi m\u1ED9t","Th\xE1ng m\u01B0\u1EDDi hai"]},firstDayOfWeek:1,rangeSeparator:" \u0111\u1EBFn "};vg.l10ns.vn=nu;var jI=vg.l10ns;h();var yg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ru={weekdays:{shorthand:["\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u5468",scrollTitle:"\u6EDA\u52A8\u5207\u6362",toggleTitle:"\u70B9\u51FB\u5207\u6362 12/24 \u5C0F\u65F6\u65F6\u5236"};yg.l10ns.zh=ru;var YI=yg.l10ns;h();var bg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},iu={weekdays:{shorthand:["\u9031\u65E5","\u9031\u4E00","\u9031\u4E8C","\u9031\u4E09","\u9031\u56DB","\u9031\u4E94","\u9031\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u9031",scrollTitle:"\u6EFE\u52D5\u5207\u63DB",toggleTitle:"\u9EDE\u64CA\u5207\u63DB 12/24 \u5C0F\u6642\u6642\u5236"};bg.l10ns.zh_tw=iu;var GI=bg.l10ns;var tS={ar:Xl,at:Zl,az:ec,be:tc,bg:nc,bn:rc,bs:ic,ca:Ao,ckb:oc,cat:Ao,cs:sc,cy:lc,da:cc,de:uc,default:{...Cr},en:Cr,eo:dc,es:fc,et:pc,fa:hc,fi:mc,fo:gc,fr:vc,gr:yc,he:bc,hi:wc,hr:Ec,hu:xc,hy:kc,id:Sc,is:_c,it:Dc,ja:Cc,ka:Tc,ko:Ic,km:Mc,kz:Ac,lt:Lc,lv:Pc,mk:Fc,mn:Oc,ms:Gm,my:Nc,nl:Rc,nn:Hc,no:Bc,pa:Kc,pl:$c,pt:Uc,ro:Vc,ru:zc,si:Wc,sk:jc,sl:qc,sq:Yc,sr:Jc,sv:Gc,th:Qc,tr:Xc,uk:Zc,vn:nu,zh:ru,zh_tw:iu,uz:eu,uz_latn:tu},et=tS;var Eg={ar:et.ar,cs:et.cs,da:et.da,de:et.de,en:et.en,"en-gb":et.en,es:et.es,fr:et.fr,hi:et.hi,id:et.id,it:et.it,ja:et.ja,ko:et.ko,nl:et.nl,nn:et.no,pl:et.pl,pt:et.pt,"pt-br":et.pt,ro:et.ro,ru:et.ru,tr:et.tr,"zh-cn":et.zh,"zh-tw":et.zh_tw},nS=Eg[wg.moment.locale()];function Po(e){let t=e==null?void 0:e.getSetting("date-picker-week-start"),r=nS||Eg.en;return t?{...r,firstDayOfWeek:t}:r}h();h();var Fo=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],or={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:e=>typeof console!="undefined"&&console.warn(e),getWeek:e=>{let t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);let r=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-r.getTime())/864e5-3+(r.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1,win:window};h();var Ot=(e,t=2)=>`000${e}`.slice(t*-1),Gt=e=>e===!0?1:0;function au(e,t){let r;return function(){let n=arguments;clearTimeout(r),r=setTimeout(()=>e.apply(this,n),t)}}var Oo=e=>Array.isArray(e)?e:[e];h();h();var ou=()=>{},ca=(e,t,r)=>r.months[t?"shorthand":"longhand"][e],xg={D:ou,F:function(e,t,r){e.setMonth(r.months.longhand.indexOf(t))},G:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},H:(e,t)=>{e.setHours(parseFloat(t))},J:(e,t)=>{e.setDate(parseFloat(t))},K:(e,t,r)=>{e.setHours(e.getHours()%12+12*Gt(new RegExp(r.amPM[1],"i").test(t)))},M:function(e,t,r){e.setMonth(r.months.shorthand.indexOf(t))},S:(e,t)=>{e.setSeconds(parseFloat(t))},U:(e,t)=>new Date(parseFloat(t)*1e3),W:function(e,t,r){let n=parseInt(t),i=new Date(e.getFullYear(),0,2+(n-1)*7,0,0,0,0);return i.setDate(i.getDate()-i.getDay()+r.firstDayOfWeek),i},Y:(e,t)=>{e.setFullYear(parseFloat(t))},Z:(e,t)=>new Date(t),d:(e,t)=>{e.setDate(parseFloat(t))},h:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},i:(e,t)=>{e.setMinutes(parseFloat(t))},j:(e,t)=>{e.setDate(parseFloat(t))},l:ou,m:(e,t)=>{e.setMonth(parseFloat(t)-1)},n:(e,t)=>{e.setMonth(parseFloat(t)-1)},s:(e,t)=>{e.setSeconds(parseFloat(t))},u:(e,t)=>new Date(parseFloat(t)),w:ou,y:(e,t)=>{e.setFullYear(2e3+parseFloat(t))}},$n={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},si={Z:e=>e.toISOString(),D:function(e,t,r){return t.weekdays.shorthand[si.w(e,t,r)]},F:function(e,t,r){return ca(si.n(e,t,r)-1,!1,t)},G:function(e,t,r){return Ot(si.h(e,t,r))},H:e=>Ot(e.getHours()),J:function(e,t){return t.ordinal!==void 0?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:(e,t)=>t.amPM[Gt(e.getHours()>11)],M:function(e,t){return ca(e.getMonth(),!0,t)},S:e=>Ot(e.getSeconds()),U:e=>e.getTime()/1e3,W:function(e,t,r){return r.getWeek(e)},Y:e=>Ot(e.getFullYear(),4),d:e=>Ot(e.getDate()),h:e=>e.getHours()%12?e.getHours()%12:12,i:e=>Ot(e.getMinutes()),j:e=>e.getDate(),l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:e=>Ot(e.getMonth()+1),n:e=>e.getMonth()+1,s:e=>e.getSeconds(),u:e=>e.getTime(),w:e=>e.getDay(),y:e=>String(e.getFullYear()).substring(2)};var su=({config:e=or,l10n:t=Cr,isMobile:r=!1})=>(n,i,a)=>{let o=a||t;return e.formatDate!==void 0&&!r?e.formatDate(n,i,o):i.split("").map((s,u,l)=>si[s]&&l[u-1]!=="\\"?si[s](n,o,e):s!=="\\"?s:"").join("")},No=({config:e=or,l10n:t=Cr})=>(r,n,i,a)=>{if(r!==0&&!r)return;let o=a||t,s,u=r;if(r.getDate)s=new Date(r.getTime());else if(typeof r!="string"&&r.toFixed!==void 0)s=new Date(r);else if(typeof r=="string"){let l=n||(e||or).dateFormat,c=String(r).trim();if(c==="today")s=new Date,i=!0;else if(e&&e.parseDate)s=e.parseDate(r,l);else if(/Z$/.test(c)||/GMT$/.test(c))s=new Date(r);else{let d,f=[];for(let p=0,m=0,y="";ps=p(s,m,o)||s),s=d?s:void 0}}if(!(s.getDate&&!isNaN(s.getTime()))){e.errorHandler(new Error(`Invalid date provided: ${u}`));return}return i===!0&&s.setHours(0,0,0,0),s};function Qt(e,t,r=!0){return r!==!1?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var kg=(e,t,r)=>e>Math.min(t,r)&&ee*3600+t*60+r,Sg=e=>{let t=Math.floor(e/3600),r=(e-t*3600)/60;return[t,r,e-t*3600-r*60]},_g={DAY:864e5};function Ho(e){let t=e.defaultHour,r=e.defaultMinute,n=e.defaultSeconds;if(e.minDate!==void 0){let i=e.minDate.getHours(),a=e.minDate.getMinutes(),o=e.minDate.getSeconds();t=0?new Date:new Date(n.config.minDate.getTime()),Q=Ho(n.config);K.setHours(Q.hours,Q.minutes,Q.seconds,K.getMilliseconds()),n.selectedDates=[K],n.latestSelectedDateObj=K}_!==void 0&&_.type!=="blur"&&Ra(_);let M=n._input.value;f(),vn(),n._input.value!==M&&n._debouncedChange()}function c(_,M){return _%12+12*Gt(M===n.l10n.amPM[1])}function d(_){switch(_%24){case 0:case 12:return 12;default:return _%12}}function f(){if(n.hourElement===void 0||n.minuteElement===void 0)return;let _=(parseInt(n.hourElement.value.slice(-2),10)||0)%24,M=(parseInt(n.minuteElement.value,10)||0)%60,K=n.secondElement!==void 0?(parseInt(n.secondElement.value,10)||0)%60:0;n.amPM!==void 0&&(_=c(_,n.amPM.textContent));let Q=n.config.minTime!==void 0||n.config.minDate&&n.minDateHasTime&&n.latestSelectedDateObj&&Qt(n.latestSelectedDateObj,n.config.minDate,!0)===0,se=n.config.maxTime!==void 0||n.config.maxDate&&n.maxDateHasTime&&n.latestSelectedDateObj&&Qt(n.latestSelectedDateObj,n.config.maxDate,!0)===0;if(n.config.maxTime!==void 0&&n.config.minTime!==void 0&&n.config.minTime>n.config.maxTime){let ie=Ro(n.config.minTime.getHours(),n.config.minTime.getMinutes(),n.config.minTime.getSeconds()),me=Ro(n.config.maxTime.getHours(),n.config.maxTime.getMinutes(),n.config.maxTime.getSeconds()),ue=Ro(_,M,K);if(ue>me&&ue=12)]),n.secondElement!==void 0&&(n.secondElement.value=Ot(K)))}function y(_){let M=Xt(_),K=parseInt(M.value)+(_.delta||0);(K/1e3>1||_.key==="Enter"&&!/[^\d]/.test(K.toString()))&&ee(K)}function b(_,M,K,Q){if(Array.isArray(M))return M.forEach(se=>b(_,se,K,Q));if(Array.isArray(_))return _.forEach(se=>b(se,M,K,Q));_.addEventListener(M,K,Q),n._handlers.push({remove:()=>_.removeEventListener(M,K,Q)})}function k(){Ue("onChange")}function T(){if(n.config.wrap&&["open","close","toggle","clear"].forEach(M=>{Array.prototype.forEach.call(n.element.querySelectorAll(`[data-${M}]`),K=>b(K,"click",n[M]))}),n.isMobile){qe();return}let _=au(Lt,50);if(n._debouncedChange=au(k,rS),n.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&b(n.daysContainer,"mouseover",M=>{n.config.mode==="range"&&ht(Xt(M))}),b(n._input,"keydown",ut),n.calendarContainer!==void 0&&b(n.calendarContainer,"keydown",ut),!n.config.inline&&!n.config.static&&b(r,"resize",_),r.ontouchstart!==void 0?b(r.document,"touchstart",q):b(r.document,"mousedown",q),b(r.document,"focus",q,{capture:!0}),n.config.clickOpens===!0&&(b(n._input,"focus",n.open),b(n._input,"click",n.open)),n.daysContainer!==void 0&&(b(n.monthNav,"click",Xs),b(n.monthNav,["keyup","increment"],y),b(n.daysContainer,"click",Pt)),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0){let M=K=>Xt(K).select();b(n.timeContainer,["increment"],l),b(n.timeContainer,"blur",l,{capture:!0}),b(n.timeContainer,"click",A),b([n.hourElement,n.minuteElement],["focus","click"],M),n.secondElement!==void 0&&b(n.secondElement,"focus",()=>n.secondElement&&n.secondElement.select()),n.amPM!==void 0&&b(n.amPM,"click",K=>{l(K)})}n.config.allowInput&&b(n._input,"blur",$e)}function D(_,M){let K=_!==void 0?n.parseDate(_):n.latestSelectedDateObj||(n.config.minDate&&n.config.minDate>n.now?n.config.minDate:n.config.maxDate&&n.config.maxDate1),n.calendarContainer.appendChild(_);let M=n.config.appendTo!==void 0&&n.config.appendTo.nodeType!==void 0;if((n.config.inline||n.config.static)&&(n.calendarContainer.classList.add(n.config.inline?"inline":"static"),n.config.inline&&(!M&&n.element.parentNode?n.element.parentNode.insertBefore(n.calendarContainer,n._input.nextSibling):n.config.appendTo!==void 0&&n.config.appendTo.appendChild(n.calendarContainer)),n.config.static)){let K=je(r.document,"div","flatpickr-wrapper");n.element.parentNode&&n.element.parentNode.insertBefore(K,n.element),K.appendChild(n.element),n.altInput&&K.appendChild(n.altInput),K.appendChild(n.calendarContainer)}!n.config.static&&!n.config.inline&&(n.config.appendTo!==void 0?n.config.appendTo:r.document.body).appendChild(n.calendarContainer)}function N(_,M,K,Q){let se=we(M,!0),ie=je(r.document,"span",_,M.getDate().toString());return ie.dateObj=M,ie.$i=Q,ie.setAttribute("aria-label",n.formatDate(M,n.config.ariaDateFormat)),_.indexOf("hidden")===-1&&Qt(M,n.now)===0&&(n.todayDateElem=ie,ie.classList.add("today"),ie.setAttribute("aria-current","date")),se?(ie.tabIndex=-1,Ye(M)&&(ie.classList.add("selected"),n.selectedDateElem=ie,n.config.mode==="range"&&(Nt(ie,"startRange",n.selectedDates[0]&&Qt(M,n.selectedDates[0],!0)===0),Nt(ie,"endRange",n.selectedDates[1]&&Qt(M,n.selectedDates[1],!0)===0),_==="nextMonthDay"&&ie.classList.add("inRange")))):ie.classList.add("flatpickr-disabled"),n.config.mode==="range"&&Jn(M)&&!Ye(M)&&ie.classList.add("inRange"),n.weekNumbers&&n.config.showMonths===1&&_!=="prevMonthDay"&&Q%7==6&&n.weekNumbers.insertAdjacentHTML("beforeend",""+n.config.getWeek(M)+""),Ue("onDayCreate",ie),ie}function U(_){_.focus(),n.config.mode==="range"&&ht(_)}function W(_){let M=_>0?0:n.config.showMonths-1,K=_>0?n.config.showMonths:-1;for(let Q=M;Q!=K;Q+=_){let se=n.daysContainer.children[Q],ie=_>0?0:se.children.length-1,me=_>0?se.children.length:-1;for(let ue=ie;ue!=me;ue+=_){let Pe=se.children[ue];if(Pe.className.indexOf("hidden")===-1&&we(Pe.dateObj))return Pe}}}function te(_,M){let K=_.className.indexOf("Month")===-1?_.dateObj.getMonth():n.currentMonth,Q=M>0?n.config.showMonths:-1,se=M>0?1:-1;for(let ie=K-n.currentMonth;ie!=Q;ie+=se){let me=n.daysContainer.children[ie],ue=K-n.currentMonth===ie?_.$i+M:M<0?me.children.length-1:0,Pe=me.children.length;for(let Fe=ue;Fe>=0&&Fe0?Pe:-1);Fe+=se){let Me=me.children[Fe];if(Me.className.indexOf("hidden")===-1&&we(Me.dateObj)&&Math.abs(_.$i-Fe)>=Math.abs(M))return U(Me)}}n.changeMonth(se),Z(W(se),0)}function Z(_,M){let K=o(),Q=ke(K||document.body),se=_!==void 0?_:Q?K:n.selectedDateElem!==void 0&&ke(n.selectedDateElem)?n.selectedDateElem:n.todayDateElem!==void 0&&ke(n.todayDateElem)?n.todayDateElem:W(M>0?1:-1);se===void 0?n._input.focus():Q?te(se,M):U(se)}function le(_,M){let K=(new Date(_,M,1).getDay()-n.l10n.firstDayOfWeek+7)%7,Q=n.utils.getDaysInMonth((M-1+12)%12,_),se=n.utils.getDaysInMonth(M,_),ie=r.document.createDocumentFragment(),me=n.config.showMonths>1,ue=me?"prevMonthDay hidden":"prevMonthDay",Pe=me?"nextMonthDay hidden":"nextMonthDay",Fe=Q+1-K,Me=0;for(;Fe<=Q;Fe++,Me++)ie.appendChild(N(`flatpickr-day ${ue}`,new Date(_,M-1,Fe),Fe,Me));for(Fe=1;Fe<=se;Fe++,Me++)ie.appendChild(N("flatpickr-day",new Date(_,M,Fe),Fe,Me));for(let gt=se+1;gt<=42-K&&(n.config.showMonths===1||Me%7!=0);gt++,Me++)ie.appendChild(N(`flatpickr-day ${Pe}`,new Date(_,M+1,gt%se),gt,Me));let jt=je(r.document,"div","dayContainer");return jt.appendChild(ie),jt}function X(){if(n.daysContainer===void 0)return;ua(n.daysContainer),n.weekNumbers&&ua(n.weekNumbers);let _=document.createDocumentFragment();for(let M=0;M1||n.config.monthSelectorType!=="dropdown")return;let _=function(M){return n.config.minDate!==void 0&&n.currentYear===n.config.minDate.getFullYear()&&Mn.config.maxDate.getMonth())};n.monthsDropdownContainer.tabIndex=-1,n.monthsDropdownContainer.innerHTML="";for(let M=0;M<12;M++){if(!_(M))continue;let K=je(r.document,"option","flatpickr-monthDropdown-month");K.value=new Date(n.currentYear,M).getMonth().toString(),K.textContent=ca(M,n.config.shorthandCurrentMonth,n.l10n),K.tabIndex=-1,n.currentMonth===M&&(K.selected=!0),n.monthsDropdownContainer.appendChild(K)}}function re(){let _=je(r.document,"div","flatpickr-month"),M=r.document.createDocumentFragment(),K;n.config.showMonths>1||n.config.monthSelectorType==="static"?K=je(r.document,"span","cur-month"):(n.monthsDropdownContainer=je(r.document,"select","flatpickr-monthDropdown-months"),n.monthsDropdownContainer.setAttribute("aria-label",n.l10n.monthAriaLabel),b(n.monthsDropdownContainer,"change",me=>{let ue=Xt(me),Pe=parseInt(ue.value,10);n.changeMonth(Pe-n.currentMonth),Ue("onMonthChange")}),G(),K=n.monthsDropdownContainer);let Q=da(r.document,"cur-year",{tabindex:"-1"}),se=Q.getElementsByTagName("input")[0];se.setAttribute("aria-label",n.l10n.yearAriaLabel),n.config.minDate&&se.setAttribute("min",n.config.minDate.getFullYear().toString()),n.config.maxDate&&(se.setAttribute("max",n.config.maxDate.getFullYear().toString()),se.disabled=!!n.config.minDate&&n.config.minDate.getFullYear()===n.config.maxDate.getFullYear());let ie=je(r.document,"div","flatpickr-current-month");return ie.appendChild(K),ie.appendChild(Q),M.appendChild(ie),_.appendChild(M),{container:_,yearElement:se,monthElement:K}}function pe(){ua(n.monthNav),n.monthNav.appendChild(n.prevMonthNav),n.config.showMonths&&(n.yearElements=[],n.monthElements=[]);for(let _=n.config.showMonths;_--;){let M=re();n.yearElements.push(M.yearElement),n.monthElements.push(M.monthElement),n.monthNav.appendChild(M.container)}n.monthNav.appendChild(n.nextMonthNav)}function he(){return n.monthNav=je(r.document,"div","flatpickr-months"),n.yearElements=[],n.monthElements=[],n.prevMonthNav=je(r.document,"span","flatpickr-prev-month"),n.prevMonthNav.innerHTML=n.config.prevArrow,n.nextMonthNav=je(r.document,"span","flatpickr-next-month"),n.nextMonthNav.innerHTML=n.config.nextArrow,pe(),Object.defineProperty(n,"_hidePrevMonthArrow",{get:()=>n.__hidePrevMonthArrow,set(_){n.__hidePrevMonthArrow!==_&&(Nt(n.prevMonthNav,"flatpickr-disabled",_),n.__hidePrevMonthArrow=_)}}),Object.defineProperty(n,"_hideNextMonthArrow",{get:()=>n.__hideNextMonthArrow,set(_){n.__hideNextMonthArrow!==_&&(Nt(n.nextMonthNav,"flatpickr-disabled",_),n.__hideNextMonthArrow=_)}}),n.currentYearElement=n.yearElements[0],St(),n.monthNav}function ve(){n.calendarContainer.classList.add("hasTime"),n.config.noCalendar&&n.calendarContainer.classList.add("noCalendar");let _=Ho(n.config);n.timeContainer=je(r.document,"div","flatpickr-time"),n.timeContainer.tabIndex=-1;let M=je(r.document,"span","flatpickr-time-separator",":"),K=da(r.document,"flatpickr-hour",{"aria-label":n.l10n.hourAriaLabel});n.hourElement=K.getElementsByTagName("input")[0];let Q=da(r.document,"flatpickr-minute",{"aria-label":n.l10n.minuteAriaLabel});if(n.minuteElement=Q.getElementsByTagName("input")[0],n.hourElement.tabIndex=n.minuteElement.tabIndex=-1,n.hourElement.value=Ot(n.latestSelectedDateObj?n.latestSelectedDateObj.getHours():n.config.time_24hr?_.hours:d(_.hours)),n.minuteElement.value=Ot(n.latestSelectedDateObj?n.latestSelectedDateObj.getMinutes():_.minutes),n.hourElement.setAttribute("step",n.config.hourIncrement.toString()),n.minuteElement.setAttribute("step",n.config.minuteIncrement.toString()),n.hourElement.setAttribute("min",n.config.time_24hr?"0":"1"),n.hourElement.setAttribute("max",n.config.time_24hr?"23":"12"),n.hourElement.setAttribute("maxlength","2"),n.minuteElement.setAttribute("min","0"),n.minuteElement.setAttribute("max","59"),n.minuteElement.setAttribute("maxlength","2"),n.timeContainer.appendChild(K),n.timeContainer.appendChild(M),n.timeContainer.appendChild(Q),n.config.time_24hr&&n.timeContainer.classList.add("time24hr"),n.config.enableSeconds){n.timeContainer.classList.add("hasSeconds");let se=da(r.document,"flatpickr-second");n.secondElement=se.getElementsByTagName("input")[0],n.secondElement.value=Ot(n.latestSelectedDateObj?n.latestSelectedDateObj.getSeconds():_.seconds),n.secondElement.setAttribute("step",n.minuteElement.getAttribute("step")),n.secondElement.setAttribute("min","0"),n.secondElement.setAttribute("max","59"),n.secondElement.setAttribute("maxlength","2"),n.timeContainer.appendChild(je(r.document,"span","flatpickr-time-separator",":")),n.timeContainer.appendChild(se)}return n.config.time_24hr||(n.amPM=je(r.document,"span","flatpickr-am-pm",n.l10n.amPM[Gt((n.latestSelectedDateObj?n.hourElement.value:n.config.defaultHour)>11)]),n.amPM.title=n.l10n.toggleTitle,n.amPM.tabIndex=-1,n.timeContainer.appendChild(n.amPM)),n.timeContainer}function be(){n.weekdayContainer?ua(n.weekdayContainer):n.weekdayContainer=je(r.document,"div","flatpickr-weekdays");for(let _=n.config.showMonths;_--;){let M=je(r.document,"div","flatpickr-weekdaycontainer");n.weekdayContainer.appendChild(M)}return Te(),n.weekdayContainer}function Te(){if(!n.weekdayContainer)return;let _=n.l10n.firstDayOfWeek,M=[...n.l10n.weekdays.shorthand];_>0&&_-1&&(pe.arrayIndex=re.arrayIndex),Z.matches.push(pe)}}}),this.options.includeScore&&D.push(function(ee,Z){Z.score=ee.score});for(var I=0,H=b.length;Ik)return s(v,this.pattern,T);var D=this.options,I=D.location,H=D.distance,C=D.threshold,F=D.findAllMatches,U=D.minMatchCharLength;return u(v,this.pattern,this.patternAlphabet,{location:I,distance:H,threshold:C,findAllMatches:F,minMatchCharLength:U})}}])&&o(f.prototype,p),m&&o(f,m),d}();n.exports=c},function(n,i){var a=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;n.exports=function(o,s){var u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:/ +/g,l=new RegExp(s.replace(a,"\\$&").replace(u,"|")),c=o.match(l),d=!!c,f=[];if(d)for(var p=0,m=c.length;p=P;W-=1){var j=W-1,q=c[u.charAt(j)];if(q&&(Z[j]=1),Je[W]=(Je[W+1]<<1|1)&q,be!==0&&(Je[W]|=(re[W+1]|re[W])<<1|1|re[W+1]),Je[W]&ge&&(pe=o(l,{errors:be,currentLocation:j,expectedLocation:C,distance:v}))<=U){if(U=pe,(z=j)<=C)break;P=Math.max(1,2*C-z)}}if(o(l,{errors:be+1,currentLocation:C,expectedLocation:C,distance:v})>U)break;re=Je}return{isMatch:z>=0,score:pe===0?.001:pe,matchedIndices:s(Z,H)}}},function(n,i){n.exports=function(a,o){var s=o.errors,u=s===void 0?0:s,l=o.currentLocation,c=l===void 0?0:l,d=o.expectedLocation,f=d===void 0?0:d,p=o.distance,m=p===void 0?100:p,v=u/a.length,b=Math.abs(f-c);return m?v+b/m:b?1:v}},function(n,i){n.exports=function(){for(var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,s=[],u=-1,l=-1,c=0,d=a.length;c=o&&s.push([u,l]),u=-1)}return a[c-1]&&c-u>=o&&s.push([u,c-1]),s}},function(n,i){n.exports=function(a){for(var o={},s=a.length,u=0;u0)return"Unexpected "+(N.length>1?"keys":"key")+" "+('"'+N.join('", "')+'" found in '+A+". ")+"Expected to find one of the known reducer keys instead: "+('"'+x.join('", "')+'". Unexpected keys will be ignored.')}function v(O){Object.keys(O).forEach(function(w){var E=O[w],g=E(void 0,{type:l.INIT});if(typeof g=="undefined")throw new Error('Reducer "'+w+`" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);if(typeof E(void 0,{type:l.PROBE_UNKNOWN_ACTION()})=="undefined")throw new Error('Reducer "'+w+'" returned undefined when probed with a random type. '+("Don't try to handle "+l.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function b(O){for(var w=Object.keys(O),E={},g=0;g-1?O.map(function(E){var g=E;return g.id===parseInt(w.choiceId,10)&&(g.selected=!0),g}):O;case"REMOVE_ITEM":return w.choiceId>-1?O.map(function(E){var g=E;return g.id===parseInt(w.choiceId,10)&&(g.selected=!1),g}):O;case"FILTER_CHOICES":return O.map(function(E){var g=E;return g.active=w.results.some(function(x){var A=x.item,N=x.score;return A.id===g.id?(g.score=N,!0):!1}),g});case"ACTIVATE_CHOICES":return O.map(function(E){var g=E;return g.active=w.active,g});case"CLEAR_CHOICES":return X;default:return O}}var re={loading:!1},pe=function(w,E){switch(w===void 0&&(w=re),E.type){case"SET_IS_LOADING":return{loading:E.isLoading};default:return w}},he=pe,ge=function(w,E){return Math.floor(Math.random()*(E-w)+w)},be=function(w){return Array.from({length:w},function(){return ge(0,36).toString(36)}).join("")},Te=function(w,E){var g=w.id||w.name&&w.name+"-"+be(2)||be(4);return g=g.replace(/(:|\.|\[|\]|,)/g,""),g=E+"-"+g,g},L=function(w){return Object.prototype.toString.call(w).slice(8,-1)},P=function(w,E){return E!=null&&L(E)===w},lt=function(w,E){return E===void 0&&(E=document.createElement("div")),w.nextSibling?w.parentNode.insertBefore(E,w.nextSibling):w.parentNode.appendChild(E),E.appendChild(w)},Je=function(w,E,g){if(g===void 0&&(g=1),!(!(w instanceof Element)||typeof E!="string")){for(var x=(g>0?"next":"previous")+"ElementSibling",A=w[x];A;){if(A.matches(E))return A;A=A[x]}return A}},W=function(w,E,g){if(g===void 0&&(g=1),!w)return!1;var x;return g>0?x=E.scrollTop+E.offsetHeight>=w.offsetTop+w.offsetHeight:x=w.offsetTop>=E.scrollTop,x},j=function(w){return typeof w!="string"?w:w.replace(/&/g,"&").replace(/>/g,"&rt;").replace(/"'+j(w)+'"'},maxItemText:function(w){return"Only "+w+" values can be added"},valueComparer:function(w,E){return w===E},fuseOptions:{includeScore:!0},callbackOnInit:null,callbackOnCreateTemplates:null,classNames:Kr},Pt={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice"},Kt={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL"},gt={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},Y="text",oe="select-one",Ee="select-multiple",ze=4,kt=function(){function O(E){var g=E.element,x=E.type,A=E.classNames,N=E.position;this.element=g,this.classNames=A,this.type=x,this.position=N,this.isOpen=!1,this.isFlipped=!1,this.isFocussed=!1,this.isDisabled=!1,this.isLoading=!1,this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this)}var w=O.prototype;return w.addEventListeners=function(){this.element.addEventListener("focus",this._onFocus),this.element.addEventListener("blur",this._onBlur)},w.removeEventListeners=function(){this.element.removeEventListener("focus",this._onFocus),this.element.removeEventListener("blur",this._onBlur)},w.shouldFlip=function(g){if(typeof g!="number")return!1;var x=!1;return this.position==="auto"?x=!window.matchMedia("(min-height: "+(g+1)+"px)").matches:this.position==="top"&&(x=!0),x},w.setActiveDescendant=function(g){this.element.setAttribute("aria-activedescendant",g)},w.removeActiveDescendant=function(){this.element.removeAttribute("aria-activedescendant")},w.open=function(g){this.element.classList.add(this.classNames.openState),this.element.setAttribute("aria-expanded","true"),this.isOpen=!0,this.shouldFlip(g)&&(this.element.classList.add(this.classNames.flippedState),this.isFlipped=!0)},w.close=function(){this.element.classList.remove(this.classNames.openState),this.element.setAttribute("aria-expanded","false"),this.removeActiveDescendant(),this.isOpen=!1,this.isFlipped&&(this.element.classList.remove(this.classNames.flippedState),this.isFlipped=!1)},w.focus=function(){this.isFocussed||this.element.focus()},w.addFocusState=function(){this.element.classList.add(this.classNames.focusState)},w.removeFocusState=function(){this.element.classList.remove(this.classNames.focusState)},w.enable=function(){this.element.classList.remove(this.classNames.disabledState),this.element.removeAttribute("aria-disabled"),this.type===oe&&this.element.setAttribute("tabindex","0"),this.isDisabled=!1},w.disable=function(){this.element.classList.add(this.classNames.disabledState),this.element.setAttribute("aria-disabled","true"),this.type===oe&&this.element.setAttribute("tabindex","-1"),this.isDisabled=!0},w.wrap=function(g){lt(g,this.element)},w.unwrap=function(g){this.element.parentNode.insertBefore(g,this.element),this.element.parentNode.removeChild(this.element)},w.addLoadingState=function(){this.element.classList.add(this.classNames.loadingState),this.element.setAttribute("aria-busy","true"),this.isLoading=!0},w.removeLoadingState=function(){this.element.classList.remove(this.classNames.loadingState),this.element.removeAttribute("aria-busy"),this.isLoading=!1},w._onFocus=function(){this.isFocussed=!0},w._onBlur=function(){this.isFocussed=!1},O}();function gn(O,w){for(var E=0;E0?this.element.scrollTop+ae-$:g.offsetTop;requestAnimationFrame(function(){A._animateScroll(de,x)})}},w._scrollDown=function(g,x,A){var N=(A-g)/x,$=N>1?N:1;this.element.scrollTop=g+$},w._scrollUp=function(g,x,A){var N=(g-A)/x,$=N>1?N:1;this.element.scrollTop=g-$},w._animateScroll=function(g,x){var A=this,N=ze,$=this.element.scrollTop,J=!1;x>0?(this._scrollDown($,N,g),$g&&(J=!0)),J&&requestAnimationFrame(function(){A._animateScroll(g,x)})},O}();function ln(O,w){for(var E=0;E0?"treeitem":"option"),Object.assign(Ne.dataset,{choice:"",id:de,value:xe,selectText:g}),De?(Ne.classList.add(J),Ne.dataset.choiceDisabled="",Ne.setAttribute("aria-disabled","true")):(Ne.classList.add(N),Ne.dataset.choiceSelectable=""),Ne},input:function(w,E){var g=w.input,x=w.inputCloned,A=Object.assign(document.createElement("input"),{type:"text",className:g+" "+x,autocomplete:"off",autocapitalize:"off",spellcheck:!1});return A.setAttribute("role","textbox"),A.setAttribute("aria-autocomplete","list"),A.setAttribute("aria-label",E),A},dropdown:function(w){var E=w.list,g=w.listDropdown,x=document.createElement("div");return x.classList.add(E,g),x.setAttribute("aria-expanded","false"),x},notice:function(w,E,g){var x=w.item,A=w.itemChoice,N=w.noResults,$=w.noChoices;g===void 0&&(g="");var J=[x,A];return g==="no-choices"?J.push($):g==="no-results"&&J.push(N),Object.assign(document.createElement("div"),{innerHTML:E,className:J.join(" ")})},option:function(w){var E=w.label,g=w.value,x=w.customProperties,A=w.active,N=w.disabled,$=new Option(E,g,!1,A);return x&&($.dataset.customProperties=x),$.disabled=N,$}},se=Q,ie=function(w){var E=w.value,g=w.label,x=w.id,A=w.groupId,N=w.disabled,$=w.elementId,J=w.customProperties,ae=w.placeholder,de=w.keyCode;return{type:Kt.ADD_CHOICE,value:E,label:g,id:x,groupId:A,disabled:N,elementId:$,customProperties:J,placeholder:ae,keyCode:de}},me=function(w){return{type:Kt.FILTER_CHOICES,results:w}},ue=function(w){return w===void 0&&(w=!0),{type:Kt.ACTIVATE_CHOICES,active:w}},Pe=function(){return{type:Kt.CLEAR_CHOICES}},Fe=function(w){var E=w.value,g=w.label,x=w.id,A=w.choiceId,N=w.groupId,$=w.customProperties,J=w.placeholder,ae=w.keyCode;return{type:Kt.ADD_ITEM,value:E,label:g,id:x,choiceId:A,groupId:N,customProperties:$,placeholder:J,keyCode:ae}},Me=function(w,E){return{type:Kt.REMOVE_ITEM,id:w,choiceId:E}},jt=function(w,E){return{type:Kt.HIGHLIGHT_ITEM,id:w,highlighted:E}},yt=function(w){var E=w.value,g=w.id,x=w.active,A=w.disabled;return{type:Kt.ADD_GROUP,value:E,id:g,active:x,disabled:A}},Gn=function(){return{type:"CLEAR_ALL"}},Qn=function(w){return{type:"RESET_TO",state:w}},Di=function(w){return{type:"SET_IS_LOADING",isLoading:w}};function Ha(O,w){for(var E=0;E=0?this._store.getGroupById($):null;return this._store.dispatch(jt(A,!0)),x&&this.passedElement.triggerEvent(Pt.highlightItem,{id:A,value:ae,label:xe,groupValue:ve&&ve.value?ve.value:null}),this},w.unhighlightItem=function(g){if(!g)return this;var x=g.id,A=g.groupId,N=A===void 0?-1:A,$=g.value,J=$===void 0?"":$,ae=g.label,de=ae===void 0?"":ae,xe=N>=0?this._store.getGroupById(N):null;return this._store.dispatch(jt(x,!1)),this.passedElement.triggerEvent(Pt.highlightItem,{id:x,value:J,label:de,groupValue:xe&&xe.value?xe.value:null}),this},w.highlightAll=function(){var g=this;return this._store.items.forEach(function(x){return g.highlightItem(x)}),this},w.unhighlightAll=function(){var g=this;return this._store.items.forEach(function(x){return g.unhighlightItem(x)}),this},w.removeActiveItemsByValue=function(g){var x=this;return this._store.activeItems.filter(function(A){return A.value===g}).forEach(function(A){return x._removeItem(A)}),this},w.removeActiveItems=function(g){var x=this;return this._store.activeItems.filter(function(A){var N=A.id;return N!==g}).forEach(function(A){return x._removeItem(A)}),this},w.removeHighlightedItems=function(g){var x=this;return g===void 0&&(g=!1),this._store.highlightedActiveItems.forEach(function(A){x._removeItem(A),g&&x._triggerChange(A.value)}),this},w.showDropdown=function(g){var x=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){x.dropdown.show(),x.containerOuter.open(x.dropdown.distanceFromTopWindow),!g&&x._canSearch&&x.input.focus(),x.passedElement.triggerEvent(Pt.showDropdown,{})}),this)},w.hideDropdown=function(g){var x=this;return this.dropdown.isActive?(requestAnimationFrame(function(){x.dropdown.hide(),x.containerOuter.close(),!g&&x._canSearch&&(x.input.removeActiveDescendant(),x.input.blur()),x.passedElement.triggerEvent(Pt.hideDropdown,{})}),this):this},w.getValue=function(g){g===void 0&&(g=!1);var x=this._store.activeItems.reduce(function(A,N){var $=g?N.value:N;return A.push($),A},[]);return this._isSelectOneElement?x[0]:x},w.setValue=function(g){var x=this;return this.initialised?(g.forEach(function(A){return x._setChoiceOrItem(A)}),this):this},w.setChoiceByValue=function(g){var x=this;if(!this.initialised||this._isTextElement)return this;var A=Array.isArray(g)?g:[g];return A.forEach(function(N){return x._findAndSelectChoiceByValue(N)}),this},w.setChoices=function(g,x,A,N){var $=this;if(g===void 0&&(g=[]),x===void 0&&(x="value"),A===void 0&&(A="label"),N===void 0&&(N=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof x!="string"||!x)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(N&&this.clearChoices(),typeof g=="function"){var J=g(this);if(typeof Promise=="function"&&J instanceof Promise)return new Promise(function(ae){return requestAnimationFrame(ae)}).then(function(){return $._handleLoadingState(!0)}).then(function(){return J}).then(function(ae){return $.setChoices(ae,x,A,N)}).catch(function(ae){$.config.silent||console.error(ae)}).then(function(){return $._handleLoadingState(!1)}).then(function(){return $});if(!Array.isArray(J))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: "+typeof J);return this.setChoices(J,x,A,!1)}if(!Array.isArray(g))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),g.forEach(function(ae){ae.choices?$._addGroup({id:parseInt(ae.id,10)||null,group:ae,valueKey:x,labelKey:A}):$._addChoice({value:ae[x],label:ae[A],isSelected:ae.selected,isDisabled:ae.disabled,customProperties:ae.customProperties,placeholder:ae.placeholder})}),this._stopLoading(),this},w.clearChoices=function(){return this._store.dispatch(Pe()),this},w.clearStore=function(){return this._store.dispatch(Gn()),this},w.clearInput=function(){var g=!this._isSelectOneElement;return this.input.clear(g),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch(ue(!0))),this},w._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var g=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,x=this._isSelectElement,A=this._currentState.items!==this._prevState.items;!g||(x&&this._renderChoices(),A&&this._renderItems(),this._prevState=this._currentState)}},w._renderChoices=function(){var g=this,x=this._store,A=x.activeGroups,N=x.activeChoices,$=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return g.choiceList.scrollToTop()}),A.length>=1&&!this._isSearching){var J=N.filter(function(Ie){return Ie.placeholder===!0&&Ie.groupId===-1});J.length>=1&&($=this._createChoicesFragment(J,$)),$=this._createGroupsFragment(A,N,$)}else N.length>=1&&($=this._createChoicesFragment(N,$));if($.childNodes&&$.childNodes.length>0){var ae=this._store.activeItems,de=this._canAddItem(ae,this.input.value);de.response?(this.choiceList.append($),this._highlightChoice()):this.choiceList.append(this._getTemplate("notice",de.notice))}else{var xe,ve;this._isSearching?(ve=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,xe=this._getTemplate("notice",ve,"no-results")):(ve=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,xe=this._getTemplate("notice",ve,"no-choices")),this.choiceList.append(xe)}},w._renderItems=function(){var g=this._store.activeItems||[];this.itemList.clear();var x=this._createItemsFragment(g);x.childNodes&&this.itemList.append(x)},w._createGroupsFragment=function(g,x,A){var N=this;A===void 0&&(A=document.createDocumentFragment());var $=function(ae){return x.filter(function(de){return N._isSelectOneElement?de.groupId===ae.id:de.groupId===ae.id&&(N.config.renderSelectedChoices==="always"||!de.selected)})};return this.config.shouldSort&&g.sort(this.config.sorter),g.forEach(function(J){var ae=$(J);if(ae.length>=1){var de=N._getTemplate("choiceGroup",J);A.appendChild(de),N._createChoicesFragment(ae,A,!0)}}),A},w._createChoicesFragment=function(g,x,A){var N=this;x===void 0&&(x=document.createDocumentFragment()),A===void 0&&(A=!1);var $=this.config,J=$.renderSelectedChoices,ae=$.searchResultLimit,de=$.renderChoiceLimit,xe=this._isSearching?we:this.config.sorter,ve=function($t){var mr=J==="auto"?N._isSelectOneElement||!$t.selected:!0;if(mr){var gr=N._getTemplate("choice",$t,N.config.itemSelectText);x.appendChild(gr)}},Ie=g;J==="auto"&&!this._isSelectOneElement&&(Ie=g.filter(function(Ft){return!Ft.selected}));var Oe=Ie.reduce(function(Ft,$t){return $t.placeholder?Ft.placeholderChoices.push($t):Ft.normalChoices.push($t),Ft},{placeholderChoices:[],normalChoices:[]}),De=Oe.placeholderChoices,Be=Oe.normalChoices;(this.config.shouldSort||this._isSearching)&&Be.sort(xe);var Ae=Ie.length,Ne=this._isSelectOneElement?[].concat(De,Be):Be;this._isSearching?Ae=ae:de&&de>0&&!A&&(Ae=de);for(var ut=0;ut=N){var ae=$?this._searchChoices(g):0;this.passedElement.triggerEvent(Pt.search,{value:g,resultCount:ae})}else J&&(this._isSearching=!1,this._store.dispatch(ue(!0)))}},w._canAddItem=function(g,x){var A=!0,N=typeof this.config.addItemText=="function"?this.config.addItemText(x):this.config.addItemText;if(!this._isSelectOneElement){var $=$e(g,x);this.config.maxItemCount>0&&this.config.maxItemCount<=g.length&&(A=!1,N=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&$&&A&&(A=!1,N=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(x):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&A&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(x)&&(A=!1,N=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(x):this.config.customAddItemText)}return{response:A,notice:N}},w._searchChoices=function(g){var x=typeof g=="string"?g.trim():g,A=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(x.length<1&&x===A+" ")return 0;var N=this._store.searchableChoices,$=x,J=[].concat(this.config.searchFields),ae=Object.assign(this.config.fuseOptions,{keys:J}),de=new i.a(N,ae),xe=de.search($);return this._currentValue=x,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch(me(xe)),xe.length},w._addEventListeners=function(){var g=document,x=g.documentElement;x.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),x.addEventListener("click",this._onClick,{passive:!0}),x.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},w._removeEventListeners=function(){var g=document,x=g.documentElement;x.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),x.removeEventListener("click",this._onClick),x.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},w._onKeyDown=function(g){var x,A=g.target,N=g.keyCode,$=g.ctrlKey,J=g.metaKey,ae=this._store.activeItems,de=this.input.isFocussed,xe=this.dropdown.isActive,ve=this.itemList.hasChildren(),Ie=String.fromCharCode(N),Oe=gt.BACK_KEY,De=gt.DELETE_KEY,Be=gt.ENTER_KEY,Ae=gt.A_KEY,Ne=gt.ESC_KEY,ut=gt.UP_KEY,Ft=gt.DOWN_KEY,$t=gt.PAGE_UP_KEY,mr=gt.PAGE_DOWN_KEY,gr=$||J;!this._isTextElement&&/[a-zA-Z0-9-_ ]/.test(Ie)&&this.showDropdown();var $r=(x={},x[Ae]=this._onAKey,x[Be]=this._onEnterKey,x[Ne]=this._onEscapeKey,x[ut]=this._onDirectionKey,x[$t]=this._onDirectionKey,x[Ft]=this._onDirectionKey,x[mr]=this._onDirectionKey,x[De]=this._onDeleteKey,x[Oe]=this._onDeleteKey,x);$r[N]&&$r[N]({event:g,target:A,keyCode:N,metaKey:J,activeItems:ae,hasFocusedInput:de,hasActiveDropdown:xe,hasItems:ve,hasCtrlDownKeyPressed:gr})},w._onKeyUp=function(g){var x=g.target,A=g.keyCode,N=this.input.value,$=this._store.activeItems,J=this._canAddItem($,N),ae=gt.BACK_KEY,de=gt.DELETE_KEY;if(this._isTextElement){var xe=J.notice&&N;if(xe){var ve=this._getTemplate("notice",J.notice);this.dropdown.element.innerHTML=ve.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var Ie=(A===ae||A===de)&&!x.value,Oe=!this._isTextElement&&this._isSearching,De=this._canSearch&&J.response;Ie&&Oe?(this._isSearching=!1,this._store.dispatch(ue(!0))):De&&this._handleSearch(this.input.value)}this._canSearch=this.config.searchEnabled},w._onAKey=function(g){var x=g.hasItems,A=g.hasCtrlDownKeyPressed;if(A&&x){this._canSearch=!1;var N=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;N&&this.highlightAll()}},w._onEnterKey=function(g){var x=g.event,A=g.target,N=g.activeItems,$=g.hasActiveDropdown,J=gt.ENTER_KEY,ae=A.hasAttribute("data-button");if(this._isTextElement&&A.value){var de=this.input.value,xe=this._canAddItem(N,de);xe.response&&(this.hideDropdown(!0),this._addItem({value:de}),this._triggerChange(de),this.clearInput())}if(ae&&(this._handleButtonAction(N,A),x.preventDefault()),$){var ve=this.dropdown.getChild("."+this.config.classNames.highlightedState);ve&&(N[0]&&(N[0].keyCode=J),this._handleChoiceAction(N,ve)),x.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),x.preventDefault())},w._onEscapeKey=function(g){var x=g.hasActiveDropdown;x&&(this.hideDropdown(!0),this.containerOuter.focus())},w._onDirectionKey=function(g){var x=g.event,A=g.hasActiveDropdown,N=g.keyCode,$=g.metaKey,J=gt.DOWN_KEY,ae=gt.PAGE_UP_KEY,de=gt.PAGE_DOWN_KEY;if(A||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var xe=N===J||N===de?1:-1,ve=$||N===de||N===ae,Ie="[data-choice-selectable]",Oe;if(ve)xe>0?Oe=this.dropdown.element.querySelector(Ie+":last-of-type"):Oe=this.dropdown.element.querySelector(Ie);else{var De=this.dropdown.element.querySelector("."+this.config.classNames.highlightedState);De?Oe=Je(De,Ie,xe):Oe=this.dropdown.element.querySelector(Ie)}Oe&&(W(Oe,this.choiceList.element,xe)||this.choiceList.scrollToChildElement(Oe,xe),this._highlightChoice(Oe)),x.preventDefault()}},w._onDeleteKey=function(g){var x=g.event,A=g.target,N=g.hasFocusedInput,$=g.activeItems;N&&!A.value&&!this._isSelectOneElement&&(this._handleBackspace($),x.preventDefault())},w._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},w._onTouchEnd=function(g){var x=g||g.touches[0],A=x.target,N=this._wasTap&&this.containerOuter.element.contains(A);if(N){var $=A===this.containerOuter.element||A===this.containerInner.element;$&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),g.stopPropagation()}this._wasTap=!0},w._onMouseDown=function(g){var x=g.target;if(x instanceof HTMLElement){if(Ci&&this.choiceList.element.contains(x)){var A=this.choiceList.element.firstElementChild,N=this._direction==="ltr"?g.offsetX>=A.offsetWidth:g.offsetX0;N&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},w._onFocus=function(g){var x=this,A,N=g.target,$=this.containerOuter.element.contains(N);if(!!$){var J=(A={},A[Y]=function(){N===x.input.element&&x.containerOuter.addFocusState()},A[oe]=function(){x.containerOuter.addFocusState(),N===x.input.element&&x.showDropdown(!0)},A[Ee]=function(){N===x.input.element&&(x.showDropdown(!0),x.containerOuter.addFocusState())},A);J[this.passedElement.element.type]()}},w._onBlur=function(g){var x=this,A=g.target,N=this.containerOuter.element.contains(A);if(N&&!this._isScrollingOnIe){var $,J=this._store.activeItems,ae=J.some(function(xe){return xe.highlighted}),de=($={},$[Y]=function(){A===x.input.element&&(x.containerOuter.removeFocusState(),ae&&x.unhighlightAll(),x.hideDropdown(!0))},$[oe]=function(){x.containerOuter.removeFocusState(),(A===x.input.element||A===x.containerOuter.element&&!x._canSearch)&&x.hideDropdown(!0)},$[Ee]=function(){A===x.input.element&&(x.containerOuter.removeFocusState(),x.hideDropdown(!0),ae&&x.unhighlightAll())},$);de[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},w._onFormReset=function(){this._store.dispatch(Qn(this._initialState))},w._highlightChoice=function(g){var x=this;g===void 0&&(g=null);var A=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(!!A.length){var N=g,$=Array.from(this.dropdown.element.querySelectorAll("."+this.config.classNames.highlightedState));$.forEach(function(J){J.classList.remove(x.config.classNames.highlightedState),J.setAttribute("aria-selected","false")}),N?this._highlightPosition=A.indexOf(N):(A.length>this._highlightPosition?N=A[this._highlightPosition]:N=A[A.length-1],N||(N=A[0])),N.classList.add(this.config.classNames.highlightedState),N.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(Pt.highlightChoice,{el:N}),this.dropdown.isActive&&(this.input.setActiveDescendant(N.id),this.containerOuter.setActiveDescendant(N.id))}},w._addItem=function(g){var x=g.value,A=g.label,N=A===void 0?null:A,$=g.choiceId,J=$===void 0?-1:$,ae=g.groupId,de=ae===void 0?-1:ae,xe=g.customProperties,ve=xe===void 0?null:xe,Ie=g.placeholder,Oe=Ie===void 0?!1:Ie,De=g.keyCode,Be=De===void 0?null:De,Ae=typeof x=="string"?x.trim():x,Ne=Be,ut=ve,Ft=this._store.items,$t=N||Ae,mr=J||-1,gr=de>=0?this._store.getGroupById(de):null,$r=Ft?Ft.length+1:1;return this.config.prependValue&&(Ae=this.config.prependValue+Ae.toString()),this.config.appendValue&&(Ae+=this.config.appendValue.toString()),this._store.dispatch(Fe({value:Ae,label:$t,id:$r,choiceId:mr,groupId:de,customProperties:ve,placeholder:Oe,keyCode:Ne})),this._isSelectOneElement&&this.removeActiveItems($r),this.passedElement.triggerEvent(Pt.addItem,{id:$r,value:Ae,label:$t,customProperties:ut,groupValue:gr&&gr.value?gr.value:void 0,keyCode:Ne}),this},w._removeItem=function(g){if(!g||!P("Object",g))return this;var x=g.id,A=g.value,N=g.label,$=g.choiceId,J=g.groupId,ae=J>=0?this._store.getGroupById(J):null;return this._store.dispatch(Me(x,$)),ae&&ae.value?this.passedElement.triggerEvent(Pt.removeItem,{id:x,value:A,label:N,groupValue:ae.value}):this.passedElement.triggerEvent(Pt.removeItem,{id:x,value:A,label:N}),this},w._addChoice=function(g){var x=g.value,A=g.label,N=A===void 0?null:A,$=g.isSelected,J=$===void 0?!1:$,ae=g.isDisabled,de=ae===void 0?!1:ae,xe=g.groupId,ve=xe===void 0?-1:xe,Ie=g.customProperties,Oe=Ie===void 0?null:Ie,De=g.placeholder,Be=De===void 0?!1:De,Ae=g.keyCode,Ne=Ae===void 0?null:Ae;if(!(typeof x=="undefined"||x===null)){var ut=this._store.choices,Ft=N||x,$t=ut?ut.length+1:1,mr=this._baseId+"-"+this._idNames.itemChoice+"-"+$t;this._store.dispatch(ie({id:$t,groupId:ve,elementId:mr,value:x,label:Ft,disabled:de,customProperties:Oe,placeholder:Be,keyCode:Ne})),J&&this._addItem({value:x,label:Ft,choiceId:$t,customProperties:Oe,placeholder:Be,keyCode:Ne})}},w._addGroup=function(g){var x=this,A=g.group,N=g.id,$=g.valueKey,J=$===void 0?"value":$,ae=g.labelKey,de=ae===void 0?"label":ae,xe=P("Object",A)?A.choices:Array.from(A.getElementsByTagName("OPTION")),ve=N||Math.floor(new Date().valueOf()*Math.random()),Ie=A.disabled?A.disabled:!1;if(xe){this._store.dispatch(yt({value:A.label,id:ve,active:!0,disabled:Ie}));var Oe=function(Be){var Ae=Be.disabled||Be.parentNode&&Be.parentNode.disabled;x._addChoice({value:Be[J],label:P("Object",Be)?Be[de]:Be.innerHTML,isSelected:Be.selected,isDisabled:Ae,groupId:ve,customProperties:Be.customProperties,placeholder:Be.placeholder})};xe.forEach(Oe)}else this._store.dispatch(yt({value:A.label,id:A.id,active:!1,disabled:A.disabled}))},w._getTemplate=function(g){var x;if(!g)return null;for(var A=this.config.classNames,N=arguments.length,$=new Array(N>1?N-1:0),J=1;J{h();(function(e,t){typeof Ns=="object"&&typeof Pb!="undefined"?t(Ns):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e.immutableJSONPatch={}))})(Ns,function(e){"use strict";function t(W){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(q){return typeof q}:t=function(q){return q&&typeof Symbol=="function"&&q.constructor===Symbol&&q!==Symbol.prototype?"symbol":typeof q},t(W)}function r(W,j){return JSON.stringify(W)===JSON.stringify(j)}function n(W,j){return W===j}function i(W){return W.slice(0,W.length-1)}function a(W){return W[W.length-1]}function o(W,j){var q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:n;if(W.length3&&arguments[3]!==void 0?arguments[3]:!1;if(j.length===0)return q;var we=j[0],ke=v(W?W[we]:void 0,j.slice(1),q,te);if(!s(W))if(te){var $e=typeof we=="number"?[]:{};return $e[we]=ke,$e}else throw new Error("Path does not exist");return p(W,we,ke)}function b(W,j,q){if(j.length===0)return q(W);if(!s(W))throw new Error("Path doesn't exist");var te=j[0],we=b(W[te],j.slice(1),q);return p(W,te,we)}function k(W,j){if(j.length===0)return W;if(!s(W))throw new Error("Path does not exist");if(j.length===1){var q=j[0];if(q in W){var te=f(W);return Array.isArray(te)?te.splice(q,1):delete te[q],te}else return W}var we=j[0],ke=k(W[we],j.slice(1));return p(W,we,ke)}function T(W,j,q){var te=j.slice(0,j.length-1),we=j[j.length-1];return b(W,te,function(ke){if(!Array.isArray(ke))throw new TypeError("Array expected at path "+JSON.stringify(te));var $e=f(ke);return $e.splice(we,0,q),$e})}function D(W,j){return W===void 0?!1:j.length===0?!0:D(W[j[0]],j.slice(1))}function I(W){var j=W.split("/");return j.shift(),j.map(function(q){return q.replace(/~1/g,"/").replace(/~0/g,"~")})}function H(W){return W.map(function(j){return"/"+String(j).replace(/~/g,"~0").replace(/\//g,"~1")}).join("")}function C(W,j,q){for(var te=W,we=0;we{h();(function(){var e;typeof $d!="undefined"?e=$d.exports=n:e=function(){return this||(0,eval)("this")}(),e.format=n,e.vsprintf=r,typeof console!="undefined"&&typeof console.log=="function"&&(e.printf=t);function t(){console.log(n.apply(null,arguments))}function r(i,a){return n.apply(null,[i].concat(a))}function n(i){for(var a=1,o=[].slice.call(arguments),s=0,u=i.length,l="",c,d=!1,f,p,m=!1,v,b=function(){return o[a++]},k=function(){for(var T="";/\d/.test(i[s]);)T+=i[s++],c=i[s];return T.length>0?parseInt(T):null};sJd});h();h();function ol(e,t){let r=Object.keys(t).map(n=>iE(e,n,t[n]));return r.length===1?r[0]:function(){r.forEach(n=>n())}}function iE(e,t,r){let n=e[t],i=e.hasOwnProperty(t),a=r(n);return n&&Object.setPrototypeOf(a,n),Object.setPrototypeOf(o,a),e[t]=o,s;function o(...u){return a===n&&e[t]===o&&s(),a.apply(this,u)}function s(){e[t]===o&&(i?e[t]=n:delete e[t]),a!==n&&(a=n,Object.setPrototypeOf(o,n||Function))}}var xt=ye(require("obsidian"));h();h();vr();var Wr,bt,sl,mf,Vr=0,gf=[],Va=[],yf=fe.__b,vf=fe.__r,bf=fe.diffed,wf=fe.__c,Ef=fe.unmount;function Fi(e,t){fe.__h&&fe.__h(bt,e,Vr||t),Vr=0;var r=bt.__H||(bt.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:Va}),r.__[e]}function Oi(e){return Vr=1,za(kf,e)}function za(e,t,r){var n=Fi(Wr++,2);return n.t=e,n.__c||(n.__=[r?r(t):kf(void 0,t),function(i){var a=n.t(n.__[0],i);n.__[0]!==a&&(n.__=[a,n.__[1]],n.__c.setState({}))}],n.__c=bt),n.__}function Ni(e,t){var r=Fi(Wr++,3);!fe.__s&&fl(r.__H,t)&&(r.__=e,r.u=t,bt.__H.__h.push(r))}function ja(e,t){var r=Fi(Wr++,4);!fe.__s&&fl(r.__H,t)&&(r.__=e,r.u=t,bt.__h.push(r))}function Ri(e){return Vr=5,Hi(function(){return{current:e}},[])}function ll(e,t,r){Vr=6,ja(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},r==null?r:r.concat(e))}function Hi(e,t){var r=Fi(Wr++,7);return fl(r.__H,t)?(r.__V=e(),r.u=t,r.__h=e,r.__V):r.__}function Bi(e,t){return Vr=8,Hi(function(){return e},t)}function cl(e){var t=bt.context[e.__c],r=Fi(Wr++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(bt)),t.props.value):e.__}function ul(e,t){fe.useDebugValue&&fe.useDebugValue(t?t(e):e)}function aE(){for(var e;e=gf.shift();)if(e.__P)try{e.__H.__h.forEach(qa),e.__H.__h.forEach(dl),e.__H.__h=[]}catch(t){e.__H.__h=[],fe.__e(t,e.__v)}}fe.__b=function(e){bt=null,yf&&yf(e)},fe.__r=function(e){vf&&vf(e),Wr=0;var t=(bt=e.__c).__H;t&&(sl===bt?(t.__h=[],bt.__h=[],t.__.forEach(function(r){r.__V=Va,r.u=void 0})):(t.__h.forEach(qa),t.__h.forEach(dl),t.__h=[])),sl=bt},fe.diffed=function(e){bf&&bf(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(gf.push(t)!==1&&mf===fe.requestAnimationFrame||((mf=fe.requestAnimationFrame)||function(r){var n,i=function(){clearTimeout(a),xf&&cancelAnimationFrame(n),setTimeout(r)},a=setTimeout(i,100);xf&&(n=requestAnimationFrame(i))})(aE)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.__V!==Va&&(r.__=r.__V),r.u=void 0,r.__V=Va})),sl=bt=null},fe.__c=function(e,t){t.some(function(r){try{r.__h.forEach(qa),r.__h=r.__h.filter(function(n){return!n.__||dl(n)})}catch(n){t.some(function(i){i.__h&&(i.__h=[])}),t=[],fe.__e(n,r.__v)}}),wf&&wf(e,t)},fe.unmount=function(e){Ef&&Ef(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{qa(n)}catch(i){t=i}}),t&&fe.__e(t,r.__v))};var xf=typeof requestAnimationFrame=="function";function qa(e){var t=bt,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),bt=t}function dl(e){var t=bt;e.__c=e.__(),bt=t}function fl(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function kf(e,t){return typeof t=="function"?t(e):t}vr();vr();function Sf(e,t){for(var r in t)e[r]=t[r];return e}function pl(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function hl(e){this.props=e}function oE(e,t){function r(i){var a=this.props.ref,o=a==i.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,i)||!o:pl(this.props,i)}function n(i){return this.shouldComponentUpdate=r,y(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(hl.prototype=new vt).isPureReactComponent=!0,hl.prototype.shouldComponentUpdate=function(e,t){return pl(this.props,e)||pl(this.state,t)};var _f=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),_f&&_f(e)};var sE=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function lE(e){function t(r){var n=Sf({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=sE,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var Df=function(e,t){return e==null?null:qt(qt(e).map(t))},cE={map:Df,forEach:Df,count:function(e){return e?qt(e).length:0},only:function(e){var t=qt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:qt},uE=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}uE(e,t,r,n)};var Cf=fe.unmount;function Ya(){this.__u=0,this.t=null,this.__b=null}function Tf(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function dE(e){var t,r,n;function i(a){if(t||(t=e()).then(function(o){r=o.default||o},function(o){n=o}),n)throw n;if(!r)throw t;return y(r,a)}return i.displayName="Lazy",i.__f=!0,i}function Ki(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),Cf&&Cf(e)},(Ya.prototype=new vt).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=Tf(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,m){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(v){return d(v,p,m)}),f.__c&&f.__c.__P===p&&(f.__e&&m.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=m)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},Ya.prototype.componentWillUnmount=function(){this.t=[]},Ya.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=Sf({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&y(S,null,e.fallback);return i&&(i.__h=null),[y(S,null,t.__e?null:e.children),i]};var Mf=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),yr(y(fE,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function hE(e,t){var r=y(pE,{__v:e,i:t});return r.containerInfo=t,r}(Ki.prototype=new vt).__e=function(e){var t=this,r=Tf(t.__v),n=t.o.get(e);return n[0]++,function(i){var a=function(){t.props.revealOrder?(n.push(i),Mf(t,e,n)):i()};r?r(a):a()}},Ki.prototype.render=function(e){this.u=null,this.o=new Map;var t=qt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},Ki.prototype.componentDidUpdate=Ki.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){Mf(e,r,t)})};var If=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,mE=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,gE=typeof document!="undefined",yE=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function vE(e,t,r){return t.__k==null&&(t.textContent=""),yr(e,t),typeof r=="function"&&r(),e?e.__c:null}function bE(e,t,r){return Wa(e,t),typeof r=="function"&&r(),e?e.__c:null}vt.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(vt.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Af=fe.event;function wE(){}function EE(){return this.cancelBubble}function xE(){return this.defaultPrevented}fe.event=function(e){return Af&&(e=Af(e)),e.persist=wE,e.isPropagationStopped=EE,e.isDefaultPrevented=xE,e.nativeEvent=e};var Lf,Pf={configurable:!0,get:function(){return this.class}},Ff=fe.vnode;fe.vnode=function(e){var t=e.type,r=e.props,n=r;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var a in n={},r){var o=r[a];gE&&a==="children"&&t==="noscript"||a==="value"&&"defaultValue"in r&&o==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&o===!0?o="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+t)&&!yE(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():i&&mE.test(a)?a=a.replace(/[A-Z0-9]/,"-$&").toLowerCase():o===null&&(o=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),n[a]&&(a="oninputCapture")),n[a]=o)}t=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=qt(r.children).forEach(function(s){s.props.selected=n.value.indexOf(s.props.value)!=-1})),t=="select"&&n.defaultValue!=null&&(n.value=qt(r.children).forEach(function(s){s.props.selected=n.multiple?n.defaultValue.indexOf(s.props.value)!=-1:n.defaultValue==s.props.value})),e.props=n,r.class!=r.className&&(Pf.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",Pf))}e.$$typeof=If,Ff&&Ff(e)};var Of=fe.__r;fe.__r=function(e){Of&&Of(e),Lf=e.__c};var kE={ReactCurrentDispatcher:{current:{readContext:function(e){return Lf.__n[e.__c].props.value}}}};function SE(e){return y.bind(null,e)}function Nf(e){return!!e&&e.$$typeof===If}function _E(e){return Nf(e)?al.apply(null,arguments):e}function DE(e){return!!e.__k&&(yr(null,e),!0)}function CE(e){return e&&(e.base||e.nodeType===1&&e)||null}var TE=function(e,t){return e(t)},ME=function(e,t){return e(t)};var R={useState:Oi,useReducer:za,useEffect:Ni,useLayoutEffect:ja,useRef:Ri,useImperativeHandle:ll,useMemo:Hi,useCallback:Bi,useContext:cl,useDebugValue:ul,version:"17.0.2",Children:cE,render:vE,hydrate:bE,unmountComponentAtNode:DE,createPortal:hE,createElement:y,createContext:Pi,createFactory:SE,cloneElement:_E,createRef:Li,Fragment:S,isValidElement:Nf,findDOMNode:CE,Component:vt,PureComponent:hl,memo:oE,forwardRef:lE,flushSync:ME,unstable_batchedUpdates:TE,StrictMode:S,Suspense:Ya,SuspenseList:Ki,lazy:dE,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:kE};h();function Ze(e){return e.win}function Ja(e){return e.doc.body}h();var lb=ye(_t());h();var We=R.createContext(null),Qa=R.createContext(null);h();var Zf=ye(_t()),Za=ye(require("obsidian"));h();var Yf=ye(zf()),Zn=ye(_t());h();function jf(e){return Object.prototype.toString.call(e)==="[object Object]"}function qf(e){var t,r;return jf(e)===!1?!1:(t=e.constructor,t===void 0?!0:(r=t.prototype,!(jf(r)===!1||r.hasOwnProperty("isPrototypeOf")===!1)))}h();function QE(e,t){return e.length!==t.length?!1:e.every((r,n,i)=>n===i.length-1?r!==t[n]:r===t[n])}function XE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}var en;(function(i){i[i.Before=0]="Before",i[i.After=1]="After",i[i.Self=2]="Self",i[i.NotSiblings=3]="NotSiblings"})(en||(en={}));function Wi(e,t){if(XE(e,t))return 2;if(!QE(e,t))return 3;let r=e.length-1;return e[r]=0;n--)r={children:{[e[n]]:r}};return r}function Vi(e,t){let r=t;for(let n=e.length-2;n>=0;n--)r={children:{[e[n]]:r}};return r}function Jf(e){return Vi(e,{children:{$splice:[[e[e.length-1],1]]}})}function Gf(e,t,r=0){return Vi(e,{children:{$splice:[[e[e.length-1]+r,0,...t]]}})}function ex(e,t){return Vi(e,{children:{$push:t}})}function tx(e,t){return Vi(e,{children:{$unshift:t}})}function Qf(e,t,r,n){let i=n?n(ft(e,t)):ft(e,t),o=Wi(t,r)===en.After?-1:0,s=Jf(t),u=Gf(r,[i],o),l=(0,Yf.default)(s,u,{isMergeableObject:d=>qf(d)||Array.isArray(d)});return(0,Zn.default)(e,l)}function wr(e,t){return(0,Zn.default)(e,Jf(t))}function er(e,t,r){return(0,Zn.default)(e,Gf(t,r))}function vl(e,t,r){return(0,Zn.default)(e,ex(t,r))}function Xf(e,t,r){return(0,Zn.default)(e,tx(t,r))}function Xa(e,t,r){return(0,Zn.default)(e,ZE(t,r))}function bl(e,t,r){return(0,Zn.default)(e,Vi(t,r))}var wl="kanban-plugin";function jr(){}function V(e){return`${wl}__${e}`}function Ve(e=9){return Math.random().toString(36).slice(2,2+e)}function El(e,t,r,n,i){var l,c;let a=ft(e,t.slice(0,-1)),o=ft(r,n.slice(0,-1)),s=(l=a==null?void 0:a.data)==null?void 0:l.shouldMarkItemsComplete,u=(c=o==null?void 0:o.data)==null?void 0:c.shouldMarkItemsComplete;return!s&&!u||u===!!i.data.isComplete?i:(0,Zf.default)(i,{data:{isComplete:{$set:u}}})}function eo(){let e=R.useRef(!1);return{oncompositionstart:()=>{e.current=!0},oncompositionend:()=>{e.current=!1},getShouldIMEBlockAction:()=>e.current}}var nx=/<%/;async function ep(e,t){let r=t?e.app.vault.getAbstractFileByPath(t):null;if(r&&r instanceof Za.TFile){let n=app.workspace.getActiveViewOfType(Za.MarkdownView);try{(n==null?void 0:n.getMode())!=="source"&&await n.setState({...n.getState(),mode:"source"},{});let{templatesEnabled:i,templaterEnabled:a,templatesPlugin:o,templaterPlugin:s}=xl(e.app),u=await e.app.vault.read(r);if(i&&a)return nx.test(u)?await s.append_template_to_active_file(r):await o.instance.insertTemplate(r);if(i)return await o.instance.insertTemplate(r);if(a)return await s.append_template_to_active_file(r);await e.app.vault.modify(e.app.workspace.getActiveFile(),u)}catch(i){console.error(i),e.setError(i)}}}function qr(e){var s,u,l,c,d;let t=e.internalPlugins.plugins,r=(s=t["daily-notes"])==null?void 0:s.enabled,n=(u=t["daily-notes"])==null?void 0:u.instance.options.format,i=(l=e.plugins.plugins["nldates-obsidian"])==null?void 0:l.settings.format,a=(c=t.templates)==null?void 0:c.enabled,o=(d=t.templates)==null?void 0:d.instance.options.dateFormat;return r&&n||i||a&&o||"YYYY-MM-DD"}function zi(e){var a,o,s;let t=e.internalPlugins.plugins,r=(a=e.plugins.plugins["nldates-obsidian"])==null?void 0:a.settings.timeFormat,n=(o=t.templates)==null?void 0:o.enabled,i=(s=t.templates)==null?void 0:s.instance.options.timeFormat;return r||n&&i||"HH:mm"}var tp=/[\\^$.*+?()[\]{}|]/g,rx=RegExp(tp.source);function Sn(e){return e&&rx.test(e)?e.replace(tp,"\\$&"):e||""}function xl(e){var s;let t=e.internalPlugins.plugins.templates,r=t.enabled,n=e.plugins.plugins["templater-obsidian"],i=e.plugins.enabledPlugins.has("templater-obsidian"),a=n&&((s=this.app.plugins.plugins["templater-obsidian"].settings)==null?void 0:s.empty_file_template),o=r?t.instance.options.folder:n?n.settings.template_folder:void 0;return{templatesPlugin:t,templatesEnabled:r,templaterPlugin:n==null?void 0:n.templater,templaterEnabled:i,templaterEmptyFileTemplate:a,templateFolder:o}}h();h();function pt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,n;r{n.has(t)&&(n.delete(t),n.size===0&&r.push(i))}),r.forEach(n=>{this.idScopes.delete(n),this.scrollStates.delete(n)})}};var wt=R.createContext(null),tr=R.createContext(""),qi=R.createContext(null),Yi=R.createContext(new ji),to=R.createContext(null),no=R.createContext(null);h();h();h();var np={bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0,toJSON(){}},rp=[0,0,0,0];function Qe(e){return e===void 0?0:e}function ro(e,t,r,n){return[e.left+Qe(t==null?void 0:t.x)+Qe(r==null?void 0:r.x)-Qe(n==null?void 0:n.x),e.top+Qe(t==null?void 0:t.y)+Qe(r==null?void 0:r.y)-Qe(n==null?void 0:n.y),e.left+e.width+Qe(t==null?void 0:t.x)+Qe(r==null?void 0:r.x)-Qe(n==null?void 0:n.x),e.top+e.height+Qe(t==null?void 0:t.y)+Qe(r==null?void 0:r.y)-Qe(n==null?void 0:n.y)]}function kl(e,t,r,n){let i=ro(e,t,r,null);return n==="top"?(i[3]=i[1]+35,i):n==="right"?(i[0]=i[0]+e.width-35,i):n==="bottom"?(i[1]=i[1]+e.height-35,i):(i[2]=i[0]+35,i)}function io(e,t,r,n,i,a){return[e-Qe(i==null?void 0:i.x)-Qe(a==null?void 0:a.x),t-Qe(i==null?void 0:i.y)-Qe(a==null?void 0:a.y),r-Qe(i==null?void 0:i.x)-Qe(a==null?void 0:a.x),n-Qe(i==null?void 0:i.y)-Qe(a==null?void 0:a.y)]}var ix=e=>ax(e,(t,r)=>t{if(o.entityId===r)return 1/0;let s=o.getHitbox(),u=ap(s)[0],l=ox(t),c=o.getData().sortAxis==="horizontal"?"x":"y",d=l[c]>n[c]?1e3:0;return Yr(u,n)+d}),a=ix(i);return e[a]?e[a]:null}function _l(e){let{scrollLeft:t,scrollTop:r,scrollWidth:n,scrollHeight:i,offsetWidth:a,offsetHeight:o}=e,s=t,u=r,l=n-a,c=i-o;return{x:s,y:u,maxX:Math.max(l,0),maxY:Math.max(c,0)}}function op(e,t,r){let n=Math.trunc((r.x-t.x)*100)/100,i=Math.trunc((r.y-t.y)*100)/100;return[e[0]+n,e[1]+i,e[2]+n,e[3]+i]}function Dl(e,t=[0,0,0,0]){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]+t[2],o=e[3]+t[3]-n;return{width:i-r,height:o}}var Cl=class{constructor(t,r,n,i,a,o,s,u,l,c){this.isVisible=!1;this.id=n,this.instanceId=Ve(),this.scopeId=r,this.entityId=`${r}-${n}`,this.dndManager=t,this.index=i,this.children=new Map,this.parent=a,this.scrollParent=o,this.getEntityData=c,this.sortManager=s,this.pollForNodes(u,l)}pollForNodes(t,r){!t()||!r()?this.dndManager.win.requestAnimationFrame(()=>this.pollForNodes(t,r)):this.initNodes(t(),r())}initNodes(t,r){var n,i;if(this.entityNode=t,this.measureNode=r,r.dataset.hitboxid=this.entityId,(n=this.sortManager)==null||n.registerSortable(this.entityId,this.getEntity(np),t,r),this.scrollParent)this.scrollParent.registerObserverHandler(this.entityId,r,a=>{var s,u;let o=Ze(a.target);if(a.isIntersecting){let l=this.getEntity(a.boundingClientRect);(s=this.parent)==null||s.children.set(this.entityId,{entity:l,manager:this}),this.dndManager.observeResize(r),(!this.parent||this.parent.isVisible)&&(this.dndManager.registerHitboxEntity(this.entityId,l,o),this.children.forEach((c,d)=>{this.dndManager.registerHitboxEntity(d,c.entity,o)}),this.setVisibility(!0))}else this.dndManager.unregisterHitboxEntity(this.entityId,o),this.children.forEach((l,c)=>{this.dndManager.unregisterHitboxEntity(c,o)}),(u=this.parent)==null||u.children.delete(this.entityId),this.dndManager.unobserveResize(r),this.setVisibility(!1)});else{let a=this.getEntity(r.getBoundingClientRect());this.dndManager.observeResize(r),this.dndManager.registerHitboxEntity(this.entityId,a,Ze(t)),(i=this.parent)==null||i.children.set(this.entityId,{entity:a,manager:this}),this.setVisibility(!0)}}setVisibility(t){this.isVisible=t,this.children.forEach(r=>{r.manager.setVisibility(t)})}destroy(){var t,r,n;this.dndManager.unobserveResize(this.measureNode),(t=this.sortManager)==null||t.unregisterSortable(this.entityId),(r=this.scrollParent)==null||r.unregisterObserverHandler(this.entityId,this.measureNode),this.entityNode&&this.dndManager.unregisterHitboxEntity(this.entityId,Ze(this.entityNode)),(n=this.parent)==null||n.children.delete(this.entityId)}getPath(){var t;return[...((t=this.parent)==null?void 0:t.getPath())||[],this.index]}getEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:this.entityId,initial:ro(t,((n=r.scrollParent)==null?void 0:n.scrollState)||tn,((i=r.scrollParent)==null?void 0:i.getScrollShift())||_n,null),getParentScrollState(){var a;return((a=r.scrollParent)==null?void 0:a.scrollState)||tn},getParentScrollShift(){var a;return((a=r.scrollParent)==null?void 0:a.getScrollShift())||_n},recalcInitial(){var a,o;this.initial=ro(r.measureNode.getBoundingClientRect(),((a=r.scrollParent)==null?void 0:a.scrollState)||tn,((o=r.scrollParent)==null?void 0:o.getScrollShift())||_n,null)},getHitbox(){return io(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath()},getData(){var a;return{...r.getEntityData(),sortAxis:(a=r.sortManager)==null?void 0:a.axis,win:Ze(r.measureNode)}}}}};var nr=R.memo(function({id:t,index:r,elementRef:n,measureRef:i,children:a,data:o}){let s=R.useContext(wt),u=R.useContext(to),l=R.useContext(tr),c=R.useContext(no),d=R.useContext(qi),f=R.useRef(o),p=R.useRef();f.current=o;let m=R.useMemo(()=>{if(s){p.current&&p.current.destroy();let v=new Cl(s,l,t,r,c,d,u,()=>n.current,()=>i.current,()=>f.current);return p.current=v,v}return null},[t,r,s,l,c,d,u]);return R.useEffect(()=>()=>{var v;return(v=p.current)==null?void 0:v.destroy()},[]),m?y(no.Provider,{value:m},a):null});function Nn(e){let t=R.useContext(no),r=(t==null?void 0:t.getPath())||[];return e!==void 0&&r.push(e),R.useMemo(()=>r,r)}h();var pu=ye(vh());h();h();h();h();var $h=ye(Kh()),{__extends:nM,__assign:rM,__rest:iM,__decorate:aM,__param:oM,__metadata:sM,__awaiter:ii,__generator:ai,__exportStar:lM,__createBinding:cM,__values:uM,__read:dM,__spread:Uh,__spreadArrays:fM,__spreadArray:pM,__await:hM,__asyncGenerator:mM,__asyncDelegator:gM,__asyncValues:yM,__makeTemplateObject:vM,__importStar:bM,__importDefault:wM,__classPrivateFieldGet:EM,__classPrivateFieldSet:xM,__classPrivateFieldIn:kM}=$h.default;h();var kk=new Map([["avi","video/avi"],["gif","image/gif"],["ico","image/x-icon"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["mkv","video/x-matroska"],["mov","video/quicktime"],["mp4","video/mp4"],["pdf","application/pdf"],["png","image/png"],["zip","application/zip"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]]);function ta(e,t){var r=Sk(e);if(typeof r.path!="string"){var n=e.webkitRelativePath;Object.defineProperty(r,"path",{value:typeof t=="string"?t:typeof n=="string"&&n.length>0?n:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function Sk(e){var t=e.name,r=t&&t.lastIndexOf(".")!==-1;if(r&&!e.type){var n=t.split(".").pop().toLowerCase(),i=kk.get(n);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var _k=[".DS_Store","Thumbs.db"];function ql(e){return ii(this,void 0,void 0,function(){return ai(this,function(t){return[2,Dk(e)&&e.dataTransfer?Mk(e.dataTransfer,e.type):Ck(e)]})})}function Dk(e){return!!e.dataTransfer}function Ck(e){var t=Tk(e.target)?e.target.files?Yl(e.target.files):[]:[];return t.map(function(r){return ta(r)})}function Tk(e){return e!==null}function Mk(e,t){return ii(this,void 0,void 0,function(){var r,n;return ai(this,function(i){switch(i.label){case 0:return e.items?(r=Yl(e.items).filter(function(a){return a.kind==="file"}),t!=="drop"?[2,r]:[4,Promise.all(r.map(Ik))]):[3,2];case 1:return n=i.sent(),[2,Wh(Vh(n))];case 2:return[2,Wh(Yl(e.files).map(function(a){return ta(a)}))]}})})}function Wh(e){return e.filter(function(t){return _k.indexOf(t.name)===-1})}function Yl(e){for(var t=[],r=0;r".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmaq \xFC\xE7\xFCn s\xFCr\xFC\u015Fd\xFCr\xFCn",toggleTitle:"A\xE7 / Ba\u011Fla",amPM:["G\u018F","GS"],time_24hr:!0};gm.l10ns.az=tc;var HM=gm.l10ns;h();var ym=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},nc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0410\u045E","\u0421\u0440","\u0427\u0446","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u044F\u0434\u0437\u0435\u043B\u044F","\u041F\u0430\u043D\u044F\u0434\u0437\u0435\u043B\u0430\u043A","\u0410\u045E\u0442\u043E\u0440\u0430\u043A","\u0421\u0435\u0440\u0430\u0434\u0430","\u0427\u0430\u0446\u0432\u0435\u0440","\u041F\u044F\u0442\u043D\u0456\u0446\u0430","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0442\u0443","\u041B\u044E\u0442","\u0421\u0430\u043A","\u041A\u0440\u0430","\u0422\u0440\u0430","\u0427\u044D\u0440","\u041B\u0456\u043F","\u0416\u043D\u0456","\u0412\u0435\u0440","\u041A\u0430\u0441","\u041B\u0456\u0441","\u0421\u043D\u0435"],longhand:["\u0421\u0442\u0443\u0434\u0437\u0435\u043D\u044C","\u041B\u044E\u0442\u044B","\u0421\u0430\u043A\u0430\u0432\u0456\u043A","\u041A\u0440\u0430\u0441\u0430\u0432\u0456\u043A","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u044D\u0440\u0432\u0435\u043D\u044C","\u041B\u0456\u043F\u0435\u043D\u044C","\u0416\u043D\u0456\u0432\u0435\u043D\u044C","\u0412\u0435\u0440\u0430\u0441\u0435\u043D\u044C","\u041A\u0430\u0441\u0442\u0440\u044B\u0447\u043D\u0456\u043A","\u041B\u0456\u0441\u0442\u0430\u043F\u0430\u0434","\u0421\u043D\u0435\u0436\u0430\u043D\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0422\u044B\u0434.",scrollTitle:"\u041F\u0440\u0430\u043A\u0440\u0443\u0446\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0430\u0432\u0435\u043B\u0456\u0447\u044D\u043D\u043D\u044F",toggleTitle:"\u041D\u0430\u0446\u0456\u0441\u043D\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};ym.l10ns.be=nc;var KM=ym.l10ns;h();var vm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},rc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0435\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u044F\u0434\u0430","\u0427\u0435\u0442\u0432\u044A\u0440\u0442\u044A\u043A","\u041F\u0435\u0442\u044A\u043A","\u0421\u044A\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0443","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},time_24hr:!0,firstDayOfWeek:1};vm.l10ns.bg=rc;var UM=vm.l10ns;h();var bm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ic={weekdays:{shorthand:["\u09B0\u09AC\u09BF","\u09B8\u09CB\u09AE","\u09AE\u0999\u09CD\u0997\u09B2","\u09AC\u09C1\u09A7","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF","\u09B6\u09C1\u0995\u09CD\u09B0","\u09B6\u09A8\u09BF"],longhand:["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]},months:{shorthand:["\u099C\u09BE\u09A8\u09C1","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7","\u0985\u0995\u09CD\u099F\u09CB","\u09A8\u09AD\u09C7","\u09A1\u09BF\u09B8\u09C7"],longhand:["\u099C\u09BE\u09A8\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997\u09B8\u09CD\u099F","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7\u09AE\u09CD\u09AC\u09B0","\u0985\u0995\u09CD\u099F\u09CB\u09AC\u09B0","\u09A8\u09AD\u09C7\u09AE\u09CD\u09AC\u09B0","\u09A1\u09BF\u09B8\u09C7\u09AE\u09CD\u09AC\u09B0"]}};bm.l10ns.bn=ic;var VM=bm.l10ns;h();var wm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ac={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Juni","Juli","Avgust","Septembar","Oktobar","Novembar","Decembar"]},time_24hr:!0};wm.l10ns.bs=ac;var jM=wm.l10ns;h();var oc=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ao={weekdays:{shorthand:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],longhand:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},months:{shorthand:["Gen","Febr","Mar\xE7","Abr","Maig","Juny","Jul","Ag","Set","Oct","Nov","Des"],longhand:["Gener","Febrer","Mar\xE7","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"]},ordinal:e=>{let t=e%100;if(t>3&&t<21)return"\xE8";switch(t%10){case 1:return"r";case 2:return"n";case 3:return"r";case 4:return"t";default:return"\xE8"}},firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};oc.l10ns.cat=oc.l10ns.ca=Ao;var YM=oc.l10ns;h();var Em=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},sc={weekdays:{shorthand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"],longhand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"]},months:{shorthand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"],longhand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"]},firstDayOfWeek:6,ordinal:()=>""};Em.l10ns.ckb=sc;var GM=Em.l10ns;h();var xm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},lc={weekdays:{shorthand:["Ne","Po","\xDAt","St","\u010Ct","P\xE1","So"],longhand:["Ned\u011Ble","Pond\u011Bl\xED","\xDAter\xFD","St\u0159eda","\u010Ctvrtek","P\xE1tek","Sobota"]},months:{shorthand:["Led","\xDAn","B\u0159e","Dub","Kv\u011B","\u010Cer","\u010Cvc","Srp","Z\xE1\u0159","\u0158\xEDj","Lis","Pro"],longhand:["Leden","\xDAnor","B\u0159ezen","Duben","Kv\u011Bten","\u010Cerven","\u010Cervenec","Srpen","Z\xE1\u0159\xED","\u0158\xEDjen","Listopad","Prosinec"]},firstDayOfWeek:1,ordinal:function(){return"."},rangeSeparator:" do ",weekAbbreviation:"T\xFDd.",scrollTitle:"Rolujte pro zm\u011Bnu",toggleTitle:"P\u0159epnout dopoledne/odpoledne",amPM:["dop.","odp."],yearAriaLabel:"Rok",time_24hr:!0};xm.l10ns.cs=lc;var XM=xm.l10ns;h();var km=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},cc={weekdays:{shorthand:["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],longhand:["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"]},months:{shorthand:["Ion","Chwef","Maw","Ebr","Mai","Meh","Gorff","Awst","Medi","Hyd","Tach","Rhag"],longhand:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"]},firstDayOfWeek:1,ordinal:e=>e===1?"af":e===2?"ail":e===3||e===4?"ydd":e===5||e===6?"ed":e>=7&&e<=10||e==12||e==15||e==18||e==20?"fed":e==11||e==13||e==14||e==16||e==17||e==19?"eg":e>=21&&e<=39?"ain":"",time_24hr:!0};km.l10ns.cy=cc;var e1=km.l10ns;h();var Sm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},uc={weekdays:{shorthand:["s\xF8n","man","tir","ons","tors","fre","l\xF8r"],longhand:["s\xF8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\xF8rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"uge",time_24hr:!0};Sm.l10ns.da=uc;var n1=Sm.l10ns;h();var _m=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},dc={weekdays:{shorthand:["So","Mo","Di","Mi","Do","Fr","Sa"],longhand:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},months:{shorthand:["Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],longhand:["Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},firstDayOfWeek:1,weekAbbreviation:"KW",rangeSeparator:" bis ",scrollTitle:"Zum \xC4ndern scrollen",toggleTitle:"Zum Umschalten klicken",time_24hr:!0};_m.l10ns.de=dc;var i1=_m.l10ns;h();var Cr={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:e=>{let t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Lo=Cr;h();var Dm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},fc={firstDayOfWeek:1,rangeSeparator:" \u011Dis ",weekAbbreviation:"Sem",scrollTitle:"Rulumu por pligrandigi la valoron",toggleTitle:"Klaku por \u015Dalti",weekdays:{shorthand:["Dim","Lun","Mar","Mer","\u0134a\u016D","Ven","Sab"],longhand:["diman\u0109o","lundo","mardo","merkredo","\u0135a\u016Ddo","vendredo","sabato"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","A\u016Dg","Sep","Okt","Nov","Dec"],longhand:["januaro","februaro","marto","aprilo","majo","junio","julio","a\u016Dgusto","septembro","oktobro","novembro","decembro"]},ordinal:()=>"-a",time_24hr:!0};Dm.l10ns.eo=fc;var s1=Dm.l10ns;h();var Cm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},pc={weekdays:{shorthand:["Dom","Lun","Mar","Mi\xE9","Jue","Vie","S\xE1b"],longhand:["Domingo","Lunes","Martes","Mi\xE9rcoles","Jueves","Viernes","S\xE1bado"]},months:{shorthand:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],longhand:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]},ordinal:()=>"\xBA",firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};Cm.l10ns.es=pc;var c1=Cm.l10ns;h();var Tm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},hc={weekdays:{shorthand:["P","E","T","K","N","R","L"],longhand:["P\xFChap\xE4ev","Esmasp\xE4ev","Teisip\xE4ev","Kolmap\xE4ev","Neljap\xE4ev","Reede","Laup\xE4ev"]},months:{shorthand:["Jaan","Veebr","M\xE4rts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],longhand:["Jaanuar","Veebruar","M\xE4rts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"]},firstDayOfWeek:1,ordinal:function(){return"."},weekAbbreviation:"N\xE4d",rangeSeparator:" kuni ",scrollTitle:"Keri, et suurendada",toggleTitle:"Kl\xF5psa, et vahetada",time_24hr:!0};Tm.l10ns.et=hc;var d1=Tm.l10ns;h();var Mm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},mc={weekdays:{shorthand:["\u06CC\u06A9","\u062F\u0648","\u0633\u0647","\u0686\u0647\u0627\u0631","\u067E\u0646\u062C","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"],longhand:["\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647","\u062F\u0648\u0634\u0646\u0628\u0647","\u0633\u0647\u200C\u0634\u0646\u0628\u0647","\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647","\u067E\u0646\u0686\u200C\u0634\u0646\u0628\u0647","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"]},months:{shorthand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"],longhand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"]},firstDayOfWeek:6,ordinal:()=>""};Mm.l10ns.fa=mc;var p1=Mm.l10ns;h();var Im=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},gc={firstDayOfWeek:1,weekdays:{shorthand:["su","ma","ti","ke","to","pe","la"],longhand:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},months:{shorthand:["tammi","helmi","maalis","huhti","touko","kes\xE4","hein\xE4","elo","syys","loka","marras","joulu"],longhand:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kes\xE4kuu","hein\xE4kuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"]},ordinal:()=>".",time_24hr:!0};Im.l10ns.fi=gc;var m1=Im.l10ns;h();var Am=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},yc={weekdays:{shorthand:["Sun","M\xE1n","T\xFDs","Mik","H\xF3s","Fr\xED","Ley"],longhand:["Sunnudagur","M\xE1nadagur","T\xFDsdagur","Mikudagur","H\xF3sdagur","Fr\xEDggjadagur","Leygardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","Apr\xEDl","Mai","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",scrollTitle:"Rulla fyri at broyta",toggleTitle:"Tr\xFDst fyri at skifta",yearAriaLabel:"\xC1r",time_24hr:!0};Am.l10ns.fo=yc;var y1=Am.l10ns;h();var Lm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},vc={firstDayOfWeek:1,weekdays:{shorthand:["dim","lun","mar","mer","jeu","ven","sam"],longhand:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},months:{shorthand:["janv","f\xE9vr","mars","avr","mai","juin","juil","ao\xFBt","sept","oct","nov","d\xE9c"],longhand:["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"]},ordinal:e=>e>1?"":"er",rangeSeparator:" au ",weekAbbreviation:"Sem",scrollTitle:"D\xE9filer pour augmenter la valeur",toggleTitle:"Cliquer pour basculer",time_24hr:!0};Lm.l10ns.fr=vc;var b1=Lm.l10ns;h();var Pm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},bc={weekdays:{shorthand:["\u039A\u03C5","\u0394\u03B5","\u03A4\u03C1","\u03A4\u03B5","\u03A0\u03AD","\u03A0\u03B1","\u03A3\u03AC"],longhand:["\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE","\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1","\u03A4\u03C1\u03AF\u03C4\u03B7","\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7","\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7","\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE","\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF"]},months:{shorthand:["\u0399\u03B1\u03BD","\u03A6\u03B5\u03B2","\u039C\u03AC\u03C1","\u0391\u03C0\u03C1","\u039C\u03AC\u03B9","\u0399\u03BF\u03CD\u03BD","\u0399\u03BF\u03CD\u03BB","\u0391\u03CD\u03B3","\u03A3\u03B5\u03C0","\u039F\u03BA\u03C4","\u039D\u03BF\u03AD","\u0394\u03B5\u03BA"],longhand:["\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2","\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2","\u039C\u03AC\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2","\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2","\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2","\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2"]},firstDayOfWeek:1,ordinal:function(){return""},weekAbbreviation:"\u0395\u03B2\u03B4",rangeSeparator:" \u03AD\u03C9\u03C2 ",scrollTitle:"\u039C\u03B5\u03C4\u03B1\u03BA\u03C5\u03BB\u03AE\u03C3\u03C4\u03B5 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B1\u03CD\u03BE\u03B7\u03C3\u03B7",toggleTitle:"\u039A\u03AC\u03BD\u03C4\u03B5 \u03BA\u03BB\u03B9\u03BA \u03B3\u03B9\u03B1 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AE",amPM:["\u03A0\u039C","\u039C\u039C"],yearAriaLabel:"\u03C7\u03C1\u03CC\u03BD\u03BF\u03C2",monthAriaLabel:"\u03BC\u03AE\u03BD\u03B1\u03C2",hourAriaLabel:"\u03CE\u03C1\u03B1",minuteAriaLabel:"\u03BB\u03B5\u03C0\u03C4\u03CC"};Pm.l10ns.gr=bc;var E1=Pm.l10ns;h();var Fm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},wc={weekdays:{shorthand:["\u05D0","\u05D1","\u05D2","\u05D3","\u05D4","\u05D5","\u05E9"],longhand:["\u05E8\u05D0\u05E9\u05D5\u05DF","\u05E9\u05E0\u05D9","\u05E9\u05DC\u05D9\u05E9\u05D9","\u05E8\u05D1\u05D9\u05E2\u05D9","\u05D7\u05DE\u05D9\u05E9\u05D9","\u05E9\u05D9\u05E9\u05D9","\u05E9\u05D1\u05EA"]},months:{shorthand:["\u05D9\u05E0\u05D5\u05F3","\u05E4\u05D1\u05E8\u05F3","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05F3","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05F3","\u05E1\u05E4\u05D8\u05F3","\u05D0\u05D5\u05E7\u05F3","\u05E0\u05D5\u05D1\u05F3","\u05D3\u05E6\u05DE\u05F3"],longhand:["\u05D9\u05E0\u05D5\u05D0\u05E8","\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05D9\u05DC","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8","\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8","\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8","\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8","\u05D3\u05E6\u05DE\u05D1\u05E8"]},rangeSeparator:" \u05D0\u05DC ",time_24hr:!0};Fm.l10ns.he=wc;var k1=Fm.l10ns;h();var Om=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ec={weekdays:{shorthand:["\u0930\u0935\u093F","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],longhand:["\u0930\u0935\u093F\u0935\u093E\u0930","\u0938\u094B\u092E\u0935\u093E\u0930","\u092E\u0902\u0917\u0932\u0935\u093E\u0930","\u092C\u0941\u0927\u0935\u093E\u0930","\u0917\u0941\u0930\u0941\u0935\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930","\u0936\u0928\u093F\u0935\u093E\u0930"]},months:{shorthand:["\u091C\u0928","\u092B\u0930","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917","\u0938\u093F\u0924","\u0905\u0915\u094D\u091F","\u0928\u0935","\u0926\u093F"],longhand:["\u091C\u0928\u0935\u0930\u0940 ","\u092B\u0930\u0935\u0930\u0940","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917\u0938\u094D\u0924 ","\u0938\u093F\u0924\u092E\u094D\u092C\u0930","\u0905\u0915\u094D\u091F\u0942\u092C\u0930","\u0928\u0935\u092E\u094D\u092C\u0930","\u0926\u093F\u0938\u092E\u094D\u092C\u0930"]}};Om.l10ns.hi=Ec;var _1=Om.l10ns;h();var Nm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},xc={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Sij","Velj","O\u017Eu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],longhand:["Sije\u010Danj","Velja\u010Da","O\u017Eujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"]},time_24hr:!0};Nm.l10ns.hr=xc;var C1=Nm.l10ns;h();var Rm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},kc={firstDayOfWeek:1,weekdays:{shorthand:["V","H","K","Sz","Cs","P","Szo"],longhand:["Vas\xE1rnap","H\xE9tf\u0151","Kedd","Szerda","Cs\xFCt\xF6rt\xF6k","P\xE9ntek","Szombat"]},months:{shorthand:["Jan","Feb","M\xE1r","\xC1pr","M\xE1j","J\xFAn","J\xFAl","Aug","Szep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","M\xE1rcius","\xC1prilis","M\xE1jus","J\xFAnius","J\xFAlius","Augusztus","Szeptember","Okt\xF3ber","November","December"]},ordinal:function(){return"."},weekAbbreviation:"H\xE9t",scrollTitle:"G\xF6rgessen",toggleTitle:"Kattintson a v\xE1lt\xE1shoz",rangeSeparator:" - ",time_24hr:!0};Rm.l10ns.hu=kc;var M1=Rm.l10ns;h();var Hm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Sc={weekdays:{shorthand:["\u053F\u056B\u0580","\u0535\u0580\u056F","\u0535\u0580\u0584","\u0549\u0580\u0584","\u0540\u0576\u0563","\u0548\u0582\u0580\u0562","\u0547\u0562\u0569"],longhand:["\u053F\u056B\u0580\u0561\u056F\u056B","\u0535\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B","\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0540\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B","\u0548\u0582\u0580\u0562\u0561\u0569","\u0547\u0561\u0562\u0561\u0569"]},months:{shorthand:["\u0540\u0576\u057E","\u0553\u057F\u0580","\u0544\u0561\u0580","\u0531\u057A\u0580","\u0544\u0561\u0575","\u0540\u0576\u057D","\u0540\u056C\u057D","\u0555\u0563\u057D","\u054D\u0565\u057A","\u0540\u0578\u056F","\u0546\u0574\u0562","\u0534\u0565\u056F"],longhand:["\u0540\u0578\u0582\u0576\u057E\u0561\u0580","\u0553\u0565\u057F\u0580\u057E\u0561\u0580","\u0544\u0561\u0580\u057F","\u0531\u057A\u0580\u056B\u056C","\u0544\u0561\u0575\u056B\u057D","\u0540\u0578\u0582\u0576\u056B\u057D","\u0540\u0578\u0582\u056C\u056B\u057D","\u0555\u0563\u0578\u057D\u057F\u0578\u057D","\u054D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580","\u0540\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580","\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580","\u0534\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0547\u0532\u054F",scrollTitle:"\u0548\u056C\u0578\u0580\u0565\u0584\u055D \u0574\u0565\u056E\u0561\u0581\u0576\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",toggleTitle:"\u054D\u0565\u0572\u0574\u0565\u0584\u055D \u0583\u0578\u056D\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",amPM:["\u0544\u053F","\u053F\u0540"],yearAriaLabel:"\u054F\u0561\u0580\u056B",monthAriaLabel:"\u0531\u0574\u056B\u057D",hourAriaLabel:"\u053A\u0561\u0574",minuteAriaLabel:"\u0550\u0578\u057A\u0565",time_24hr:!0};Hm.l10ns.hy=Sc;var A1=Hm.l10ns;h();var Bm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},_c={weekdays:{shorthand:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],longhand:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],longhand:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0,rangeSeparator:" - "};Bm.l10ns.id=_c;var P1=Bm.l10ns;h();var Km=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Dc={weekdays:{shorthand:["Sun","M\xE1n","\xDEri","Mi\xF0","Fim","F\xF6s","Lau"],longhand:["Sunnudagur","M\xE1nudagur","\xDEri\xF0judagur","Mi\xF0vikudagur","Fimmtudagur","F\xF6studagur","Laugardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Ma\xED","J\xFAn","J\xFAl","\xC1g\xFA","Sep","Okt","N\xF3v","Des"],longhand:["Jan\xFAar","Febr\xFAar","Mars","Apr\xEDl","Ma\xED","J\xFAn\xED","J\xFAl\xED","\xC1g\xFAst","September","Okt\xF3ber","N\xF3vember","Desember"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",yearAriaLabel:"\xC1r",time_24hr:!0};Km.l10ns.is=Dc;var O1=Km.l10ns;h();var $m=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Cc={weekdays:{shorthand:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],longhand:["Domenica","Luned\xEC","Marted\xEC","Mercoled\xEC","Gioved\xEC","Venerd\xEC","Sabato"]},months:{shorthand:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],longhand:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"]},firstDayOfWeek:1,ordinal:()=>"\xB0",rangeSeparator:" al ",weekAbbreviation:"Se",scrollTitle:"Scrolla per aumentare",toggleTitle:"Clicca per cambiare",time_24hr:!0};$m.l10ns.it=Cc;var R1=$m.l10ns;h();var Um=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Tc={weekdays:{shorthand:["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"],longhand:["\u65E5\u66DC\u65E5","\u6708\u66DC\u65E5","\u706B\u66DC\u65E5","\u6C34\u66DC\u65E5","\u6728\u66DC\u65E5","\u91D1\u66DC\u65E5","\u571F\u66DC\u65E5"]},months:{shorthand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],longhand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"]},time_24hr:!0,rangeSeparator:" \u304B\u3089 ",monthAriaLabel:"\u6708",amPM:["\u5348\u524D","\u5348\u5F8C"],yearAriaLabel:"\u5E74",hourAriaLabel:"\u6642\u9593",minuteAriaLabel:"\u5206"};Um.l10ns.ja=Tc;var B1=Um.l10ns;h();var Wm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Mc={weekdays:{shorthand:["\u10D9\u10D5","\u10DD\u10E0","\u10E1\u10D0","\u10DD\u10D7","\u10EE\u10E3","\u10DE\u10D0","\u10E8\u10D0"],longhand:["\u10D9\u10D5\u10D8\u10E0\u10D0","\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8","\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8"]},months:{shorthand:["\u10D8\u10D0\u10DC","\u10D7\u10D4\u10D1","\u10DB\u10D0\u10E0","\u10D0\u10DE\u10E0","\u10DB\u10D0\u10D8","\u10D8\u10D5\u10DC","\u10D8\u10D5\u10DA","\u10D0\u10D2\u10D5","\u10E1\u10D4\u10E5","\u10DD\u10E5\u10E2","\u10DC\u10DD\u10D4","\u10D3\u10D4\u10D9"],longhand:["\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8","\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8","\u10DB\u10D0\u10E0\u10E2\u10D8","\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8","\u10DB\u10D0\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8","\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD","\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u10D9\u10D5.",scrollTitle:"\u10D3\u10D0\u10E1\u10E5\u10E0\u10DD\u10DA\u10D4\u10D7 \u10D2\u10D0\u10E1\u10D0\u10D3\u10D8\u10D3\u10D4\u10D1\u10DA\u10D0\u10D3",toggleTitle:"\u10D3\u10D0\u10D0\u10D9\u10DA\u10D8\u10D9\u10D4\u10D7 \u10D2\u10D0\u10D3\u10D0\u10E0\u10D7\u10D5\u10D8\u10E1\u10D7\u10D5\u10D8\u10E1",amPM:["AM","PM"],yearAriaLabel:"\u10EC\u10D4\u10DA\u10D8",time_24hr:!0};Wm.l10ns.ka=Mc;var $1=Wm.l10ns;h();var Vm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ic={weekdays:{shorthand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F.","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"],longhand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F\u17D2\u1794\u178F\u17B7\u17CD","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"]},months:{shorthand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"],longhand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"]},ordinal:()=>"",firstDayOfWeek:1,rangeSeparator:" \u178A\u179B\u17CB ",weekAbbreviation:"\u179F\u1794\u17D2\u178F\u17B6\u17A0\u17CD",scrollTitle:"\u179A\u17C6\u1780\u17B7\u179B\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1794\u1784\u17D2\u1780\u17BE\u1793",toggleTitle:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1795\u17D2\u179B\u17B6\u179F\u17CB\u1794\u17D2\u178A\u17BC\u179A",yearAriaLabel:"\u1786\u17D2\u1793\u17B6\u17C6",time_24hr:!0};Vm.l10ns.km=Ic;var W1=Vm.l10ns;h();var zm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ac={weekdays:{shorthand:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],longhand:["\uC77C\uC694\uC77C","\uC6D4\uC694\uC77C","\uD654\uC694\uC77C","\uC218\uC694\uC77C","\uBAA9\uC694\uC77C","\uAE08\uC694\uC77C","\uD1A0\uC694\uC77C"]},months:{shorthand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"],longhand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"]},ordinal:()=>"\uC77C",rangeSeparator:" ~ ",amPM:["\uC624\uC804","\uC624\uD6C4"]};zm.l10ns.ko=Ac;var z1=zm.l10ns;h();var jm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Lc={weekdays:{shorthand:["\u0416\u0441","\u0414\u0441","\u0421c","\u0421\u0440","\u0411\u0441","\u0416\u043C","\u0421\u0431"],longhand:["\u0416\u0435\u043A\u0441\u0435\u043D\u0431i","\u0414\u04AF\u0439\u0441\u0435\u043D\u0431i","\u0421\u0435\u0439\u0441\u0435\u043D\u0431i","\u0421\u04D9\u0440\u0441\u0435\u043D\u0431i","\u0411\u0435\u0439\u0441\u0435\u043D\u0431i","\u0416\u04B1\u043C\u0430","\u0421\u0435\u043D\u0431i"]},months:{shorthand:["\u049A\u0430\u04A3","\u0410\u049B\u043F","\u041D\u0430\u0443","\u0421\u04D9\u0443","\u041C\u0430\u043C","\u041C\u0430\u0443","\u0428i\u043B","\u0422\u0430\u043C","\u049A\u044B\u0440","\u049A\u0430\u0437","\u049A\u0430\u0440","\u0416\u0435\u043B"],longhand:["\u049A\u0430\u04A3\u0442\u0430\u0440","\u0410\u049B\u043F\u0430\u043D","\u041D\u0430\u0443\u0440\u044B\u0437","\u0421\u04D9\u0443i\u0440","\u041C\u0430\u043C\u044B\u0440","\u041C\u0430\u0443\u0441\u044B\u043C","\u0428i\u043B\u0434\u0435","\u0422\u0430\u043C\u044B\u0437","\u049A\u044B\u0440\u043A\u04AF\u0439\u0435\u043A","\u049A\u0430\u0437\u0430\u043D","\u049A\u0430\u0440\u0430\u0448\u0430","\u0416\u0435\u043B\u0442\u043E\u049B\u0441\u0430\u043D"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0410\u043F\u0442\u0430",scrollTitle:"\u04AE\u043B\u043A\u0435\u0439\u0442\u0443 \u04AF\u0448\u0456\u043D \u0430\u0439\u043D\u0430\u043B\u0434\u044B\u0440\u044B\u04A3\u044B\u0437",toggleTitle:"\u0410\u0443\u044B\u0441\u0442\u044B\u0440\u0443 \u04AF\u0448\u0456\u043D \u0431\u0430\u0441\u044B\u04A3\u044B\u0437",amPM:["\u0422\u0414","\u0422\u041A"],yearAriaLabel:"\u0416\u044B\u043B"};jm.l10ns.kz=Lc;var q1=jm.l10ns;h();var qm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Pc={weekdays:{shorthand:["S","Pr","A","T","K","Pn","\u0160"],longhand:["Sekmadienis","Pirmadienis","Antradienis","Tre\u010Diadienis","Ketvirtadienis","Penktadienis","\u0160e\u0161tadienis"]},months:{shorthand:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd"],longhand:["Sausis","Vasaris","Kovas","Balandis","Gegu\u017E\u0117","Bir\u017Eelis","Liepa","Rugpju\u0304tis","Rugse\u0307jis","Spalis","Lapkritis","Gruodis"]},firstDayOfWeek:1,ordinal:function(){return"-a"},rangeSeparator:" iki ",weekAbbreviation:"Sav",scrollTitle:"Keisti laik\u0105 pel\u0117s rateliu",toggleTitle:"Perjungti laiko format\u0105",time_24hr:!0};qm.l10ns.lt=Pc;var J1=qm.l10ns;h();var Ym=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Fc={firstDayOfWeek:1,weekdays:{shorthand:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],longhand:["Sv\u0113tdiena","Pirmdiena","Otrdiena","Tre\u0161diena","Ceturtdiena","Piektdiena","Sestdiena"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","J\u016Bn","J\u016Bl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janv\u0101ris","Febru\u0101ris","Marts","Apr\u012Blis","Maijs","J\u016Bnijs","J\u016Blijs","Augusts","Septembris","Oktobris","Novembris","Decembris"]},rangeSeparator:" l\u012Bdz ",time_24hr:!0};Ym.l10ns.lv=Fc;var Q1=Ym.l10ns;h();var Jm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Oc={weekdays:{shorthand:["\u041D\u0435","\u041F\u043E","\u0412\u0442","\u0421\u0440","\u0427\u0435","\u041F\u0435","\u0421\u0430"],longhand:["\u041D\u0435\u0434\u0435\u043B\u0430","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u043E\u043A","\u041F\u0435\u0442\u043E\u043A","\u0421\u0430\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0408\u0430\u043D","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0458","\u0408\u0443\u043D","\u0408\u0443\u043B","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u0408\u0430\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0458","\u0408\u0443\u043D\u0438","\u0408\u0443\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},firstDayOfWeek:1,weekAbbreviation:"\u041D\u0435\u0434.",rangeSeparator:" \u0434\u043E ",time_24hr:!0};Jm.l10ns.mk=Oc;var Z1=Jm.l10ns;h();var Gm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Nc={firstDayOfWeek:1,weekdays:{shorthand:["\u0414\u0430","\u041C\u044F","\u041B\u0445","\u041F\u04AF","\u0411\u0430","\u0411\u044F","\u041D\u044F"],longhand:["\u0414\u0430\u0432\u0430\u0430","\u041C\u044F\u0433\u043C\u0430\u0440","\u041B\u0445\u0430\u0433\u0432\u0430","\u041F\u04AF\u0440\u044D\u0432","\u0411\u0430\u0430\u0441\u0430\u043D","\u0411\u044F\u043C\u0431\u0430","\u041D\u044F\u043C"]},months:{shorthand:["1-\u0440 \u0441\u0430\u0440","2-\u0440 \u0441\u0430\u0440","3-\u0440 \u0441\u0430\u0440","4-\u0440 \u0441\u0430\u0440","5-\u0440 \u0441\u0430\u0440","6-\u0440 \u0441\u0430\u0440","7-\u0440 \u0441\u0430\u0440","8-\u0440 \u0441\u0430\u0440","9-\u0440 \u0441\u0430\u0440","10-\u0440 \u0441\u0430\u0440","11-\u0440 \u0441\u0430\u0440","12-\u0440 \u0441\u0430\u0440"],longhand:["\u041D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0425\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u04E9\u0440\u04E9\u0432\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0417\u0443\u0440\u0433\u0430\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u043E\u043B\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u041D\u0430\u0439\u043C\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0415\u0441\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u043D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u0445\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440"]},rangeSeparator:"-\u0441 ",time_24hr:!0};Gm.l10ns.mn=Nc;var tI=Gm.l10ns;h();var eS=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Qm={weekdays:{shorthand:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],longhand:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"]},months:{shorthand:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],longhand:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"]},firstDayOfWeek:1,ordinal:()=>""},rI=eS.l10ns;h();var Xm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Rc={weekdays:{shorthand:["\u1014\u103D\u1031","\u101C\u102C","\u1002\u102B","\u101F\u1030\u1038","\u1000\u103C\u102C","\u101E\u1031\u102C","\u1014\u1031"],longhand:["\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031","\u1010\u1014\u1004\u103A\u1039\u101C\u102C","\u1021\u1004\u103A\u1039\u1002\u102B","\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038","\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038","\u101E\u1031\u102C\u1000\u103C\u102C","\u1005\u1014\u1031"]},months:{shorthand:["\u1007\u1014\u103A","\u1016\u1031","\u1019\u1010\u103A","\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u101C\u102D\u102F\u1004\u103A","\u101E\u103C","\u1005\u1000\u103A","\u1021\u1031\u102C\u1000\u103A","\u1014\u102D\u102F","\u1012\u102E"],longhand:["\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E","\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E","\u1019\u1010\u103A","\u1027\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u1007\u1030\u101C\u102D\u102F\u1004\u103A","\u101E\u103C\u1002\u102F\u1010\u103A","\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C","\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C","\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C","\u1012\u102E\u1007\u1004\u103A\u1018\u102C"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0};Xm.l10ns.my=Rc;var aI=Xm.l10ns;h();var Zm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Hc={weekdays:{shorthand:["zo","ma","di","wo","do","vr","za"],longhand:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},months:{shorthand:["jan","feb","mrt","apr","mei","jun","jul","aug","sept","okt","nov","dec"],longhand:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},firstDayOfWeek:1,weekAbbreviation:"wk",rangeSeparator:" t/m ",scrollTitle:"Scroll voor volgende / vorige",toggleTitle:"Klik om te wisselen",time_24hr:!0,ordinal:e=>e===1||e===8||e>=20?"ste":"de"};Zm.l10ns.nl=Hc;var sI=Zm.l10ns;h();var eg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Bc={weekdays:{shorthand:["S\xF8.","M\xE5.","Ty.","On.","To.","Fr.","La."],longhand:["S\xF8ndag","M\xE5ndag","Tysdag","Onsdag","Torsdag","Fredag","Laurdag"]},months:{shorthand:["Jan","Feb","Mars","Apr","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Veke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};eg.l10ns.nn=Bc;var cI=eg.l10ns;h();var tg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Kc={weekdays:{shorthand:["S\xF8n","Man","Tir","Ons","Tor","Fre","L\xF8r"],longhand:["S\xF8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\xF8rdag"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Uke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};tg.l10ns.no=Kc;var dI=tg.l10ns;h();var ng=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},$c={weekdays:{shorthand:["\u0A10\u0A24","\u0A38\u0A4B\u0A2E","\u0A2E\u0A70\u0A17\u0A32","\u0A2C\u0A41\u0A71\u0A27","\u0A35\u0A40\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30"],longhand:["\u0A10\u0A24\u0A35\u0A3E\u0A30","\u0A38\u0A4B\u0A2E\u0A35\u0A3E\u0A30","\u0A2E\u0A70\u0A17\u0A32\u0A35\u0A3E\u0A30","\u0A2C\u0A41\u0A71\u0A27\u0A35\u0A3E\u0A30","\u0A35\u0A40\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30\u0A35\u0A3E\u0A30"]},months:{shorthand:["\u0A1C\u0A28","\u0A2B\u0A3C\u0A30","\u0A2E\u0A3E\u0A30","\u0A05\u0A2A\u0A4D\u0A30\u0A48","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E","\u0A05\u0A17","\u0A38\u0A24\u0A70","\u0A05\u0A15","\u0A28\u0A35\u0A70","\u0A26\u0A38\u0A70"],longhand:["\u0A1C\u0A28\u0A35\u0A30\u0A40","\u0A2B\u0A3C\u0A30\u0A35\u0A30\u0A40","\u0A2E\u0A3E\u0A30\u0A1A","\u0A05\u0A2A\u0A4D\u0A30\u0A48\u0A32","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E\u0A08","\u0A05\u0A17\u0A38\u0A24","\u0A38\u0A24\u0A70\u0A2C\u0A30","\u0A05\u0A15\u0A24\u0A42\u0A2C\u0A30","\u0A28\u0A35\u0A70\u0A2C\u0A30","\u0A26\u0A38\u0A70\u0A2C\u0A30"]},time_24hr:!0};ng.l10ns.pa=$c;var pI=ng.l10ns;h();var rg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Uc={weekdays:{shorthand:["Nd","Pn","Wt","\u015Ar","Cz","Pt","So"],longhand:["Niedziela","Poniedzia\u0142ek","Wtorek","\u015Aroda","Czwartek","Pi\u0105tek","Sobota"]},months:{shorthand:["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Pa\u017A","Lis","Gru"],longhand:["Stycze\u0144","Luty","Marzec","Kwiecie\u0144","Maj","Czerwiec","Lipiec","Sierpie\u0144","Wrzesie\u0144","Pa\u017Adziernik","Listopad","Grudzie\u0144"]},rangeSeparator:" do ",weekAbbreviation:"tydz.",scrollTitle:"Przewi\u0144, aby zwi\u0119kszy\u0107",toggleTitle:"Kliknij, aby prze\u0142\u0105czy\u0107",firstDayOfWeek:1,time_24hr:!0,ordinal:()=>"."};rg.l10ns.pl=Uc;var mI=rg.l10ns;h();var ig=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Wc={weekdays:{shorthand:["Dom","Seg","Ter","Qua","Qui","Sex","S\xE1b"],longhand:["Domingo","Segunda-feira","Ter\xE7a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S\xE1bado"]},months:{shorthand:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],longhand:["Janeiro","Fevereiro","Mar\xE7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]},rangeSeparator:" at\xE9 ",time_24hr:!0};ig.l10ns.pt=Wc;var yI=ig.l10ns;h();var ag=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Vc={weekdays:{shorthand:["Dum","Lun","Mar","Mie","Joi","Vin","S\xE2m"],longhand:["Duminic\u0103","Luni","Mar\u021Bi","Miercuri","Joi","Vineri","S\xE2mb\u0103t\u0103"]},months:{shorthand:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec"],longhand:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"]},firstDayOfWeek:1,time_24hr:!0,ordinal:()=>""};ag.l10ns.ro=Vc;var bI=ag.l10ns;h();var og=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},zc={weekdays:{shorthand:["\u0412\u0441","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440\u0433","\u041F\u044F\u0442\u043D\u0438\u0446\u0430","\u0421\u0443\u0431\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440\u044C","\u0424\u0435\u0432\u0440\u0430\u043B\u044C","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B\u044C","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C","\u041E\u043A\u0442\u044F\u0431\u0440\u044C","\u041D\u043E\u044F\u0431\u0440\u044C","\u0414\u0435\u043A\u0430\u0431\u0440\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u041D\u0435\u0434.",scrollTitle:"\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0435 \u0434\u043B\u044F \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u044F",toggleTitle:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};og.l10ns.ru=zc;var EI=og.l10ns;h();var sg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},jc={weekdays:{shorthand:["\u0D89","\u0DC3","\u0D85","\u0DB6","\u0DB6\u0DCA\u200D\u0DBB","\u0DC3\u0DD2","\u0DC3\u0DD9"],longhand:["\u0D89\u0DBB\u0DD2\u0DAF\u0DCF","\u0DC3\u0DB3\u0DD4\u0DAF\u0DCF","\u0D85\u0D9F\u0DC4\u0DBB\u0DD4\u0DC0\u0DCF\u0DAF\u0DCF","\u0DB6\u0DAF\u0DCF\u0DAF\u0DCF","\u0DB6\u0DCA\u200D\u0DBB\u0DC4\u0DC3\u0DCA\u0DB4\u0DAD\u0DD2\u0DB1\u0DCA\u0DAF\u0DCF","\u0DC3\u0DD2\u0D9A\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF","\u0DC3\u0DD9\u0DB1\u0DC3\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF"]},months:{shorthand:["\u0DA2\u0DB1","\u0DB4\u0DD9\u0DB6","\u0DB8\u0DCF\u0DBB\u0DCA","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD","\u0DC3\u0DD0\u0DB4\u0DCA","\u0D94\u0D9A\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0","\u0DAF\u0DD9\u0DC3\u0DD0"],longhand:["\u0DA2\u0DB1\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB4\u0DD9\u0DB6\u0DBB\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB8\u0DCF\u0DBB\u0DCA\u0DAD\u0DD4","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA\u0DBD\u0DCA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD\u0DC3\u0DCA\u0DAD\u0DD4","\u0DC3\u0DD0\u0DB4\u0DCA\u0DAD\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0D94\u0D9A\u0DCA\u0DAD\u0DDD\u0DB6\u0DBB\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0DAF\u0DD9\u0DC3\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA"]},time_24hr:!0};sg.l10ns.si=jc;var kI=sg.l10ns;h();var lg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},qc={weekdays:{shorthand:["Ned","Pon","Ut","Str","\u0160tv","Pia","Sob"],longhand:["Nede\u013Ea","Pondelok","Utorok","Streda","\u0160tvrtok","Piatok","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","M\xE1j","J\xFAn","J\xFAl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","Marec","Apr\xEDl","M\xE1j","J\xFAn","J\xFAl","August","September","Okt\xF3ber","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};lg.l10ns.sk=qc;var _I=lg.l10ns;h();var cg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Yc={weekdays:{shorthand:["Ned","Pon","Tor","Sre","\u010Cet","Pet","Sob"],longhand:["Nedelja","Ponedeljek","Torek","Sreda","\u010Cetrtek","Petek","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};cg.l10ns.sl=Yc;var CI=cg.l10ns;h();var ug=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Jc={weekdays:{shorthand:["Di","H\xEB","Ma","M\xEB","En","Pr","Sh"],longhand:["E Diel","E H\xEBn\xEB","E Mart\xEB","E M\xEBrkur\xEB","E Enjte","E Premte","E Shtun\xEB"]},months:{shorthand:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","N\xEBn","Dhj"],longhand:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","N\xEBntor","Dhjetor"]},firstDayOfWeek:1,rangeSeparator:" deri ",weekAbbreviation:"Java",yearAriaLabel:"Viti",monthAriaLabel:"Muaji",hourAriaLabel:"Ora",minuteAriaLabel:"Minuta",time_24hr:!0};ug.l10ns.sq=Jc;var MI=ug.l10ns;h();var dg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Gc={weekdays:{shorthand:["Ned","Pon","Uto","Sre","\u010Cet","Pet","Sub"],longhand:["Nedelja","Ponedeljak","Utorak","Sreda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"]},firstDayOfWeek:1,weekAbbreviation:"Ned.",rangeSeparator:" do ",time_24hr:!0};dg.l10ns.sr=Gc;var AI=dg.l10ns;h();var fg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Qc={firstDayOfWeek:1,weekAbbreviation:"v",weekdays:{shorthand:["s\xF6n","m\xE5n","tis","ons","tor","fre","l\xF6r"],longhand:["s\xF6ndag","m\xE5ndag","tisdag","onsdag","torsdag","fredag","l\xF6rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},rangeSeparator:" till ",time_24hr:!0,ordinal:()=>"."};fg.l10ns.sv=Qc;var PI=fg.l10ns;h();var pg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Xc={weekdays:{shorthand:["\u0E2D\u0E32","\u0E08","\u0E2D","\u0E1E","\u0E1E\u0E24","\u0E28","\u0E2A"],longhand:["\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C","\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C","\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23","\u0E1E\u0E38\u0E18","\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35","\u0E28\u0E38\u0E01\u0E23\u0E4C","\u0E40\u0E2A\u0E32\u0E23\u0E4C"]},months:{shorthand:["\u0E21.\u0E04.","\u0E01.\u0E1E.","\u0E21\u0E35.\u0E04.","\u0E40\u0E21.\u0E22.","\u0E1E.\u0E04.","\u0E21\u0E34.\u0E22.","\u0E01.\u0E04.","\u0E2A.\u0E04.","\u0E01.\u0E22.","\u0E15.\u0E04.","\u0E1E.\u0E22.","\u0E18.\u0E04."],longhand:["\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21","\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C","\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21","\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19","\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21","\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19","\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21","\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21","\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19","\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21","\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19","\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"]},firstDayOfWeek:1,rangeSeparator:" \u0E16\u0E36\u0E07 ",scrollTitle:"\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E14",toggleTitle:"\u0E04\u0E25\u0E34\u0E01\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19",time_24hr:!0,ordinal:()=>""};pg.l10ns.th=Xc;var OI=pg.l10ns;h();var hg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Zc={weekdays:{shorthand:["Paz","Pzt","Sal","\xC7ar","Per","Cum","Cmt"],longhand:["Pazar","Pazartesi","Sal\u0131","\xC7ar\u015Famba","Per\u015Fembe","Cuma","Cumartesi"]},months:{shorthand:["Oca","\u015Eub","Mar","Nis","May","Haz","Tem","A\u011Fu","Eyl","Eki","Kas","Ara"],longhand:["Ocak","\u015Eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011Fustos","Eyl\xFCl","Ekim","Kas\u0131m","Aral\u0131k"]},firstDayOfWeek:1,ordinal:()=>".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmak i\xE7in kayd\u0131r\u0131n",toggleTitle:"A\xE7/Kapa",amPM:["\xD6\xD6","\xD6S"],time_24hr:!0};hg.l10ns.tr=Zc;var RI=hg.l10ns;h();var mg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},eu={firstDayOfWeek:1,weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0456\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A","\u0412\u0456\u0432\u0442\u043E\u0440\u043E\u043A","\u0421\u0435\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440","\u041F'\u044F\u0442\u043D\u0438\u0446\u044F","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0456\u0447","\u041B\u044E\u0442","\u0411\u0435\u0440","\u041A\u0432\u0456","\u0422\u0440\u0430","\u0427\u0435\u0440","\u041B\u0438\u043F","\u0421\u0435\u0440","\u0412\u0435\u0440","\u0416\u043E\u0432","\u041B\u0438\u0441","\u0413\u0440\u0443"],longhand:["\u0421\u0456\u0447\u0435\u043D\u044C","\u041B\u044E\u0442\u0438\u0439","\u0411\u0435\u0440\u0435\u0437\u0435\u043D\u044C","\u041A\u0432\u0456\u0442\u0435\u043D\u044C","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u0435\u0440\u0432\u0435\u043D\u044C","\u041B\u0438\u043F\u0435\u043D\u044C","\u0421\u0435\u0440\u043F\u0435\u043D\u044C","\u0412\u0435\u0440\u0435\u0441\u0435\u043D\u044C","\u0416\u043E\u0432\u0442\u0435\u043D\u044C","\u041B\u0438\u0441\u0442\u043E\u043F\u0430\u0434","\u0413\u0440\u0443\u0434\u0435\u043D\u044C"]},time_24hr:!0};mg.l10ns.uk=eu;var BI=mg.l10ns;h();var gg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},tu={weekdays:{shorthand:["\u042F\u043A\u0448","\u0414\u0443\u0448","\u0421\u0435\u0448","\u0427\u043E\u0440","\u041F\u0430\u0439","\u0416\u0443\u043C","\u0428\u0430\u043D"],longhand:["\u042F\u043A\u0448\u0430\u043D\u0431\u0430","\u0414\u0443\u0448\u0430\u043D\u0431\u0430","\u0421\u0435\u0448\u0430\u043D\u0431\u0430","\u0427\u043E\u0440\u0448\u0430\u043D\u0431\u0430","\u041F\u0430\u0439\u0448\u0430\u043D\u0431\u0430","\u0416\u0443\u043C\u0430","\u0428\u0430\u043D\u0431\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440","\u0424\u0435\u0432\u0440\u0430\u043B","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440","\u041E\u043A\u0442\u044F\u0431\u0440","\u041D\u043E\u044F\u0431\u0440","\u0414\u0435\u043A\u0430\u0431\u0440"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u04B2\u0430\u0444\u0442\u0430",scrollTitle:"\u041A\u0430\u0442\u0442\u0430\u043B\u0430\u0448\u0442\u0438\u0440\u0438\u0448 \u0443\u0447\u0443\u043D \u0430\u0439\u043B\u0430\u043D\u0442\u0438\u0440\u0438\u043D\u0433",toggleTitle:"\u040E\u0442\u0438\u0448 \u0443\u0447\u0443\u043D \u0431\u043E\u0441\u0438\u043D\u0433",amPM:["AM","PM"],yearAriaLabel:"\u0419\u0438\u043B",time_24hr:!0};gg.l10ns.uz=tu;var $I=gg.l10ns;h();var yg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},nu={weekdays:{shorthand:["Ya","Du","Se","Cho","Pa","Ju","Sha"],longhand:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"]},months:{shorthand:["Yan","Fev","Mar","Apr","May","Iyun","Iyul","Avg","Sen","Okt","Noy","Dek"],longhand:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"Hafta",scrollTitle:"Kattalashtirish uchun aylantiring",toggleTitle:"O\u2018tish uchun bosing",amPM:["AM","PM"],yearAriaLabel:"Yil",time_24hr:!0};yg.l10ns.uz_latn=nu;var WI=yg.l10ns;h();var vg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ru={weekdays:{shorthand:["CN","T2","T3","T4","T5","T6","T7"],longhand:["Ch\u1EE7 nh\u1EADt","Th\u1EE9 hai","Th\u1EE9 ba","Th\u1EE9 t\u01B0","Th\u1EE9 n\u0103m","Th\u1EE9 s\xE1u","Th\u1EE9 b\u1EA3y"]},months:{shorthand:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],longhand:["Th\xE1ng m\u1ED9t","Th\xE1ng hai","Th\xE1ng ba","Th\xE1ng t\u01B0","Th\xE1ng n\u0103m","Th\xE1ng s\xE1u","Th\xE1ng b\u1EA3y","Th\xE1ng t\xE1m","Th\xE1ng ch\xEDn","Th\xE1ng m\u01B0\u1EDDi","Th\xE1ng m\u01B0\u1EDDi m\u1ED9t","Th\xE1ng m\u01B0\u1EDDi hai"]},firstDayOfWeek:1,rangeSeparator:" \u0111\u1EBFn "};vg.l10ns.vn=ru;var zI=vg.l10ns;h();var bg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},iu={weekdays:{shorthand:["\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u5468",scrollTitle:"\u6EDA\u52A8\u5207\u6362",toggleTitle:"\u70B9\u51FB\u5207\u6362 12/24 \u5C0F\u65F6\u65F6\u5236"};bg.l10ns.zh=iu;var qI=bg.l10ns;h();var wg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},au={weekdays:{shorthand:["\u9031\u65E5","\u9031\u4E00","\u9031\u4E8C","\u9031\u4E09","\u9031\u56DB","\u9031\u4E94","\u9031\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u9031",scrollTitle:"\u6EFE\u52D5\u5207\u63DB",toggleTitle:"\u9EDE\u64CA\u5207\u63DB 12/24 \u5C0F\u6642\u6642\u5236"};wg.l10ns.zh_tw=au;var JI=wg.l10ns;var tS={ar:Zl,at:ec,az:tc,be:nc,bg:rc,bn:ic,bs:ac,ca:Ao,ckb:sc,cat:Ao,cs:lc,cy:cc,da:uc,de:dc,default:{...Cr},en:Cr,eo:fc,es:pc,et:hc,fa:mc,fi:gc,fo:yc,fr:vc,gr:bc,he:wc,hi:Ec,hr:xc,hu:kc,hy:Sc,id:_c,is:Dc,it:Cc,ja:Tc,ka:Mc,ko:Ac,km:Ic,kz:Lc,lt:Pc,lv:Fc,mk:Oc,mn:Nc,ms:Qm,my:Rc,nl:Hc,nn:Bc,no:Kc,pa:$c,pl:Uc,pt:Wc,ro:Vc,ru:zc,si:jc,sk:qc,sl:Yc,sq:Jc,sr:Gc,sv:Qc,th:Xc,tr:Zc,uk:eu,vn:ru,zh:iu,zh_tw:au,uz:tu,uz_latn:nu},et=tS;var xg={ar:et.ar,cs:et.cs,da:et.da,de:et.de,en:et.en,"en-gb":et.en,es:et.es,fr:et.fr,hi:et.hi,id:et.id,it:et.it,ja:et.ja,ko:et.ko,nl:et.nl,nn:et.no,pl:et.pl,pt:et.pt,"pt-br":et.pt,ro:et.ro,ru:et.ru,tr:et.tr,"zh-cn":et.zh,"zh-tw":et.zh_tw},nS=xg[Eg.moment.locale()];function Po(e){let t=e==null?void 0:e.getSetting("date-picker-week-start"),r=nS||xg.en;return t?{...r,firstDayOfWeek:t}:r}h();h();var Fo=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],or={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:e=>typeof console!="undefined"&&console.warn(e),getWeek:e=>{let t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);let r=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-r.getTime())/864e5-3+(r.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1,win:window};h();var Ot=(e,t=2)=>`000${e}`.slice(t*-1),Gt=e=>e===!0?1:0;function ou(e,t,r){let n;return function(){let i=arguments;r.clearTimeout(n),n=r.setTimeout(()=>e.apply(this,i),t)}}var Oo=e=>Array.isArray(e)?e:[e];h();h();var su=()=>{},ua=(e,t,r)=>r.months[t?"shorthand":"longhand"][e],kg={D:su,F:function(e,t,r){e.setMonth(r.months.longhand.indexOf(t))},G:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},H:(e,t)=>{e.setHours(parseFloat(t))},J:(e,t)=>{e.setDate(parseFloat(t))},K:(e,t,r)=>{e.setHours(e.getHours()%12+12*Gt(new RegExp(r.amPM[1],"i").test(t)))},M:function(e,t,r){e.setMonth(r.months.shorthand.indexOf(t))},S:(e,t)=>{e.setSeconds(parseFloat(t))},U:(e,t)=>new Date(parseFloat(t)*1e3),W:function(e,t,r){let n=parseInt(t),i=new Date(e.getFullYear(),0,2+(n-1)*7,0,0,0,0);return i.setDate(i.getDate()-i.getDay()+r.firstDayOfWeek),i},Y:(e,t)=>{e.setFullYear(parseFloat(t))},Z:(e,t)=>new Date(t),d:(e,t)=>{e.setDate(parseFloat(t))},h:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},i:(e,t)=>{e.setMinutes(parseFloat(t))},j:(e,t)=>{e.setDate(parseFloat(t))},l:su,m:(e,t)=>{e.setMonth(parseFloat(t)-1)},n:(e,t)=>{e.setMonth(parseFloat(t)-1)},s:(e,t)=>{e.setSeconds(parseFloat(t))},u:(e,t)=>new Date(parseFloat(t)),w:su,y:(e,t)=>{e.setFullYear(2e3+parseFloat(t))}},$n={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},li={Z:e=>e.toISOString(),D:function(e,t,r){return t.weekdays.shorthand[li.w(e,t,r)]},F:function(e,t,r){return ua(li.n(e,t,r)-1,!1,t)},G:function(e,t,r){return Ot(li.h(e,t,r))},H:e=>Ot(e.getHours()),J:function(e,t){return t.ordinal!==void 0?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:(e,t)=>t.amPM[Gt(e.getHours()>11)],M:function(e,t){return ua(e.getMonth(),!0,t)},S:e=>Ot(e.getSeconds()),U:e=>e.getTime()/1e3,W:function(e,t,r){return r.getWeek(e)},Y:e=>Ot(e.getFullYear(),4),d:e=>Ot(e.getDate()),h:e=>e.getHours()%12?e.getHours()%12:12,i:e=>Ot(e.getMinutes()),j:e=>e.getDate(),l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:e=>Ot(e.getMonth()+1),n:e=>e.getMonth()+1,s:e=>e.getSeconds(),u:e=>e.getTime(),w:e=>e.getDay(),y:e=>String(e.getFullYear()).substring(2)};var lu=({config:e=or,l10n:t=Cr,isMobile:r=!1})=>(n,i,a)=>{let o=a||t;return e.formatDate!==void 0&&!r?e.formatDate(n,i,o):i.split("").map((s,u,l)=>li[s]&&l[u-1]!=="\\"?li[s](n,o,e):s!=="\\"?s:"").join("")},No=({config:e=or,l10n:t=Cr})=>(r,n,i,a)=>{if(r!==0&&!r)return;let o=a||t,s,u=r;if(r.getDate)s=new Date(r.getTime());else if(typeof r!="string"&&r.toFixed!==void 0)s=new Date(r);else if(typeof r=="string"){let l=n||(e||or).dateFormat,c=String(r).trim();if(c==="today")s=new Date,i=!0;else if(e&&e.parseDate)s=e.parseDate(r,l);else if(/Z$/.test(c)||/GMT$/.test(c))s=new Date(r);else{let d,f=[];for(let p=0,m=0,v="";ps=p(s,m,o)||s),s=d?s:void 0}}if(!(s.getDate&&!isNaN(s.getTime()))){e.errorHandler(new Error(`Invalid date provided: ${u}`));return}return i===!0&&s.setHours(0,0,0,0),s};function Qt(e,t,r=!0){return r!==!1?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var Sg=(e,t,r)=>e>Math.min(t,r)&&ee*3600+t*60+r,_g=e=>{let t=Math.floor(e/3600),r=(e-t*3600)/60;return[t,r,e-t*3600-r*60]},Dg={DAY:864e5};function Ho(e){let t=e.defaultHour,r=e.defaultMinute,n=e.defaultSeconds;if(e.minDate!==void 0){let i=e.minDate.getHours(),a=e.minDate.getMinutes(),o=e.minDate.getSeconds();t=0?new Date:new Date(n.config.minDate.getTime()),Q=Ho(n.config);K.setHours(Q.hours,Q.minutes,Q.seconds,K.getMilliseconds()),n.selectedDates=[K],n.latestSelectedDateObj=K}_!==void 0&&_.type!=="blur"&&Ra(_);let M=n._input.value;f(),yn(),n._input.value!==M&&n._debouncedChange()}function c(_,M){return _%12+12*Gt(M===n.l10n.amPM[1])}function d(_){switch(_%24){case 0:case 12:return 12;default:return _%12}}function f(){if(n.hourElement===void 0||n.minuteElement===void 0)return;let _=(parseInt(n.hourElement.value.slice(-2),10)||0)%24,M=(parseInt(n.minuteElement.value,10)||0)%60,K=n.secondElement!==void 0?(parseInt(n.secondElement.value,10)||0)%60:0;n.amPM!==void 0&&(_=c(_,n.amPM.textContent));let Q=n.config.minTime!==void 0||n.config.minDate&&n.minDateHasTime&&n.latestSelectedDateObj&&Qt(n.latestSelectedDateObj,n.config.minDate,!0)===0,se=n.config.maxTime!==void 0||n.config.maxDate&&n.maxDateHasTime&&n.latestSelectedDateObj&&Qt(n.latestSelectedDateObj,n.config.maxDate,!0)===0;if(n.config.maxTime!==void 0&&n.config.minTime!==void 0&&n.config.minTime>n.config.maxTime){let ie=Ro(n.config.minTime.getHours(),n.config.minTime.getMinutes(),n.config.minTime.getSeconds()),me=Ro(n.config.maxTime.getHours(),n.config.maxTime.getMinutes(),n.config.maxTime.getSeconds()),ue=Ro(_,M,K);if(ue>me&&ue=12)]),n.secondElement!==void 0&&(n.secondElement.value=Ot(K)))}function v(_){let M=Xt(_),K=parseInt(M.value)+(_.delta||0);(K/1e3>1||_.key==="Enter"&&!/[^\d]/.test(K.toString()))&&te(K)}function b(_,M,K,Q){if(Array.isArray(M))return M.forEach(se=>b(_,se,K,Q));if(Array.isArray(_))return _.forEach(se=>b(se,M,K,Q));_.addEventListener(M,K,Q),n._handlers.push({remove:()=>_.removeEventListener(M,K,Q)})}function k(){Ue("onChange")}function T(){if(n.config.wrap&&["open","close","toggle","clear"].forEach(M=>{Array.prototype.forEach.call(n.element.querySelectorAll(`[data-${M}]`),K=>b(K,"click",n[M]))}),n.isMobile){qe();return}let _=ou(Lt,50,r);if(n._debouncedChange=ou(k,rS,r),n.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&b(n.daysContainer,"mouseover",M=>{n.config.mode==="range"&&mt(Xt(M))}),b(n._input,"keydown",ct),n.calendarContainer!==void 0&&b(n.calendarContainer,"keydown",ct),!n.config.inline&&!n.config.static&&b(r,"resize",_),r.ontouchstart!==void 0?b(r.document,"touchstart",q):b(r.document,"mousedown",q),b(r.document,"focus",q,{capture:!0}),n.config.clickOpens===!0&&(b(n._input,"focus",n.open),b(n._input,"click",n.open)),n.daysContainer!==void 0&&(b(n.monthNav,"click",Zs),b(n.monthNav,["keyup","increment"],v),b(n.daysContainer,"click",Pt)),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0){let M=K=>Xt(K).select();b(n.timeContainer,["increment"],l),b(n.timeContainer,"blur",l,{capture:!0}),b(n.timeContainer,"click",I),b([n.hourElement,n.minuteElement],["focus","click"],M),n.secondElement!==void 0&&b(n.secondElement,"focus",()=>n.secondElement&&n.secondElement.select()),n.amPM!==void 0&&b(n.amPM,"click",K=>{l(K)})}n.config.allowInput&&b(n._input,"blur",$e)}function D(_,M){let K=_!==void 0?n.parseDate(_):n.latestSelectedDateObj||(n.config.minDate&&n.config.minDate>n.now?n.config.minDate:n.config.maxDate&&n.config.maxDate1),n.calendarContainer.appendChild(_);let M=n.config.appendTo!==void 0&&n.config.appendTo.nodeType!==void 0;if((n.config.inline||n.config.static)&&(n.calendarContainer.classList.add(n.config.inline?"inline":"static"),n.config.inline&&(!M&&n.element.parentNode?n.element.parentNode.insertBefore(n.calendarContainer,n._input.nextSibling):n.config.appendTo!==void 0&&n.config.appendTo.appendChild(n.calendarContainer)),n.config.static)){let K=je(r.document,"div","flatpickr-wrapper");n.element.parentNode&&n.element.parentNode.insertBefore(K,n.element),K.appendChild(n.element),n.altInput&&K.appendChild(n.altInput),K.appendChild(n.calendarContainer)}!n.config.static&&!n.config.inline&&(n.config.appendTo!==void 0?n.config.appendTo:r.document.body).appendChild(n.calendarContainer)}function F(_,M,K,Q){let se=we(M,!0),ie=je(r.document,"span",_,M.getDate().toString());return ie.dateObj=M,ie.$i=Q,ie.setAttribute("aria-label",n.formatDate(M,n.config.ariaDateFormat)),_.indexOf("hidden")===-1&&Qt(M,n.now)===0&&(n.todayDateElem=ie,ie.classList.add("today"),ie.setAttribute("aria-current","date")),se?(ie.tabIndex=-1,Ye(M)&&(ie.classList.add("selected"),n.selectedDateElem=ie,n.config.mode==="range"&&(Nt(ie,"startRange",n.selectedDates[0]&&Qt(M,n.selectedDates[0],!0)===0),Nt(ie,"endRange",n.selectedDates[1]&&Qt(M,n.selectedDates[1],!0)===0),_==="nextMonthDay"&&ie.classList.add("inRange")))):ie.classList.add("flatpickr-disabled"),n.config.mode==="range"&&Jn(M)&&!Ye(M)&&ie.classList.add("inRange"),n.weekNumbers&&n.config.showMonths===1&&_!=="prevMonthDay"&&Q%7==6&&n.weekNumbers.insertAdjacentHTML("beforeend",""+n.config.getWeek(M)+""),Ue("onDayCreate",ie),ie}function U(_){_.focus(),n.config.mode==="range"&&mt(_)}function z(_){let M=_>0?0:n.config.showMonths-1,K=_>0?n.config.showMonths:-1;for(let Q=M;Q!=K;Q+=_){let se=n.daysContainer.children[Q],ie=_>0?0:se.children.length-1,me=_>0?se.children.length:-1;for(let ue=ie;ue!=me;ue+=_){let Pe=se.children[ue];if(Pe.className.indexOf("hidden")===-1&&we(Pe.dateObj))return Pe}}}function ee(_,M){let K=_.className.indexOf("Month")===-1?_.dateObj.getMonth():n.currentMonth,Q=M>0?n.config.showMonths:-1,se=M>0?1:-1;for(let ie=K-n.currentMonth;ie!=Q;ie+=se){let me=n.daysContainer.children[ie],ue=K-n.currentMonth===ie?_.$i+M:M<0?me.children.length-1:0,Pe=me.children.length;for(let Fe=ue;Fe>=0&&Fe0?Pe:-1);Fe+=se){let Me=me.children[Fe];if(Me.className.indexOf("hidden")===-1&&we(Me.dateObj)&&Math.abs(_.$i-Fe)>=Math.abs(M))return U(Me)}}n.changeMonth(se),Z(z(se),0)}function Z(_,M){let K=o(),Q=ke(K||n.element.doc.body),se=_!==void 0?_:Q?K:n.selectedDateElem!==void 0&&ke(n.selectedDateElem)?n.selectedDateElem:n.todayDateElem!==void 0&&ke(n.todayDateElem)?n.todayDateElem:z(M>0?1:-1);se===void 0?n._input.focus():Q?ee(se,M):U(se)}function le(_,M){let K=(new Date(_,M,1).getDay()-n.l10n.firstDayOfWeek+7)%7,Q=n.utils.getDaysInMonth((M-1+12)%12,_),se=n.utils.getDaysInMonth(M,_),ie=r.document.createDocumentFragment(),me=n.config.showMonths>1,ue=me?"prevMonthDay hidden":"prevMonthDay",Pe=me?"nextMonthDay hidden":"nextMonthDay",Fe=Q+1-K,Me=0;for(;Fe<=Q;Fe++,Me++)ie.appendChild(F(`flatpickr-day ${ue}`,new Date(_,M-1,Fe),Fe,Me));for(Fe=1;Fe<=se;Fe++,Me++)ie.appendChild(F("flatpickr-day",new Date(_,M,Fe),Fe,Me));for(let yt=se+1;yt<=42-K&&(n.config.showMonths===1||Me%7!=0);yt++,Me++)ie.appendChild(F(`flatpickr-day ${Pe}`,new Date(_,M+1,yt%se),yt,Me));let jt=je(r.document,"div","dayContainer");return jt.appendChild(ie),jt}function X(){if(n.daysContainer===void 0)return;da(n.daysContainer),n.weekNumbers&&da(n.weekNumbers);let _=n.element.doc.createDocumentFragment();for(let M=0;M1||n.config.monthSelectorType!=="dropdown")return;let _=function(M){return n.config.minDate!==void 0&&n.currentYear===n.config.minDate.getFullYear()&&Mn.config.maxDate.getMonth())};n.monthsDropdownContainer.tabIndex=-1,n.monthsDropdownContainer.innerHTML="";for(let M=0;M<12;M++){if(!_(M))continue;let K=je(r.document,"option","flatpickr-monthDropdown-month");K.value=new Date(n.currentYear,M).getMonth().toString(),K.textContent=ua(M,n.config.shorthandCurrentMonth,n.l10n),K.tabIndex=-1,n.currentMonth===M&&(K.selected=!0),n.monthsDropdownContainer.appendChild(K)}}function re(){let _=je(r.document,"div","flatpickr-month"),M=r.document.createDocumentFragment(),K;n.config.showMonths>1||n.config.monthSelectorType==="static"?K=je(r.document,"span","cur-month"):(n.monthsDropdownContainer=je(r.document,"select","flatpickr-monthDropdown-months"),n.monthsDropdownContainer.setAttribute("aria-label",n.l10n.monthAriaLabel),b(n.monthsDropdownContainer,"change",me=>{let ue=Xt(me),Pe=parseInt(ue.value,10);n.changeMonth(Pe-n.currentMonth),Ue("onMonthChange")}),G(),K=n.monthsDropdownContainer);let Q=fa(r.document,"cur-year",{tabindex:"-1"}),se=Q.getElementsByTagName("input")[0];se.setAttribute("aria-label",n.l10n.yearAriaLabel),n.config.minDate&&se.setAttribute("min",n.config.minDate.getFullYear().toString()),n.config.maxDate&&(se.setAttribute("max",n.config.maxDate.getFullYear().toString()),se.disabled=!!n.config.minDate&&n.config.minDate.getFullYear()===n.config.maxDate.getFullYear());let ie=je(r.document,"div","flatpickr-current-month");return ie.appendChild(K),ie.appendChild(Q),M.appendChild(ie),_.appendChild(M),{container:_,yearElement:se,monthElement:K}}function pe(){da(n.monthNav),n.monthNav.appendChild(n.prevMonthNav),n.config.showMonths&&(n.yearElements=[],n.monthElements=[]);for(let _=n.config.showMonths;_--;){let M=re();n.yearElements.push(M.yearElement),n.monthElements.push(M.monthElement),n.monthNav.appendChild(M.container)}n.monthNav.appendChild(n.nextMonthNav)}function he(){return n.monthNav=je(r.document,"div","flatpickr-months"),n.yearElements=[],n.monthElements=[],n.prevMonthNav=je(r.document,"span","flatpickr-prev-month"),n.prevMonthNav.innerHTML=n.config.prevArrow,n.nextMonthNav=je(r.document,"span","flatpickr-next-month"),n.nextMonthNav.innerHTML=n.config.nextArrow,pe(),Object.defineProperty(n,"_hidePrevMonthArrow",{get:()=>n.__hidePrevMonthArrow,set(_){n.__hidePrevMonthArrow!==_&&(Nt(n.prevMonthNav,"flatpickr-disabled",_),n.__hidePrevMonthArrow=_)}}),Object.defineProperty(n,"_hideNextMonthArrow",{get:()=>n.__hideNextMonthArrow,set(_){n.__hideNextMonthArrow!==_&&(Nt(n.nextMonthNav,"flatpickr-disabled",_),n.__hideNextMonthArrow=_)}}),n.currentYearElement=n.yearElements[0],St(),n.monthNav}function ge(){n.calendarContainer.classList.add("hasTime"),n.config.noCalendar&&n.calendarContainer.classList.add("noCalendar");let _=Ho(n.config);n.timeContainer=je(r.document,"div","flatpickr-time"),n.timeContainer.tabIndex=-1;let M=je(r.document,"span","flatpickr-time-separator",":"),K=fa(r.document,"flatpickr-hour",{"aria-label":n.l10n.hourAriaLabel});n.hourElement=K.getElementsByTagName("input")[0];let Q=fa(r.document,"flatpickr-minute",{"aria-label":n.l10n.minuteAriaLabel});if(n.minuteElement=Q.getElementsByTagName("input")[0],n.hourElement.tabIndex=n.minuteElement.tabIndex=-1,n.hourElement.value=Ot(n.latestSelectedDateObj?n.latestSelectedDateObj.getHours():n.config.time_24hr?_.hours:d(_.hours)),n.minuteElement.value=Ot(n.latestSelectedDateObj?n.latestSelectedDateObj.getMinutes():_.minutes),n.hourElement.setAttribute("step",n.config.hourIncrement.toString()),n.minuteElement.setAttribute("step",n.config.minuteIncrement.toString()),n.hourElement.setAttribute("min",n.config.time_24hr?"0":"1"),n.hourElement.setAttribute("max",n.config.time_24hr?"23":"12"),n.hourElement.setAttribute("maxlength","2"),n.minuteElement.setAttribute("min","0"),n.minuteElement.setAttribute("max","59"),n.minuteElement.setAttribute("maxlength","2"),n.timeContainer.appendChild(K),n.timeContainer.appendChild(M),n.timeContainer.appendChild(Q),n.config.time_24hr&&n.timeContainer.classList.add("time24hr"),n.config.enableSeconds){n.timeContainer.classList.add("hasSeconds");let se=fa(r.document,"flatpickr-second");n.secondElement=se.getElementsByTagName("input")[0],n.secondElement.value=Ot(n.latestSelectedDateObj?n.latestSelectedDateObj.getSeconds():_.seconds),n.secondElement.setAttribute("step",n.minuteElement.getAttribute("step")),n.secondElement.setAttribute("min","0"),n.secondElement.setAttribute("max","59"),n.secondElement.setAttribute("maxlength","2"),n.timeContainer.appendChild(je(r.document,"span","flatpickr-time-separator",":")),n.timeContainer.appendChild(se)}return n.config.time_24hr||(n.amPM=je(r.document,"span","flatpickr-am-pm",n.l10n.amPM[Gt((n.latestSelectedDateObj?n.hourElement.value:n.config.defaultHour)>11)]),n.amPM.title=n.l10n.toggleTitle,n.amPM.tabIndex=-1,n.timeContainer.appendChild(n.amPM)),n.timeContainer}function be(){n.weekdayContainer?da(n.weekdayContainer):n.weekdayContainer=je(r.document,"div","flatpickr-weekdays");for(let _=n.config.showMonths;_--;){let M=je(r.document,"div","flatpickr-weekdaycontainer");n.weekdayContainer.appendChild(M)}return Te(),n.weekdayContainer}function Te(){if(!n.weekdayContainer)return;let _=n.l10n.firstDayOfWeek,M=[...n.l10n.weekdays.shorthand];_>0&&_ ${M.join("")} - `}function L(){n.calendarContainer.classList.add("hasWeeks");let _=je(r.document,"div","flatpickr-weekwrapper");_.appendChild(je(r.document,"span","flatpickr-weekday",n.l10n.weekAbbreviation));let M=je(r.document,"div","flatpickr-weeks");return _.appendChild(M),{weekWrapper:_,weekNumbers:M}}function P(_,M=!0){let K=M?_:_-n.currentMonth;K<0&&n._hidePrevMonthArrow===!0||K>0&&n._hideNextMonthArrow===!0||(n.currentMonth+=K,(n.currentMonth<0||n.currentMonth>11)&&(n.currentYear+=n.currentMonth>11?1:-1,n.currentMonth=(n.currentMonth+12)%12,Ue("onYearChange"),G()),X(),Ue("onMonthChange"),St())}function ct(_=!0,M=!0){if(n.input.value="",n.altInput!==void 0&&(n.altInput.value=""),n.mobileInput!==void 0&&(n.mobileInput.value=""),n.selectedDates=[],n.latestSelectedDateObj=void 0,M===!0&&(n.currentYear=n._initialDate.getFullYear(),n.currentMonth=n._initialDate.getMonth()),n.config.enableTime===!0){let{hours:K,minutes:Q,seconds:se}=Ho(n.config);m(K,Q,se)}n.redraw(),_&&Ue("onChange")}function Ge(){n.isOpen=!1,n.isMobile||(n.calendarContainer!==void 0&&n.calendarContainer.classList.remove("open"),n._input!==void 0&&n._input.classList.remove("active")),Ue("onClose")}function V(){n.config!==void 0&&Ue("onDestroy");for(let _=n._handlers.length;_--;)n._handlers[_].remove();if(n._handlers=[],n.mobileInput)n.mobileInput.parentNode&&n.mobileInput.parentNode.removeChild(n.mobileInput),n.mobileInput=void 0;else if(n.calendarContainer&&n.calendarContainer.parentNode)if(n.config.static&&n.calendarContainer.parentNode){let _=n.calendarContainer.parentNode;if(_.lastChild&&_.removeChild(_.lastChild),_.parentNode){for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.parentNode.removeChild(_)}}else n.calendarContainer.parentNode.removeChild(n.calendarContainer);n.altInput&&(n.input.type="text",n.altInput.parentNode&&n.altInput.parentNode.removeChild(n.altInput),delete n.altInput),n.input&&(n.input.type=n.input._type,n.input.classList.remove("flatpickr-input"),n.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(_=>{try{delete n[_]}catch(M){}})}function j(_){return n.calendarContainer.contains(_)}function q(_){if(n.isOpen&&!n.config.inline){let M=Xt(_),K=j(M),se=!(M===n.input||M===n.altInput||n.element.contains(M)||_.path&&_.path.indexOf&&(~_.path.indexOf(n.input)||~_.path.indexOf(n.altInput)))&&!K&&!j(_.relatedTarget),ie=!n.config.ignoredFocusElements.some(me=>me.contains(M));se&&ie&&(n.config.allowInput&&n.setDate(n._input.value,!1,n.config.altInput?n.config.altFormat:n.config.dateFormat),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0&&n.input.value!==""&&n.input.value!==void 0&&l(),n.close(),n.config&&n.config.mode==="range"&&n.selectedDates.length===1&&n.clear(!1))}}function ee(_){if(!_||n.config.minDate&&_n.config.maxDate.getFullYear())return;let M=_,K=n.currentYear!==M;n.currentYear=M||n.currentYear,n.config.maxDate&&n.currentYear===n.config.maxDate.getFullYear()?n.currentMonth=Math.min(n.config.maxDate.getMonth(),n.currentMonth):n.config.minDate&&n.currentYear===n.config.minDate.getFullYear()&&(n.currentMonth=Math.max(n.config.minDate.getMonth(),n.currentMonth)),K&&(n.redraw(),Ue("onYearChange"),G())}function we(_,M=!0){var ie;let K=n.parseDate(_,void 0,M);if(n.config.minDate&&K&&Qt(K,n.config.minDate,M!==void 0?M:!n.minDateHasTime)<0||n.config.maxDate&&K&&Qt(K,n.config.maxDate,M!==void 0?M:!n.maxDateHasTime)>0)return!1;if(!n.config.enable&&n.config.disable.length===0)return!0;if(K===void 0)return!1;let Q=!!n.config.enable,se=(ie=n.config.enable)!=null?ie:n.config.disable;for(let me=0,ue;me=ue.from.getTime()&&K.getTime()<=ue.to.getTime())return Q}return!Q}function ke(_){return n.daysContainer!==void 0?_.className.indexOf("hidden")===-1&&_.className.indexOf("flatpickr-disabled")===-1&&n.daysContainer.contains(_):!1}function $e(_){let M=_.target===n._input,K=n._input.value.trimEnd()!==Si();M&&K&&!(_.relatedTarget&&j(_.relatedTarget))&&n.setDate(n._input.value,!0,_.target===n.altInput?n.config.altFormat:n.config.dateFormat)}function ut(_){let M=Xt(_),K=n.config.wrap?e.contains(M):M===n._input,Q=n.config.allowInput,se=n.isOpen&&(!Q||!K),ie=n.config.inline&&K&&!Q;if(_.keyCode===13&&K){if(Q)return n.setDate(n._input.value,!0,M===n.altInput?n.config.altFormat:n.config.dateFormat),n.close(),M.blur();n.open()}else if(j(M)||se||ie){let me=!!n.timeContainer&&n.timeContainer.contains(M);switch(_.keyCode){case 13:me?(_.preventDefault(),l(),Yn()):Pt(_);break;case 27:_.preventDefault(),Yn();break;case 8:case 46:K&&!n.config.allowInput&&(_.preventDefault(),n.clear());break;case 37:case 39:if(!me&&!K){_.preventDefault();let ue=o();if(n.daysContainer!==void 0&&(Q===!1||ue&&ke(ue))){let Pe=_.keyCode===39?1:-1;_.ctrlKey?(_.stopPropagation(),P(Pe),Z(W(1),0)):Z(void 0,Pe)}}else n.hourElement&&n.hourElement.focus();break;case 38:case 40:{_.preventDefault();let ue=_.keyCode===40?1:-1;n.daysContainer&&M.$i!==void 0||M===n.input||M===n.altInput?_.ctrlKey?(_.stopPropagation(),ee(n.currentYear-ue),Z(W(1),0)):me||Z(void 0,ue*7):M===n.currentYearElement?ee(n.currentYear-ue):n.config.enableTime&&(!me&&n.hourElement&&n.hourElement.focus(),l(_),n._debouncedChange());break}case 9:if(me){let ue=[n.hourElement,n.minuteElement,n.secondElement,n.amPM].concat(n.pluginElements).filter(Fe=>Fe),Pe=ue.indexOf(M);if(Pe!==-1){let Fe=ue[Pe+(_.shiftKey?-1:1)];_.preventDefault(),(Fe||n._input).focus()}}else!n.config.noCalendar&&n.daysContainer&&n.daysContainer.contains(M)&&_.shiftKey&&(_.preventDefault(),n._input.focus());break;default:break}}if(n.amPM!==void 0&&M===n.amPM)switch(_.key){case n.l10n.amPM[0].charAt(0):case n.l10n.amPM[0].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[0],f(),vn();break;case n.l10n.amPM[1].charAt(0):case n.l10n.amPM[1].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[1],f(),vn();break}(K||j(M))&&Ue("onKeyDown",_)}function ht(_,M="flatpickr-day"){if(n.selectedDates.length!==1||_&&(!_.classList.contains(M)||_.classList.contains("flatpickr-disabled")))return;let K=_?_.dateObj.getTime():n.days.firstElementChild.dateObj.getTime(),Q=n.parseDate(n.selectedDates[0],void 0,!0).getTime(),se=Math.min(K,n.selectedDates[0].getTime()),ie=Math.max(K,n.selectedDates[0].getTime()),me=!1,ue=0,Pe=0;for(let Me=se;Mese&&Meue)?ue=Me:Me>Q&&(!Pe||Me .${M}`)).forEach(Me=>{let gt=Me.dateObj.getTime(),Gn=ue>0&>0&>>Pe;if(Gn){Me.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(Qn=>{Me.classList.remove(Qn)});return}else if(me&&!Gn)return;["startRange","inRange","endRange","notAllowed"].forEach(Qn=>{Me.classList.remove(Qn)}),_!==void 0&&(_.classList.add(K<=n.selectedDates[0].getTime()?"startRange":"endRange"),QK&>===Q&&Me.classList.add("endRange"),gt>=ue&&(Pe===0||gt<=Pe)&&kg(gt,Q,K)&&Me.classList.add("inRange"))})}function Lt(){n.isOpen&&!n.config.static&&!n.config.inline&&Fn()}function An(_,M=n._positionElement){if(n.isMobile===!0){if(_){_.preventDefault();let Q=Xt(_);Q&&Q.blur()}n.mobileInput!==void 0&&(n.mobileInput.focus(),n.mobileInput.click()),Ue("onOpen");return}else if(n._input.disabled||n.config.inline)return;let K=n.isOpen;n.isOpen=!0,K||(n.calendarContainer.classList.add("open"),n._input.classList.add("active"),Ue("onOpen"),Fn(M)),n.config.enableTime===!0&&n.config.noCalendar===!0&&n.config.allowInput===!1&&(_===void 0||!n.timeContainer.contains(_.relatedTarget))&&setTimeout(()=>n.hourElement.select(),50)}function Ln(_){return M=>{let K=n.config[`_${_}Date`]=n.parseDate(M,n.config.dateFormat),Q=n.config[`_${_==="min"?"max":"min"}Date`];K!==void 0&&(n[_==="min"?"minDateHasTime":"maxDateHasTime"]=K.getHours()>0||K.getMinutes()>0||K.getSeconds()>0),n.selectedDates&&(n.selectedDates=n.selectedDates.filter(se=>we(se)),!n.selectedDates.length&&_==="min"&&p(K),vn()),n.daysContainer&&(Br(),K!==void 0?n.currentYearElement[_]=K.getFullYear().toString():n.currentYearElement.removeAttribute(_),n.currentYearElement.disabled=!!Q&&K!==void 0&&Q.getFullYear()===K.getFullYear())}}function Pn(){let _=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],M={...JSON.parse(JSON.stringify(e.dataset||{})),...t},K={};n.config.parseDate=M.parseDate,n.config.formatDate=M.formatDate,Object.defineProperty(n.config,"enable",{get:()=>n.config._enable,set:ie=>{n.config._enable=Ee(ie)}}),Object.defineProperty(n.config,"disable",{get:()=>n.config._disable,set:ie=>{n.config._disable=Ee(ie)}});let Q=M.mode==="time";if(!M.dateFormat&&(M.enableTime||Q)){let ie=pt.defaultConfig.dateFormat||or.dateFormat;K.dateFormat=M.noCalendar||Q?"H:i"+(M.enableSeconds?":S":""):ie+" H:i"+(M.enableSeconds?":S":"")}if(M.altInput&&(M.enableTime||Q)&&!M.altFormat){let ie=pt.defaultConfig.altFormat||or.altFormat;K.altFormat=M.noCalendar||Q?"h:i"+(M.enableSeconds?":S K":" K"):ie+` h:i${M.enableSeconds?":S":""} K`}Object.defineProperty(n.config,"minDate",{get:()=>n.config._minDate,set:Ln("min")}),Object.defineProperty(n.config,"maxDate",{get:()=>n.config._maxDate,set:Ln("max")});let se=ie=>me=>{n.config[ie==="min"?"_minTime":"_maxTime"]=n.parseDate(me,"H:i:S")};Object.defineProperty(n.config,"minTime",{get:()=>n.config._minTime,set:se("min")}),Object.defineProperty(n.config,"maxTime",{get:()=>n.config._maxTime,set:se("max")}),M.mode==="time"&&(n.config.noCalendar=!0,n.config.enableTime=!0),Object.assign(n.config,K,M);for(let ie=0;ie<_.length;ie++)n.config[_[ie]]=n.config[_[ie]]===!0||n.config[_[ie]]==="true";Fo.filter(ie=>n.config[ie]!==void 0).forEach(ie=>{n.config[ie]=Oo(n.config[ie]||[]).map(s)}),n.isMobile=!n.config.disableMobile&&!n.config.inline&&n.config.mode==="single"&&!n.config.disable.length&&!n.config.enable&&!n.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(let ie=0;ie-1?n.config[ue]=Oo(me[ue]).map(s).concat(n.config[ue]):typeof M[ue]=="undefined"&&(n.config[ue]=me[ue])}M.altInputClass||(n.config.altInputClass=hn().className+" "+n.config.altInputClass),Ue("onParseConfig")}function hn(){return n.config.wrap?e.querySelector("[data-input]"):e}function mn(){typeof n.config.locale!="object"&&typeof pt.l10ns[n.config.locale]=="undefined"&&n.config.errorHandler(new Error(`flatpickr: invalid locale ${n.config.locale}`)),n.l10n={...pt.l10ns.default,...typeof n.config.locale=="object"?n.config.locale:n.config.locale!=="default"?pt.l10ns[n.config.locale]:void 0},$n.D=`(${n.l10n.weekdays.shorthand.join("|")})`,$n.l=`(${n.l10n.weekdays.longhand.join("|")})`,$n.M=`(${n.l10n.months.shorthand.join("|")})`,$n.F=`(${n.l10n.months.longhand.join("|")})`,$n.K=`(${n.l10n.amPM[0]}|${n.l10n.amPM[1]}|${n.l10n.amPM[0].toLowerCase()}|${n.l10n.amPM[1].toLowerCase()})`,{...t,...JSON.parse(JSON.stringify(e.dataset||{}))}.time_24hr===void 0&&pt.defaultConfig.time_24hr===void 0&&(n.config.time_24hr=n.l10n.time_24hr),n.formatDate=su(n),n.parseDate=No({config:n.config,l10n:n.l10n})}function Fn(_){if(typeof n.config.position=="function")return void n.config.position(n,_);if(n.calendarContainer===void 0)return;Ue("onPreCalendarPosition");let M=_||n._positionElement,K=Array.prototype.reduce.call(n.calendarContainer.children,(hr,Di)=>hr+Di.offsetHeight,0),Q=n.calendarContainer.offsetWidth,se=n.config.position.split(" "),ie=se[0],me=se.length>1?se[1]:null,ue=M.getBoundingClientRect(),Pe=r.innerHeight-ue.bottom,Fe=ie==="above"||ie!=="below"&&PeK,Me=r.pageYOffset+ue.top+(Fe?-K-2:M.offsetHeight+2);if(Nt(n.calendarContainer,"arrowTop",!Fe),Nt(n.calendarContainer,"arrowBottom",Fe),n.config.inline)return;let jt=r.pageXOffset+ue.left,gt=!1,Gn=!1;me==="center"?(jt-=(Q-ue.width)/2,gt=!0):me==="right"&&(jt-=Q-ue.width,Gn=!0),Nt(n.calendarContainer,"arrowLeft",!gt&&!Gn),Nt(n.calendarContainer,"arrowCenter",gt),Nt(n.calendarContainer,"arrowRight",Gn);let Qn=r.document.body.offsetWidth-(r.pageXOffset+ue.right),_i=jt+Q>r.document.body.offsetWidth,Ha=Qn+Q>r.document.body.offsetWidth;if(Nt(n.calendarContainer,"rightMost",_i),!n.config.static)if(n.calendarContainer.style.top=`${Me}px`,!_i)n.calendarContainer.style.left=`${jt}px`,n.calendarContainer.style.right="auto";else if(!Ha)n.calendarContainer.style.left="auto",n.calendarContainer.style.right=`${Qn}px`;else{let hr=Rr();if(hr===void 0)return;let Di=r.document.body.offsetWidth,Zs=Math.max(0,Di/2-Q/2),el=".flatpickr-calendar.centerMost:before",Jd=".flatpickr-calendar.centerMost:after",F=hr.cssRules.length,w=`{left:${ue.left}px;right:auto;}`;Nt(n.calendarContainer,"rightMost",!1),Nt(n.calendarContainer,"centerMost",!0),hr.insertRule(`${el},${Jd}${w}`,F),n.calendarContainer.style.left=`${Zs}px`,n.calendarContainer.style.right="auto"}}function Rr(){let _=null;for(let M=0;Mme.classList&&me.classList.contains("flatpickr-day")&&!me.classList.contains("flatpickr-disabled")&&!me.classList.contains("notAllowed"),K=lu(Xt(_),M);if(K===void 0)return;let Q=K,se=n.latestSelectedDateObj=new Date(Q.dateObj.getTime()),ie=(se.getMonth()n.currentMonth+n.config.showMonths-1)&&n.config.mode!=="range";if(n.selectedDateElem=Q,n.config.mode==="single")n.selectedDates=[se];else if(n.config.mode==="multiple"){let me=Ye(se);me?n.selectedDates.splice(parseInt(me),1):n.selectedDates.push(se)}else n.config.mode==="range"&&(n.selectedDates.length===2&&n.clear(!1,!1),n.latestSelectedDateObj=se,n.selectedDates.push(se),Qt(se,n.selectedDates[0],!0)!==0&&n.selectedDates.sort((me,ue)=>me.getTime()-ue.getTime()));if(f(),ie){let me=n.currentYear!==se.getFullYear();n.currentYear=se.getFullYear(),n.currentMonth=se.getMonth(),me&&(Ue("onYearChange"),G()),Ue("onMonthChange")}if(St(),X(),vn(),!ie&&n.config.mode!=="range"&&n.config.showMonths===1?U(Q):n.selectedDateElem!==void 0&&n.hourElement===void 0&&n.selectedDateElem&&n.selectedDateElem.focus(),n.hourElement!==void 0&&n.hourElement!==void 0&&n.hourElement.focus(),n.config.closeOnSelect){let me=n.config.mode==="single"&&!n.config.enableTime,ue=n.config.mode==="range"&&n.selectedDates.length===2&&!n.config.enableTime;(me||ue)&&Yn()}k()}let Kt={locale:[mn,Te],showMonths:[pe,u,be],minDate:[D],maxDate:[D],positionElement:[gn],clickOpens:[()=>{n.config.clickOpens===!0?(b(n._input,"focus",n.open),b(n._input,"click",n.open)):(n._input.removeEventListener("focus",n.open),n._input.removeEventListener("click",n.open))}]};function mt(_,M){if(_!==null&&typeof _=="object"){Object.assign(n.config,_);for(let K in _)Kt[K]!==void 0&&Kt[K].forEach(Q=>Q())}else n.config[_]=M,Kt[_]!==void 0?Kt[_].forEach(K=>K()):Fo.indexOf(_)>-1&&(n.config[_]=Oo(M));n.redraw(),vn(!0)}function Y(_,M){let K=[];if(Array.isArray(_))K=_.map(Q=>n.parseDate(Q,M));else if(_.getDate||typeof _=="number")K=[n.parseDate(_,M)];else if(typeof _=="string")switch(n.config.mode){case"single":case"time":K=[n.parseDate(_,M)];break;case"multiple":K=_.split(n.config.conjunction).map(Q=>n.parseDate(Q,M));break;case"range":K=_.split(n.l10n.rangeSeparator).map(Q=>n.parseDate(Q,M));break;default:break}else n.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(_)}`));n.selectedDates=n.config.allowInvalidPreload?K:K.filter(Q=>Q.getDate&&we(Q,!1)),n.config.mode==="range"&&n.selectedDates.sort((Q,se)=>Q.getTime()-se.getTime())}function oe(_,M=!1,K=n.config.dateFormat){if(_!==0&&!_||Array.isArray(_)&&_.length===0)return n.clear(M);Y(_,K),n.latestSelectedDateObj=n.selectedDates[n.selectedDates.length-1],n.redraw(),D(void 0,M),p(),n.selectedDates.length===0&&n.clear(!1),vn(M),M&&Ue("onChange")}function Ee(_){return _.slice().map(M=>typeof M=="string"||typeof M=="number"||M.getDate?n.parseDate(M,void 0,!0):M&&typeof M=="object"&&M.from&&M.to?{from:n.parseDate(M.from,void 0),to:n.parseDate(M.to,void 0)}:M).filter(M=>M)}function We(){n.selectedDates=[],n.now=n.parseDate(n.config.now)||new Date;let _=n.config.defaultDate||((n.input.nodeName==="INPUT"||n.input.nodeName==="TEXTAREA")&&n.input.placeholder&&n.input.value===n.input.placeholder?null:n.input.value);_&&Y(_,n.config.dateFormat),n._initialDate=n.selectedDates.length>0?n.selectedDates[0]:n.config.minDate&&n.config.minDate.getTime()>n.now.getTime()?n.config.minDate:n.config.maxDate&&n.config.maxDate.getTime()0&&(n.latestSelectedDateObj=n.selectedDates[0]),n.config.minTime!==void 0&&(n.config.minTime=n.parseDate(n.config.minTime,"H:i")),n.config.maxTime!==void 0&&(n.config.maxTime=n.parseDate(n.config.maxTime,"H:i")),n.minDateHasTime=!!n.config.minDate&&(n.config.minDate.getHours()>0||n.config.minDate.getMinutes()>0||n.config.minDate.getSeconds()>0),n.maxDateHasTime=!!n.config.maxDate&&(n.config.maxDate.getHours()>0||n.config.maxDate.getMinutes()>0||n.config.maxDate.getSeconds()>0)}function kt(){if(n.input=hn(),!n.input){n.config.errorHandler(new Error("Invalid input element specified"));return}n.input._type=n.input.type,n.input.type="text",n.input.classList.add("flatpickr-input"),n._input=n.input,n.config.altInput&&(n.altInput=je(r.document,n.input.nodeName,n.config.altInputClass),n._input=n.altInput,n.altInput.placeholder=n.input.placeholder,n.altInput.disabled=n.input.disabled,n.altInput.required=n.input.required,n.altInput.tabIndex=n.input.tabIndex,n.altInput.type="text",n.input.setAttribute("type","hidden"),!n.config.static&&n.input.parentNode&&n.input.parentNode.insertBefore(n.altInput,n.input.nextSibling)),n.config.allowInput||n._input.setAttribute("readonly","readonly"),gn()}function gn(){n._positionElement=n.config.positionElement||n._input}function qe(){let _=n.config.enableTime?n.config.noCalendar?"time":"datetime-local":"date";n.mobileInput=je(r.document,"input",n.input.className+" flatpickr-mobile"),n.mobileInput.tabIndex=1,n.mobileInput.type=_,n.mobileInput.disabled=n.input.disabled,n.mobileInput.required=n.input.required,n.mobileInput.placeholder=n.input.placeholder,n.mobileFormatStr=_==="datetime-local"?"Y-m-d\\TH:i:S":_==="date"?"Y-m-d":"H:i:S",n.selectedDates.length>0&&(n.mobileInput.defaultValue=n.mobileInput.value=n.formatDate(n.selectedDates[0],n.mobileFormatStr)),n.config.minDate&&(n.mobileInput.min=n.formatDate(n.config.minDate,"Y-m-d")),n.config.maxDate&&(n.mobileInput.max=n.formatDate(n.config.maxDate,"Y-m-d")),n.input.getAttribute("step")&&(n.mobileInput.step=String(n.input.getAttribute("step"))),n.input.type="hidden",n.altInput!==void 0&&(n.altInput.type="hidden");try{n.input.parentNode&&n.input.parentNode.insertBefore(n.mobileInput,n.input.nextSibling)}catch(M){}b(n.mobileInput,"change",M=>{n.setDate(Xt(M).value,!1,n.mobileFormatStr),Ue("onChange"),Ue("onClose")})}function at(_){if(n.isOpen===!0)return n.close();n.open(_)}function Ue(_,M){if(n.config===void 0)return;let K=n.config[_];if(K!==void 0&&K.length>0)for(let Q=0;K[Q]&&Q=0&&Qt(_,n.selectedDates[1])<=0}function St(){n.config.noCalendar||n.isMobile||!n.monthNav||(n.yearElements.forEach((_,M)=>{let K=new Date(n.currentYear,n.currentMonth,1);K.setMonth(n.currentMonth+M),n.config.showMonths>1||n.config.monthSelectorType==="static"?n.monthElements[M].textContent=ca(K.getMonth(),n.config.shorthandCurrentMonth,n.l10n)+" ":n.monthsDropdownContainer.value=K.getMonth().toString(),_.value=K.getFullYear().toString()}),n._hidePrevMonthArrow=n.config.minDate!==void 0&&(n.currentYear===n.config.minDate.getFullYear()?n.currentMonth<=n.config.minDate.getMonth():n.currentYearn.config.maxDate.getMonth():n.currentYear>n.config.maxDate.getFullYear()))}function Si(_){let M=_||(n.config.altInput?n.config.altFormat:n.config.dateFormat);return n.selectedDates.map(K=>n.formatDate(K,M)).filter((K,Q,se)=>n.config.mode!=="range"||n.config.enableTime||se.indexOf(K)===Q).join(n.config.mode!=="range"?n.config.conjunction:n.l10n.rangeSeparator)}function vn(_=!0){n.mobileInput!==void 0&&n.mobileFormatStr&&(n.mobileInput.value=n.latestSelectedDateObj!==void 0?n.formatDate(n.latestSelectedDateObj,n.mobileFormatStr):""),n.input.value=Si(n.config.dateFormat),n.altInput!==void 0&&(n.altInput.value=Si(n.config.altFormat)),_!==!1&&Ue("onValueUpdate")}function Xs(_){let M=Xt(_),K=n.prevMonthNav.contains(M),Q=n.nextMonthNav.contains(M);K||Q?P(K?-1:1):n.yearElements.indexOf(M)>=0?M.select():M.classList.contains("arrowUp")?n.changeYear(n.currentYear+1):M.classList.contains("arrowDown")&&n.changeYear(n.currentYear-1)}function Ra(_){_.preventDefault();let M=_.type==="keydown",K=Xt(_),Q=K;n.amPM!==void 0&&K===n.amPM&&(n.amPM.textContent=n.l10n.amPM[Gt(n.amPM.textContent===n.l10n.amPM[0])]);let se=parseFloat(Q.getAttribute("min")),ie=parseFloat(Q.getAttribute("max")),me=parseFloat(Q.getAttribute("step")),ue=parseInt(Q.value,10),Pe=_.delta||(M?_.which===38?1:-1:0),Fe=ue+me*Pe;if(typeof Q.value!="undefined"&&Q.value.length===2){let Me=Q===n.hourElement,jt=Q===n.minuteElement;Feie&&(Fe=Q===n.hourElement?Fe-ie-Gt(!n.amPM):se,jt&&B(void 0,1,n.hourElement)),n.amPM&&Me&&(me===1?Fe+ue===23:Math.abs(Fe-ue)>me)&&(n.amPM.textContent=n.l10n.amPM[Gt(n.amPM.textContent===n.l10n.amPM[0])]),Q.value=Ot(Fe)}}return a(),n}function Bo(e,t){let r=Array.prototype.slice.call(e).filter(i=>i.onClickEvent),n=[];for(let i=0;i{pt.l10ns.default={...pt.l10ns.default,...e}};pt.setDefaults=e=>{pt.defaultConfig={...pt.defaultConfig,...e}};pt.parseDate=No({});pt.formatDate=su({});pt.compareDates=Qt;typeof jQuery!="undefined"&&typeof jQuery.fn!="undefined"&&(jQuery.fn.flatpickr=function(e){return Bo(this,e)});Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof e=="string"?parseInt(e,10):e))};typeof window!="undefined"&&(window.flatpickr=pt);var Ko=pt;function $o(e,t,r,n,i){return e.document.body.createDiv({cls:`${z("date-picker")} ${z("ignore-click-outside")}`},a=>{a.style.left=`${r.x||0}px`,a.style.top=`${r.y||0}px`,a.createEl("input",{type:"text"},o=>{setTimeout(()=>{let s=null,u=d=>{d.target instanceof d.view.HTMLElement&&d.target.closest(`.${z("date-picker")}`)===null&&c()},l=d=>{d.key==="Escape"&&c()},c=()=>{s.destroy(),a.remove(),e.document.body.removeEventListener("click",u),e.document.removeEventListener("keydown",l)};s=Ko(o,{locale:Po(t),defaultDate:i,inline:!0,onChange:d=>{n(d),c()},win:e}),setTimeout(()=>{let d=a.clientHeight,f=a.clientWidth;r.y+d>e.innerHeight&&(a.style.top=`${(r.y||0)-d}px`),r.x+f>e.innerWidth&&(a.style.left=`${(r.x||0)-f}px`)}),e.document.body.addEventListener("click",u),e.document.addEventListener("keydown",l)})})})}function Uo({stateManager:e,boardModifiers:t,item:r,hasDate:n,path:i}){let a=e.getSetting("date-format"),o=e.getSetting("link-date-to-daily-note"),s=e.getSetting("date-trigger"),u=o?"(?:\\[[^\\]]+\\]\\([^)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",l=new RegExp(`(^|\\s)${Sn(s)}${u}`);return c=>{let d=c[0],f=(0,nt.moment)(d).format(a),p=o?Io(e.app,f):`{${f}}`,m=r.data.titleRaw;n?m=r.data.titleRaw.replace(l,`$1${s}${p}`):m=`${r.data.titleRaw} ${s}${p}`,e.updateItemContent(r,m).then(y=>{t.updateItem(i,y)}).catch(y=>{e.setError(y),console.error(y)})}}function cu(e){let t=e.getSetting("time-format"),r=[];for(let n=0;n<24;n++)r.push((0,nt.moment)({hour:n}).format(t)),r.push((0,nt.moment)({hour:n,minute:15}).format(t)),r.push((0,nt.moment)({hour:n,minute:30}).format(t)),r.push((0,nt.moment)({hour:n,minute:45}).format(t));return r}function Vo(e,t,r,n,i){let a=z("time-picker"),o=t.getSetting("time-format"),s=i==null?void 0:i.format(o);e.document.body.createDiv({cls:`${a} ${z("ignore-click-outside")}`},u=>{let l=cu(t),c=b=>{b.target instanceof b.view.HTMLElement&&b.target.hasClass(z("time-picker-item"))&&b.target.dataset.value&&(n(b.target.dataset.value),p())},d=b=>{b.target instanceof b.view.HTMLElement&&b.target.closest(`.${a}`)===null&&p()},f=b=>{b.key==="Escape"&&p()},p=()=>{u.remove(),u.removeEventListener("click",c),e.document.body.removeEventListener("click",d),e.document.removeEventListener("keydown",f)};u.style.left=`${r.x||0}px`,u.style.top=`${r.y||0}px`;let m=null,y=null;l.forEach((b,k)=>{let T=b===s;u.createDiv({cls:`${z("time-picker-item")} ${T?"is-selected":""}`,text:b},D=>{D.createEl("span",{cls:z("time-picker-check"),prepend:!0},A=>{(0,nt.setIcon)(A,"checkmark")}),k%4==0&&D.addClass("is-hour"),D.dataset.value=b,T&&(m=D),k===Math.floor(l.length/2)&&(y=D)})}),setTimeout(()=>{var T;let b=u.clientHeight,k=u.clientWidth;r.y+b>e.innerHeight&&(u.style.top=`${(r.y||0)-b}px`),r.x+k>e.innerWidth&&(u.style.left=`${(r.x||0)-k}px`),(T=m||y)==null||T.scrollIntoView({block:"center",inline:"nearest"}),u.addEventListener("click",c),e.document.body.addEventListener("click",d),e.document.addEventListener("keydown",f)})})}function zo({stateManager:e,boardModifiers:t,item:r,hasTime:n,path:i}){let a=e.getSetting("time-trigger"),o=new RegExp(`(^|\\s)${Sn(a)}{([^}]+)}`);return s=>{let u=r.data.titleRaw;n?u=r.data.titleRaw.replace(o,`$1${a}{${s}}`):u=`${r.data.titleRaw} ${a}{${s}}`,e.updateItemContent(r,u).then(l=>{t.updateItem(i,l)}).catch(l=>{e.setError(l),console.error(l)})}}function Dg(e){let t=e.data.metadata.date,r=[];t&&(t.isSame(new Date,"day")&&r.push("is-today"),t.isAfter(new Date,"day")&&r.push("is-future"),t.isBefore(new Date,"day")&&r.push("is-past")),e.data.isComplete&&r.push("is-complete");for(let n of e.data.metadata.tags)r.push(`has-tag-${n.slice(1)}`);return r}function Tr(e,t,r,n){return e.app.fileManager.generateMarkdownLink(t,r,n)}function aS(e,t,r){return nt.htmlToMarkdown?(0,nt.htmlToMarkdown)(r):nt.MarkdownSourceView.prototype.handleDataTransfer.call({app:e.app},t)}function oS(e){return e.replace(/^\[(.*)\]\(app:\/\/obsidian.md\/(.*)\)$/,"[$1]($2)")}function uu(){var t;let e=window.require("electron").remote.clipboard;if(process.platform==="darwin"){if(e.has("NSFilenamesPboardType"))return((t=e.read("NSFilenamesPboardType").match(/.*<\/string>/g))==null?void 0:t.map(r=>r.replace(/|<\/string>/g,"")))||[];{let r=e.readImage("clipboard");return r.isEmpty()?[e.read("public.file-url").replace("file://","")].filter(n=>n):[{buffer:r.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,nt.moment)().format("YYYYMMDDHHmmss")}.png`}]}}else if(e.has("CF_HDROP")){let r=e.read("CF_HDROP")||"",n=[...r].filter((a,o)=>r.charCodeAt(o)!==0).join("").replace(/\\/g,"\\"),i=n.match(/[a-zA-Z]:\\/);if(i){let a=n.indexOf(i[0]);return a!==0&&(n=n.slice(a)),n.split(i[0]).filter(o=>o).map(o=>i+o)}}else{let r=e.readImage("clipboard");return r.isEmpty()?[e.readBuffer("FileNameW").toString("ucs2").replace(RegExp(String.fromCharCode(0),"g"),"")].filter(n=>n):[{buffer:r.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,nt.moment)().format("YYYYMMDDHHmmss")}.png`}]}return null}function sS(e){return e.split("\\").pop().split("/").pop()}async function lS(e,t,r,n){let i=await e.app.vault.getAvailablePathForAttachments(t,r,e.file),a=await e.app.vault.createBinary(i,n);return Tr(e,a,e.file.path)}async function cS(e){let t=uu();if(!t||t.length===0)return null;let r=window.require("fs/promises"),n=window.require("path");return(await Promise.all(t.map(async i=>{if(typeof i=="string"){let o=sS(i).split("."),s=o.pop(),u=o.join("."),l=await e.app.vault.getAvailablePathForAttachments(u,s,e.file),c=e.app.vault.adapter.basePath;await r.copyFile(i,n.join(c,l)),await new Promise(f=>setTimeout(f,50));let d=e.app.vault.getAbstractFileByPath(l);return Tr(e,d,e.file.path)}else{let a=i.originalName.split("."),o=a.pop(),s=a.join(".");return await lS(e,s,o,i.buffer)}}))).filter(i=>i)}function Cg(e,t,r){return Promise.all(t.map(n=>{let i=n.name.split("."),a=i.pop(),o=i.join(".");if(r){switch(n.type){case"text/jpg":a="jpg";break;case"text/jpeg":a="jpeg";break;case"text/png":a="png";break}o="Pasted image "+(0,nt.moment)().format("YYYYMMDDHHmmss")}return new Promise((s,u)=>{let l=new FileReader;l.onload=async c=>{try{let d=await e.app.vault.getAvailablePathForAttachments(o,a,e.file),f=await e.app.vault.createBinary(d,c.target.result);s(Tr(e,f,e.file.path))}catch(d){console.error(d),u(d)}},l.readAsArrayBuffer(n)})}))}async function uS(e,t){let r=!t.view,n=r?e.getAView().isShiftPressed:!1,i=r?t.clipboardData:t.dataTransfer,a=r&&nt.Platform.isDesktopApp?window.require("electron").remote.clipboard:null,o=a?a.availableFormats():[];if(r){if(r&&!n&&!o.includes("text/rtf")){if(nt.Platform.isDesktopApp){let p=await cS(e);if(p==null?void 0:p.length)return p}let d=[],f=t.clipboardData.items;for(let p in f){let m=f[p];m.kind==="file"&&d.push(m.getAsFile())}if(d.length)return await Cg(e,d,!0)}}else{let d=await jl(t);if(d.length)return await Cg(e,d)}let s=i.getData("text/html"),u=i.getData("text/plain"),l=i.getData("text/uri-list"),c=n?u||s:aS(e,i,s);return[oS(c||l||u||s||"").trim()]}async function Wo(e,t){let r=e.app.dragManager.draggable,n=t.view?t.dataTransfer:t.clipboardData;switch(r==null?void 0:r.type){case"file":return[Tr(e,r.file,e.file.path)];case"files":return r.files.map(i=>Tr(e,i,e.file.path));case"folder":return r.file.children.map(i=>i instanceof nt.TFolder?null:Tr(e,i,e.file.path)).filter(i=>i);case"link":{let i=r.file?Tr(e,r.file,(0,nt.parseLinktext)(r.linktext).subpath):`[[${r.linktext}]]`,a=new DOMParser().parseFromString(n.getData("text/html"),"text/html").documentElement.textContent;return i=i.replace(/]]$/,`|${a}]]`).replace(/^\[[^\]].+]\(/,`[${a}](`),[i]}default:return await uS(e,t)}}h();h();var En;(function(i){i[i.TitleAsc=0]="TitleAsc",i[i.TitleDsc=1]="TitleDsc",i[i.DateAsc=2]="DateAsc",i[i.DateDsc=3]="DateDsc"})(En||(En={}));var Ze={Item:"item",Lane:"lane",Board:"board",MetadataSetting:"metadata-setting"},jo={accepts:[Ze.Item],type:Ze.Item,children:[]},sr={accepts:[Ze.Lane],type:Ze.Lane},qo={accepts:[],type:Ze.Board},Yo={accepts:[Ze.MetadataSetting],type:Ze.MetadataSetting,children:[]};function du(e,t,r,n,i){let a="htmldnd",o=ze(),s=e-75,u=e+75,l=t-25,c=t+25;return{scopeId:a,entityId:`${a}-${o}`,initial:[s,l,u,c],getParentScrollState(){return tn},getParentScrollShift(){return _n},recalcInitial(){},getHitbox(){return this.initial},getPath(){return[]},getData(){return{viewId:n,type:Ze.Item,id:o,content:r,accepts:[],win:i}}}}var pu=class{constructor(t,r,n){this.isHTMLDragging=!1;this.dragOverTimeout=0;this.hitboxEntities=r,this.scrollEntities=n,this.emitter=t}getDragEventData(){return{dragEntity:this.dragEntity,dragEntityId:this.dragEntityId,dragEntityMargin:this.dragEntityMargin,dragOrigin:this.dragOrigin,dragOriginHitbox:this.dragOriginHitbox,dragPosition:this.dragPosition,primaryIntersection:this.primaryIntersection,scrollIntersection:this.scrollIntersection}}dragStart(t,r){var a,o;let n=(r==null?void 0:r.dataset.hitboxid)||t.currentTarget.dataset.hitboxid;if(!n)return;let i=getComputedStyle(r||t.currentTarget);this.dragEntityId=n,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=(a=this.hitboxEntities.get(t.view))==null?void 0:a.get(n),this.dragOriginHitbox=(o=this.dragEntity)==null?void 0:o.getHitbox(),this.dragEntityMargin=[parseFloat(i.marginLeft)||0,parseFloat(i.marginTop)||0,parseFloat(i.marginRight)||0,parseFloat(i.marginBottom)||0],this.emitter.emit("dragStart",this.getDragEventData())}dragStartHTML(t,r){this.isHTMLDragging=!0;let n=du(t.pageX,t.pageY,[],r,t.view);this.dragEntityId=n.entityId,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=n,this.dragOriginHitbox=n.getHitbox(),this.dragEntityMargin=[0,0,0,0],this.emitter.emit("dragStart",this.getDragEventData())}dragMove(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragMoveHTML(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragEnd(t){this.emitter.emit("dragEnd",this.getDragEventData()),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0}dragEndHTML(t,r,n,i){this.isHTMLDragging=!1,i||(this.dragEntity=du(t.pageX,t.pageY,n,r,t.view),this.emitter.emit("dragEnd",this.getDragEventData())),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0,i&&this.emitter.emit("dragEnd",this.getDragEventData())}onHTMLDragLeave(t){clearTimeout(this.dragOverTimeout),this.dragOverTimeout=window.setTimeout(t,351)}calculateDragIntersect(){if(!this.dragEntity||!this.dragPosition||!this.dragOrigin||!this.dragOriginHitbox)return;let{type:t,win:r}=this.dragEntity.getData(),n=[],i=[],a=[],o=[];if(this.hitboxEntities.has(r)&&this.hitboxEntities.get(r).forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(n.push(l),i.push(l.getHitbox()))}),this.scrollEntities.has(r)&&this.scrollEntities.get(r).forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(a.push(l),o.push(l.getHitbox()))}),n.length===0&&a.length===0)return;let s=ap(this.dragOriginHitbox,this.dragOrigin,this.dragPosition);this.handleScrollIntersect(s,this.dragEntity.entityId,o,a)||this.handleHitboxIntersect(s,this.dragEntity.entityId,i,n)}handleScrollIntersect(t,r,n,i){let a=(0,fu.default)([t],n).map(s=>i[s[1]]),o=rp(a,t,r);if(this.scrollIntersection&&(!o||o[0]!==this.scrollIntersection[0])){let[s,u]=this.scrollIntersection,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("endDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=void 0}if(o&&(!this.scrollIntersection||this.scrollIntersection[0]!==o[0])){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("beginDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}else if(o&&this.scrollIntersection&&o[0]===this.scrollIntersection[0]){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("updateDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}return!!o}handleHitboxIntersect(t,r,n,i){let a=(0,fu.default)([t],n).map(s=>i[s[1]]),o=kl(a,t,r);this.primaryIntersection&&this.primaryIntersection!==o&&(this.emitter.emit("dragLeave",this.getDragEventData(),this.primaryIntersection.entityId),this.primaryIntersection=void 0),o&&this.primaryIntersection!==o&&(this.emitter.emit("dragEnter",{...this.getDragEventData(),primaryIntersection:o},o.entityId),this.primaryIntersection=o)}},li=e=>{e.preventDefault(),e.stopPropagation()};function ci(e,t){let r=R.useContext(wt);R.useEffect(()=>{let n=e.current,i=t.current;if(!r||!n||!i)return;let a=s=>{if(s.defaultPrevented||s.target.dataset.ignoreDrag||s.button!==0&&s.buttons!==1)return;let u=s.view,l=["pen","touch"].includes(s.pointerType);l||(s.stopPropagation(),s.preventDefault());let c=s,d={x:s.pageX,y:s.pageY},f=!1,p=0;l&&(u.addEventListener("contextmenu",li,!0),p=window.setTimeout(()=>{r.dragManager.dragStart(c,n),f=!0,u.addEventListener("touchmove",li,{passive:!1})},500));let m=Do(b=>{l?f?r.dragManager.dragMove(b):qr(d,{x:b.pageX,y:b.pageY})>5&&(clearTimeout(p),u.removeEventListener("touchmove",li),u.removeEventListener("contextmenu",li,!0),u.removeEventListener("pointermove",m),u.removeEventListener("pointerup",y),u.removeEventListener("pointercancel",y)):f?r.dragManager.dragMove(b):qr(d,{x:b.pageX,y:b.pageY})>5&&(r.dragManager.dragStart(c,n),f=!0)}),y=b=>{clearTimeout(p),f=!1,r.dragManager.dragEnd(b),u.removeEventListener("pointermove",m),u.removeEventListener("pointerup",y),u.removeEventListener("pointercancel",y),l&&(u.removeEventListener("contextmenu",li,!0),u.removeEventListener("touchmove",li))};u.addEventListener("pointermove",m),u.addEventListener("pointerup",y),u.addEventListener("pointercancel",y)},o=s=>{s.stopPropagation()};return i.addEventListener("pointerdown",a),i.addEventListener("touchstart",o),()=>{i.removeEventListener("pointerdown",a),i.removeEventListener("touchstart",o)}},[e,t,r])}function Tg(e){let t=R.useContext(wt),r=R.useCallback(i=>{t.dragManager.isHTMLDragging?(i.preventDefault(),t.dragManager.dragMoveHTML(i)):t.dragManager.dragStartHTML(i,e.getAView().id),t.dragManager.onHTMLDragLeave(()=>{t.dragManager.dragEndHTML(i,e.getAView().id,[],!0)})},[t,e]),n=R.useCallback(async i=>{t.dragManager.dragEndHTML(i,e.getAView().id,await Wo(e,i),!1)},[t,e]);return{onDragOver:r,onDrop:n}}h();var Ig=ge(_t());h();var Mg=ge(require("obsidian"));function Zt({name:e,className:t}){return v("span",{"data-icon":e,className:`${z("icon")} ${t||""}`,ref:r=>{r&&(0,Mg.setIcon)(r,e)}})}var Ag=R.memo(function({shouldMarkItemsComplete:t,path:r,item:n,stateManager:i,boardModifiers:a}){let o=i.useSetting("show-checkboxes"),[s,u]=R.useState(!1),[l,c]=R.useState(!1);return R.useEffect(()=>{if(l){let d=f=>{f.metaKey||f.ctrlKey?u(!0):u(!1)};return window.addEventListener("keydown",d),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",d),window.removeEventListener("keyup",d)}}},[l]),t||o?v("div",{onMouseEnter:d=>{c(!0),(d.ctrlKey||d.metaKey)&&u(!0)},onMouseLeave:()=>{c(!1),s&&u(!1)},className:z("item-prefix-button-wrapper")},o&&!s&&v("input",{onChange:()=>{a.updateItem(r,(0,Ig.default)(n,{data:{$toggle:["isComplete"]}}))},type:"checkbox",className:"task-list-item-checkbox",checked:!!n.data.isComplete}),(s||!o&&t)&&v("button",{onClick:()=>{a.archiveItem(r)},className:z("item-prefix-button"),"aria-label":s?void 0:"Archive card"},v(Zt,{name:"sheets-in-box"}))):null});h();var fy=ge(require("obsidian"));h();h();var hu;function Lg(e){if(e.nodeName!=="TEXTAREA")return!1;if(typeof hu=="undefined"){var t=document.createElement("textarea");t.value=1,hu=!!t.firstChild}return hu}function dS(e,t){if(e.focus(),document.selection){var r=document.selection.createRange();r.text=t,r.collapse(!1),r.select();return}var n=document.execCommand("insertText",!1,t);if(!n){var i=e.selectionStart,a=e.selectionEnd;if(typeof e.setRangeText=="function")e.setRangeText(t);else{var o=document.createRange(),s=document.createTextNode(t);if(Lg(e)){var u=e.firstChild;if(!u)e.appendChild(s);else{for(var l=0,c=null,d=null;u&&(c===null||d===null);){var f=u.nodeValue.length;i>=l&&i<=l+f&&o.setStart(c=u,i-l),a>=l&&a<=l+f&&o.setEnd(d=u,a-l),l+=f,u=u.nextSibling}i!==a&&o.deleteContents()}}if(Lg(e)&&o.commonAncestorContainer.nodeName==="#text")o.insertNode(s);else{var p=e.value;e.value=p.slice(0,i)+t+p.slice(a)}}e.setSelectionRange(i+t.length,i+t.length);var m=document.createEvent("UIEvent");m.initEvent("input",!0,!1),e.dispatchEvent(m)}}var fa=dS;var Pg=ge(require("obsidian"));var mu=e=>e.charCodeAt(0)===10,Fg=e=>e===" "||mu(e);function fS(e,t,r){if(!e)throw Error("Argument 'text' should be truthy");let n=0,i=e.length;for(let a=t;a-1>-1;a--)if(mu(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a-1;a--)if(Fg(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a0&&e.value[a.selection.start-1]!==" ")return!1;if(a.selection.end===a.selection.start){let s=Tt(e,`${r}`);return Mt(e,{start:s.selection.end-1-a.selectedText.length,end:s.selection.end-1}),!1}let o=Tt(e,`${t}${a.selectedText}${r}`);return Mt(e,{start:o.selection.end-1-a.selectedText.length,end:o.selection.end-1}),!0}function Jo(e,t,r,n){let i=Tn(e),a=ui({text:i.text,selection:i.selection}),o=Mt(e,a),s=t.test(o.selectedText)?n(o.selectedText):r(o.selectedText),u=Tt(e,s);Mt(e,{start:o.selection.start,end:u.selection.end})}function Go(e,t){var r;if(t.types.includes("text/uri-list")||["file","files","link","folder"].includes((r=e.app.dragManager.draggable)==null?void 0:r.type))return"link";if(t.types.includes("text/html")||t.types.includes("text/plain"))return"copy"}async function Qo(e,t){let r=e.clipboardData.getData("text/html"),n=e.clipboardData.types.includes("Files"),i=Pg.Platform.isDesktopApp?uu():null,a=r||n||(i==null?void 0:i.length)>0;a&&e.preventDefault();try{let o=await Wo(t,e);if(a){let s=e.target,u=o.join(` -`);Tt(s,u)}}catch(o){console.error(o),t.setError(o)}}h();var zu=ge(require("obsidian"));h();h();var Og={};h();var Ng={};h();var Rg={};h();var Hg={"Open as kanban board":"\xD6ffne als Kanban-Board","Create new board":"Erstelle ein neues Board","Archive completed cards in active board":"Archiviere fertiggestellte Karten im aktiven Board","Error: current file is not a Kanban board":"Fehler: Momentan ge\xF6ffnete Datei ist kein Kanban-Board","Convert empty note to Kanban":"Konvertiere leere Notiz in ein Kanban-Board","Error: cannot create Kanban, the current note is not empty":"Fehler: Kanban konnte nicht erstellt werden, momentan ge\xF6ffnete Datei ist nicht leer","New kanban board":"Neues Kanban-Board","Untitled Kanban":"Unbenanntes Kanban","Toggle between Kanban and markdown mode":"Wechsle zwischen Kanban und Markdown Modus","Open as markdown":"\xD6ffne als Markdown","Open board settings":"\xD6ffne Board-Einstellungen","Archive completed cards":"Archiviere fertiggestellte Karten","Something went wrong":"Etwas ist schief gelaufen","You may wish to open as markdown and inspect or edit the file.":"Du kannst die Datei im Markdown Modus \xF6ffnen und \xFCberpr\xFCfen oder bearbeiten.","Are you sure you want to archive all completed cards on this board?":"Bist du dir sicher, dass du alle fertiggestellten Karten des Boards archivieren m\xF6chtest?",Complete:"Fertiggestellt",Archive:"Archiv","Invalid Kanban file: problems parsing frontmatter":"Fehlerhafte Kanban Datei: Probleme beim Parsen des Frontmatters","I don't know how to interpret this line:":"Ich wei\xDF nicht, wie ich diese Zeile interpretieren soll:",Untitled:"Unbenannt","Note: No template plugins are currently enabled.":"Beachte: Keine Template-Plugins sind derzeit aktiviert.",default:"Standard","Search...":"Suche...","These settings will take precedence over the default Kanban board settings.":"Diese Einstellung wird Vorrang vor der standard Kanban-Board Einstellung haben. ","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Stelle standard Kanban-Board Einstellungen ein. Einstellungen k\xF6nnen auf einer Board-f\xFCr-Board Basis \xFCberschrieben werden.","Note template":"Notiz Vorlage","This template will be used when creating new notes from Kanban cards.":"Diese Vorlage wird beim Erstellen neuer Notizen aus Kanban-Karten verwendet.","No template":"Keine Vorlage","Note folder":"Notiz Ordner","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notizen, welche aus einer Kanban-Karte erstellt wurden, werden in diesem Ordner platziert. Falls leer, werden die Einstellungen des Vaults verwendet.","Default folder":"Standard Ordner","Lane width":"Schienen Breite","Enter a number to set the lane width in pixels.":"Gebe ein Zahl ein, um die Schienen Breite in Pixeln einzustellen.","Maximum number of archived cards":"Maximale Anzahl archivierter Karten.","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archivierte Karten k\xF6nnen im Markdown-Modus betrachtet werden. Diese Einstellung wird alte Karten l\xF6schen, sobald das Limit erreicht wird. Eine Einstellung von -1 setzt das Archiv auf eine unendliche Gr\xF6\xDFe.","Display card checkbox":"Zeige Karten Checkbox","When toggled, a checkbox will be displayed with each card":"Wenn aktiviert, wird eine Checkbox mit jeder Karte angezeigt.","Reset to default":"Zur\xFCcksetzen","Date & Time":"Datum & Uhrzeit","Date trigger":"Datums Ausl\xF6ser","When this is typed, it will trigger the date selector":"Wenn dies eingegeben wird, dann wird die Datumsauswahl angezeigt","Time trigger":"Uhrzeit Ausl\xF6ser","When this is typed, it will trigger the time selector":"Wenn dies eingegeben wird, dann wird die Uhrzeitsauswahl angezeigt","Date format":"Format des Datums","This format will be used when saving dates in markdown.":"Dieses Format wird verwendet, wenn ein Datum in Markdown gespeichert wird.","For more syntax, refer to":"F\xFCr mehr Syntax Informationen siehe","format reference":"Formatvorlage","Your current syntax looks like this":"Dein momentanes Format sieht so aus","Time format":"Format der Uhrzeit","Date display format":"Format der Datums Anzeige","This format will be used when displaying dates in Kanban cards.":"Dieses Format wird verwendet, wenn ein Datum in einer Kanban-Karte angezeigt wird.","Show relative date":"Zeige relatives Datum","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Wenn aktiviert, wird die Zeitspanne zwischen Heute und dem Datum angezeigt. Zum Beispiel: 'In 3 Tagen', 'Vor einem Monat'","Hide card display dates":"Verstecke Karten Datum","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Wenn aktiviert, werden formatierte Daten nicht auf der Karte angezeigt. Relative Daten werden dennoch angezeigt, solange sie aktiviert sind.","Hide dates in card titles":"Verstecke Daten im Titel der Karte","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Wenn aktiviert, werden Daten nicht im Titel der Karte angezeigt. Dies verhindert, dass Daten im Titel neu erstellter Notizen vorhanden sind.","Link dates to daily notes":"Verbinde Daten zu Daily Notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Wenn aktiviert, werden Daten mit Daily Notes verbunden. Zum Beispiel [[26.4.2021]]","Add date and time to archived cards":"F\xFCge Datum und Uhrzeit zu archivierten Notizen hinzu","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Wenn aktiviert, wird das momentane Datum und die momentane Zeit am Anfang einer Karte hinzugef\xFCgt, wenn sie archiviert wird. Zum Beispiel: - [ ] 14.05.2021 10:00 Mein Karten Titel","Archive date/time separator":"Datum/Uhrzeit Trenner f\xFCr das Archiv","This will be used to separate the archived date/time from the title":"Dies wird verwendet, um das Datum und die Uhrzeit archivierter Karten vom Titel zu trennen","Archive date/time format":"Format des Datums und der Uhrzeit f\xFCr das Archiv","Kanban Plugin":"Kanban Erweiterung","New line trigger":"Taste f\xFCr neue Zeile","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"W\xE4hle aus ob Enter oder Umschalttaste+Enter eine neue Zeile erstellen soll. Das Gegenteil kannst du verwenden um die Karte zu erstellen oder das bearbeiten der Karte oder Schiene zu beenden.","Shift + Enter":"Umschalttaste + Enter",Enter:"Enter","Prepend / append new cards":"Neue Karten voranf\xFCgen / anh\xE4ngen","This setting controls whether new cards are added to the beginning or end of the list.":"Diese Einstellung gibt an ob neue Karten am Anfang oder am Ende einer Liste hinzugef\xFCgt werden.",Prepend:"Voranf\xFCgen",Append:"Anh\xE4ngen","Hide tags in card titles":"Ausblenden von Tags in Kartentiteln","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Ist diese Einstellung an, so werden Tags im Kartentitel nicht angezeigt. Dadurch wird verhindert, dass Tags beim Erstellen neuer Notizen in den Titel aufgenommen werden.","Hide card display tags":"Ausblenden von Kartenanzeige-Tags","When toggled, tags will not be displayed below the card title.":"Ist diese Einstellung an, werden Tags nicht unter dem Kartentitel angezeigt.","Linked Page Metadata":"Metadaten f\xFCr verkn\xFCpfte (verlinkte) Notizen","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Zeigen Sie Metadaten f\xFCr die erste Notiz an, die innerhalb einer Karte verkn\xFCpft ist. Geben Sie an, welche Metadatenschl\xFCssel unten angezeigt werden sollen. Ein optionales Label kann hinzugef\xFCgt werden, es kann aber auch vollst\xE4ndig ausgeblendet werden.","Metadata key":"Metadatenschl\xFCssel","Display label":"Anzeigelabel","Hide label":"Label ausblenden","Drag to rearrange":"Zum Neuanordnen ziehen",Delete:"L\xF6schen","Add key":"Schl\xFCssel hinzuf\xFCgen","Field contains markdown":"Feld beinhaltet Markdown","More options":"Mehr optionen",Cancel:"Abbrechen",today:"heute",yesterday:"gestern",tomorrow:"morgen","Change date":"Ver\xE4ndere Datum","Change time":"Ver\xE4ndere Uhrzeit","Card title...":"Karten Titel...","Add card":"Karte hinzuf\xFCgen","Add a card":"F\xFCge eine Karte hinzu","Edit card":"Karte editieren","New note from card":"Neue Notiz aus Karte erstellen","Archive card":"Karte archivieren","Delete card":"Karte l\xF6schen","Edit date":"Datum editieren","Add date":"Datum hinzuf\xFCgen","Remove date":"Datum entfernen","Edit time":"Karte editieren","Add time":"Uhrzeit hinzuf\xFCgen","Remove time":"Uhrzeit entfernen","Duplicate card":"Karte duplizieren","Enter list title...":"Listen Titel eingeben..","Mark cards in this list as complete":"Markiere Karten in dieser Liste als fertiggestellt","Add list":"Liste hinzuf\xFCgen","Add a list":"F\xFCge eine Liste hinzu","Move list":"Liste verschieben",Close:"Schlie\xDFen","Are you sure you want to delete this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten l\xF6schen m\xF6chtest?","Yes, delete list":"Ja, l\xF6sche diese Liste","Are you sure you want to archive this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten archivieren m\xF6chtest?","Yes, archive list":"Ja, archiviere diese Liste","Are you sure you want to archive all cards in this list?":"Bist du dir sicher, dass du alle Karten in dieser Liste archivieren m\xF6chtest?","Yes, archive cards":"Ja, archiviere Karten","Edit list":"Editiere Liste","Archive cards":"Archiviere Karten","Archive list":"Archiviere List","Delete list":"L\xF6sche Liste"};h();var gu={"Open as kanban board":"Open as kanban board","Create new board":"Create new board","Archive completed cards in active board":"Archive completed cards in active board","Error: current file is not a Kanban board":"Error: current file is not a Kanban board","Convert empty note to Kanban":"Convert empty note to Kanban","Error: cannot create Kanban, the current note is not empty":"Error: cannot create Kanban, the current note is not empty","New kanban board":"New kanban board","Untitled Kanban":"Untitled Kanban","Toggle between Kanban and markdown mode":"Toggle between Kanban and markdown mode","Open as markdown":"Open as markdown","Open board settings":"Open board settings","Archive completed cards":"Archive completed cards","Something went wrong":"Something went wrong","You may wish to open as markdown and inspect or edit the file.":"You may wish to open as markdown and inspect or edit the file.","Are you sure you want to archive all completed cards on this board?":"Are you sure you want to archive all completed cards on this board?",Complete:"Complete",Archive:"Archive","Invalid Kanban file: problems parsing frontmatter":"Invalid Kanban file: problems parsing frontmatter","I don't know how to interpret this line:":"I don't know how to interpret this line:",Untitled:"Untitled","Note: No template plugins are currently enabled.":"Note: No template plugins are currently enabled.",default:"default","Search...":"Search...","New line trigger":"New line trigger","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.":"Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"Prepend / append new cards","This setting controls whether new cards are added to the beginning or end of the list.":"This setting controls whether new cards are added to the beginning or end of the list.",Prepend:"Prepend","Prepend (compact)":"Prepend (compact)",Append:"Append","These settings will take precedence over the default Kanban board settings.":"These settings will take precedence over the default Kanban board settings.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.","Note template":"Note template","This template will be used when creating new notes from Kanban cards.":"This template will be used when creating new notes from Kanban cards.","No template":"No template","Note folder":"Note folder","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.","Default folder":"Default folder","List width":"List width","Enter a number to set the list width in pixels.":"Enter a number to set the list width in pixels.","Maximum number of archived cards":"Maximum number of archived cards","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.","Display card checkbox":"Display card checkbox","When toggled, a checkbox will be displayed with each card":"When toggled, a checkbox will be displayed with each card","Reset to default":"Reset to default","Date & Time":"Date & Time","Date trigger":"Date trigger","When this is typed, it will trigger the date selector":"When this is typed, it will trigger the date selector","Time trigger":"Time trigger","When this is typed, it will trigger the time selector":"When this is typed, it will trigger the time selector","Date format":"Date format","This format will be used when saving dates in markdown.":"This format will be used when saving dates in markdown.","For more syntax, refer to":"For more syntax, refer to","format reference":"format reference","Your current syntax looks like this":"Your current syntax looks like this","Time format":"Time format","Date display format":"Date display format","This format will be used when displaying dates in Kanban cards.":"This format will be used when displaying dates in Kanban cards.","Show relative date":"Show relative date","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'","Hide card display dates":"Hide card display dates","Hide card counts in list titles":"Hide card counts in list titles","When toggled, card counts are hidden from the list title":"When toggled, card counts are hidden from the list title","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.","Hide dates in card titles":"Hide dates in card titles","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.","Link dates to daily notes":"Link dates to daily notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"When toggled, dates will link to daily notes. Eg. [[2021-04-26]]","Add date and time to archived cards":"Add date and time to archived cards","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title","Archive date/time separator":"Archive date/time separator","This will be used to separate the archived date/time from the title":"This will be used to separate the archived date/time from the title","Archive date/time format":"Archive date/time format","Kanban Plugin":"Kanban Plugin","Hide tags in card titles":"Hide tags in card titles","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.","Hide card display tags":"Hide card display tags","When toggled, tags will not be displayed below the card title.":"When toggled, tags will not be displayed below the card title.","Linked Page Metadata":"Linked Page Metadata","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.","Board Header Buttons":"Board Header Buttons","Calendar: first day of week":"Calendar: first day of week","Override which day is used as the start of the week":"Override which day is used as the start of the week",Sunday:"Sunday",Monday:"Monday",Tuesday:"Tuesday",Wednesday:"Wednesday",Thursday:"Thursday",Friday:"Friday",Saturday:"Saturday","Metadata key":"Metadata key","Display label":"Display label","Hide label":"Hide label","Drag to rearrange":"Drag to rearrange",Delete:"Delete","Add key":"Add key","Field contains markdown":"Field contains markdown","More options":"More options",Cancel:"Cancel",today:"today",yesterday:"yesterday",tomorrow:"tomorrow","Change date":"Change date","Change time":"Change time","Card title...":"Card title...","Add card":"Add card","Add a card":"Add a card","Edit card":"Edit card","New note from card":"New note from card","Archive card":"Archive card","Delete card":"Delete card","Edit date":"Edit date","Add date":"Add date","Remove date":"Remove date","Edit time":"Edit time","Add time":"Add time","Remove time":"Remove time","Duplicate card":"Duplicate card","Split card":"Split card","Copy link to card":"Copy link to card","Insert card before":"Insert card before","Insert card after":"Insert card after","Enter list title...":"Enter list title...","Mark cards in this list as complete":"Mark cards in this list as complete","Add list":"Add list","Add a list":"Add a list","Move list":"Move list",Close:"Close","Are you sure you want to delete this list and all its cards?":"Are you sure you want to delete this list and all its cards?","Yes, delete list":"Yes, delete list","Are you sure you want to archive this list and all its cards?":"Are you sure you want to archive this list and all its cards?","Yes, archive list":"Yes, archive list","Are you sure you want to archive all cards in this list?":"Are you sure you want to archive all cards in this list?","Yes, archive cards":"Yes, archive cards","Edit list":"Edit list","Archive cards":"Archive cards","Archive list":"Archive list","Delete list":"Delete list","Insert list before":"Insert list before","Insert list after":"Insert list after","Sort by card text":"Sort by card text","Sort by date":"Sort by date","Unable to find":"Unable to find","Open in default app":"Open in default app",Submit:"Submit"};h();var Bg={};h();var Kg={};h();var $g={};h();var Ug={};h();var Vg={"Open as kanban board":"Apri come bacheca Kanban","Create new board":"Crea nuova bacheca","Archive completed cards in active board":"Archivia schede completate nella bacheca attiva","Error: current file is not a Kanban board":"Errore: il file corrente non \xE8 una bacheca Kanban","Convert empty note to Kanban":"Converti nota vuota in Kanban","Error: cannot create Kanban, the current note is not empty":"Errore: Impossibile creare Kanban, la nota corrente non \xE8 vuota","New kanban board":"Nuova bacheca Kanban","Untitled Kanban":"Kanban senza titolo","Open as markdown":"Apri come markdown","Open board settings":"Apri impostazioni bacheca","Archive completed cards":"Archivia schede completate",Complete:"Completato",Archive:"Archivio","Note: No template plugins are currently enabled.":"Nota: Nessun plugin dei modelli attualmente abilitato.",default:"predefinito","Search...":"Ricerca...","These settings will take precedence over the default Kanban board settings.":"Queste impostazioni avranno la precedenza sulle impostazioni predefinite della bacheca Kanban.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Impostazioni predefinite della bacheca Kanban. Le impostazioni possono essere sovrascritte per ogni bacheca.","Note template":"Nota modello","This template will be used when creating new notes from Kanban cards.":"Questo modello verr\xE0 utilizzato durante la creazione di nuove note dalle schede Kanban.","No template":"Nessun modello","Note folder":"Cartella delle note","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Le note create dalle schede Kanban verranno inserite in questa cartella. Se vuota, verranno inserite nella posizione predefinita del vault.","Default folder":"Cartella predefinita","Lane width":"Larghezza colonna","Enter a number to set the lane width in pixels.":"Inserire un numero per impostare la larghezza della colonna in pixel.","Maximum number of archived cards":"Numero massimo di schede archiviate","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Le schede archiviate possono essere visualizzate in modalit\xE0 Markdown. Le vecchie schede verranno rimosse una volta raggiunto il limite. Impostando il valore -1 il numero di schede archiviate sar\xE0 illimitato.","Display card checkbox":"Mostra casella di controllo","When toggled, a checkbox will be displayed with each card":"Se attiva, verr\xE0 visualizzata una casella di controllo per ogni scheda","Reset to default":"Ripristina predefiniti","Date & Time":"Data e ora","Date trigger":"Selettore data","When this is typed, it will trigger the date selector":"Digitando questo, verr\xE0 attivato il selettore della data","Time trigger":"Selettore ora","When this is typed, it will trigger the time selector":"Digitando questo, verr\xE0 attivato il selettore dell'ora","Date format":"Formato data","This format will be used when saving dates in markdown.":"Formato utilizzato per il salvataggio delle date in Markdown.","For more syntax, refer to":"Per maggiori informazioni, vedere","format reference":"formato di riferimento","Your current syntax looks like this":"Formato corrente","Time format":"Formato ora","Date display format":"Formato visualizzazione data","This format will be used when displaying dates in Kanban cards.":"Formato utilizzato per visualizzare le date nelle schede Kanban.","Show relative date":"Mostra data relativa","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Se attiva, le schede indicheranno la distanza tra la data odierna e la data della scheda. eg. 'Tra 3 giorni', 'Un mese fa'","Hide card display dates":"Hide card display dates","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Se attiva, la data non verr\xE0 mostrata sulla scheda. Le date relative verranno comunque mostrate se sono state abilitate.","Hide dates in card titles":"Nascondi date nei titoli delle schede","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Se attiva, la data non verr\xE0 mostrata nei titoli delle schede. Questo impedisce alle date di essere incluse quando vengono create nuove note.","Link dates to daily notes":"Collega date alle Note del giorno","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Se attiva, le date verranno collegate alle Note del giorno. Eg. [[2021-04-26]]","Add date and time to archived cards":"Aggiungi data e ora alle schede archiviate","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Se attiva, la data e l'ora corrente verranno aggiunte all'inizio della scheda quando viene archiviata. Eg. - [ ] 2021-05-14 10:00am Mia scheda","Archive date/time separator":"Separatore data/ora dell'archivio","This will be used to separate the archived date/time from the title":"Verr\xE0 usato per separare data e ora dell'archiviazione dal titolo","Archive date/time format":"Formato data/ora dell'archivio","Kanban Plugin":"Plugin Kanban","More options":"Altre opzioni",Cancel:"Annulla",today:"oggi",yesterday:"ieri",tomorrow:"domani","Change date":"Modifica data","Change time":"Modifica ora","Card title...":"Titolo elemento...","Add card":"Aggiungi elemento","Add a card":"Aggiungi un'altra scheda","Edit card":"Modifica scheda","New note from card":"Nuova nota da scheda","Archive card":"Archivia scheda","Delete card":"Elimina scheda","Edit date":"Modifica data","Add date":"Aggiungi data","Remove date":"Rimuovi data","Edit time":"Modifica ora","Add time":"Aggiungi ora","Remove time":"Rimuovi ora","Enter list title...":"Inserisci titolo lista...","Mark cards in this list as complete":"Segna elementi della lista come completati","Add list":"Aggiungi lista","Add a list":"Aggiungi un'altra lista","Move list":"Sposta lista",Close:"Chiudi","Are you sure you want to delete this list and all its cards?":"Cancellare questa lista e tutte le sue schede?","Yes, delete list":"Cancella lista","Are you sure you want to archive this list and all its cards?":"Archiviare questa lista e tutte le sue schede?","Yes, archive list":"Archivia lista","Are you sure you want to archive all cards in this list?":"Archiviare tutte le schede in questa lista?","Yes, archive cards":"Archivia schede","Edit list":"Modifica lista","Archive cards":"Archivia schede","Archive list":"Archivia lista","Delete list":"Cancella lista"};h();var zg={"Open as kanban board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3068\u3057\u3066\u958B\u304F","Create new board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210","Archive completed cards in active board":"\u30A2\u30AF\u30C6\u30A3\u30D6\u30DC\u30FC\u30C9\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Error: current file is not a Kanban board":"\u30A8\u30E9\u30FC: \u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3067\u306F\u3042\u308A\u307E\u305B\u3093","Convert empty note to Kanban":"\u7A7A\u306E\u30CE\u30FC\u30C8\u3092\u30AB\u30F3\u30D0\u30F3\u306B\u5909\u63DB","Error: cannot create Kanban, the current note is not empty":"\u30A8\u30E9\u30FC: \u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u30CE\u30FC\u30C8\u306F\u7A7A\u3067\u3042\u308A\u3001\u30AB\u30F3\u30D0\u30F3\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093","New kanban board":"\u65B0\u898F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9","Untitled Kanban":"\u7121\u984C\u306E\u30AB\u30F3\u30D0\u30F3","Toggle between Kanban and markdown mode":"\u30AB\u30F3\u30D0\u30F3\u3068\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u306E\u30E2\u30FC\u30C9\u3092\u5207\u308A\u66FF\u3048\u308B","Open as markdown":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u958B\u304F","Open board settings":"\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u958B\u304F","Archive completed cards":"\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Something went wrong":"\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F","You may wish to open as markdown and inspect or edit the file.":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3044\u3066\u8ABF\u67FB\u3059\u308B\u304B\u7DE8\u96C6\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002","Are you sure you want to archive all completed cards on this board?":"\u3053\u306E\u30DC\u30FC\u30C9\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F",Complete:"\u5B8C\u4E86",Archive:"\u30A2\u30FC\u30AB\u30A4\u30D6","Invalid Kanban file: problems parsing frontmatter":"\u7121\u52B9\u306A\u30AB\u30F3\u30D0\u30F3\u30D5\u30A1\u30A4\u30EB: \u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306E\u30D1\u30FC\u30B9\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059","I don't know how to interpret this line:":"\u3053\u306E\u884C\u3092\u3069\u3046\u89E3\u91C8\u3059\u308C\u3070\u3088\u3044\u304B\u5206\u304B\u308A\u307E\u305B\u3093",Untitled:"\u7121\u984C","Note: No template plugins are currently enabled.":"\u30CE\u30FC\u30C8: \u73FE\u5728\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059",default:"\u30C7\u30D5\u30A9\u30EB\u30C8","Search...":"\u691C\u7D22\u2026","New line trigger":"\u6539\u884C\u30C8\u30EA\u30AC\u30FC","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"\u6539\u884C\u306B\u4F7F\u3046\u30AD\u30FC\u3068\u3057\u3066Enter\u304BShift+Enter\u306E\u3069\u3061\u3089\u3092\u4F7F\u3046\u304B\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u9078\u629E\u3057\u306A\u304B\u3063\u305F\u65B9\u306E\u30AD\u30FC\u306F\u30AB\u30FC\u30C9\u3068\u30EC\u30FC\u30F3\u306E\u4F5C\u6210\u3068\u7DE8\u96C6\u5B8C\u4E86\u306E\u30C8\u30EA\u30AC\u30FC\u3068\u306A\u308A\u307E\u3059\u3002","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0\u3059\u308B","This setting controls whether new cards are added to the beginning or end of the list.":"\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u3063\u3066\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u306E\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u8FFD\u52A0\u3059\u308B\u304B\u3092\u6C7A\u3081\u307E\u3059\u3002",Prepend:"\u5148\u982D\u306B\u8FFD\u52A0","Prepend (compact)":"\u5148\u982D\u306B\u8FFD\u52A0(\u30B3\u30F3\u30D1\u30AF\u30C8)",Append:"\u672B\u5C3E\u306B\u8FFD\u52A0","These settings will take precedence over the default Kanban board settings.":"\u3053\u308C\u3089\u306E\u8A2D\u5B9A\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u8A2D\u5B9A\u3088\u308A\u512A\u5148\u3055\u308C\u307E\u3059\u3002","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u30BB\u30C3\u30C8\u3057\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u30DC\u30FC\u30C9\u6BCE\u306B\u4E0A\u66F8\u304D\u3067\u304D\u307E\u3059\u3002","Note template":"\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8","This template will be used when creating new notes from Kanban cards.":"\u3053\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210\u3057\u305F\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","No template":"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u3042\u308A\u307E\u305B\u3093","Note folder":"\u30CE\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u4F5C\u6210\u3055\u308C\u305F\u30CE\u30FC\u30C8\u306F\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u5185\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002\u30D6\u30E9\u30F3\u30AF\u306E\u5834\u5408\u306B\u306F\u3001\u3053\u306E\u4FDD\u7BA1\u5EAB\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002","Default folder":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30EB\u30C0","Lane width":"\u30EC\u30FC\u30F3\u306E\u5E45","Enter a number to set the lane width in pixels.":"\u30EC\u30FC\u30F3\u306E\u5E45\u3092\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","Maximum number of archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306E\u6700\u5927\u6570","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u30E2\u30FC\u30C9\u3067\u95B2\u89A7\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u308A\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u9650\u754C\u6570\u307E\u3067\u9054\u3057\u305F\u969B\u306B\u306F\u53E4\u3044\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u5024\u3092-1\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u30DC\u30FC\u30C9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u9650\u754C\u3092\u7121\u9650\u306B\u3057\u307E\u3059\u3002","Display card checkbox":"\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u8868\u793A","When toggled, a checkbox will be displayed with each card":"\u6709\u52B9\u5316\u3059\u308B\u3068\u5404\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","Reset to default":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u30EA\u30BB\u30C3\u30C8","Date & Time":"\u65E5\u4ED8\u3068\u6642\u9593","Date trigger":"\u65E5\u4ED8\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the date selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u65E5\u4ED8\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Time trigger":"\u6642\u9593\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the time selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u6642\u9593\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Date format":"\u65E5\u4ED8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when saving dates in markdown.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3067\u65E5\u4ED8\u304C\u4FDD\u5B58\u3055\u308C\u308B\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","For more syntax, refer to":"\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306B\u3064\u3044\u3066\u306F\u3053\u3061\u3089\u3092\u53C2\u7167:","format reference":"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9","Your current syntax looks like this":"\u73FE\u5728\u306E\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306F\u6B21\u306E\u3088\u3046\u306B\u898B\u3048\u307E\u3059","Time format":"\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","Date display format":"\u65E5\u4ED8\u8868\u793A\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when displaying dates in Kanban cards.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u5185\u306B\u3066\u65E5\u4ED8\u306E\u8868\u793A\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Show relative date":"\u76F8\u5BFE\u65E5\u4ED8\u3092\u8868\u793A","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u306E\u65E5\u4ED8\u3068\u4ECA\u65E5\u306E\u9593\u306E\u65E5\u6570\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B: '3\u65E5\u5F8C', '1\u30F6\u6708\u524D'","Hide card display dates":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u4E0A\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3055\u308C\u305F\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u6709\u52B9\u5316\u3055\u308C\u305F\u5834\u5408\u306B\u306F\u76F8\u5BFE\u65E5\u4ED8\u306F\u8868\u793A\u3055\u308C\u307E\u307E\u3068\u306A\u308A\u307E\u3059\u3002","Hide dates in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u65E5\u4ED8\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Link dates to daily notes":"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u65E5\u4ED8\u3092\u30EA\u30F3\u30AF","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u6709\u52B9\u5316\u3059\u308B\u3068\u65E5\u4ED8\u304C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u30EA\u30F3\u30AF\u3055\u308C\u307E\u3059\u3002 \u4F8B: [[2021-04-26]]","Add date and time to archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306B\u65E5\u4ED8\u3068\u6642\u9593\u3092\u8FFD\u52A0","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u304C\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u969B\u306B\u73FE\u5728\u306E\u65E5\u4ED8\u3068\u6642\u9593\u304C\u30AB\u30FC\u30C9\u306E\u6700\u521D\u306B\u8FFD\u8A18\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\u4F8B: - [ ] 2021-05-14 10:00am \u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB","Archive date/time separator":"\u65E5\u4ED8\u30FB\u6642\u9593\u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","This will be used to separate the archived date/time from the title":"\u3053\u308C\u306F\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u65E5\u4ED8\u30FB\u6642\u9593\u3092\u30BF\u30A4\u30C8\u30EB\u304B\u3089\u5206\u96E2\u3059\u308B\u306E\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Archive date/time format":"\u65E5\u4ED8\u30FB\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Kanban Plugin":"\u30AB\u30F3\u30D0\u30F3\u30D7\u30E9\u30B0\u30A4\u30F3","Hide tags in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u30BF\u30B0\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Hide card display tags":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will not be displayed below the card title.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u4E0B\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","Linked Page Metadata":"\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30DA\u30FC\u30B8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u30AB\u30FC\u30C9\u5185\u3067\u30EA\u30F3\u30AF\u3055\u308C\u3066\u3044\u308B\u6700\u521D\u306E\u30CE\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4E0B\u306B\u8868\u793A\u3059\u308B\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u30E9\u30D9\u30EB\u306E\u4ED8\u4E0E\u304C\u53EF\u80FD\u3067\u3042\u308A\u3001\u30E9\u30D9\u30EB\u306F\u5B8C\u5168\u306B\u975E\u8868\u793A\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","Board Header Buttons":"\u30DC\u30FC\u30C9\u306E\u30D8\u30C3\u30C0\u30FC\u30DC\u30BF\u30F3","Calendar: first day of week":"\u30AB\u30EC\u30F3\u30C0\u30FC: \u9031\u306E\u59CB\u307E\u308A","Override which day is used as the start of the week":"\u9031\u306E\u59CB\u307E\u308A\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u66DC\u65E5\u3092\u5909\u66F4\u3057\u307E\u3059\u3002",Sunday:"\u65E5\u66DC\u65E5",Monday:"\u6708\u66DC\u65E5",Tuesday:"\u706B\u66DC\u65E5",Wednesday:"\u6C34\u66DC\u65E5",Thursday:"\u6728\u66DC\u65E5",Friday:"\u91D1\u66DC\u65E5",Saturday:"\u571F\u66DC\u65E5","Metadata key":"\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC","Display label":"\u30E9\u30D9\u30EB\u3092\u8868\u793A","Hide label":"\u30E9\u30D9\u30EB\u3092\u96A0\u3059","Drag to rearrange":"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E26\u3079\u66FF\u3048\u308B",Delete:"\u524A\u9664","Add key":"\u30AD\u30FC\u3092\u8FFD\u52A0","Field contains markdown":"\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3092\u542B\u307F\u307E\u3059","More options":"\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3",Cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",today:"\u4ECA\u65E5",yesterday:"\u6628\u65E5",tomorrow:"\u660E\u65E5","Change date":"\u65E5\u4ED8\u3092\u5909\u66F4","Change time":"\u6642\u9593\u3092\u5909\u66F4","Card title...":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u2026","Add card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Add a card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Edit card":"\u30AB\u30FC\u30C9\u3092\u7DE8\u96C6","New note from card":"\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210","Archive card":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete card":"\u30AB\u30FC\u30C9\u3092\u524A\u9664","Edit date":"\u65E5\u4ED8\u3092\u7DE8\u96C6","Add date":"\u65E5\u4ED8\u3092\u8FFD\u52A0","Remove date":"\u65E5\u4ED8\u3092\u524A\u9664","Edit time":"\u6642\u9593\u3092\u7DE8\u96C6","Add time":"\u6642\u9593\u3092\u8FFD\u52A0","Remove time":"\u6642\u9593\u3092\u524A\u9664","Duplicate card":"\u30AB\u30FC\u30C9\u3092\u8907\u88FD","Split card":"\u30AB\u30FC\u30C9\u3092\u5206\u5272","Copy link to card":"\u30AB\u30FC\u30C9\u3078\u306E\u30EA\u30F3\u30AF\u3092\u30B3\u30D4\u30FC","Enter list title...":"\u30EA\u30B9\u30C8\u30BF\u30A4\u30C8\u30EB\u3092\u7DE8\u96C6\u2026","Mark cards in this list as complete":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u30AB\u30FC\u30C9\u3092\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3059\u308B","Add list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Add a list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Move list":"\u30EA\u30B9\u30C8\u3092\u79FB\u52D5",Close:"\u9589\u3058\u308B","Are you sure you want to delete this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u304B\b\uFF1F","Yes, delete list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059","Are you sure you want to archive this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Are you sure you want to archive all cards in this list?":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive cards":"\u306F\u3044\u3001\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Edit list":"\u30EA\u30B9\u30C8\u3092\u7DE8\u96C6","Archive cards":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Archive list":"\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete list":"\u30EA\u30B9\u30C8\u3092\u524A\u9664","Unable to find":"\u898B\u3064\u304B\u308A\u307E\u305B\u3093","Open in default app":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30A2\u30D7\u30EA\u3067\u958B\u304F"};h();var Wg={};h();var jg={};h();var qg={};h();var Yg={};h();var Jg={};h();var Gg={"Open as Kanban board":"Abrir como quadro Kanban","Create new board":"Criar um novo quadro","Archive completed cards in active board":"Arquivar cart\xF5es conclu\xEDdos no quadro ativo","Error: current file is not a Kanban board":"Erro: o arquivo atual n\xE3o \xE9 um quadro Kanban","Convert empty note to Kanban":"Converter nota vazia em Kanban","Error: cannot create Kanban, the current note is not empty":"Erro: n\xE3o \xE9 poss\xEDvel criar o quadro Kanban, a nota atual n\xE3o est\xE1 vazia","New Kanban board":"Novo quadro Kanban","Untitled Kanban":"Kanban sem t\xEDtulo","Toggle between Kanban and markdown mode":"Alternar entre os modos Kanban e Markdown","Open as markdown":"Abrir como markdown","Open board settings":"Abrir configura\xE7\xF5es do quadro Kanban","Archive completed cards":"Arquivar cart\xF5es conclu\xEDdos",Complete:"Conclu\xEDdo",Archive:"Arquivado","Note: No template plugins are currently enabled.":"Nota: N\xE3o h\xE1 plug-ins de modelo habilitados no momento.",default:"padr\xE3o","Search...":"Pesquisar...","These settings will take precedence over the default Kanban board settings.":"Essas configura\xE7\xF5es sobrescrever\xE3o as configura\xE7\xF5es padr\xE3o do quadro Kanban","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Defina as configura\xE7\xF5es padr\xE3o do quadro Kanban. Cada quadro Kanban pode ter sua pr\xF3pria configura\xE7\xE3o.","Note template":"Modelo de nota","This template will be used when creating new notes from Kanban cards.":"Este modelo ser\xE1 usado quando uma nova nota Kanban for criada.","No template":"Sem modelo","Note folder":"Pasta de notas","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"As notas criadas pelos links dos cart\xF5es Kanban ser\xE3o colocadas nesta pasta. Se estiver em branco, ser\xE3o colocadas no local configurado como padr\xE3o deste cofre.","Default folder":"Pasta padr\xE3o","Lane width":"Largura das listas","Enter a number to set the lane width in pixels.":"Insira um n\xFAmero para definir a largura das listas em pixels.","Maximum number of archived cards":"Quantidade m\xE1xima de cart\xF5es arquivados","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Os cart\xF5es arquivados podem ser vistos no modo Markdown. Esta configura\xE7\xE3o excluir\xE1 os cart\xF5es antigos assim que o limite for atingido. Inserir o valor -1 retira o limite para cart\xF5es arquivados.","Display card checkbox":"Exibe uma caixa de sele\xE7\xE3o do cart\xE3o","When toggled, a checkbox will be displayed with each card":"Quando ativada, uma caixa de sele\xE7\xE3o ser\xE1 exibida em cada cart\xE3o.","Reset to default":"Redefinir configura\xE7\xF5es padr\xE3o","Date & Time":"Data e Hora","Date trigger":"Gatilho de data","When this is typed, it will trigger the date selector":"Quando este caractere \xE9 digitado, o seletor de data \xE9 exibido.","Time trigger":"Gatilho de hora","When this is typed, it will trigger the time selector":"Quando este caractere \xE9 digitado, o seletor de hora \xE9 exibido.","Date format":"Formado da data","This format will be used when saving dates in markdown.":"Este formato ser\xE1 usado quando datas forem armazenadas no Markdown.","For more syntax, refer to":"Para mais informa\xE7\xF5es sobre esta sintaxe, consulte os","format reference":"modelos de formato.","Your current syntax looks like this":"Sua atual sintaxe est\xE1 assim","Time format":"Formato da hora","Date display format":"Formato de exibi\xE7\xE3o da data","This format will be used when displaying dates in Kanban cards.":"Este ser\xE1 o formato das datas exibido nos cart\xF5es do Kanban.","Show relative date":"Exibir datas relativas","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Ao ativar, os cart\xF5es exibir\xE3o o intervalo de tempo entre hoje e a data do cart\xE3o: Ex.: 'Em 3 dias', 'Um m\xEAs atr\xE1s'","Hide card display dates":"Ocultar datas dos cart\xF5es","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Ao ativar, as datas formatadas n\xE3o ser\xE3o exibidas no cart\xE3o. As datas relativas ainda ser\xE3o exibidas se estiverem ativadas.","Hide dates in card titles":"Ocultar datas dos t\xEDtulos dos cart\xF5es","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Ao ativar, as datas ser\xE3o t\xEDtulos de cart\xF5es ocultos. Evita que datas sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Link dates to daily notes":"Vincular datas a notas di\xE1rias","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Ao ativar, as datas ser\xE3o vinculadas \xE0s notas di\xE1rias. Ex.: [[2021-04-26]]","Add date and time to archived cards":"Adicionar data e hora aos cart\xF5es arquivados","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Quando ativada, a data e a hora atuais ser\xE3o adicionadas ao in\xEDcio de um cart\xE3o quando ele for arquivado. Ex.: - [] 2021-05-14 10:00 T\xEDtulo do meu cart\xE3o","Archive date/time separator":"Separador de data/hora do arquivo","This will be used to separate the archived date/time from the title":"Isso ser\xE1 usado para separar a data/hora arquivada do t\xEDtulo.","Archive date/time format":"Formato de data/hora do arquivo","Kanban Plugin":"Plugin Kanban","Hide tags in card titles":"Ocultar \u2018tags\u2019 nos t\xEDtulos dos cart\xF5es","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas nos t\xEDtulos de cartas. Isso impedir\xE1 que as \u2018tags\u2019 sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Hide card display tags":"Ocultar \u2018tags\u2019 de exibi\xE7\xE3o de cart\xE3o","When toggled, tags will not be displayed below the card title.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas abaixo do t\xEDtulo do cart\xE3o.","Linked Page Metadata":"Metadados de p\xE1ginas 'lincadas'","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Exibe metadados para a primeira nota 'lincada' em um cart\xE3o. Especifique abaixo quais metadados ser\xE3o exibidos. Um r\xF3tulo opcional pode ser fornecido e os r\xF3tulos podem ser ocultados completamente.","Metadata key":"Metadado","Display label":"Descri\xE7\xE3o personalizada","Hide label":"Ocultar","Drag to rearrange":"Arraste para reorganizar",Delete:"Excluir","Add key":"Adicionar metadado","More options":"Mais op\xE7\xF5es",Cancel:"Cancelar",today:"hoje",yesterday:"ontem",tomorrow:"amanh\xE3","Change date":"Alterar data","Change time":"Mudar hora","Card title...":"T\xEDtulo do item...","Add card":"Adicionar Item","Add a card":"Adicione um cart\xE3o","Edit card":"Editar cart\xE3o","New note from card":"Nova nota do cart\xE3o","Archive card":"Arquivar cart\xE3o","Delete card":"Excluir cart\xE3o","Edit date":"Editar data","Add date":"Adicionar data","Remove date":"Remover data","Edit time":"Editar hora","Add time":"Adicionar hora","Remove time":"Remover hora","Duplicate card":"Duplicate card","Enter list title...":"Insira o t\xEDtulo da lista...","Mark cards in this list as complete":"Marcar os itens nesta lista como conclu\xEDdos","Add list":"Adicionar lista","Add a list":"Adicionar uma lista","Move list":"Mover lista",Close:"Fechar","Are you sure you want to delete this list and all its cards?":"Tem certeza de que deseja excluir esta lista e todos os seus cart\xF5es?","Yes, delete list":"Sim, excluir esta lista","Are you sure you want to archive this list and all its cards?":"Tem certeza de que deseja arquivar esta lista e todos os seus cart\xF5es?","Yes, archive list":"Sim, arquivar esta lista","Are you sure you want to archive all cards in this list?":"Tem certeza de que deseja arquivar todos os cart\xF5es desta lista?","Yes, archive cards":"Sim, arquivar cart\xF5es","Edit list":"Editar lista","Archive cards":"Arquivar cart\xF5es","Archive list":"Arquivar lista","Delete list":"Excluir lista"};h();var Qg={};h();var Xg={};h();var Zg={};h();var Xo={};h();var ev={"Open as kanban board":"\u6253\u5F00\u4E3A\u770B\u677F","Create new board":"\u521B\u5EFA\u65B0\u770B\u677F","Archive completed cards in active board":"\u5728\u5F53\u524D\u770B\u677F\u4E2D\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Error: current file is not a Kanban board":"\u9519\u8BEF\uFF1A\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u770B\u677F\u6587\u4EF6","Convert empty note to Kanban":"\u8F6C\u6362\u7A7A\u767D\u6587\u6863\u4E3A\u770B\u677F","Error: cannot create Kanban, the current note is not empty":"\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8F6C\u6362\u5F53\u524D\u6587\u4EF6\uFF0C\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u7A7A\u767D\u6587\u6863","New kanban board":"\u65B0\u770B\u677F","Untitled Kanban":"\u672A\u547D\u540D\u770B\u677F","Toggle between Kanban and markdown mode":"\u5728\u770B\u677F\u548C Markdown \u6A21\u5F0F\u4E4B\u95F4\u8FDB\u884C\u5207\u6362","Open as markdown":"\u6253\u5F00\u4E3A Markdown \u6587\u4EF6","Open board settings":"\u6253\u5F00\u770B\u677F\u8BBE\u7F6E","Archive completed cards":"\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Something went wrong":"\u51FA\u4E86\u70B9\u95EE\u9898 `(*>\uFE4F<*)\u2032 ","You may wish to open as markdown and inspect or edit the file.":"\u4F60\u53EF\u80FD\u5E0C\u671B\u4EE5 Markdown \u65B9\u5F0F\u6253\u5F00\uFF0C\u5E76\u68C0\u67E5\u6216\u7F16\u8F91\u8BE5\u6587\u4EF6\u3002","Are you sure you want to archive all completed cards on this board?":"\u4F60\u786E\u5B9A\u8981\u5C06\u8FD9\u4E2A\u677F\u5757\u4E0A\u6240\u6709\u5DF2\u5B8C\u6210\u7684\u5361\u7247\u5F52\u6863\u5417\uFF1F",Complete:"\u5B8C\u6210",Archive:"\u5F52\u6863","Invalid Kanban file: problems parsing frontmatter":"\u65E0\u6548\u7684\u770B\u677F\u6587\u4EF6\uFF1A\u89E3\u6790\u524D\u7AEF\u5185\u5BB9\u65F6\u51FA\u73B0\u95EE\u9898","I don't know how to interpret this line:":"\u6211\u4E0D\u77E5\u9053\u5982\u4F55\u89E3\u8BFB\u8FD9\u53E5\u8BDD: ",Untitled:"\u672A\u547D\u540D","Note: No template plugins are currently enabled.":"\u6CE8\u610F\uFF1A\u5F53\u524D\u6A21\u677F\u63D2\u4EF6\u6CA1\u6709\u8FD0\u884C",default:"\u9ED8\u8BA4","Search...":"\u641C\u7D22...","New line trigger":"\u6362\u884C\u89E6\u53D1\u5668","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"\u9009\u62E9 Enter \u6216\u662F Shift+Enter \u6765\u521B\u5EFA\u65B0\u884C, \u4F60\u6CA1\u6709\u9009\u62E9\u7684\u5C06\u7528\u6765\u521B\u5EFA\u548C\u5B8C\u6210\u5361\u7247","Prepend / append new cards":"\u8FFD\u52A0\u65B0\u5361","This setting controls whether new cards are added to the beginning or end of the list.":"\u8BBE\u7F6E\u65B0\u5361\u7247\u6DFB\u52A0\u5230\u5217\u8868\u5934\u90E8\u6216\u5C3E\u90E8\u3002",Prepend:"\u5934\u90E8","Prepend (compact)":"\u5934\u90E8 (\u7D27\u51D1)",Append:"\u5C3E\u90E8","These settings will take precedence over the default Kanban board settings.":"\u5F53\u524D\u770B\u677F\u8BBE\u7F6E\u5C06\u4F1A\u8986\u76D6\u9ED8\u8BA4\u7684\u770B\u677F\u8BBE\u7F6E","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u8BBE\u7F6E\u770B\u677F\u7684\u9ED8\u8BA4\u8BBE\u7F6E\u3002\u8BBE\u7F6E\u53EF\u4EE5\u6BCF\u4E2A\u770B\u677F\u5355\u72EC\u8BBE\u7F6E\u3002","Note template":"\u7B14\u8BB0\u6A21\u677F","This template will be used when creating new notes from Kanban cards.":"\u521B\u5EFA\u65B0\u770B\u677F\u5361\u7247\u65F6\u4F1A\u4F7F\u7528\u8BE5\u6A21\u677F","No template":"\u6CA1\u6709\u6A21\u677F","Note folder":"\u7B14\u8BB0\u5B58\u653E\u4F4D\u7F6E","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u4ECE\u770B\u677F\u5361\u7247\u521B\u5EFA\u7684\u7B14\u8BB0\u4F1A\u653E\u7F6E\u5230\u8BE5\u6587\u4EF6\u5939\u4E2D\uFF0C\u5982\u679C\u8FD9\u91CC\u4E3A\u7A7A\uFF0C\u5728\u770B\u677F\u521B\u5EFA\u7684\u7B14\u8BB0\u4F1A\u653E\u7F6E\u5230 Obsidian \u7684\u9ED8\u8BA4\u6587\u4EF6\u5B58\u653E\u4F4D\u7F6E\u3002","Default folder":"\u9ED8\u8BA4\u6587\u4EF6\u5939","Lane width":"\u5361\u7247\u5BBD\u5EA6","Enter a number to set the lane width in pixels.":"\u8F93\u5165\u4E00\u4E2A\u6570\u5B57\u6765\u8BBE\u7F6E\u770B\u677F\u7684\u5361\u7247\u5BBD\u5EA6","Maximum number of archived cards":"\u5355\u4E2A\u770B\u677F\u7684\u5F52\u6863\u5361\u7247\u7684\u6700\u5927\u6570\u91CF","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u5DF2\u5F52\u6863\u7684\u5361\u7247\u53EF\u4EE5\u5728 Markdown \u6A21\u5F0F\u4E0B\u67E5\u770B\u3002\u8FD9\u4E2A\u8BBE\u7F6E\u4F1A\u5BFC\u81F4\u63D2\u4EF6\u5728\u5DF2\u5F52\u6863\u7684\u5361\u7247\u6570\u91CF\u62B5\u8FBE\u9650\u5236\u503C\u65F6\u5F00\u59CB\u5220\u9664\u5361\u7247\u3002\u5F53\u524D\u503C\u8BBE\u7F6E\u4E3A -1 \u7684\u8BDD\u53EF\u4EE5\u6C38\u4E45\u4FDD\u7559\u6240\u6709\u5F52\u6863\u5361\u7247\u3002","Display card checkbox":"\u5C55\u793A\u5361\u7247\u590D\u9009\u6846","When toggled, a checkbox will be displayed with each card":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u590D\u9009\u6846\u4F1A\u51FA\u73B0\u5728\u6BCF\u4E2A\u5361\u7247\u4E0A","Reset to default":"\u8FD8\u539F\u521D\u59CB\u8BBE\u7F6E","Date & Time":"\u65E5\u671F\u548C\u65F6\u95F4","Date trigger":"\u65E5\u671F\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the date selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65E5\u671F\u9009\u62E9\u5668","Time trigger":"\u65F6\u95F4\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the time selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65F6\u95F4\u9009\u62E9\u5668","Date format":"\u65E5\u671F\u683C\u5F0F","This format will be used when saving dates in markdown.":"\u8FD9\u4E2A\u683C\u5F0F\u4F1A\u5728\u65E5\u671F\u4FDD\u5B58\u5230 Markdown \u683C\u5F0F\u65F6\u4F7F\u7528\u3002","For more syntax, refer to":"\u66F4\u591A\u683C\u5F0F\uFF0C\u8BF7\u67E5\u770B","format reference":"\u683C\u5F0F\u53C2\u8003","Your current syntax looks like this":"\u4F60\u5F53\u524D\u8BBE\u7F6E\u7684\u683C\u5F0F\u4F1A\u662F","Time format":"\u65F6\u95F4\u683C\u5F0F","Date display format":"\u65E5\u671F\u5C55\u793A\u683C\u5F0F","This format will be used when displaying dates in Kanban cards.":"\u5728\u770B\u677F\u5361\u7247\u4E2D\uFF0C\u4F1A\u57FA\u4E8E\u8BE5\u683C\u5F0F\u5C55\u793A\u65E5\u671F","Show relative date":"\u5C55\u793A\u76F8\u5BF9\u65E5\u671F","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u4F1A\u5C55\u793A\u5176\u8BBE\u7F6E\u7684\u65E5\u671F\u4E0E\u4ECA\u5929\u7684\u65E5\u671F\u7684\u5DEE\u503C\uFF0C\u4F8B\u5982\u4E09\u5929\u5185\u3001\u4E00\u4E2A\u6708\u5185\u7B49\u3002","Hide card display dates":"\u9690\u85CF\u5361\u7247\u65E5\u671F","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u683C\u5F0F\u5316\u7684\u65E5\u671F\u4E0D\u4F1A\u5C55\u793A\uFF0C\u4F46\u662F\u5982\u679C\u4F60\u5F00\u542F\u4E86\u76F8\u5BF9\u65E5\u671F\u7684\u529F\u80FD\uFF0C\u76F8\u5BF9\u65E5\u671F\u8FD8\u662F\u4F1A\u7EE7\u7EED\u5C55\u793A\u3002","Hide dates in card titles":"\u5728\u5361\u7247\u6807\u9898\u4E2D\u9690\u85CF\u65E5\u671F","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u65E5\u671F\u4F1A\u9690\u85CF\uFF0C\u5F53\u57FA\u4E8E\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u7684\u65F6\u5019\u53EF\u4EE5\u907F\u514D\u65E5\u671F\u6DF7\u6742\u5176\u4E2D\u3002","Link dates to daily notes":"\u94FE\u63A5\u65E5\u671F\u5230\u65E5\u8BB0","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u65E5\u671F\u4F1A\u81EA\u52A8\u94FE\u63A5\u5230\u65E5\u8BB0\u9875\u9762\uFF0C\u4F8B\u5982 [[2021-04-26]]","Add date and time to archived cards":"\u6DFB\u52A0\u65E5\u671F\u548C\u65F6\u95F4\u5230\u5F52\u6863\u5361\u7247","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5F53\u524D\u7684\u65E5\u671F\u548C\u65F6\u95F4\u4F1A\u88AB\u6DFB\u52A0\u5230\u5F52\u6863\u7684\u5361\u7247\u7684\u524D\u7AEF\u4E0A\uFF0C\u4F8B\u5982\u201C- [ ] 2021-05-14 10:00am \u6211\u7684\u5361\u7247\u6807\u9898\u201D","Archive date/time separator":"\u65E5\u671F\u6216\u65F6\u95F4\u5206\u9694\u7B26","This will be used to separate the archived date/time from the title":"\u7528\u4E8E\u4ECE\u5206\u9694\u5F52\u6863\u5361\u7247\u7684\u65E5\u671F\u6216\u65F6\u95F4","Archive date/time format":"\u5F52\u6863\u65E5\u671F\u6216\u65F6\u95F4\u683C\u5F0F","Kanban Plugin":"\u770B\u677F\u63D2\u4EF6","Hide tags in card titles":"\u9690\u85CF\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E\u5C06\u4F1A\u88AB\u9690\u85CF\uFF0C\u6765\u907F\u514D\u751F\u6210\u5361\u7247\u7B14\u8BB0\u7684\u65F6\u5019\u9644\u5E26\u4E0A\u6807\u7B7E","Hide card display tags":"\u9690\u85CF\u5361\u7247\u4E0A\u7684\u6807\u7B7E","When toggled, tags will not be displayed below the card title.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u6807\u9898\u4E0B\u65B9\u7684\u6807\u7B7E\u5C06\u4E0D\u4F1A\u5C55\u793A","Linked Page Metadata":"\u8FDE\u63A5\u7684\u9875\u9762\u5143\u6570\u636E","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u5C55\u793A\u5361\u7247\u4E2D\u7B2C\u4E00\u4E2A\u8FDE\u63A5\u6240\u5BF9\u5E94\u7684\u7B14\u8BB0\u5143\u6570\u636E\uFF0C\u8BF7\u5728\u4E0B\u65B9\u6307\u5B9A\u54EA\u4E9B\u5143\u6570\u636E\u53EF\u4EE5\u5C55\u793A\u3002\u4F60\u53EF\u4EE5\u9009\u62E9\u5C55\u793A\u6807\u5FD7\uFF0C\u6807\u5FD7\u53EF\u4EE5\u90FD\u88AB\u9690\u85CF\u3002","Board Header Buttons":"\u677F\u5934\u6309\u94AE","Calendar: first day of week":"\u65E5\u5386\uFF1A\u4E00\u5468\u7684\u7B2C\u4E00\u5929","Override which day is used as the start of the week":"\u54EA\u4E00\u5929\u4F5C\u4E3A\u4E00\u5468\u7684\u5F00\u59CB",Sunday:"\u5468\u65E5",Monday:"\u5468\u4E00",Tuesday:"\u5468\u4E8C",Wednesday:"\u5468\u4E09",Thursday:"\u5468\u56DB",Friday:"\u5468\u4E94",Saturday:"\u5468\u516D","Metadata key":"\u5143\u6570\u636E\u53C2\u6570\u540D","Display label":"\u5C55\u793A\u6807\u5FD7","Hide label":"\u9690\u85CF\u6807\u5FD7","Drag to rearrange":"\u62D6\u52A8\u6765\u91CD\u6392\u987A\u5E8F",Delete:"\u5220\u9664","Add key":"\u6DFB\u52A0\u53C2\u6570\u540D","Field contains markdown":"\u5B57\u6BB5\u5305\u542B Markdown","More options":"\u66F4\u591A\u9009\u9879",Cancel:"\u53D6\u6D88",today:"\u4ECA\u5929",yesterday:"\u6628\u5929",tomorrow:"\u660E\u5929","Change date":"\u66F4\u6539\u65E5\u671F","Change time":"\u66F4\u6539\u65F6\u95F4","Card title...":"\u5361\u7247\u6807\u9898","Add card":"\u6DFB\u52A0","Add a card":"\u6DFB\u52A0\u5361\u7247","Edit card":"\u7F16\u8F91\u5361\u7247","New note from card":"\u4ECE\u5361\u7247\u65B0\u5EFA\u7B14\u8BB0","Archive card":"\u5F52\u6863\u5361\u7247","Delete card":"\u5220\u9664\u5361\u7247","Edit date":"\u7F16\u8F91\u65E5\u671F","Add date":"\u6DFB\u52A0\u65E5\u671F","Remove date":"\u79FB\u9664\u65E5\u671F","Edit time":"\u7F16\u8F91\u65F6\u95F4","Add time":"\u6DFB\u52A0\u65F6\u95F4","Remove time":"\u79FB\u9664\u65F6\u95F4","Duplicate card":"\u590D\u5236\u5361\u7247","Split card":"\u5206\u79BB\u5361\u7247","Copy link to card":"\u590D\u5236\u94FE\u63A5\u81F3\u5361\u7247","Insert card before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5361\u7247","Insert card after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5361\u7247","Enter list title...":"\u8F93\u5165\u65B0\u7684\u5217\u6807\u9898","Mark cards in this list as complete":"\u5C06\u8BE5\u5217\u8BBE\u7F6E\u4E3A\u5B8C\u6210\u5217","Add list":"\u6DFB\u52A0","Add a list":"\u6DFB\u52A0\u5217","Move list":"\u79FB\u52A8\u5217",Close:"\u5173\u95ED","Are you sure you want to delete this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5220\u9664\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, delete list":"\u662F\uFF0C\u5220\u9664\u5217","Are you sure you want to archive this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5F52\u6863\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive list":"\u662F, \u5F52\u6863\u5217","Are you sure you want to archive all cards in this list?":"\u4F60\u786E\u8BA4\u4F60\u8981\u5F52\u6863\u5F53\u524D\u5217\u7684\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive cards":"\u662F\uFF0C\u5F52\u6863\u6240\u6709\u5361\u7247","Edit list":"\u7F16\u8F91\u5217","Archive cards":"\u5F52\u6863\u5361\u7247","Archive list":"\u5F52\u6863\u5217","Delete list":"\u5220\u9664\u5217","Insert list before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5217","Insert list after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5217","Unable to find":"\u65E0\u6CD5\u627E\u5230","Open in default app":"\u5728\u9ED8\u8BA4\u5E94\u7528\u4E2D\u6253\u5F00",Submit:"\u63D0\u4EA4"};h();var tv={};var mS={ar:Og,cz:Ng,da:Rg,de:Hg,en:gu,es:Bg,fr:Kg,hi:$g,id:Ug,it:Vg,ja:zg,ko:Wg,nl:jg,no:qg,pl:Yg,"pt-BR":Gg,pt:Jg,ro:Qg,ru:Xg,sq:Zg,tr:Xo,uk:Xo,"zh-TW":tv,zh:ev},nv=window.localStorage.getItem("language"),vu=mS[nv||"en"];function H(e){return vu||console.error("Error: kanban locale not found",nv),vu&&vu[e]||gu[e]}h();h();function Un(e){return Array.isArray?Array.isArray(e):av(e)==="[object Array]"}var gS=1/0;function vS(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-gS?"-0":t}function yS(e){return e==null?"":vS(e)}function Mn(e){return typeof e=="string"}function rv(e){return typeof e=="number"}function bS(e){return e===!0||e===!1||wS(e)&&av(e)=="[object Boolean]"}function iv(e){return typeof e=="object"}function wS(e){return iv(e)&&e!==null}function an(e){return e!=null}function yu(e){return!e.trim().length}function av(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var ES="Incorrect 'index' type",xS=e=>`Invalid value for key ${e}`,kS=e=>`Pattern length exceeds max of ${e}.`,SS=e=>`Missing ${e} property in key`,_S=e=>`Property 'weight' in key '${e}' must be a positive integer`,ov=Object.prototype.hasOwnProperty,sv=class{constructor(t){this._keys=[],this._keyMap={};let r=0;t.forEach(n=>{let i=lv(n);r+=i.weight,this._keys.push(i),this._keyMap[i.id]=i,r+=i.weight}),this._keys.forEach(n=>{n.weight/=r})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function lv(e){let t=null,r=null,n=null,i=1,a=null;if(Mn(e)||Un(e))n=e,t=cv(e),r=bu(e);else{if(!ov.call(e,"name"))throw new Error(SS("name"));let o=e.name;if(n=o,ov.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(_S(o));t=cv(o),r=bu(o),a=e.getFn}return{path:t,id:r,weight:i,src:n,getFn:a}}function cv(e){return Un(e)?e:e.split(".")}function bu(e){return Un(e)?e.join("."):e}function DS(e,t){let r=[],n=!1,i=(a,o,s)=>{if(!!an(a))if(!o[s])r.push(a);else{let u=o[s],l=a[u];if(!an(l))return;if(s===o.length-1&&(Mn(l)||rv(l)||bS(l)))r.push(yS(l));else if(Un(l)){n=!0;for(let c=0,d=l.length;ce.score===t.score?e.idx{this._keysMap[r.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Mn(this.docs[0])?this.docs.forEach((t,r)=>{this._addString(t,r)}):this.docs.forEach((t,r)=>{this._addObject(t,r)}),this.norm.clear())}add(t){let r=this.size();Mn(t)?this._addString(t,r):this._addObject(t,r)}removeAt(t){this.records.splice(t,1);for(let r=t,n=this.size();r{let o=i.getFn?i.getFn(t):this.getFn(t,i.path);if(!!an(o)){if(Un(o)){let s=[],u=[{nestedArrIndex:-1,value:o}];for(;u.length;){let{nestedArrIndex:l,value:c}=u.pop();if(!!an(c))if(Mn(c)&&!yu(c)){let d={v:c,i:l,n:this.norm.get(c)};s.push(d)}else Un(c)&&c.forEach((d,f)=>{u.push({nestedArrIndex:f,value:d})})}n.$[a]=s}else if(Mn(o)&&!yu(o)){let s={v:o,n:this.norm.get(o)};n.$[a]=s}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}};function uv(e,t,{getFn:r=_e.getFn,fieldNormWeight:n=_e.fieldNormWeight}={}){let i=new Zo({getFn:r,fieldNormWeight:n});return i.setKeys(e.map(lv)),i.setSources(t),i.create(),i}function PS(e,{getFn:t=_e.getFn,fieldNormWeight:r=_e.fieldNormWeight}={}){let{keys:n,records:i}=e,a=new Zo({getFn:t,fieldNormWeight:r});return a.setKeys(n),a.setIndexRecords(i),a}function es(e,{errors:t=0,currentLocation:r=0,expectedLocation:n=0,distance:i=_e.distance,ignoreLocation:a=_e.ignoreLocation}={}){let o=t/e.length;if(a)return o;let s=Math.abs(n-r);return i?o+s/i:s?1:o}function FS(e=[],t=_e.minMatchCharLength){let r=[],n=-1,i=-1,a=0;for(let o=e.length;a=t&&r.push([n,i]),n=-1)}return e[a-1]&&a-n>=t&&r.push([n,a-1]),r}var Mr=32;function OS(e,t,r,{location:n=_e.location,distance:i=_e.distance,threshold:a=_e.threshold,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,includeMatches:u=_e.includeMatches,ignoreLocation:l=_e.ignoreLocation}={}){if(t.length>Mr)throw new Error(kS(Mr));let c=t.length,d=e.length,f=Math.max(0,Math.min(n,d)),p=a,m=f,y=s>1||u,b=y?Array(d):[],k;for(;(k=e.indexOf(t,m))>-1;){let N=es(t,{currentLocation:k,expectedLocation:f,distance:i,ignoreLocation:l});if(p=Math.min(N,p),m=k+c,y){let U=0;for(;U=te;G-=1){let re=G-1,pe=r[e.charAt(re)];if(y&&(b[re]=+!!pe),le[G]=(le[G+1]<<1|1)&pe,N&&(le[G]|=(T[G+1]|T[G])<<1|1|T[G+1]),le[G]&B&&(D=es(t,{errors:N,currentLocation:re,expectedLocation:f,distance:i,ignoreLocation:l}),D<=p)){if(p=D,m=re,m<=f)break;te=Math.max(1,2*f-m)}}if(es(t,{errors:N+1,currentLocation:f,expectedLocation:f,distance:i,ignoreLocation:l})>p)break;T=le}let C={isMatch:m>=0,score:Math.max(.001,D)};if(y){let N=FS(b,s);N.length?u&&(C.indices=N):C.isMatch=!1}return C}function NS(e){let t={};for(let r=0,n=e.length;r{this.chunks.push({pattern:f,alphabet:NS(f),startIndex:p})},d=this.pattern.length;if(d>Mr){let f=0,p=d%Mr,m=d-p;for(;f{let{isMatch:k,score:T,indices:D}=OS(t,m,y,{location:i+b,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:u,includeMatches:n,ignoreLocation:l});k&&(f=!0),d+=T,k&&D&&(c=[...c,...D])});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&n&&(p.indices=c),p}},Vn=class{constructor(t){this.pattern=t}static isMultiMatch(t){return dv(t,this.multiRegex)}static isSingleMatch(t){return dv(t,this.singleRegex)}search(){}};function dv(e,t){let r=e.match(t);return r?r[1]:null}var fv=class extends Vn{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){let r=t===this.pattern;return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},pv=class extends Vn{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){let n=t.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}},hv=class extends Vn{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){let r=t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},mv=class extends Vn{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){let r=!t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},gv=class extends Vn{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){let r=t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},vv=class extends Vn{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){let r=!t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},Eu=class extends Vn{constructor(t,{location:r=_e.location,threshold:n=_e.threshold,distance:i=_e.distance,includeMatches:a=_e.includeMatches,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,isCaseSensitive:u=_e.isCaseSensitive,ignoreLocation:l=_e.ignoreLocation}={}){super(t);this._bitapSearch=new wu(t,{location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:u,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}},xu=class extends Vn{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let r=0,n,i=[],a=this.pattern.length;for(;(n=t.indexOf(this.pattern,r))>-1;)r=n+a,i.push([n,r-1]);let o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}},ku=[fv,xu,hv,mv,vv,gv,pv,Eu],yv=ku.length,RS=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,HS="|";function BS(e,t={}){return e.split(HS).map(r=>{let n=r.trim().split(RS).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(e[ts.AND]||e[ts.OR]),US=e=>!!e[Du.PATH],VS=e=>!Un(e)&&iv(e)&&!Cu(e),wv=e=>({[ts.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Ev(e,t,{auto:r=!0}={}){let n=i=>{let a=Object.keys(i),o=US(i);if(!o&&a.length>1&&!Cu(i))return n(wv(i));if(VS(i)){let u=o?i[Du.PATH]:a[0],l=o?i[Du.PATTERN]:i[u];if(!Mn(l))throw new Error(xS(u));let c={keyId:bu(u),pattern:l};return r&&(c.searcher=_u(l,t)),c}let s={children:[],operator:a[0]};return a.forEach(u=>{let l=i[u];Un(l)&&l.forEach(c=>{s.children.push(n(c))})}),s};return Cu(e)||(e=wv(e)),n(e)}function zS(e,{ignoreFieldNorm:t=_e.ignoreFieldNorm}){e.forEach(r=>{let n=1;r.matches.forEach(({key:i,norm:a,score:o})=>{let s=i?i.weight:null;n*=Math.pow(o===0&&s?Number.EPSILON:o,(s||1)*(t?1:a))}),r.score=n})}function WS(e,t){let r=e.matches;t.matches=[],!!an(r)&&r.forEach(n=>{if(!an(n.indices)||!n.indices.length)return;let{indices:i,value:a}=n,o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),t.matches.push(o)})}function jS(e,t){t.score=e.score}function qS(e,t,{includeMatches:r=_e.includeMatches,includeScore:n=_e.includeScore}={}){let i=[];return r&&i.push(WS),n&&i.push(jS),e.map(a=>{let{idx:o}=a,s={item:t[o],refIndex:o};return i.length&&i.forEach(u=>{u(a,s)}),s})}var dn=class{constructor(t,r={},n){this.options={..._e,...r},this.options.useExtendedSearch,this._keyStore=new sv(this.options.keys),this.setCollection(t,n)}setCollection(t,r){if(this._docs=t,r&&!(r instanceof Zo))throw new Error(ES);this._myIndex=r||uv(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){!an(t)||(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){let r=[];for(let n=0,i=this._docs.length;n-1&&(u=u.slice(0,r)),qS(u,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(t){let r=_u(t,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:s})=>{if(!an(a))return;let{isMatch:u,score:l,indices:c}=r.searchIn(a);u&&i.push({item:a,idx:o,matches:[{score:l,value:a,norm:s,indices:c}]})}),i}_searchLogical(t){let r=Ev(t,this.options),n=(s,u,l)=>{if(!s.children){let{keyId:d,searcher:f}=s,p=this._findMatches({key:this._keyStore.get(d),value:this._myIndex.getValueForItemAtKeyId(u,d),searcher:f});return p&&p.length?[{idx:l,item:u,matches:p}]:[]}let c=[];for(let d=0,f=s.children.length;d{if(an(s)){let l=n(r,s,u);l.length&&(a[u]||(a[u]={idx:u,item:s,matches:[]},o.push(a[u])),l.forEach(({matches:c})=>{a[u].matches.push(...c)}))}}),o}_searchObjectList(t){let r=_u(t,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:s})=>{if(!an(o))return;let u=[];n.forEach((l,c)=>{u.push(...this._findMatches({key:l,value:o[c],searcher:r}))}),u.length&&a.push({idx:s,item:o,matches:u})}),a}_findMatches({key:t,value:r,searcher:n}){if(!an(r))return[];let i=[];if(Un(r))r.forEach(({v:a,i:o,n:s})=>{if(!an(a))return;let{isMatch:u,score:l,indices:c}=n.searchIn(a);u&&i.push({score:l,key:t,value:a,idx:o,norm:s,indices:c})});else{let{v:a,n:o}=r,{isMatch:s,score:u,indices:l}=n.searchIn(a);s&&i.push({score:u,key:t,value:a,norm:o,indices:l})}return i}};dn.version="6.6.2";dn.createIndex=uv;dn.parseIndex=PS;dn.config=_e;dn.parseQuery=Ev;$S(bv);var Vv=ge(require("obsidian"));h();var xv=ge(require("obsidian"));function ns(e,t,r){let n=r.getSetting("date-format"),i=r.getSetting("link-date-to-daily-note"),a=(0,xv.moment)(e).format(n),o=i?Io(r.app,a):`{${a}}`;Tt(t.current,o),t.current.focus()}function kv({div:e,inputRef:t,cb:r,stateManager:n}){e.createEl("input",{type:"text"},i=>{setTimeout(()=>r(Ko(i,{now:new Date,locale:Po(n),inline:!0,onChange:a=>{ns(a[0],t,n)},win:i.ownerDocument.defaultView})))})}function Tu(e,t){let r=t.clientHeight,n=t.clientWidth,i=Je(t);e.top+r>i.innerHeight&&(t.style.top=`${(e.clientTop||0)-r}px`),e.left+n>i.innerWidth&&(t.style.left=`${(e.left||0)-n}px`)}function Sv(e){let t=e.getSetting("time-trigger"),r=new RegExp(`\\B${Sn(t)}{?([^}]*)$`),n=cu(e);return{id:"time",match:r,index:1,search:(i,a)=>{a(i?n.filter(o=>o.startsWith(i)):n)},template:i=>i,replace:i=>`${t}{${i}} `}}function _v(e){let t=e.month(),r=e.clone().startOf("month").weekday(0),n=e.diff(r,"week");e.subtract(1,"month").startOf("month").weekday(6).add(n,"week");let i=e.month();for(;t===i;)e.subtract(1,"week"),i=e.month();return e}function Dv(e){let t=e.month(),r=e.clone().startOf("month").weekday(6),n=e.diff(r,"week");e.add(1,"month").startOf("month").weekday(0).add(n,"week");let i=e.month();for(;t===i;)e.add(1,"week"),i=e.month();return e}h();var Cv=ge(require("obsidian"));var YS=/\B\[\[([^\]]*)$/,JS=/\B!\[\[([^\]]*)$/,GS=/\B\[\[([^#\]]+)#([^\]]*)$/,QS=/\B!\[\[([^#\]]+)#([^\]]*)$/,XS=/\B\[\[([^#\]]+)#?\^([^\]]*)$/,ZS=/\B!\[\[([^#\]]+)#?\^([^\]]*)$/;function e0(e,t,r){let n=createDiv(z("file-suggestion-wrapper"));(0,Cv.setIcon)(n.createDiv(z("file-suggestion-icon")),"forward-arrow",12),n.createDiv({},a=>{a.createDiv({cls:z("file-suggestion-title"),text:r.item.alias}),a.createDiv({cls:z("file-suggestion-subtitle"),text:e.app.metadataCache.fileToLinktext(r.item.file,t)})});let i=n.outerHTML;return n.remove(),n=null,i}function Mu(e,t,r,n,i,a){return{id:`link-${a?"embed":"normal"}`,match:a?JS:YS,index:1,template:o=>o.item.file===null?`${o.item.path.split("|").pop()||o.item.path}`:o.item.alias?e0(n,r,o):n.app.metadataCache.fileToLinktext(o.item.file,r),search:(o,s)=>{if(!o)s(e.slice(0,10).map((u,l)=>({item:u,refIndex:l})));else{let u=o.split("|"),l=u.length>1,c=u[0],d=l?u.slice(1).join("|"):null,f=o;l&&(f={"file.basename":c,alias:d}),s([{item:{file:null,path:o,alias:""},refIndex:-1},...t.search(f)])}},replace:o=>{let s=[];a&&o.item.file.extension==="md"&&s.push("!"),o.item.file===null?s.push(`[[${o.item.path}]]`):s.push(n.app.fileManager.generateMarkdownLink(o.item.file,n.file.path,void 0,o.item.alias));let u=!!n.app.vault.getConfig("useMarkdownLinks");return i&&!u&&(s[s.length-1]=s[s.length-1].slice(0,-2)),s.join("")}}}function t0(e,t,r,n){var u;if(!r)return[];let i=r.split("|"),a=e.metadataCache.getFirstLinkpathDest(i[0],t);if(!a)return[];let o=e.metadataCache.getFileCache(a);if(!o||!((u=o.headings)==null?void 0:u.length))return[];let s=o.headings.map(l=>({file:a,heading:l.heading,alias:i[1]||""}));return n?new dn(s,{keys:["heading"]}).search(n):s.map((l,c)=>({item:l,refIndex:c}))}function Iu(e,t,r,n){return{id:`heading-${n?"embed":"normal"}`,match:n?QS:GS,index:1,template:i=>i.item.heading,search:(i,a,o)=>{a(t0(t.app,e,o[1],o[2]))},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!"),a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,"#"+i.item.heading,i.item.alias));let o=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!o?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!o&&a.push("]] "),a.join("")}}}var Tv=class{constructor(){this.running=!1;this.cancelled=!1}start(){this.running=!0}stop(){this.running=!1}cancel(){this.stop(),this.cancelled=!0}isRunning(){return this.running}isCancelled(){return this.cancelled}};async function n0(e,t,r,n,i){var u;if(!r)return i([]);let a=r.split("|"),o=e.metadataCache.getFirstLinkpathDest(a[0],t);if(!o)return i([]);let s=e.metadataCache.getFileCache(o);if(!s||!((u=s.sections)==null?void 0:u.length))return i([]);try{let l=await e.metadataCache.blockCache.getForFile(new Tv,o);if(!(l==null?void 0:l.blocks))return i([]);let c=l.blocks.map(d=>d.node.type==="heading"?null:{file:o,searchString:d.display,blockId:d.node.id,block:{type:d.node.type,start:d.node.position.start.offset,end:d.node.position.end.offset},alias:a[1]||""}).filter(d=>d);i(n?new dn(c,{keys:["searchString","blockId"]}).search(n):c.map((d,f)=>({item:d,refIndex:f})))}catch(l){i([])}}function r0(e){return["blockquote","code","table","comment","footnoteDefinition"].includes(e)}function Au(e,t,r,n){return{id:`block-${n?"embed":"normal"}`,match:n?ZS:XS,index:1,template:i=>i.item.blockId?`
    ${i.item.searchString}
    ${i.item.blockId}
    `:i.item.searchString,search:(i,a,o)=>{n0(t.app,e,o[1],o[2],a)},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!");let o="#^";if(i.item.blockId)o+=i.item.blockId;else{let u=ze(),l=r0(i.item.block.type)?` + `}function L(){n.calendarContainer.classList.add("hasWeeks");let _=je(r.document,"div","flatpickr-weekwrapper");_.appendChild(je(r.document,"span","flatpickr-weekday",n.l10n.weekAbbreviation));let M=je(r.document,"div","flatpickr-weeks");return _.appendChild(M),{weekWrapper:_,weekNumbers:M}}function P(_,M=!0){let K=M?_:_-n.currentMonth;K<0&&n._hidePrevMonthArrow===!0||K>0&&n._hideNextMonthArrow===!0||(n.currentMonth+=K,(n.currentMonth<0||n.currentMonth>11)&&(n.currentYear+=n.currentMonth>11?1:-1,n.currentMonth=(n.currentMonth+12)%12,Ue("onYearChange"),G()),X(),Ue("onMonthChange"),St())}function lt(_=!0,M=!0){if(n.input.value="",n.altInput!==void 0&&(n.altInput.value=""),n.mobileInput!==void 0&&(n.mobileInput.value=""),n.selectedDates=[],n.latestSelectedDateObj=void 0,M===!0&&(n.currentYear=n._initialDate.getFullYear(),n.currentMonth=n._initialDate.getMonth()),n.config.enableTime===!0){let{hours:K,minutes:Q,seconds:se}=Ho(n.config);m(K,Q,se)}n.redraw(),_&&Ue("onChange")}function Je(){n.isOpen=!1,n.isMobile||(n.calendarContainer!==void 0&&n.calendarContainer.classList.remove("open"),n._input!==void 0&&n._input.classList.remove("active")),Ue("onClose")}function W(){n.config!==void 0&&Ue("onDestroy");for(let _=n._handlers.length;_--;)n._handlers[_].remove();if(n._handlers=[],n.mobileInput)n.mobileInput.parentNode&&n.mobileInput.parentNode.removeChild(n.mobileInput),n.mobileInput=void 0;else if(n.calendarContainer&&n.calendarContainer.parentNode)if(n.config.static&&n.calendarContainer.parentNode){let _=n.calendarContainer.parentNode;if(_.lastChild&&_.removeChild(_.lastChild),_.parentNode){for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.parentNode.removeChild(_)}}else n.calendarContainer.parentNode.removeChild(n.calendarContainer);n.altInput&&(n.input.type="text",n.altInput.parentNode&&n.altInput.parentNode.removeChild(n.altInput),delete n.altInput),n.input&&(n.input.type=n.input._type,n.input.classList.remove("flatpickr-input"),n.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(_=>{try{delete n[_]}catch(M){}})}function j(_){return n.calendarContainer.contains(_)}function q(_){if(n.isOpen&&!n.config.inline){let M=Xt(_),K=j(M),se=!(M===n.input||M===n.altInput||n.element.contains(M)||_.path&&_.path.indexOf&&(~_.path.indexOf(n.input)||~_.path.indexOf(n.altInput)))&&!K&&!j(_.relatedTarget),ie=!n.config.ignoredFocusElements.some(me=>me.contains(M));se&&ie&&(n.config.allowInput&&n.setDate(n._input.value,!1,n.config.altInput?n.config.altFormat:n.config.dateFormat),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0&&n.input.value!==""&&n.input.value!==void 0&&l(),n.close(),n.config&&n.config.mode==="range"&&n.selectedDates.length===1&&n.clear(!1))}}function te(_){if(!_||n.config.minDate&&_n.config.maxDate.getFullYear())return;let M=_,K=n.currentYear!==M;n.currentYear=M||n.currentYear,n.config.maxDate&&n.currentYear===n.config.maxDate.getFullYear()?n.currentMonth=Math.min(n.config.maxDate.getMonth(),n.currentMonth):n.config.minDate&&n.currentYear===n.config.minDate.getFullYear()&&(n.currentMonth=Math.max(n.config.minDate.getMonth(),n.currentMonth)),K&&(n.redraw(),Ue("onYearChange"),G())}function we(_,M=!0){var ie;let K=n.parseDate(_,void 0,M);if(n.config.minDate&&K&&Qt(K,n.config.minDate,M!==void 0?M:!n.minDateHasTime)<0||n.config.maxDate&&K&&Qt(K,n.config.maxDate,M!==void 0?M:!n.maxDateHasTime)>0)return!1;if(!n.config.enable&&n.config.disable.length===0)return!0;if(K===void 0)return!1;let Q=!!n.config.enable,se=(ie=n.config.enable)!=null?ie:n.config.disable;for(let me=0,ue;me=ue.from.getTime()&&K.getTime()<=ue.to.getTime())return Q}return!Q}function ke(_){return n.daysContainer!==void 0?_.className.indexOf("hidden")===-1&&_.className.indexOf("flatpickr-disabled")===-1&&n.daysContainer.contains(_):!1}function $e(_){let M=_.target===n._input,K=n._input.value.trimEnd()!==_i();M&&K&&!(_.relatedTarget&&j(_.relatedTarget))&&n.setDate(n._input.value,!0,_.target===n.altInput?n.config.altFormat:n.config.dateFormat)}function ct(_){let M=Xt(_),K=n.config.wrap?e.contains(M):M===n._input,Q=n.config.allowInput,se=n.isOpen&&(!Q||!K),ie=n.config.inline&&K&&!Q;if(_.keyCode===13&&K){if(Q)return n.setDate(n._input.value,!0,M===n.altInput?n.config.altFormat:n.config.dateFormat),n.close(),M.blur();n.open()}else if(j(M)||se||ie){let me=!!n.timeContainer&&n.timeContainer.contains(M);switch(_.keyCode){case 13:me?(_.preventDefault(),l(),Yn()):Pt(_);break;case 27:_.preventDefault(),Yn();break;case 8:case 46:K&&!n.config.allowInput&&(_.preventDefault(),n.clear());break;case 37:case 39:if(!me&&!K){_.preventDefault();let ue=o();if(n.daysContainer!==void 0&&(Q===!1||ue&&ke(ue))){let Pe=_.keyCode===39?1:-1;_.ctrlKey?(_.stopPropagation(),P(Pe),Z(z(1),0)):Z(void 0,Pe)}}else n.hourElement&&n.hourElement.focus();break;case 38:case 40:{_.preventDefault();let ue=_.keyCode===40?1:-1;n.daysContainer&&M.$i!==void 0||M===n.input||M===n.altInput?_.ctrlKey?(_.stopPropagation(),te(n.currentYear-ue),Z(z(1),0)):me||Z(void 0,ue*7):M===n.currentYearElement?te(n.currentYear-ue):n.config.enableTime&&(!me&&n.hourElement&&n.hourElement.focus(),l(_),n._debouncedChange());break}case 9:if(me){let ue=[n.hourElement,n.minuteElement,n.secondElement,n.amPM].concat(n.pluginElements).filter(Fe=>Fe),Pe=ue.indexOf(M);if(Pe!==-1){let Fe=ue[Pe+(_.shiftKey?-1:1)];_.preventDefault(),(Fe||n._input).focus()}}else!n.config.noCalendar&&n.daysContainer&&n.daysContainer.contains(M)&&_.shiftKey&&(_.preventDefault(),n._input.focus());break;default:break}}if(n.amPM!==void 0&&M===n.amPM)switch(_.key){case n.l10n.amPM[0].charAt(0):case n.l10n.amPM[0].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[0],f(),yn();break;case n.l10n.amPM[1].charAt(0):case n.l10n.amPM[1].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[1],f(),yn();break}(K||j(M))&&Ue("onKeyDown",_)}function mt(_,M="flatpickr-day"){if(n.selectedDates.length!==1||_&&(!_.classList.contains(M)||_.classList.contains("flatpickr-disabled")))return;let K=_?_.dateObj.getTime():n.days.firstElementChild.dateObj.getTime(),Q=n.parseDate(n.selectedDates[0],void 0,!0).getTime(),se=Math.min(K,n.selectedDates[0].getTime()),ie=Math.max(K,n.selectedDates[0].getTime()),me=!1,ue=0,Pe=0;for(let Me=se;Mese&&Meue)?ue=Me:Me>Q&&(!Pe||Me .${M}`)).forEach(Me=>{let yt=Me.dateObj.getTime(),Gn=ue>0&&yt0&&yt>Pe;if(Gn){Me.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(Qn=>{Me.classList.remove(Qn)});return}else if(me&&!Gn)return;["startRange","inRange","endRange","notAllowed"].forEach(Qn=>{Me.classList.remove(Qn)}),_!==void 0&&(_.classList.add(K<=n.selectedDates[0].getTime()?"startRange":"endRange"),QK&&yt===Q&&Me.classList.add("endRange"),yt>=ue&&(Pe===0||yt<=Pe)&&Sg(yt,Q,K)&&Me.classList.add("inRange"))})}function Lt(){n.isOpen&&!n.config.static&&!n.config.inline&&Fn()}function An(_,M=n._positionElement){if(n.isMobile===!0){if(_){_.preventDefault();let Q=Xt(_);Q&&Q.blur()}n.mobileInput!==void 0&&(n.mobileInput.focus(),n.mobileInput.click()),Ue("onOpen");return}else if(n._input.disabled||n.config.inline)return;let K=n.isOpen;n.isOpen=!0,K||(n.calendarContainer.classList.add("open"),n._input.classList.add("active"),Ue("onOpen"),Fn(M)),n.config.enableTime===!0&&n.config.noCalendar===!0&&n.config.allowInput===!1&&(_===void 0||!n.timeContainer.contains(_.relatedTarget))&&r.setTimeout(()=>n.hourElement.select(),50)}function Ln(_){return M=>{let K=n.config[`_${_}Date`]=n.parseDate(M,n.config.dateFormat),Q=n.config[`_${_==="min"?"max":"min"}Date`];K!==void 0&&(n[_==="min"?"minDateHasTime":"maxDateHasTime"]=K.getHours()>0||K.getMinutes()>0||K.getSeconds()>0),n.selectedDates&&(n.selectedDates=n.selectedDates.filter(se=>we(se)),!n.selectedDates.length&&_==="min"&&p(K),yn()),n.daysContainer&&(Kr(),K!==void 0?n.currentYearElement[_]=K.getFullYear().toString():n.currentYearElement.removeAttribute(_),n.currentYearElement.disabled=!!Q&&K!==void 0&&Q.getFullYear()===K.getFullYear())}}function Pn(){let _=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],M={...JSON.parse(JSON.stringify(e.dataset||{})),...t},K={};n.config.parseDate=M.parseDate,n.config.formatDate=M.formatDate,Object.defineProperty(n.config,"enable",{get:()=>n.config._enable,set:ie=>{n.config._enable=Ee(ie)}}),Object.defineProperty(n.config,"disable",{get:()=>n.config._disable,set:ie=>{n.config._disable=Ee(ie)}});let Q=M.mode==="time";if(!M.dateFormat&&(M.enableTime||Q)){let ie=ht.defaultConfig.dateFormat||or.dateFormat;K.dateFormat=M.noCalendar||Q?"H:i"+(M.enableSeconds?":S":""):ie+" H:i"+(M.enableSeconds?":S":"")}if(M.altInput&&(M.enableTime||Q)&&!M.altFormat){let ie=ht.defaultConfig.altFormat||or.altFormat;K.altFormat=M.noCalendar||Q?"h:i"+(M.enableSeconds?":S K":" K"):ie+` h:i${M.enableSeconds?":S":""} K`}Object.defineProperty(n.config,"minDate",{get:()=>n.config._minDate,set:Ln("min")}),Object.defineProperty(n.config,"maxDate",{get:()=>n.config._maxDate,set:Ln("max")});let se=ie=>me=>{n.config[ie==="min"?"_minTime":"_maxTime"]=n.parseDate(me,"H:i:S")};Object.defineProperty(n.config,"minTime",{get:()=>n.config._minTime,set:se("min")}),Object.defineProperty(n.config,"maxTime",{get:()=>n.config._maxTime,set:se("max")}),M.mode==="time"&&(n.config.noCalendar=!0,n.config.enableTime=!0),Object.assign(n.config,K,M);for(let ie=0;ie<_.length;ie++)n.config[_[ie]]=n.config[_[ie]]===!0||n.config[_[ie]]==="true";Fo.filter(ie=>n.config[ie]!==void 0).forEach(ie=>{n.config[ie]=Oo(n.config[ie]||[]).map(s)}),n.isMobile=!n.config.disableMobile&&!n.config.inline&&n.config.mode==="single"&&!n.config.disable.length&&!n.config.enable&&!n.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(let ie=0;ie-1?n.config[ue]=Oo(me[ue]).map(s).concat(n.config[ue]):typeof M[ue]=="undefined"&&(n.config[ue]=me[ue])}M.altInputClass||(n.config.altInputClass=hn().className+" "+n.config.altInputClass),Ue("onParseConfig")}function hn(){return n.config.wrap?e.querySelector("[data-input]"):e}function mn(){typeof n.config.locale!="object"&&typeof ht.l10ns[n.config.locale]=="undefined"&&n.config.errorHandler(new Error(`flatpickr: invalid locale ${n.config.locale}`)),n.l10n={...ht.l10ns.default,...typeof n.config.locale=="object"?n.config.locale:n.config.locale!=="default"?ht.l10ns[n.config.locale]:void 0},$n.D=`(${n.l10n.weekdays.shorthand.join("|")})`,$n.l=`(${n.l10n.weekdays.longhand.join("|")})`,$n.M=`(${n.l10n.months.shorthand.join("|")})`,$n.F=`(${n.l10n.months.longhand.join("|")})`,$n.K=`(${n.l10n.amPM[0]}|${n.l10n.amPM[1]}|${n.l10n.amPM[0].toLowerCase()}|${n.l10n.amPM[1].toLowerCase()})`,{...t,...JSON.parse(JSON.stringify(e.dataset||{}))}.time_24hr===void 0&&ht.defaultConfig.time_24hr===void 0&&(n.config.time_24hr=n.l10n.time_24hr),n.formatDate=lu(n),n.parseDate=No({config:n.config,l10n:n.l10n})}function Fn(_){if(typeof n.config.position=="function")return void n.config.position(n,_);if(n.calendarContainer===void 0)return;Ue("onPreCalendarPosition");let M=_||n._positionElement,K=Array.prototype.reduce.call(n.calendarContainer.children,(hr,Ci)=>hr+Ci.offsetHeight,0),Q=n.calendarContainer.offsetWidth,se=n.config.position.split(" "),ie=se[0],me=se.length>1?se[1]:null,ue=M.getBoundingClientRect(),Pe=r.innerHeight-ue.bottom,Fe=ie==="above"||ie!=="below"&&PeK,Me=r.pageYOffset+ue.top+(Fe?-K-2:M.offsetHeight+2);if(Nt(n.calendarContainer,"arrowTop",!Fe),Nt(n.calendarContainer,"arrowBottom",Fe),n.config.inline)return;let jt=r.pageXOffset+ue.left,yt=!1,Gn=!1;me==="center"?(jt-=(Q-ue.width)/2,yt=!0):me==="right"&&(jt-=Q-ue.width,Gn=!0),Nt(n.calendarContainer,"arrowLeft",!yt&&!Gn),Nt(n.calendarContainer,"arrowCenter",yt),Nt(n.calendarContainer,"arrowRight",Gn);let Qn=r.document.body.offsetWidth-(r.pageXOffset+ue.right),Di=jt+Q>r.document.body.offsetWidth,Ha=Qn+Q>r.document.body.offsetWidth;if(Nt(n.calendarContainer,"rightMost",Di),!n.config.static)if(n.calendarContainer.style.top=`${Me}px`,!Di)n.calendarContainer.style.left=`${jt}px`,n.calendarContainer.style.right="auto";else if(!Ha)n.calendarContainer.style.left="auto",n.calendarContainer.style.right=`${Qn}px`;else{let hr=Hr();if(hr===void 0)return;let Ci=r.document.body.offsetWidth,el=Math.max(0,Ci/2-Q/2),tl=".flatpickr-calendar.centerMost:before",Gd=".flatpickr-calendar.centerMost:after",O=hr.cssRules.length,w=`{left:${ue.left}px;right:auto;}`;Nt(n.calendarContainer,"rightMost",!1),Nt(n.calendarContainer,"centerMost",!0),hr.insertRule(`${tl},${Gd}${w}`,O),n.calendarContainer.style.left=`${el}px`,n.calendarContainer.style.right="auto"}}function Hr(){let _=null;for(let M=0;Mme.classList&&me.classList.contains("flatpickr-day")&&!me.classList.contains("flatpickr-disabled")&&!me.classList.contains("notAllowed"),K=cu(Xt(_),M);if(K===void 0)return;let Q=K,se=n.latestSelectedDateObj=new Date(Q.dateObj.getTime()),ie=(se.getMonth()n.currentMonth+n.config.showMonths-1)&&n.config.mode!=="range";if(n.selectedDateElem=Q,n.config.mode==="single")n.selectedDates=[se];else if(n.config.mode==="multiple"){let me=Ye(se);me?n.selectedDates.splice(parseInt(me),1):n.selectedDates.push(se)}else n.config.mode==="range"&&(n.selectedDates.length===2&&n.clear(!1,!1),n.latestSelectedDateObj=se,n.selectedDates.push(se),Qt(se,n.selectedDates[0],!0)!==0&&n.selectedDates.sort((me,ue)=>me.getTime()-ue.getTime()));if(f(),ie){let me=n.currentYear!==se.getFullYear();n.currentYear=se.getFullYear(),n.currentMonth=se.getMonth(),me&&(Ue("onYearChange"),G()),Ue("onMonthChange")}if(St(),X(),yn(),!ie&&n.config.mode!=="range"&&n.config.showMonths===1?U(Q):n.selectedDateElem!==void 0&&n.hourElement===void 0&&n.selectedDateElem&&n.selectedDateElem.focus(),n.hourElement!==void 0&&n.hourElement!==void 0&&n.hourElement.focus(),n.config.closeOnSelect){let me=n.config.mode==="single"&&!n.config.enableTime,ue=n.config.mode==="range"&&n.selectedDates.length===2&&!n.config.enableTime;(me||ue)&&Yn()}k()}let Kt={locale:[mn,Te],showMonths:[pe,u,be],minDate:[D],maxDate:[D],positionElement:[gn],clickOpens:[()=>{n.config.clickOpens===!0?(b(n._input,"focus",n.open),b(n._input,"click",n.open)):(n._input.removeEventListener("focus",n.open),n._input.removeEventListener("click",n.open))}]};function gt(_,M){if(_!==null&&typeof _=="object"){Object.assign(n.config,_);for(let K in _)Kt[K]!==void 0&&Kt[K].forEach(Q=>Q())}else n.config[_]=M,Kt[_]!==void 0?Kt[_].forEach(K=>K()):Fo.indexOf(_)>-1&&(n.config[_]=Oo(M));n.redraw(),yn(!0)}function Y(_,M){let K=[];if(Array.isArray(_))K=_.map(Q=>n.parseDate(Q,M));else if(_.getDate||typeof _=="number")K=[n.parseDate(_,M)];else if(typeof _=="string")switch(n.config.mode){case"single":case"time":K=[n.parseDate(_,M)];break;case"multiple":K=_.split(n.config.conjunction).map(Q=>n.parseDate(Q,M));break;case"range":K=_.split(n.l10n.rangeSeparator).map(Q=>n.parseDate(Q,M));break;default:break}else n.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(_)}`));n.selectedDates=n.config.allowInvalidPreload?K:K.filter(Q=>Q.getDate&&we(Q,!1)),n.config.mode==="range"&&n.selectedDates.sort((Q,se)=>Q.getTime()-se.getTime())}function oe(_,M=!1,K=n.config.dateFormat){if(_!==0&&!_||Array.isArray(_)&&_.length===0)return n.clear(M);Y(_,K),n.latestSelectedDateObj=n.selectedDates[n.selectedDates.length-1],n.redraw(),D(void 0,M),p(),n.selectedDates.length===0&&n.clear(!1),yn(M),M&&Ue("onChange")}function Ee(_){return _.slice().map(M=>typeof M=="string"||typeof M=="number"||M.getDate?n.parseDate(M,void 0,!0):M&&typeof M=="object"&&M.from&&M.to?{from:n.parseDate(M.from,void 0),to:n.parseDate(M.to,void 0)}:M).filter(M=>M)}function ze(){n.selectedDates=[],n.now=n.parseDate(n.config.now)||new Date;let _=n.config.defaultDate||((n.input.nodeName==="INPUT"||n.input.nodeName==="TEXTAREA")&&n.input.placeholder&&n.input.value===n.input.placeholder?null:n.input.value);_&&Y(_,n.config.dateFormat),n._initialDate=n.selectedDates.length>0?n.selectedDates[0]:n.config.minDate&&n.config.minDate.getTime()>n.now.getTime()?n.config.minDate:n.config.maxDate&&n.config.maxDate.getTime()0&&(n.latestSelectedDateObj=n.selectedDates[0]),n.config.minTime!==void 0&&(n.config.minTime=n.parseDate(n.config.minTime,"H:i")),n.config.maxTime!==void 0&&(n.config.maxTime=n.parseDate(n.config.maxTime,"H:i")),n.minDateHasTime=!!n.config.minDate&&(n.config.minDate.getHours()>0||n.config.minDate.getMinutes()>0||n.config.minDate.getSeconds()>0),n.maxDateHasTime=!!n.config.maxDate&&(n.config.maxDate.getHours()>0||n.config.maxDate.getMinutes()>0||n.config.maxDate.getSeconds()>0)}function kt(){if(n.input=hn(),!n.input){n.config.errorHandler(new Error("Invalid input element specified"));return}n.input._type=n.input.type,n.input.type="text",n.input.classList.add("flatpickr-input"),n._input=n.input,n.config.altInput&&(n.altInput=je(r.document,n.input.nodeName,n.config.altInputClass),n._input=n.altInput,n.altInput.placeholder=n.input.placeholder,n.altInput.disabled=n.input.disabled,n.altInput.required=n.input.required,n.altInput.tabIndex=n.input.tabIndex,n.altInput.type="text",n.input.setAttribute("type","hidden"),!n.config.static&&n.input.parentNode&&n.input.parentNode.insertBefore(n.altInput,n.input.nextSibling)),n.config.allowInput||n._input.setAttribute("readonly","readonly"),gn()}function gn(){n._positionElement=n.config.positionElement||n._input}function qe(){let _=n.config.enableTime?n.config.noCalendar?"time":"datetime-local":"date";n.mobileInput=je(r.document,"input",n.input.className+" flatpickr-mobile"),n.mobileInput.tabIndex=1,n.mobileInput.type=_,n.mobileInput.disabled=n.input.disabled,n.mobileInput.required=n.input.required,n.mobileInput.placeholder=n.input.placeholder,n.mobileFormatStr=_==="datetime-local"?"Y-m-d\\TH:i:S":_==="date"?"Y-m-d":"H:i:S",n.selectedDates.length>0&&(n.mobileInput.defaultValue=n.mobileInput.value=n.formatDate(n.selectedDates[0],n.mobileFormatStr)),n.config.minDate&&(n.mobileInput.min=n.formatDate(n.config.minDate,"Y-m-d")),n.config.maxDate&&(n.mobileInput.max=n.formatDate(n.config.maxDate,"Y-m-d")),n.input.getAttribute("step")&&(n.mobileInput.step=String(n.input.getAttribute("step"))),n.input.type="hidden",n.altInput!==void 0&&(n.altInput.type="hidden");try{n.input.parentNode&&n.input.parentNode.insertBefore(n.mobileInput,n.input.nextSibling)}catch(M){}b(n.mobileInput,"change",M=>{n.setDate(Xt(M).value,!1,n.mobileFormatStr),Ue("onChange"),Ue("onClose")})}function at(_){if(n.isOpen===!0)return n.close();n.open(_)}function Ue(_,M){if(n.config===void 0)return;let K=n.config[_];if(K!==void 0&&K.length>0)for(let Q=0;K[Q]&&Q=0&&Qt(_,n.selectedDates[1])<=0}function St(){n.config.noCalendar||n.isMobile||!n.monthNav||(n.yearElements.forEach((_,M)=>{let K=new Date(n.currentYear,n.currentMonth,1);K.setMonth(n.currentMonth+M),n.config.showMonths>1||n.config.monthSelectorType==="static"?n.monthElements[M].textContent=ua(K.getMonth(),n.config.shorthandCurrentMonth,n.l10n)+" ":n.monthsDropdownContainer.value=K.getMonth().toString(),_.value=K.getFullYear().toString()}),n._hidePrevMonthArrow=n.config.minDate!==void 0&&(n.currentYear===n.config.minDate.getFullYear()?n.currentMonth<=n.config.minDate.getMonth():n.currentYearn.config.maxDate.getMonth():n.currentYear>n.config.maxDate.getFullYear()))}function _i(_){let M=_||(n.config.altInput?n.config.altFormat:n.config.dateFormat);return n.selectedDates.map(K=>n.formatDate(K,M)).filter((K,Q,se)=>n.config.mode!=="range"||n.config.enableTime||se.indexOf(K)===Q).join(n.config.mode!=="range"?n.config.conjunction:n.l10n.rangeSeparator)}function yn(_=!0){n.mobileInput!==void 0&&n.mobileFormatStr&&(n.mobileInput.value=n.latestSelectedDateObj!==void 0?n.formatDate(n.latestSelectedDateObj,n.mobileFormatStr):""),n.input.value=_i(n.config.dateFormat),n.altInput!==void 0&&(n.altInput.value=_i(n.config.altFormat)),_!==!1&&Ue("onValueUpdate")}function Zs(_){let M=Xt(_),K=n.prevMonthNav.contains(M),Q=n.nextMonthNav.contains(M);K||Q?P(K?-1:1):n.yearElements.indexOf(M)>=0?M.select():M.classList.contains("arrowUp")?n.changeYear(n.currentYear+1):M.classList.contains("arrowDown")&&n.changeYear(n.currentYear-1)}function Ra(_){_.preventDefault();let M=_.type==="keydown",K=Xt(_),Q=K;n.amPM!==void 0&&K===n.amPM&&(n.amPM.textContent=n.l10n.amPM[Gt(n.amPM.textContent===n.l10n.amPM[0])]);let se=parseFloat(Q.getAttribute("min")),ie=parseFloat(Q.getAttribute("max")),me=parseFloat(Q.getAttribute("step")),ue=parseInt(Q.value,10),Pe=_.delta||(M?_.which===38?1:-1:0),Fe=ue+me*Pe;if(typeof Q.value!="undefined"&&Q.value.length===2){let Me=Q===n.hourElement,jt=Q===n.minuteElement;Feie&&(Fe=Q===n.hourElement?Fe-ie-Gt(!n.amPM):se,jt&&H(void 0,1,n.hourElement)),n.amPM&&Me&&(me===1?Fe+ue===23:Math.abs(Fe-ue)>me)&&(n.amPM.textContent=n.l10n.amPM[Gt(n.amPM.textContent===n.l10n.amPM[0])]),Q.value=Ot(Fe)}}return a(),n}function Bo(e,t){let r=Array.prototype.slice.call(e).filter(i=>i.onClickEvent),n=[];for(let i=0;i{ht.l10ns.default={...ht.l10ns.default,...e}};ht.setDefaults=e=>{ht.defaultConfig={...ht.defaultConfig,...e}};ht.parseDate=No({});ht.formatDate=lu({});ht.compareDates=Qt;typeof jQuery!="undefined"&&typeof jQuery.fn!="undefined"&&(jQuery.fn.flatpickr=function(e){return Bo(this,e)});Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof e=="string"?parseInt(e,10):e))};typeof window!="undefined"&&(window.flatpickr=ht);var Ko=ht;function $o(e,t,r,n,i){return e.document.body.createDiv({cls:`${V("date-picker")} ${V("ignore-click-outside")}`},a=>{a.style.left=`${r.x||0}px`,a.style.top=`${r.y||0}px`,a.createEl("input",{type:"text"},o=>{a.win.setTimeout(()=>{let s=null,u=d=>{d.target instanceof d.view.HTMLElement&&d.target.closest(`.${V("date-picker")}`)===null&&c()},l=d=>{d.key==="Escape"&&c()},c=()=>{s.destroy(),a.remove(),e.document.body.removeEventListener("click",u),e.document.removeEventListener("keydown",l)};s=Ko(o,{locale:Po(t),defaultDate:i,inline:!0,onChange:d=>{n(d),c()},win:e}),a.win.setTimeout(()=>{let d=a.clientHeight,f=a.clientWidth;r.y+d>e.innerHeight&&(a.style.top=`${(r.y||0)-d}px`),r.x+f>e.innerWidth&&(a.style.left=`${(r.x||0)-f}px`)}),e.document.body.addEventListener("click",u),e.document.addEventListener("keydown",l)})})})}function Uo({stateManager:e,boardModifiers:t,item:r,hasDate:n,path:i}){let a=e.getSetting("date-format"),o=e.getSetting("link-date-to-daily-note"),s=e.getSetting("date-trigger"),u=o?"(?:\\[[^\\]]+\\]\\([^)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",l=new RegExp(`(^|\\s)${Sn(s)}${u}`);return c=>{let d=c[0],f=(0,nt.moment)(d).format(a),p=o?Mo(e.app,f):`{${f}}`,m=r.data.titleRaw;n?m=r.data.titleRaw.replace(l,`$1${s}${p}`):m=`${r.data.titleRaw} ${s}${p}`,e.updateItemContent(r,m).then(v=>{t.updateItem(i,v)}).catch(v=>{e.setError(v),console.error(v)})}}function uu(e){let t=e.getSetting("time-format"),r=[];for(let n=0;n<24;n++)r.push((0,nt.moment)({hour:n}).format(t)),r.push((0,nt.moment)({hour:n,minute:15}).format(t)),r.push((0,nt.moment)({hour:n,minute:30}).format(t)),r.push((0,nt.moment)({hour:n,minute:45}).format(t));return r}function Wo(e,t,r,n,i){let a=V("time-picker"),o=t.getSetting("time-format"),s=i==null?void 0:i.format(o);e.document.body.createDiv({cls:`${a} ${V("ignore-click-outside")}`},u=>{let l=uu(t),c=b=>{b.target instanceof b.view.HTMLElement&&b.target.hasClass(V("time-picker-item"))&&b.target.dataset.value&&(n(b.target.dataset.value),p())},d=b=>{b.target instanceof b.view.HTMLElement&&b.target.closest(`.${a}`)===null&&p()},f=b=>{b.key==="Escape"&&p()},p=()=>{u.remove(),u.removeEventListener("click",c),e.document.body.removeEventListener("click",d),e.document.removeEventListener("keydown",f)};u.style.left=`${r.x||0}px`,u.style.top=`${r.y||0}px`;let m=null,v=null;l.forEach((b,k)=>{let T=b===s;u.createDiv({cls:`${V("time-picker-item")} ${T?"is-selected":""}`,text:b},D=>{D.createEl("span",{cls:V("time-picker-check"),prepend:!0},I=>{(0,nt.setIcon)(I,"checkmark")}),k%4==0&&D.addClass("is-hour"),D.dataset.value=b,T&&(m=D),k===Math.floor(l.length/2)&&(v=D)})}),u.win.setTimeout(()=>{var T;let b=u.clientHeight,k=u.clientWidth;r.y+b>e.innerHeight&&(u.style.top=`${(r.y||0)-b}px`),r.x+k>e.innerWidth&&(u.style.left=`${(r.x||0)-k}px`),(T=m||v)==null||T.scrollIntoView({block:"center",inline:"nearest"}),u.addEventListener("click",c),e.document.body.addEventListener("click",d),e.document.addEventListener("keydown",f)})})}function Vo({stateManager:e,boardModifiers:t,item:r,hasTime:n,path:i}){let a=e.getSetting("time-trigger"),o=new RegExp(`(^|\\s)${Sn(a)}{([^}]+)}`);return s=>{let u=r.data.titleRaw;n?u=r.data.titleRaw.replace(o,`$1${a}{${s}}`):u=`${r.data.titleRaw} ${a}{${s}}`,e.updateItemContent(r,u).then(l=>{t.updateItem(i,l)}).catch(l=>{e.setError(l),console.error(l)})}}function Cg(e){let t=e.data.metadata.date,r=[];t&&(t.isSame(new Date,"day")&&r.push("is-today"),t.isAfter(new Date,"day")&&r.push("is-future"),t.isBefore(new Date,"day")&&r.push("is-past")),e.data.isComplete&&r.push("is-complete");for(let n of e.data.metadata.tags)r.push(`has-tag-${n.slice(1)}`);return r}function Tr(e,t,r,n){return e.app.fileManager.generateMarkdownLink(t,r,n)}function aS(e,t,r){return nt.htmlToMarkdown?(0,nt.htmlToMarkdown)(r):nt.MarkdownSourceView.prototype.handleDataTransfer.call({app:e.app},t)}function oS(e){return e.replace(/^\[(.*)\]\(app:\/\/obsidian.md\/(.*)\)$/,"[$1]($2)")}function du(e){var r;let t=e.require("electron").remote.clipboard;if(process.platform==="darwin"){if(t.has("NSFilenamesPboardType"))return((r=t.read("NSFilenamesPboardType").match(/.*<\/string>/g))==null?void 0:r.map(n=>n.replace(/|<\/string>/g,"")))||[];{let n=t.readImage("clipboard");return n.isEmpty()?[t.read("public.file-url").replace("file://","")].filter(i=>i):[{buffer:n.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,nt.moment)().format("YYYYMMDDHHmmss")}.png`}]}}else if(t.has("CF_HDROP")){let n=t.read("CF_HDROP")||"",i=[...n].filter((o,s)=>n.charCodeAt(s)!==0).join("").replace(/\\/g,"\\"),a=i.match(/[a-zA-Z]:\\/);if(a){let o=i.indexOf(a[0]);return o!==0&&(i=i.slice(o)),i.split(a[0]).filter(s=>s).map(s=>a+s)}}else{let n=t.readImage("clipboard");return n.isEmpty()?[t.readBuffer("FileNameW").toString("ucs2").replace(RegExp(String.fromCharCode(0),"g"),"")].filter(i=>i):[{buffer:n.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,nt.moment)().format("YYYYMMDDHHmmss")}.png`}]}return null}function sS(e){return e.split("\\").pop().split("/").pop()}async function lS(e,t,r,n){let i=await e.app.vault.getAvailablePathForAttachments(t,r,e.file),a=await e.app.vault.createBinary(i,n);return Tr(e,a,e.file.path)}async function cS(e,t){let r=du(t);if(!r||r.length===0)return null;let n=t.require("fs/promises"),i=t.require("path");return(await Promise.all(r.map(async a=>{if(typeof a=="string"){let s=sS(a).split("."),u=s.pop(),l=s.join("."),c=await e.app.vault.getAvailablePathForAttachments(l,u,e.file),d=e.app.vault.adapter.basePath;await n.copyFile(a,i.join(d,c)),await new Promise(p=>t.setTimeout(p,50));let f=e.app.vault.getAbstractFileByPath(c);return Tr(e,f,e.file.path)}else{let o=a.originalName.split("."),s=o.pop(),u=o.join(".");return await lS(e,u,s,a.buffer)}}))).filter(a=>a)}function Tg(e,t,r){return Promise.all(t.map(n=>{let i=n.name.split("."),a=i.pop(),o=i.join(".");if(r){switch(n.type){case"text/jpg":a="jpg";break;case"text/jpeg":a="jpeg";break;case"text/png":a="png";break}o="Pasted image "+(0,nt.moment)().format("YYYYMMDDHHmmss")}return new Promise((s,u)=>{let l=new FileReader;l.onload=async c=>{try{let d=await e.app.vault.getAvailablePathForAttachments(o,a,e.file),f=await e.app.vault.createBinary(d,c.target.result);s(Tr(e,f,e.file.path))}catch(d){console.error(d),u(d)}},l.readAsArrayBuffer(n)})}))}async function uS(e,t,r){let n=!t.view,i=n?e.getAView().isShiftPressed:!1,a=n?t.clipboardData:t.dataTransfer,o=n&&nt.Platform.isDesktopApp?r.require("electron").remote.clipboard:null,s=o?o.availableFormats():[];if(n){if(n&&!i&&!s.includes("text/rtf")){if(nt.Platform.isDesktopApp){let m=await cS(e,r);if(m==null?void 0:m.length)return m}let f=[],p=t.clipboardData.items;for(let m in p){let v=p[m];v.kind==="file"&&f.push(v.getAsFile())}if(f.length)return await Tg(e,f,!0)}}else{let f=await ql(t);if(f.length)return await Tg(e,f)}let u=a.getData("text/html"),l=a.getData("text/plain"),c=a.getData("text/uri-list"),d=i?l||u:aS(e,a,u);return[oS(d||c||l||u||"").trim()]}async function zo(e,t,r){let n=e.app.dragManager.draggable,i=t.view?t.dataTransfer:t.clipboardData;switch(n==null?void 0:n.type){case"file":return[Tr(e,n.file,e.file.path)];case"files":return n.files.map(a=>Tr(e,a,e.file.path));case"folder":return n.file.children.map(a=>a instanceof nt.TFolder?null:Tr(e,a,e.file.path)).filter(a=>a);case"link":{let a=n.file?Tr(e,n.file,(0,nt.parseLinktext)(n.linktext).subpath):`[[${n.linktext}]]`,o=new DOMParser().parseFromString(i.getData("text/html"),"text/html").documentElement.textContent;return a=a.replace(/]]$/,`|${o}]]`).replace(/^\[[^\]].+]\(/,`[${o}](`),[a]}default:return await uS(e,t,r)}}h();function jo(e,t){let r,n,i=(...a)=>{r=a,!n&&(n=e.requestAnimationFrame(()=>{n=null,t(...r)}))};return i.cancel=()=>{!n||(e.cancelAnimationFrame(n),n=null)},i}var Mg={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"};var ci={outOfTheWay:200,minDropTime:330,maxDropTime:550},sr=`${ci.outOfTheWay}ms ${Mg.outOfTheWay}`;var rn={none:"none",fluid:`opacity ${sr}`,snap:`transform ${sr}, opacity ${sr}`,drop:e=>{let t=`${e}ms ${Mg.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${sr}`,placeholder:`height ${sr}, width ${sr}, margin ${sr}, border-color ${sr}`},dS=(e,t)=>e.x===t.x&&e.y===t.y,fS={x:0,y:0},Ig=e=>dS(e,fS)?void 0:`translate(${e.x}px, ${e.y}px)`,Ag={moveTo:Ig,drop:e=>Ig(e)},pS=ci.maxDropTime-ci.minDropTime,Lg=1500,hS=.6;function ui({position:e,destination:t,isCancel:r}){let n=Yr(e,t);if(n<=0)return ci.minDropTime;if(n>=Lg)return ci.maxDropTime;let i=n/Lg,a=ci.minDropTime+pS*i,o=r?a*hS:a;return Math.round(o)}function En(e,t,r){e.style.getPropertyValue(t)!==r&&e.style.setProperty(t,r)}function qo(e,t){e.style.getPropertyValue(t)&&e.style.removeProperty(t)}h();h();var xn;(function(i){i[i.TitleAsc=0]="TitleAsc",i[i.TitleDsc=1]="TitleDsc",i[i.DateAsc=2]="DateAsc",i[i.DateDsc=3]="DateDsc"})(xn||(xn={}));var Xe={Item:"item",Lane:"lane",Board:"board",MetadataSetting:"metadata-setting"},Yo={accepts:[Xe.Item],type:Xe.Item,children:[]},lr={accepts:[Xe.Lane],type:Xe.Lane},Jo={accepts:[],type:Xe.Board},Go={accepts:[Xe.MetadataSetting],type:Xe.MetadataSetting,children:[]};function fu(e,t,r,n,i){let a="htmldnd",o=Ve(),s=e-75,u=e+75,l=t-25,c=t+25;return{scopeId:a,entityId:`${a}-${o}`,initial:[s,l,u,c],getParentScrollState(){return tn},getParentScrollShift(){return _n},recalcInitial(){},getHitbox(){return this.initial},getPath(){return[]},getData(){return{viewId:n,type:Xe.Item,id:o,content:r,accepts:[],win:i}}}}var hu=class{constructor(t,r,n,i){this.isHTMLDragging=!1;this.dragOverTimeout=0;this.win=t,this.hitboxEntities=n,this.scrollEntities=i,this.emitter=r}getDragEventData(){return{dragEntity:this.dragEntity,dragEntityId:this.dragEntityId,dragEntityMargin:this.dragEntityMargin,dragOrigin:this.dragOrigin,dragOriginHitbox:this.dragOriginHitbox,dragPosition:this.dragPosition,primaryIntersection:this.primaryIntersection,scrollIntersection:this.scrollIntersection}}dragStart(t,r){var a;let n=(r==null?void 0:r.dataset.hitboxid)||t.currentTarget.dataset.hitboxid;if(!n)return;let i=getComputedStyle(r||t.currentTarget);this.dragEntityId=n,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=this.hitboxEntities.get(n),this.dragOriginHitbox=(a=this.dragEntity)==null?void 0:a.getHitbox(),this.dragEntityMargin=[parseFloat(i.marginLeft)||0,parseFloat(i.marginTop)||0,parseFloat(i.marginRight)||0,parseFloat(i.marginBottom)||0],this.emitter.emit("dragStart",this.getDragEventData())}dragStartHTML(t,r){this.isHTMLDragging=!0;let n=fu(t.pageX,t.pageY,[],r,t.view);this.dragEntityId=n.entityId,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=n,this.dragOriginHitbox=n.getHitbox(),this.dragEntityMargin=[0,0,0,0],this.emitter.emit("dragStart",this.getDragEventData())}dragMove(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragMoveHTML(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragEnd(t){this.emitter.emit("dragEnd",this.getDragEventData()),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0}dragEndHTML(t,r,n,i){this.isHTMLDragging=!1,i||(this.dragEntity=fu(t.pageX,t.pageY,n,r,t.view),this.emitter.emit("dragEnd",this.getDragEventData())),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0,i&&this.emitter.emit("dragEnd",this.getDragEventData())}onHTMLDragLeave(t){this.win.clearTimeout(this.dragOverTimeout),this.dragOverTimeout=this.win.setTimeout(t,351)}calculateDragIntersect(){if(!this.dragEntity||!this.dragPosition||!this.dragOrigin||!this.dragOriginHitbox)return;let{type:t,win:r}=this.dragEntity.getData(),n=[],i=[],a=[],o=[];if(this.hitboxEntities.forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(n.push(l),i.push(l.getHitbox()))}),this.scrollEntities.forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(a.push(l),o.push(l.getHitbox()))}),n.length===0&&a.length===0)return;let s=op(this.dragOriginHitbox,this.dragOrigin,this.dragPosition);this.handleScrollIntersect(s,this.dragEntity.entityId,o,a)||this.handleHitboxIntersect(s,this.dragEntity.entityId,i,n)}handleScrollIntersect(t,r,n,i){let a=(0,pu.default)([t],n).map(s=>i[s[1]]),o=ip(a,t,r);if(this.scrollIntersection&&(!o||o[0]!==this.scrollIntersection[0])){let[s,u]=this.scrollIntersection,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("endDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=void 0}if(o&&(!this.scrollIntersection||this.scrollIntersection[0]!==o[0])){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("beginDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}else if(o&&this.scrollIntersection&&o[0]===this.scrollIntersection[0]){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("updateDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}return!!o}handleHitboxIntersect(t,r,n,i){let a=(0,pu.default)([t],n).map(s=>i[s[1]]),o=Sl(a,t,r);this.primaryIntersection&&this.primaryIntersection!==o&&(this.emitter.emit("dragLeave",this.getDragEventData(),this.primaryIntersection.entityId),this.primaryIntersection=void 0),o&&this.primaryIntersection!==o&&(this.emitter.emit("dragEnter",{...this.getDragEventData(),primaryIntersection:o},o.entityId),this.primaryIntersection=o)}},di=e=>{e.preventDefault(),e.stopPropagation()};function fi(e,t){let r=R.useContext(wt);R.useEffect(()=>{let n=e.current,i=t.current;if(!r||!n||!i)return;let a=s=>{if(s.defaultPrevented||s.target.dataset.ignoreDrag||s.button!==0&&s.buttons!==1)return;let u=s.view,l=["pen","touch"].includes(s.pointerType);l||(s.stopPropagation(),s.preventDefault());let c=s,d={x:s.pageX,y:s.pageY},f=!1,p=0;l&&(u.addEventListener("contextmenu",di,!0),p=u.setTimeout(()=>{r.dragManager.dragStart(c,n),f=!0,u.addEventListener("touchmove",di,{passive:!1})},500));let m=jo(u,b=>{l?f?r.dragManager.dragMove(b):Yr(d,{x:b.pageX,y:b.pageY})>5&&(u.clearTimeout(p),u.removeEventListener("touchmove",di),u.removeEventListener("contextmenu",di,!0),u.removeEventListener("pointermove",m),u.removeEventListener("pointerup",v),u.removeEventListener("pointercancel",v)):f?r.dragManager.dragMove(b):Yr(d,{x:b.pageX,y:b.pageY})>5&&(r.dragManager.dragStart(c,n),f=!0)}),v=b=>{u.clearTimeout(p),f=!1,r.dragManager.dragEnd(b),u.removeEventListener("pointermove",m),u.removeEventListener("pointerup",v),u.removeEventListener("pointercancel",v),l&&(u.removeEventListener("contextmenu",di,!0),u.removeEventListener("touchmove",di))};u.addEventListener("pointermove",m),u.addEventListener("pointerup",v),u.addEventListener("pointercancel",v)},o=s=>{s.stopPropagation()};return i.addEventListener("pointerdown",a),i.addEventListener("touchstart",o),()=>{i.removeEventListener("pointerdown",a),i.removeEventListener("touchstart",o)}},[e,t,r])}function Pg(e){let t=R.useContext(wt),r=R.useCallback(i=>{t.dragManager.isHTMLDragging?(i.preventDefault(),t.dragManager.dragMoveHTML(i)):t.dragManager.dragStartHTML(i,e.getAView().id),t.dragManager.onHTMLDragLeave(()=>{t.dragManager.dragEndHTML(i,e.getAView().id,[],!0)})},[t,e]),n=R.useCallback(async i=>{t.dragManager.dragEndHTML(i,e.getAView().id,await zo(e,i,activeWindow),!1)},[t,e]);return{onDragOver:r,onDrop:n}}h();var Og=ye(_t());h();var Fg=ye(require("obsidian"));function Zt({name:e,className:t}){return y("span",{"data-icon":e,className:`${V("icon")} ${t||""}`,ref:r=>{r&&(0,Fg.setIcon)(r,e)}})}var Ng=R.memo(function({shouldMarkItemsComplete:t,path:r,item:n,stateManager:i,boardModifiers:a}){let o=i.useSetting("show-checkboxes"),[s,u]=R.useState(!1),[l,c]=R.useState(!1);return R.useEffect(()=>{if(l){let d=f=>{f.metaKey||f.ctrlKey?u(!0):u(!1)};return window.addEventListener("keydown",d),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",d),window.removeEventListener("keyup",d)}}},[l]),t||o?y("div",{onMouseEnter:d=>{c(!0),(d.ctrlKey||d.metaKey)&&u(!0)},onMouseLeave:()=>{c(!1),s&&u(!1)},className:V("item-prefix-button-wrapper")},o&&!s&&y("input",{onChange:()=>{a.updateItem(r,(0,Og.default)(n,{data:{$toggle:["isComplete"]}}))},type:"checkbox",className:"task-list-item-checkbox",checked:!!n.data.isComplete}),(s||!o&&t)&&y("button",{onClick:()=>{a.archiveItem(r)},className:V("item-prefix-button"),"aria-label":s?void 0:"Archive card"},y(Zt,{name:"sheets-in-box"}))):null});h();var gv=ye(require("obsidian"));h();h();var mu;function Rg(e){if(e.nodeName!=="TEXTAREA")return!1;if(typeof mu=="undefined"){let t=e.doc.createElement("textarea");t.value=1,mu=!!t.firstChild}return mu}function pa(e,t){var i;e.focus();let r=e.doc;if(!r.execCommand("insertText",!1,t)){let a=e.selectionStart,o=e.selectionEnd;if(typeof e.setRangeText=="function")e.setRangeText(t);else{let u=r.createRange(),l=r.createTextNode(t);if(Rg(e)){let c=e.firstChild;if(!c)e.appendChild(l);else{let d=0,f=null,p=null;for(;c&&(f===null||p===null);){let m=((i=c.nodeValue)==null?void 0:i.length)||0;a>=d&&a<=d+m&&u.setStart(f=c,a-d),o>=d&&o<=d+m&&u.setEnd(p=c,o-d),d+=m,c=c.nextSibling}a!==o&&u.deleteContents()}}if(Rg(e)&&u.commonAncestorContainer.nodeName==="#text")u.insertNode(l);else{let c=e.value;e.value=c.slice(0,a)+t+c.slice(o)}}e.setSelectionRange(a+t.length,a+t.length);let s=r.createEvent("UIEvent");s.initEvent("input",!0,!1),e.dispatchEvent(s)}}var Hg=ye(require("obsidian"));var gu=e=>e.charCodeAt(0)===10,Bg=e=>e===" "||gu(e);function mS(e,t,r){if(!e)throw Error("Argument 'text' should be truthy");let n=0,i=e.length;for(let a=t;a-1>-1;a--)if(gu(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a-1;a--)if(Bg(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a0&&e.value[a.selection.start-1]!==" ")return!1;if(a.selection.end===a.selection.start){let s=Tt(e,`${r}`);return Mt(e,{start:s.selection.end-1-a.selectedText.length,end:s.selection.end-1}),!1}let o=Tt(e,`${t}${a.selectedText}${r}`);return Mt(e,{start:o.selection.end-1-a.selectedText.length,end:o.selection.end-1}),!0}function Qo(e,t,r,n){let i=Tn(e),a=pi({text:i.text,selection:i.selection}),o=Mt(e,a),s=t.test(o.selectedText)?n(o.selectedText):r(o.selectedText),u=Tt(e,s);Mt(e,{start:o.selection.start,end:u.selection.end})}function Xo(e,t){var r;if(t.types.includes("text/uri-list")||["file","files","link","folder"].includes((r=e.app.dragManager.draggable)==null?void 0:r.type))return"link";if(t.types.includes("text/html")||t.types.includes("text/plain"))return"copy"}async function Zo(e,t,r){let n=e.clipboardData.getData("text/html"),i=e.clipboardData.types.includes("Files"),a=Hg.Platform.isDesktopApp?du(r):null,o=n||i||(a==null?void 0:a.length)>0;o&&e.preventDefault();try{let s=await zo(t,e,r);if(o){let u=e.target,l=s.join(` +`);Tt(u,l)}}catch(s){console.error(s),t.setError(s)}}h();var zu=ye(require("obsidian"));h();h();var Kg={};h();var $g={};h();var Ug={};h();var Wg={"Open as kanban board":"\xD6ffne als Kanban-Board","Create new board":"Erstelle ein neues Board","Archive completed cards in active board":"Archiviere fertiggestellte Karten im aktiven Board","Error: current file is not a Kanban board":"Fehler: Momentan ge\xF6ffnete Datei ist kein Kanban-Board","Convert empty note to Kanban":"Konvertiere leere Notiz in ein Kanban-Board","Error: cannot create Kanban, the current note is not empty":"Fehler: Kanban konnte nicht erstellt werden, momentan ge\xF6ffnete Datei ist nicht leer","New kanban board":"Neues Kanban-Board","Untitled Kanban":"Unbenanntes Kanban","Toggle between Kanban and markdown mode":"Wechsle zwischen Kanban und Markdown Modus","Open as markdown":"\xD6ffne als Markdown","Open board settings":"\xD6ffne Board-Einstellungen","Archive completed cards":"Archiviere fertiggestellte Karten","Something went wrong":"Etwas ist schief gelaufen","You may wish to open as markdown and inspect or edit the file.":"Du kannst die Datei im Markdown Modus \xF6ffnen und \xFCberpr\xFCfen oder bearbeiten.","Are you sure you want to archive all completed cards on this board?":"Bist du dir sicher, dass du alle fertiggestellten Karten des Boards archivieren m\xF6chtest?",Complete:"Fertiggestellt",Archive:"Archiv","Invalid Kanban file: problems parsing frontmatter":"Fehlerhafte Kanban Datei: Probleme beim Parsen des Frontmatters","I don't know how to interpret this line:":"Ich wei\xDF nicht, wie ich diese Zeile interpretieren soll:",Untitled:"Unbenannt","Note: No template plugins are currently enabled.":"Beachte: Keine Template-Plugins sind derzeit aktiviert.",default:"Standard","Search...":"Suche...","These settings will take precedence over the default Kanban board settings.":"Diese Einstellung wird Vorrang vor der standard Kanban-Board Einstellung haben. ","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Stelle standard Kanban-Board Einstellungen ein. Einstellungen k\xF6nnen auf einer Board-f\xFCr-Board Basis \xFCberschrieben werden.","Note template":"Notiz Vorlage","This template will be used when creating new notes from Kanban cards.":"Diese Vorlage wird beim Erstellen neuer Notizen aus Kanban-Karten verwendet.","No template":"Keine Vorlage","Note folder":"Notiz Ordner","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notizen, welche aus einer Kanban-Karte erstellt wurden, werden in diesem Ordner platziert. Falls leer, werden die Einstellungen des Vaults verwendet.","Default folder":"Standard Ordner","Lane width":"Schienen Breite","Enter a number to set the lane width in pixels.":"Gebe ein Zahl ein, um die Schienen Breite in Pixeln einzustellen.","Maximum number of archived cards":"Maximale Anzahl archivierter Karten.","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archivierte Karten k\xF6nnen im Markdown-Modus betrachtet werden. Diese Einstellung wird alte Karten l\xF6schen, sobald das Limit erreicht wird. Eine Einstellung von -1 setzt das Archiv auf eine unendliche Gr\xF6\xDFe.","Display card checkbox":"Zeige Karten Checkbox","When toggled, a checkbox will be displayed with each card":"Wenn aktiviert, wird eine Checkbox mit jeder Karte angezeigt.","Reset to default":"Zur\xFCcksetzen","Date & Time":"Datum & Uhrzeit","Date trigger":"Datums Ausl\xF6ser","When this is typed, it will trigger the date selector":"Wenn dies eingegeben wird, dann wird die Datumsauswahl angezeigt","Time trigger":"Uhrzeit Ausl\xF6ser","When this is typed, it will trigger the time selector":"Wenn dies eingegeben wird, dann wird die Uhrzeitsauswahl angezeigt","Date format":"Format des Datums","This format will be used when saving dates in markdown.":"Dieses Format wird verwendet, wenn ein Datum in Markdown gespeichert wird.","For more syntax, refer to":"F\xFCr mehr Syntax Informationen siehe","format reference":"Formatvorlage","Your current syntax looks like this":"Dein momentanes Format sieht so aus","Time format":"Format der Uhrzeit","Date display format":"Format der Datums Anzeige","This format will be used when displaying dates in Kanban cards.":"Dieses Format wird verwendet, wenn ein Datum in einer Kanban-Karte angezeigt wird.","Show relative date":"Zeige relatives Datum","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Wenn aktiviert, wird die Zeitspanne zwischen Heute und dem Datum angezeigt. Zum Beispiel: 'In 3 Tagen', 'Vor einem Monat'","Hide card display dates":"Verstecke Karten Datum","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Wenn aktiviert, werden formatierte Daten nicht auf der Karte angezeigt. Relative Daten werden dennoch angezeigt, solange sie aktiviert sind.","Hide dates in card titles":"Verstecke Daten im Titel der Karte","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Wenn aktiviert, werden Daten nicht im Titel der Karte angezeigt. Dies verhindert, dass Daten im Titel neu erstellter Notizen vorhanden sind.","Link dates to daily notes":"Verbinde Daten zu Daily Notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Wenn aktiviert, werden Daten mit Daily Notes verbunden. Zum Beispiel [[26.4.2021]]","Add date and time to archived cards":"F\xFCge Datum und Uhrzeit zu archivierten Notizen hinzu","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Wenn aktiviert, wird das momentane Datum und die momentane Zeit am Anfang einer Karte hinzugef\xFCgt, wenn sie archiviert wird. Zum Beispiel: - [ ] 14.05.2021 10:00 Mein Karten Titel","Archive date/time separator":"Datum/Uhrzeit Trenner f\xFCr das Archiv","This will be used to separate the archived date/time from the title":"Dies wird verwendet, um das Datum und die Uhrzeit archivierter Karten vom Titel zu trennen","Archive date/time format":"Format des Datums und der Uhrzeit f\xFCr das Archiv","Kanban Plugin":"Kanban Erweiterung","New line trigger":"Taste f\xFCr neue Zeile","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"W\xE4hle aus ob Enter oder Umschalttaste+Enter eine neue Zeile erstellen soll. Das Gegenteil kannst du verwenden um die Karte zu erstellen oder das bearbeiten der Karte oder Schiene zu beenden.","Shift + Enter":"Umschalttaste + Enter",Enter:"Enter","Prepend / append new cards":"Neue Karten voranf\xFCgen / anh\xE4ngen","This setting controls whether new cards are added to the beginning or end of the list.":"Diese Einstellung gibt an ob neue Karten am Anfang oder am Ende einer Liste hinzugef\xFCgt werden.",Prepend:"Voranf\xFCgen",Append:"Anh\xE4ngen","Hide tags in card titles":"Ausblenden von Tags in Kartentiteln","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Ist diese Einstellung an, so werden Tags im Kartentitel nicht angezeigt. Dadurch wird verhindert, dass Tags beim Erstellen neuer Notizen in den Titel aufgenommen werden.","Hide card display tags":"Ausblenden von Kartenanzeige-Tags","When toggled, tags will not be displayed below the card title.":"Ist diese Einstellung an, werden Tags nicht unter dem Kartentitel angezeigt.","Linked Page Metadata":"Metadaten f\xFCr verkn\xFCpfte (verlinkte) Notizen","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Zeigen Sie Metadaten f\xFCr die erste Notiz an, die innerhalb einer Karte verkn\xFCpft ist. Geben Sie an, welche Metadatenschl\xFCssel unten angezeigt werden sollen. Ein optionales Label kann hinzugef\xFCgt werden, es kann aber auch vollst\xE4ndig ausgeblendet werden.","Metadata key":"Metadatenschl\xFCssel","Display label":"Anzeigelabel","Hide label":"Label ausblenden","Drag to rearrange":"Zum Neuanordnen ziehen",Delete:"L\xF6schen","Add key":"Schl\xFCssel hinzuf\xFCgen","Field contains markdown":"Feld beinhaltet Markdown","More options":"Mehr optionen",Cancel:"Abbrechen",today:"heute",yesterday:"gestern",tomorrow:"morgen","Change date":"Ver\xE4ndere Datum","Change time":"Ver\xE4ndere Uhrzeit","Card title...":"Karten Titel...","Add card":"Karte hinzuf\xFCgen","Add a card":"F\xFCge eine Karte hinzu","Edit card":"Karte editieren","New note from card":"Neue Notiz aus Karte erstellen","Archive card":"Karte archivieren","Delete card":"Karte l\xF6schen","Edit date":"Datum editieren","Add date":"Datum hinzuf\xFCgen","Remove date":"Datum entfernen","Edit time":"Karte editieren","Add time":"Uhrzeit hinzuf\xFCgen","Remove time":"Uhrzeit entfernen","Duplicate card":"Karte duplizieren","Enter list title...":"Listen Titel eingeben..","Mark cards in this list as complete":"Markiere Karten in dieser Liste als fertiggestellt","Add list":"Liste hinzuf\xFCgen","Add a list":"F\xFCge eine Liste hinzu","Move list":"Liste verschieben",Close:"Schlie\xDFen","Are you sure you want to delete this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten l\xF6schen m\xF6chtest?","Yes, delete list":"Ja, l\xF6sche diese Liste","Are you sure you want to archive this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten archivieren m\xF6chtest?","Yes, archive list":"Ja, archiviere diese Liste","Are you sure you want to archive all cards in this list?":"Bist du dir sicher, dass du alle Karten in dieser Liste archivieren m\xF6chtest?","Yes, archive cards":"Ja, archiviere Karten","Edit list":"Editiere Liste","Archive cards":"Archiviere Karten","Archive list":"Archiviere List","Delete list":"L\xF6sche Liste"};h();var yu={"Open as kanban board":"Open as kanban board","Create new board":"Create new board","Archive completed cards in active board":"Archive completed cards in active board","Error: current file is not a Kanban board":"Error: current file is not a Kanban board","Convert empty note to Kanban":"Convert empty note to Kanban","Error: cannot create Kanban, the current note is not empty":"Error: cannot create Kanban, the current note is not empty","New kanban board":"New kanban board","Untitled Kanban":"Untitled Kanban","Toggle between Kanban and markdown mode":"Toggle between Kanban and markdown mode","Open as markdown":"Open as markdown","Open board settings":"Open board settings","Archive completed cards":"Archive completed cards","Something went wrong":"Something went wrong","You may wish to open as markdown and inspect or edit the file.":"You may wish to open as markdown and inspect or edit the file.","Are you sure you want to archive all completed cards on this board?":"Are you sure you want to archive all completed cards on this board?",Complete:"Complete",Archive:"Archive","Invalid Kanban file: problems parsing frontmatter":"Invalid Kanban file: problems parsing frontmatter","I don't know how to interpret this line:":"I don't know how to interpret this line:",Untitled:"Untitled","Note: No template plugins are currently enabled.":"Note: No template plugins are currently enabled.",default:"default","Search...":"Search...","New line trigger":"New line trigger","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.":"Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"Prepend / append new cards","This setting controls whether new cards are added to the beginning or end of the list.":"This setting controls whether new cards are added to the beginning or end of the list.",Prepend:"Prepend","Prepend (compact)":"Prepend (compact)",Append:"Append","These settings will take precedence over the default Kanban board settings.":"These settings will take precedence over the default Kanban board settings.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.","Note template":"Note template","This template will be used when creating new notes from Kanban cards.":"This template will be used when creating new notes from Kanban cards.","No template":"No template","Note folder":"Note folder","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.","Default folder":"Default folder","List width":"List width","Enter a number to set the list width in pixels.":"Enter a number to set the list width in pixels.","Maximum number of archived cards":"Maximum number of archived cards","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.","Display card checkbox":"Display card checkbox","When toggled, a checkbox will be displayed with each card":"When toggled, a checkbox will be displayed with each card","Reset to default":"Reset to default","Date & Time":"Date & Time","Date trigger":"Date trigger","When this is typed, it will trigger the date selector":"When this is typed, it will trigger the date selector","Time trigger":"Time trigger","When this is typed, it will trigger the time selector":"When this is typed, it will trigger the time selector","Date format":"Date format","This format will be used when saving dates in markdown.":"This format will be used when saving dates in markdown.","For more syntax, refer to":"For more syntax, refer to","format reference":"format reference","Your current syntax looks like this":"Your current syntax looks like this","Time format":"Time format","Date display format":"Date display format","This format will be used when displaying dates in Kanban cards.":"This format will be used when displaying dates in Kanban cards.","Show relative date":"Show relative date","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'","Hide card display dates":"Hide card display dates","Hide card counts in list titles":"Hide card counts in list titles","When toggled, card counts are hidden from the list title":"When toggled, card counts are hidden from the list title","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.","Hide dates in card titles":"Hide dates in card titles","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.","Link dates to daily notes":"Link dates to daily notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"When toggled, dates will link to daily notes. Eg. [[2021-04-26]]","Add date and time to archived cards":"Add date and time to archived cards","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title","Archive date/time separator":"Archive date/time separator","This will be used to separate the archived date/time from the title":"This will be used to separate the archived date/time from the title","Archive date/time format":"Archive date/time format","Kanban Plugin":"Kanban Plugin","Hide tags in card titles":"Hide tags in card titles","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.","Hide card display tags":"Hide card display tags","When toggled, tags will not be displayed below the card title.":"When toggled, tags will not be displayed below the card title.","Linked Page Metadata":"Linked Page Metadata","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.","Board Header Buttons":"Board Header Buttons","Calendar: first day of week":"Calendar: first day of week","Override which day is used as the start of the week":"Override which day is used as the start of the week",Sunday:"Sunday",Monday:"Monday",Tuesday:"Tuesday",Wednesday:"Wednesday",Thursday:"Thursday",Friday:"Friday",Saturday:"Saturday","Metadata key":"Metadata key","Display label":"Display label","Hide label":"Hide label","Drag to rearrange":"Drag to rearrange",Delete:"Delete","Add key":"Add key","Field contains markdown":"Field contains markdown","More options":"More options",Cancel:"Cancel",today:"today",yesterday:"yesterday",tomorrow:"tomorrow","Change date":"Change date","Change time":"Change time","Card title...":"Card title...","Add card":"Add card","Add a card":"Add a card","Edit card":"Edit card","New note from card":"New note from card","Archive card":"Archive card","Delete card":"Delete card","Edit date":"Edit date","Add date":"Add date","Remove date":"Remove date","Edit time":"Edit time","Add time":"Add time","Remove time":"Remove time","Duplicate card":"Duplicate card","Split card":"Split card","Copy link to card":"Copy link to card","Insert card before":"Insert card before","Insert card after":"Insert card after","Enter list title...":"Enter list title...","Mark cards in this list as complete":"Mark cards in this list as complete","Add list":"Add list","Add a list":"Add a list","Move list":"Move list",Close:"Close","Are you sure you want to delete this list and all its cards?":"Are you sure you want to delete this list and all its cards?","Yes, delete list":"Yes, delete list","Are you sure you want to archive this list and all its cards?":"Are you sure you want to archive this list and all its cards?","Yes, archive list":"Yes, archive list","Are you sure you want to archive all cards in this list?":"Are you sure you want to archive all cards in this list?","Yes, archive cards":"Yes, archive cards","Edit list":"Edit list","Archive cards":"Archive cards","Archive list":"Archive list","Delete list":"Delete list","Insert list before":"Insert list before","Insert list after":"Insert list after","Sort by card text":"Sort by card text","Sort by date":"Sort by date","Unable to find":"Unable to find","Open in default app":"Open in default app",Submit:"Submit"};h();var Vg={};h();var zg={};h();var jg={};h();var qg={};h();var Yg={"Open as kanban board":"Apri come bacheca Kanban","Create new board":"Crea nuova bacheca","Archive completed cards in active board":"Archivia schede completate nella bacheca attiva","Error: current file is not a Kanban board":"Errore: il file corrente non \xE8 una bacheca Kanban","Convert empty note to Kanban":"Converti nota vuota in Kanban","Error: cannot create Kanban, the current note is not empty":"Errore: Impossibile creare Kanban, la nota corrente non \xE8 vuota","New kanban board":"Nuova bacheca Kanban","Untitled Kanban":"Kanban senza titolo","Open as markdown":"Apri come markdown","Open board settings":"Apri impostazioni bacheca","Archive completed cards":"Archivia schede completate",Complete:"Completato",Archive:"Archivio","Note: No template plugins are currently enabled.":"Nota: Nessun plugin dei modelli attualmente abilitato.",default:"predefinito","Search...":"Ricerca...","These settings will take precedence over the default Kanban board settings.":"Queste impostazioni avranno la precedenza sulle impostazioni predefinite della bacheca Kanban.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Impostazioni predefinite della bacheca Kanban. Le impostazioni possono essere sovrascritte per ogni bacheca.","Note template":"Nota modello","This template will be used when creating new notes from Kanban cards.":"Questo modello verr\xE0 utilizzato durante la creazione di nuove note dalle schede Kanban.","No template":"Nessun modello","Note folder":"Cartella delle note","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Le note create dalle schede Kanban verranno inserite in questa cartella. Se vuota, verranno inserite nella posizione predefinita del vault.","Default folder":"Cartella predefinita","Lane width":"Larghezza colonna","Enter a number to set the lane width in pixels.":"Inserire un numero per impostare la larghezza della colonna in pixel.","Maximum number of archived cards":"Numero massimo di schede archiviate","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Le schede archiviate possono essere visualizzate in modalit\xE0 Markdown. Le vecchie schede verranno rimosse una volta raggiunto il limite. Impostando il valore -1 il numero di schede archiviate sar\xE0 illimitato.","Display card checkbox":"Mostra casella di controllo","When toggled, a checkbox will be displayed with each card":"Se attiva, verr\xE0 visualizzata una casella di controllo per ogni scheda","Reset to default":"Ripristina predefiniti","Date & Time":"Data e ora","Date trigger":"Selettore data","When this is typed, it will trigger the date selector":"Digitando questo, verr\xE0 attivato il selettore della data","Time trigger":"Selettore ora","When this is typed, it will trigger the time selector":"Digitando questo, verr\xE0 attivato il selettore dell'ora","Date format":"Formato data","This format will be used when saving dates in markdown.":"Formato utilizzato per il salvataggio delle date in Markdown.","For more syntax, refer to":"Per maggiori informazioni, vedere","format reference":"formato di riferimento","Your current syntax looks like this":"Formato corrente","Time format":"Formato ora","Date display format":"Formato visualizzazione data","This format will be used when displaying dates in Kanban cards.":"Formato utilizzato per visualizzare le date nelle schede Kanban.","Show relative date":"Mostra data relativa","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Se attiva, le schede indicheranno la distanza tra la data odierna e la data della scheda. eg. 'Tra 3 giorni', 'Un mese fa'","Hide card display dates":"Hide card display dates","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Se attiva, la data non verr\xE0 mostrata sulla scheda. Le date relative verranno comunque mostrate se sono state abilitate.","Hide dates in card titles":"Nascondi date nei titoli delle schede","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Se attiva, la data non verr\xE0 mostrata nei titoli delle schede. Questo impedisce alle date di essere incluse quando vengono create nuove note.","Link dates to daily notes":"Collega date alle Note del giorno","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Se attiva, le date verranno collegate alle Note del giorno. Eg. [[2021-04-26]]","Add date and time to archived cards":"Aggiungi data e ora alle schede archiviate","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Se attiva, la data e l'ora corrente verranno aggiunte all'inizio della scheda quando viene archiviata. Eg. - [ ] 2021-05-14 10:00am Mia scheda","Archive date/time separator":"Separatore data/ora dell'archivio","This will be used to separate the archived date/time from the title":"Verr\xE0 usato per separare data e ora dell'archiviazione dal titolo","Archive date/time format":"Formato data/ora dell'archivio","Kanban Plugin":"Plugin Kanban","More options":"Altre opzioni",Cancel:"Annulla",today:"oggi",yesterday:"ieri",tomorrow:"domani","Change date":"Modifica data","Change time":"Modifica ora","Card title...":"Titolo elemento...","Add card":"Aggiungi elemento","Add a card":"Aggiungi un'altra scheda","Edit card":"Modifica scheda","New note from card":"Nuova nota da scheda","Archive card":"Archivia scheda","Delete card":"Elimina scheda","Edit date":"Modifica data","Add date":"Aggiungi data","Remove date":"Rimuovi data","Edit time":"Modifica ora","Add time":"Aggiungi ora","Remove time":"Rimuovi ora","Enter list title...":"Inserisci titolo lista...","Mark cards in this list as complete":"Segna elementi della lista come completati","Add list":"Aggiungi lista","Add a list":"Aggiungi un'altra lista","Move list":"Sposta lista",Close:"Chiudi","Are you sure you want to delete this list and all its cards?":"Cancellare questa lista e tutte le sue schede?","Yes, delete list":"Cancella lista","Are you sure you want to archive this list and all its cards?":"Archiviare questa lista e tutte le sue schede?","Yes, archive list":"Archivia lista","Are you sure you want to archive all cards in this list?":"Archiviare tutte le schede in questa lista?","Yes, archive cards":"Archivia schede","Edit list":"Modifica lista","Archive cards":"Archivia schede","Archive list":"Archivia lista","Delete list":"Cancella lista"};h();var Jg={"Open as kanban board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3068\u3057\u3066\u958B\u304F","Create new board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210","Archive completed cards in active board":"\u30A2\u30AF\u30C6\u30A3\u30D6\u30DC\u30FC\u30C9\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Error: current file is not a Kanban board":"\u30A8\u30E9\u30FC: \u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3067\u306F\u3042\u308A\u307E\u305B\u3093","Convert empty note to Kanban":"\u7A7A\u306E\u30CE\u30FC\u30C8\u3092\u30AB\u30F3\u30D0\u30F3\u306B\u5909\u63DB","Error: cannot create Kanban, the current note is not empty":"\u30A8\u30E9\u30FC: \u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u30CE\u30FC\u30C8\u306F\u7A7A\u3067\u3042\u308A\u3001\u30AB\u30F3\u30D0\u30F3\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093","New kanban board":"\u65B0\u898F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9","Untitled Kanban":"\u7121\u984C\u306E\u30AB\u30F3\u30D0\u30F3","Toggle between Kanban and markdown mode":"\u30AB\u30F3\u30D0\u30F3\u3068\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u306E\u30E2\u30FC\u30C9\u3092\u5207\u308A\u66FF\u3048\u308B","Open as markdown":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u958B\u304F","Open board settings":"\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u958B\u304F","Archive completed cards":"\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Something went wrong":"\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F","You may wish to open as markdown and inspect or edit the file.":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3044\u3066\u8ABF\u67FB\u3059\u308B\u304B\u7DE8\u96C6\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002","Are you sure you want to archive all completed cards on this board?":"\u3053\u306E\u30DC\u30FC\u30C9\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F",Complete:"\u5B8C\u4E86",Archive:"\u30A2\u30FC\u30AB\u30A4\u30D6","Invalid Kanban file: problems parsing frontmatter":"\u7121\u52B9\u306A\u30AB\u30F3\u30D0\u30F3\u30D5\u30A1\u30A4\u30EB: \u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306E\u30D1\u30FC\u30B9\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059","I don't know how to interpret this line:":"\u3053\u306E\u884C\u3092\u3069\u3046\u89E3\u91C8\u3059\u308C\u3070\u3088\u3044\u304B\u5206\u304B\u308A\u307E\u305B\u3093",Untitled:"\u7121\u984C","Note: No template plugins are currently enabled.":"\u30CE\u30FC\u30C8: \u73FE\u5728\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059",default:"\u30C7\u30D5\u30A9\u30EB\u30C8","Search...":"\u691C\u7D22\u2026","New line trigger":"\u6539\u884C\u30C8\u30EA\u30AC\u30FC","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"\u6539\u884C\u306B\u4F7F\u3046\u30AD\u30FC\u3068\u3057\u3066Enter\u304BShift+Enter\u306E\u3069\u3061\u3089\u3092\u4F7F\u3046\u304B\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u9078\u629E\u3057\u306A\u304B\u3063\u305F\u65B9\u306E\u30AD\u30FC\u306F\u30AB\u30FC\u30C9\u3068\u30EC\u30FC\u30F3\u306E\u4F5C\u6210\u3068\u7DE8\u96C6\u5B8C\u4E86\u306E\u30C8\u30EA\u30AC\u30FC\u3068\u306A\u308A\u307E\u3059\u3002","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0\u3059\u308B","This setting controls whether new cards are added to the beginning or end of the list.":"\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u3063\u3066\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u306E\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u8FFD\u52A0\u3059\u308B\u304B\u3092\u6C7A\u3081\u307E\u3059\u3002",Prepend:"\u5148\u982D\u306B\u8FFD\u52A0","Prepend (compact)":"\u5148\u982D\u306B\u8FFD\u52A0(\u30B3\u30F3\u30D1\u30AF\u30C8)",Append:"\u672B\u5C3E\u306B\u8FFD\u52A0","These settings will take precedence over the default Kanban board settings.":"\u3053\u308C\u3089\u306E\u8A2D\u5B9A\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u8A2D\u5B9A\u3088\u308A\u512A\u5148\u3055\u308C\u307E\u3059\u3002","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u30BB\u30C3\u30C8\u3057\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u30DC\u30FC\u30C9\u6BCE\u306B\u4E0A\u66F8\u304D\u3067\u304D\u307E\u3059\u3002","Note template":"\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8","This template will be used when creating new notes from Kanban cards.":"\u3053\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210\u3057\u305F\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","No template":"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u3042\u308A\u307E\u305B\u3093","Note folder":"\u30CE\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u4F5C\u6210\u3055\u308C\u305F\u30CE\u30FC\u30C8\u306F\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u5185\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002\u30D6\u30E9\u30F3\u30AF\u306E\u5834\u5408\u306B\u306F\u3001\u3053\u306E\u4FDD\u7BA1\u5EAB\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002","Default folder":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30EB\u30C0","Lane width":"\u30EC\u30FC\u30F3\u306E\u5E45","Enter a number to set the lane width in pixels.":"\u30EC\u30FC\u30F3\u306E\u5E45\u3092\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","Maximum number of archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306E\u6700\u5927\u6570","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u30E2\u30FC\u30C9\u3067\u95B2\u89A7\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u308A\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u9650\u754C\u6570\u307E\u3067\u9054\u3057\u305F\u969B\u306B\u306F\u53E4\u3044\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u5024\u3092-1\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u30DC\u30FC\u30C9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u9650\u754C\u3092\u7121\u9650\u306B\u3057\u307E\u3059\u3002","Display card checkbox":"\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u8868\u793A","When toggled, a checkbox will be displayed with each card":"\u6709\u52B9\u5316\u3059\u308B\u3068\u5404\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","Reset to default":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u30EA\u30BB\u30C3\u30C8","Date & Time":"\u65E5\u4ED8\u3068\u6642\u9593","Date trigger":"\u65E5\u4ED8\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the date selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u65E5\u4ED8\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Time trigger":"\u6642\u9593\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the time selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u6642\u9593\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Date format":"\u65E5\u4ED8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when saving dates in markdown.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3067\u65E5\u4ED8\u304C\u4FDD\u5B58\u3055\u308C\u308B\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","For more syntax, refer to":"\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306B\u3064\u3044\u3066\u306F\u3053\u3061\u3089\u3092\u53C2\u7167:","format reference":"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9","Your current syntax looks like this":"\u73FE\u5728\u306E\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306F\u6B21\u306E\u3088\u3046\u306B\u898B\u3048\u307E\u3059","Time format":"\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","Date display format":"\u65E5\u4ED8\u8868\u793A\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when displaying dates in Kanban cards.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u5185\u306B\u3066\u65E5\u4ED8\u306E\u8868\u793A\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Show relative date":"\u76F8\u5BFE\u65E5\u4ED8\u3092\u8868\u793A","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u306E\u65E5\u4ED8\u3068\u4ECA\u65E5\u306E\u9593\u306E\u65E5\u6570\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B: '3\u65E5\u5F8C', '1\u30F6\u6708\u524D'","Hide card display dates":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u4E0A\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3055\u308C\u305F\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u6709\u52B9\u5316\u3055\u308C\u305F\u5834\u5408\u306B\u306F\u76F8\u5BFE\u65E5\u4ED8\u306F\u8868\u793A\u3055\u308C\u307E\u307E\u3068\u306A\u308A\u307E\u3059\u3002","Hide dates in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u65E5\u4ED8\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Link dates to daily notes":"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u65E5\u4ED8\u3092\u30EA\u30F3\u30AF","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u6709\u52B9\u5316\u3059\u308B\u3068\u65E5\u4ED8\u304C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u30EA\u30F3\u30AF\u3055\u308C\u307E\u3059\u3002 \u4F8B: [[2021-04-26]]","Add date and time to archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306B\u65E5\u4ED8\u3068\u6642\u9593\u3092\u8FFD\u52A0","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u304C\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u969B\u306B\u73FE\u5728\u306E\u65E5\u4ED8\u3068\u6642\u9593\u304C\u30AB\u30FC\u30C9\u306E\u6700\u521D\u306B\u8FFD\u8A18\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\u4F8B: - [ ] 2021-05-14 10:00am \u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB","Archive date/time separator":"\u65E5\u4ED8\u30FB\u6642\u9593\u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","This will be used to separate the archived date/time from the title":"\u3053\u308C\u306F\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u65E5\u4ED8\u30FB\u6642\u9593\u3092\u30BF\u30A4\u30C8\u30EB\u304B\u3089\u5206\u96E2\u3059\u308B\u306E\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Archive date/time format":"\u65E5\u4ED8\u30FB\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Kanban Plugin":"\u30AB\u30F3\u30D0\u30F3\u30D7\u30E9\u30B0\u30A4\u30F3","Hide tags in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u30BF\u30B0\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Hide card display tags":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will not be displayed below the card title.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u4E0B\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","Linked Page Metadata":"\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30DA\u30FC\u30B8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u30AB\u30FC\u30C9\u5185\u3067\u30EA\u30F3\u30AF\u3055\u308C\u3066\u3044\u308B\u6700\u521D\u306E\u30CE\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4E0B\u306B\u8868\u793A\u3059\u308B\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u30E9\u30D9\u30EB\u306E\u4ED8\u4E0E\u304C\u53EF\u80FD\u3067\u3042\u308A\u3001\u30E9\u30D9\u30EB\u306F\u5B8C\u5168\u306B\u975E\u8868\u793A\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","Board Header Buttons":"\u30DC\u30FC\u30C9\u306E\u30D8\u30C3\u30C0\u30FC\u30DC\u30BF\u30F3","Calendar: first day of week":"\u30AB\u30EC\u30F3\u30C0\u30FC: \u9031\u306E\u59CB\u307E\u308A","Override which day is used as the start of the week":"\u9031\u306E\u59CB\u307E\u308A\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u66DC\u65E5\u3092\u5909\u66F4\u3057\u307E\u3059\u3002",Sunday:"\u65E5\u66DC\u65E5",Monday:"\u6708\u66DC\u65E5",Tuesday:"\u706B\u66DC\u65E5",Wednesday:"\u6C34\u66DC\u65E5",Thursday:"\u6728\u66DC\u65E5",Friday:"\u91D1\u66DC\u65E5",Saturday:"\u571F\u66DC\u65E5","Metadata key":"\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC","Display label":"\u30E9\u30D9\u30EB\u3092\u8868\u793A","Hide label":"\u30E9\u30D9\u30EB\u3092\u96A0\u3059","Drag to rearrange":"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E26\u3079\u66FF\u3048\u308B",Delete:"\u524A\u9664","Add key":"\u30AD\u30FC\u3092\u8FFD\u52A0","Field contains markdown":"\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3092\u542B\u307F\u307E\u3059","More options":"\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3",Cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",today:"\u4ECA\u65E5",yesterday:"\u6628\u65E5",tomorrow:"\u660E\u65E5","Change date":"\u65E5\u4ED8\u3092\u5909\u66F4","Change time":"\u6642\u9593\u3092\u5909\u66F4","Card title...":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u2026","Add card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Add a card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Edit card":"\u30AB\u30FC\u30C9\u3092\u7DE8\u96C6","New note from card":"\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210","Archive card":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete card":"\u30AB\u30FC\u30C9\u3092\u524A\u9664","Edit date":"\u65E5\u4ED8\u3092\u7DE8\u96C6","Add date":"\u65E5\u4ED8\u3092\u8FFD\u52A0","Remove date":"\u65E5\u4ED8\u3092\u524A\u9664","Edit time":"\u6642\u9593\u3092\u7DE8\u96C6","Add time":"\u6642\u9593\u3092\u8FFD\u52A0","Remove time":"\u6642\u9593\u3092\u524A\u9664","Duplicate card":"\u30AB\u30FC\u30C9\u3092\u8907\u88FD","Split card":"\u30AB\u30FC\u30C9\u3092\u5206\u5272","Copy link to card":"\u30AB\u30FC\u30C9\u3078\u306E\u30EA\u30F3\u30AF\u3092\u30B3\u30D4\u30FC","Enter list title...":"\u30EA\u30B9\u30C8\u30BF\u30A4\u30C8\u30EB\u3092\u7DE8\u96C6\u2026","Mark cards in this list as complete":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u30AB\u30FC\u30C9\u3092\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3059\u308B","Add list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Add a list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Move list":"\u30EA\u30B9\u30C8\u3092\u79FB\u52D5",Close:"\u9589\u3058\u308B","Are you sure you want to delete this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u304B\b\uFF1F","Yes, delete list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059","Are you sure you want to archive this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Are you sure you want to archive all cards in this list?":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive cards":"\u306F\u3044\u3001\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Edit list":"\u30EA\u30B9\u30C8\u3092\u7DE8\u96C6","Archive cards":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Archive list":"\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete list":"\u30EA\u30B9\u30C8\u3092\u524A\u9664","Unable to find":"\u898B\u3064\u304B\u308A\u307E\u305B\u3093","Open in default app":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30A2\u30D7\u30EA\u3067\u958B\u304F"};h();var Gg={};h();var Qg={};h();var Xg={};h();var Zg={};h();var ey={};h();var ty={"Open as Kanban board":"Abrir como quadro Kanban","Create new board":"Criar um novo quadro","Archive completed cards in active board":"Arquivar cart\xF5es conclu\xEDdos no quadro ativo","Error: current file is not a Kanban board":"Erro: o arquivo atual n\xE3o \xE9 um quadro Kanban","Convert empty note to Kanban":"Converter nota vazia em Kanban","Error: cannot create Kanban, the current note is not empty":"Erro: n\xE3o \xE9 poss\xEDvel criar o quadro Kanban, a nota atual n\xE3o est\xE1 vazia","New Kanban board":"Novo quadro Kanban","Untitled Kanban":"Kanban sem t\xEDtulo","Toggle between Kanban and markdown mode":"Alternar entre os modos Kanban e Markdown","Open as markdown":"Abrir como markdown","Open board settings":"Abrir configura\xE7\xF5es do quadro Kanban","Archive completed cards":"Arquivar cart\xF5es conclu\xEDdos",Complete:"Conclu\xEDdo",Archive:"Arquivado","Note: No template plugins are currently enabled.":"Nota: N\xE3o h\xE1 plug-ins de modelo habilitados no momento.",default:"padr\xE3o","Search...":"Pesquisar...","These settings will take precedence over the default Kanban board settings.":"Essas configura\xE7\xF5es sobrescrever\xE3o as configura\xE7\xF5es padr\xE3o do quadro Kanban","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Defina as configura\xE7\xF5es padr\xE3o do quadro Kanban. Cada quadro Kanban pode ter sua pr\xF3pria configura\xE7\xE3o.","Note template":"Modelo de nota","This template will be used when creating new notes from Kanban cards.":"Este modelo ser\xE1 usado quando uma nova nota Kanban for criada.","No template":"Sem modelo","Note folder":"Pasta de notas","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"As notas criadas pelos links dos cart\xF5es Kanban ser\xE3o colocadas nesta pasta. Se estiver em branco, ser\xE3o colocadas no local configurado como padr\xE3o deste cofre.","Default folder":"Pasta padr\xE3o","Lane width":"Largura das listas","Enter a number to set the lane width in pixels.":"Insira um n\xFAmero para definir a largura das listas em pixels.","Maximum number of archived cards":"Quantidade m\xE1xima de cart\xF5es arquivados","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Os cart\xF5es arquivados podem ser vistos no modo Markdown. Esta configura\xE7\xE3o excluir\xE1 os cart\xF5es antigos assim que o limite for atingido. Inserir o valor -1 retira o limite para cart\xF5es arquivados.","Display card checkbox":"Exibe uma caixa de sele\xE7\xE3o do cart\xE3o","When toggled, a checkbox will be displayed with each card":"Quando ativada, uma caixa de sele\xE7\xE3o ser\xE1 exibida em cada cart\xE3o.","Reset to default":"Redefinir configura\xE7\xF5es padr\xE3o","Date & Time":"Data e Hora","Date trigger":"Gatilho de data","When this is typed, it will trigger the date selector":"Quando este caractere \xE9 digitado, o seletor de data \xE9 exibido.","Time trigger":"Gatilho de hora","When this is typed, it will trigger the time selector":"Quando este caractere \xE9 digitado, o seletor de hora \xE9 exibido.","Date format":"Formado da data","This format will be used when saving dates in markdown.":"Este formato ser\xE1 usado quando datas forem armazenadas no Markdown.","For more syntax, refer to":"Para mais informa\xE7\xF5es sobre esta sintaxe, consulte os","format reference":"modelos de formato.","Your current syntax looks like this":"Sua atual sintaxe est\xE1 assim","Time format":"Formato da hora","Date display format":"Formato de exibi\xE7\xE3o da data","This format will be used when displaying dates in Kanban cards.":"Este ser\xE1 o formato das datas exibido nos cart\xF5es do Kanban.","Show relative date":"Exibir datas relativas","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Ao ativar, os cart\xF5es exibir\xE3o o intervalo de tempo entre hoje e a data do cart\xE3o: Ex.: 'Em 3 dias', 'Um m\xEAs atr\xE1s'","Hide card display dates":"Ocultar datas dos cart\xF5es","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Ao ativar, as datas formatadas n\xE3o ser\xE3o exibidas no cart\xE3o. As datas relativas ainda ser\xE3o exibidas se estiverem ativadas.","Hide dates in card titles":"Ocultar datas dos t\xEDtulos dos cart\xF5es","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Ao ativar, as datas ser\xE3o t\xEDtulos de cart\xF5es ocultos. Evita que datas sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Link dates to daily notes":"Vincular datas a notas di\xE1rias","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Ao ativar, as datas ser\xE3o vinculadas \xE0s notas di\xE1rias. Ex.: [[2021-04-26]]","Add date and time to archived cards":"Adicionar data e hora aos cart\xF5es arquivados","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Quando ativada, a data e a hora atuais ser\xE3o adicionadas ao in\xEDcio de um cart\xE3o quando ele for arquivado. Ex.: - [] 2021-05-14 10:00 T\xEDtulo do meu cart\xE3o","Archive date/time separator":"Separador de data/hora do arquivo","This will be used to separate the archived date/time from the title":"Isso ser\xE1 usado para separar a data/hora arquivada do t\xEDtulo.","Archive date/time format":"Formato de data/hora do arquivo","Kanban Plugin":"Plugin Kanban","Hide tags in card titles":"Ocultar \u2018tags\u2019 nos t\xEDtulos dos cart\xF5es","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas nos t\xEDtulos de cartas. Isso impedir\xE1 que as \u2018tags\u2019 sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Hide card display tags":"Ocultar \u2018tags\u2019 de exibi\xE7\xE3o de cart\xE3o","When toggled, tags will not be displayed below the card title.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas abaixo do t\xEDtulo do cart\xE3o.","Linked Page Metadata":"Metadados de p\xE1ginas 'lincadas'","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Exibe metadados para a primeira nota 'lincada' em um cart\xE3o. Especifique abaixo quais metadados ser\xE3o exibidos. Um r\xF3tulo opcional pode ser fornecido e os r\xF3tulos podem ser ocultados completamente.","Metadata key":"Metadado","Display label":"Descri\xE7\xE3o personalizada","Hide label":"Ocultar","Drag to rearrange":"Arraste para reorganizar",Delete:"Excluir","Add key":"Adicionar metadado","More options":"Mais op\xE7\xF5es",Cancel:"Cancelar",today:"hoje",yesterday:"ontem",tomorrow:"amanh\xE3","Change date":"Alterar data","Change time":"Mudar hora","Card title...":"T\xEDtulo do item...","Add card":"Adicionar Item","Add a card":"Adicione um cart\xE3o","Edit card":"Editar cart\xE3o","New note from card":"Nova nota do cart\xE3o","Archive card":"Arquivar cart\xE3o","Delete card":"Excluir cart\xE3o","Edit date":"Editar data","Add date":"Adicionar data","Remove date":"Remover data","Edit time":"Editar hora","Add time":"Adicionar hora","Remove time":"Remover hora","Duplicate card":"Duplicate card","Enter list title...":"Insira o t\xEDtulo da lista...","Mark cards in this list as complete":"Marcar os itens nesta lista como conclu\xEDdos","Add list":"Adicionar lista","Add a list":"Adicionar uma lista","Move list":"Mover lista",Close:"Fechar","Are you sure you want to delete this list and all its cards?":"Tem certeza de que deseja excluir esta lista e todos os seus cart\xF5es?","Yes, delete list":"Sim, excluir esta lista","Are you sure you want to archive this list and all its cards?":"Tem certeza de que deseja arquivar esta lista e todos os seus cart\xF5es?","Yes, archive list":"Sim, arquivar esta lista","Are you sure you want to archive all cards in this list?":"Tem certeza de que deseja arquivar todos os cart\xF5es desta lista?","Yes, archive cards":"Sim, arquivar cart\xF5es","Edit list":"Editar lista","Archive cards":"Arquivar cart\xF5es","Archive list":"Arquivar lista","Delete list":"Excluir lista"};h();var ny={};h();var ry={};h();var iy={};h();var es={};h();var ay={"Open as kanban board":"\u6253\u5F00\u4E3A\u770B\u677F","Create new board":"\u521B\u5EFA\u65B0\u770B\u677F","Archive completed cards in active board":"\u5728\u5F53\u524D\u770B\u677F\u4E2D\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Error: current file is not a Kanban board":"\u9519\u8BEF\uFF1A\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u770B\u677F\u6587\u4EF6","Convert empty note to Kanban":"\u8F6C\u6362\u7A7A\u767D\u6587\u6863\u4E3A\u770B\u677F","Error: cannot create Kanban, the current note is not empty":"\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8F6C\u6362\u5F53\u524D\u6587\u4EF6\uFF0C\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u7A7A\u767D\u6587\u6863","New kanban board":"\u65B0\u770B\u677F","Untitled Kanban":"\u672A\u547D\u540D\u770B\u677F","Toggle between Kanban and markdown mode":"\u5728\u770B\u677F\u548C Markdown \u6A21\u5F0F\u4E4B\u95F4\u8FDB\u884C\u5207\u6362","Open as markdown":"\u6253\u5F00\u4E3A Markdown \u6587\u4EF6","Open board settings":"\u6253\u5F00\u770B\u677F\u8BBE\u7F6E","Archive completed cards":"\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Something went wrong":"\u51FA\u4E86\u70B9\u95EE\u9898 `(*>\uFE4F<*)\u2032 ","You may wish to open as markdown and inspect or edit the file.":"\u4F60\u53EF\u80FD\u5E0C\u671B\u4EE5 Markdown \u65B9\u5F0F\u6253\u5F00\uFF0C\u5E76\u68C0\u67E5\u6216\u7F16\u8F91\u8BE5\u6587\u4EF6\u3002","Are you sure you want to archive all completed cards on this board?":"\u4F60\u786E\u5B9A\u8981\u5C06\u8FD9\u4E2A\u677F\u5757\u4E0A\u6240\u6709\u5DF2\u5B8C\u6210\u7684\u5361\u7247\u5F52\u6863\u5417\uFF1F",Complete:"\u5B8C\u6210",Archive:"\u5F52\u6863","Invalid Kanban file: problems parsing frontmatter":"\u65E0\u6548\u7684\u770B\u677F\u6587\u4EF6\uFF1A\u89E3\u6790\u524D\u7AEF\u5185\u5BB9\u65F6\u51FA\u73B0\u95EE\u9898","I don't know how to interpret this line:":"\u6211\u4E0D\u77E5\u9053\u5982\u4F55\u89E3\u8BFB\u8FD9\u53E5\u8BDD: ",Untitled:"\u672A\u547D\u540D","Note: No template plugins are currently enabled.":"\u6CE8\u610F\uFF1A\u5F53\u524D\u6A21\u677F\u63D2\u4EF6\u6CA1\u6709\u8FD0\u884C",default:"\u9ED8\u8BA4","Search...":"\u641C\u7D22...","New line trigger":"\u6362\u884C\u89E6\u53D1\u5668","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"\u9009\u62E9 Enter \u6216\u662F Shift+Enter \u6765\u521B\u5EFA\u65B0\u884C, \u4F60\u6CA1\u6709\u9009\u62E9\u7684\u5C06\u7528\u6765\u521B\u5EFA\u548C\u5B8C\u6210\u5361\u7247","Prepend / append new cards":"\u8FFD\u52A0\u65B0\u5361","This setting controls whether new cards are added to the beginning or end of the list.":"\u8BBE\u7F6E\u65B0\u5361\u7247\u6DFB\u52A0\u5230\u5217\u8868\u5934\u90E8\u6216\u5C3E\u90E8\u3002",Prepend:"\u5934\u90E8","Prepend (compact)":"\u5934\u90E8 (\u7D27\u51D1)",Append:"\u5C3E\u90E8","These settings will take precedence over the default Kanban board settings.":"\u5F53\u524D\u770B\u677F\u8BBE\u7F6E\u5C06\u4F1A\u8986\u76D6\u9ED8\u8BA4\u7684\u770B\u677F\u8BBE\u7F6E","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u8BBE\u7F6E\u770B\u677F\u7684\u9ED8\u8BA4\u8BBE\u7F6E\u3002\u8BBE\u7F6E\u53EF\u4EE5\u6BCF\u4E2A\u770B\u677F\u5355\u72EC\u8BBE\u7F6E\u3002","Note template":"\u7B14\u8BB0\u6A21\u677F","This template will be used when creating new notes from Kanban cards.":"\u521B\u5EFA\u65B0\u770B\u677F\u5361\u7247\u65F6\u4F1A\u4F7F\u7528\u8BE5\u6A21\u677F","No template":"\u6CA1\u6709\u6A21\u677F","Note folder":"\u7B14\u8BB0\u5B58\u653E\u4F4D\u7F6E","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u4ECE\u770B\u677F\u5361\u7247\u521B\u5EFA\u7684\u7B14\u8BB0\u4F1A\u653E\u7F6E\u5230\u8BE5\u6587\u4EF6\u5939\u4E2D\uFF0C\u5982\u679C\u8FD9\u91CC\u4E3A\u7A7A\uFF0C\u5728\u770B\u677F\u521B\u5EFA\u7684\u7B14\u8BB0\u4F1A\u653E\u7F6E\u5230 Obsidian \u7684\u9ED8\u8BA4\u6587\u4EF6\u5B58\u653E\u4F4D\u7F6E\u3002","Default folder":"\u9ED8\u8BA4\u6587\u4EF6\u5939","Lane width":"\u5361\u7247\u5BBD\u5EA6","Enter a number to set the lane width in pixels.":"\u8F93\u5165\u4E00\u4E2A\u6570\u5B57\u6765\u8BBE\u7F6E\u770B\u677F\u7684\u5361\u7247\u5BBD\u5EA6","Maximum number of archived cards":"\u5355\u4E2A\u770B\u677F\u7684\u5F52\u6863\u5361\u7247\u7684\u6700\u5927\u6570\u91CF","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u5DF2\u5F52\u6863\u7684\u5361\u7247\u53EF\u4EE5\u5728 Markdown \u6A21\u5F0F\u4E0B\u67E5\u770B\u3002\u8FD9\u4E2A\u8BBE\u7F6E\u4F1A\u5BFC\u81F4\u63D2\u4EF6\u5728\u5DF2\u5F52\u6863\u7684\u5361\u7247\u6570\u91CF\u62B5\u8FBE\u9650\u5236\u503C\u65F6\u5F00\u59CB\u5220\u9664\u5361\u7247\u3002\u5F53\u524D\u503C\u8BBE\u7F6E\u4E3A -1 \u7684\u8BDD\u53EF\u4EE5\u6C38\u4E45\u4FDD\u7559\u6240\u6709\u5F52\u6863\u5361\u7247\u3002","Display card checkbox":"\u5C55\u793A\u5361\u7247\u590D\u9009\u6846","When toggled, a checkbox will be displayed with each card":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u590D\u9009\u6846\u4F1A\u51FA\u73B0\u5728\u6BCF\u4E2A\u5361\u7247\u4E0A","Reset to default":"\u8FD8\u539F\u521D\u59CB\u8BBE\u7F6E","Date & Time":"\u65E5\u671F\u548C\u65F6\u95F4","Date trigger":"\u65E5\u671F\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the date selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65E5\u671F\u9009\u62E9\u5668","Time trigger":"\u65F6\u95F4\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the time selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65F6\u95F4\u9009\u62E9\u5668","Date format":"\u65E5\u671F\u683C\u5F0F","This format will be used when saving dates in markdown.":"\u8FD9\u4E2A\u683C\u5F0F\u4F1A\u5728\u65E5\u671F\u4FDD\u5B58\u5230 Markdown \u683C\u5F0F\u65F6\u4F7F\u7528\u3002","For more syntax, refer to":"\u66F4\u591A\u683C\u5F0F\uFF0C\u8BF7\u67E5\u770B","format reference":"\u683C\u5F0F\u53C2\u8003","Your current syntax looks like this":"\u4F60\u5F53\u524D\u8BBE\u7F6E\u7684\u683C\u5F0F\u4F1A\u662F","Time format":"\u65F6\u95F4\u683C\u5F0F","Date display format":"\u65E5\u671F\u5C55\u793A\u683C\u5F0F","This format will be used when displaying dates in Kanban cards.":"\u5728\u770B\u677F\u5361\u7247\u4E2D\uFF0C\u4F1A\u57FA\u4E8E\u8BE5\u683C\u5F0F\u5C55\u793A\u65E5\u671F","Show relative date":"\u5C55\u793A\u76F8\u5BF9\u65E5\u671F","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u4F1A\u5C55\u793A\u5176\u8BBE\u7F6E\u7684\u65E5\u671F\u4E0E\u4ECA\u5929\u7684\u65E5\u671F\u7684\u5DEE\u503C\uFF0C\u4F8B\u5982\u4E09\u5929\u5185\u3001\u4E00\u4E2A\u6708\u5185\u7B49\u3002","Hide card display dates":"\u9690\u85CF\u5361\u7247\u65E5\u671F","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u683C\u5F0F\u5316\u7684\u65E5\u671F\u4E0D\u4F1A\u5C55\u793A\uFF0C\u4F46\u662F\u5982\u679C\u4F60\u5F00\u542F\u4E86\u76F8\u5BF9\u65E5\u671F\u7684\u529F\u80FD\uFF0C\u76F8\u5BF9\u65E5\u671F\u8FD8\u662F\u4F1A\u7EE7\u7EED\u5C55\u793A\u3002","Hide dates in card titles":"\u5728\u5361\u7247\u6807\u9898\u4E2D\u9690\u85CF\u65E5\u671F","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u65E5\u671F\u4F1A\u9690\u85CF\uFF0C\u5F53\u57FA\u4E8E\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u7684\u65F6\u5019\u53EF\u4EE5\u907F\u514D\u65E5\u671F\u6DF7\u6742\u5176\u4E2D\u3002","Link dates to daily notes":"\u94FE\u63A5\u65E5\u671F\u5230\u65E5\u8BB0","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u65E5\u671F\u4F1A\u81EA\u52A8\u94FE\u63A5\u5230\u65E5\u8BB0\u9875\u9762\uFF0C\u4F8B\u5982 [[2021-04-26]]","Add date and time to archived cards":"\u6DFB\u52A0\u65E5\u671F\u548C\u65F6\u95F4\u5230\u5F52\u6863\u5361\u7247","When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5F53\u524D\u7684\u65E5\u671F\u548C\u65F6\u95F4\u4F1A\u88AB\u6DFB\u52A0\u5230\u5F52\u6863\u7684\u5361\u7247\u7684\u524D\u7AEF\u4E0A\uFF0C\u4F8B\u5982\u201C- [ ] 2021-05-14 10:00am \u6211\u7684\u5361\u7247\u6807\u9898\u201D","Archive date/time separator":"\u65E5\u671F\u6216\u65F6\u95F4\u5206\u9694\u7B26","This will be used to separate the archived date/time from the title":"\u7528\u4E8E\u4ECE\u5206\u9694\u5F52\u6863\u5361\u7247\u7684\u65E5\u671F\u6216\u65F6\u95F4","Archive date/time format":"\u5F52\u6863\u65E5\u671F\u6216\u65F6\u95F4\u683C\u5F0F","Kanban Plugin":"\u770B\u677F\u63D2\u4EF6","Hide tags in card titles":"\u9690\u85CF\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E\u5C06\u4F1A\u88AB\u9690\u85CF\uFF0C\u6765\u907F\u514D\u751F\u6210\u5361\u7247\u7B14\u8BB0\u7684\u65F6\u5019\u9644\u5E26\u4E0A\u6807\u7B7E","Hide card display tags":"\u9690\u85CF\u5361\u7247\u4E0A\u7684\u6807\u7B7E","When toggled, tags will not be displayed below the card title.":"\u5F53\u6253\u5F00\u8FD9\u4E2A\uFF0C\u5361\u7247\u6807\u9898\u4E0B\u65B9\u7684\u6807\u7B7E\u5C06\u4E0D\u4F1A\u5C55\u793A","Linked Page Metadata":"\u8FDE\u63A5\u7684\u9875\u9762\u5143\u6570\u636E","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u5C55\u793A\u5361\u7247\u4E2D\u7B2C\u4E00\u4E2A\u8FDE\u63A5\u6240\u5BF9\u5E94\u7684\u7B14\u8BB0\u5143\u6570\u636E\uFF0C\u8BF7\u5728\u4E0B\u65B9\u6307\u5B9A\u54EA\u4E9B\u5143\u6570\u636E\u53EF\u4EE5\u5C55\u793A\u3002\u4F60\u53EF\u4EE5\u9009\u62E9\u5C55\u793A\u6807\u5FD7\uFF0C\u6807\u5FD7\u53EF\u4EE5\u90FD\u88AB\u9690\u85CF\u3002","Board Header Buttons":"\u677F\u5934\u6309\u94AE","Calendar: first day of week":"\u65E5\u5386\uFF1A\u4E00\u5468\u7684\u7B2C\u4E00\u5929","Override which day is used as the start of the week":"\u54EA\u4E00\u5929\u4F5C\u4E3A\u4E00\u5468\u7684\u5F00\u59CB",Sunday:"\u5468\u65E5",Monday:"\u5468\u4E00",Tuesday:"\u5468\u4E8C",Wednesday:"\u5468\u4E09",Thursday:"\u5468\u56DB",Friday:"\u5468\u4E94",Saturday:"\u5468\u516D","Metadata key":"\u5143\u6570\u636E\u53C2\u6570\u540D","Display label":"\u5C55\u793A\u6807\u5FD7","Hide label":"\u9690\u85CF\u6807\u5FD7","Drag to rearrange":"\u62D6\u52A8\u6765\u91CD\u6392\u987A\u5E8F",Delete:"\u5220\u9664","Add key":"\u6DFB\u52A0\u53C2\u6570\u540D","Field contains markdown":"\u5B57\u6BB5\u5305\u542B Markdown","More options":"\u66F4\u591A\u9009\u9879",Cancel:"\u53D6\u6D88",today:"\u4ECA\u5929",yesterday:"\u6628\u5929",tomorrow:"\u660E\u5929","Change date":"\u66F4\u6539\u65E5\u671F","Change time":"\u66F4\u6539\u65F6\u95F4","Card title...":"\u5361\u7247\u6807\u9898","Add card":"\u6DFB\u52A0","Add a card":"\u6DFB\u52A0\u5361\u7247","Edit card":"\u7F16\u8F91\u5361\u7247","New note from card":"\u4ECE\u5361\u7247\u65B0\u5EFA\u7B14\u8BB0","Archive card":"\u5F52\u6863\u5361\u7247","Delete card":"\u5220\u9664\u5361\u7247","Edit date":"\u7F16\u8F91\u65E5\u671F","Add date":"\u6DFB\u52A0\u65E5\u671F","Remove date":"\u79FB\u9664\u65E5\u671F","Edit time":"\u7F16\u8F91\u65F6\u95F4","Add time":"\u6DFB\u52A0\u65F6\u95F4","Remove time":"\u79FB\u9664\u65F6\u95F4","Duplicate card":"\u590D\u5236\u5361\u7247","Split card":"\u5206\u79BB\u5361\u7247","Copy link to card":"\u590D\u5236\u94FE\u63A5\u81F3\u5361\u7247","Insert card before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5361\u7247","Insert card after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5361\u7247","Enter list title...":"\u8F93\u5165\u65B0\u7684\u5217\u6807\u9898","Mark cards in this list as complete":"\u5C06\u8BE5\u5217\u8BBE\u7F6E\u4E3A\u5B8C\u6210\u5217","Add list":"\u6DFB\u52A0","Add a list":"\u6DFB\u52A0\u5217","Move list":"\u79FB\u52A8\u5217",Close:"\u5173\u95ED","Are you sure you want to delete this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5220\u9664\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, delete list":"\u662F\uFF0C\u5220\u9664\u5217","Are you sure you want to archive this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5F52\u6863\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive list":"\u662F, \u5F52\u6863\u5217","Are you sure you want to archive all cards in this list?":"\u4F60\u786E\u8BA4\u4F60\u8981\u5F52\u6863\u5F53\u524D\u5217\u7684\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive cards":"\u662F\uFF0C\u5F52\u6863\u6240\u6709\u5361\u7247","Edit list":"\u7F16\u8F91\u5217","Archive cards":"\u5F52\u6863\u5361\u7247","Archive list":"\u5F52\u6863\u5217","Delete list":"\u5220\u9664\u5217","Insert list before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5217","Insert list after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5217","Unable to find":"\u65E0\u6CD5\u627E\u5230","Open in default app":"\u5728\u9ED8\u8BA4\u5E94\u7528\u4E2D\u6253\u5F00",Submit:"\u63D0\u4EA4"};h();var oy={};var vS={ar:Kg,cz:$g,da:Ug,de:Wg,en:yu,es:Vg,fr:zg,hi:jg,id:qg,it:Yg,ja:Jg,ko:Gg,nl:Qg,no:Xg,pl:Zg,"pt-BR":ty,pt:ey,ro:ny,ru:ry,sq:iy,tr:es,uk:es,"zh-TW":oy,zh:ay},sy=window.localStorage.getItem("language"),vu=vS[sy||"en"];function B(e){return vu||console.error("Error: kanban locale not found",sy),vu&&vu[e]||yu[e]}h();h();function Un(e){return Array.isArray?Array.isArray(e):uy(e)==="[object Array]"}var bS=1/0;function wS(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-bS?"-0":t}function ES(e){return e==null?"":wS(e)}function Mn(e){return typeof e=="string"}function ly(e){return typeof e=="number"}function xS(e){return e===!0||e===!1||kS(e)&&uy(e)=="[object Boolean]"}function cy(e){return typeof e=="object"}function kS(e){return cy(e)&&e!==null}function on(e){return e!=null}function bu(e){return!e.trim().length}function uy(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var SS="Incorrect 'index' type",_S=e=>`Invalid value for key ${e}`,DS=e=>`Pattern length exceeds max of ${e}.`,CS=e=>`Missing ${e} property in key`,TS=e=>`Property 'weight' in key '${e}' must be a positive integer`,dy=Object.prototype.hasOwnProperty,fy=class{constructor(t){this._keys=[],this._keyMap={};let r=0;t.forEach(n=>{let i=py(n);r+=i.weight,this._keys.push(i),this._keyMap[i.id]=i,r+=i.weight}),this._keys.forEach(n=>{n.weight/=r})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function py(e){let t=null,r=null,n=null,i=1,a=null;if(Mn(e)||Un(e))n=e,t=hy(e),r=wu(e);else{if(!dy.call(e,"name"))throw new Error(CS("name"));let o=e.name;if(n=o,dy.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(TS(o));t=hy(o),r=wu(o),a=e.getFn}return{path:t,id:r,weight:i,src:n,getFn:a}}function hy(e){return Un(e)?e:e.split(".")}function wu(e){return Un(e)?e.join("."):e}function MS(e,t){let r=[],n=!1,i=(a,o,s)=>{if(!!on(a))if(!o[s])r.push(a);else{let u=o[s],l=a[u];if(!on(l))return;if(s===o.length-1&&(Mn(l)||ly(l)||xS(l)))r.push(ES(l));else if(Un(l)){n=!0;for(let c=0,d=l.length;ce.score===t.score?e.idx{this._keysMap[r.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Mn(this.docs[0])?this.docs.forEach((t,r)=>{this._addString(t,r)}):this.docs.forEach((t,r)=>{this._addObject(t,r)}),this.norm.clear())}add(t){let r=this.size();Mn(t)?this._addString(t,r):this._addObject(t,r)}removeAt(t){this.records.splice(t,1);for(let r=t,n=this.size();r{let o=i.getFn?i.getFn(t):this.getFn(t,i.path);if(!!on(o)){if(Un(o)){let s=[],u=[{nestedArrIndex:-1,value:o}];for(;u.length;){let{nestedArrIndex:l,value:c}=u.pop();if(!!on(c))if(Mn(c)&&!bu(c)){let d={v:c,i:l,n:this.norm.get(c)};s.push(d)}else Un(c)&&c.forEach((d,f)=>{u.push({nestedArrIndex:f,value:d})})}n.$[a]=s}else if(Mn(o)&&!bu(o)){let s={v:o,n:this.norm.get(o)};n.$[a]=s}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}};function my(e,t,{getFn:r=_e.getFn,fieldNormWeight:n=_e.fieldNormWeight}={}){let i=new ts({getFn:r,fieldNormWeight:n});return i.setKeys(e.map(py)),i.setSources(t),i.create(),i}function NS(e,{getFn:t=_e.getFn,fieldNormWeight:r=_e.fieldNormWeight}={}){let{keys:n,records:i}=e,a=new ts({getFn:t,fieldNormWeight:r});return a.setKeys(n),a.setIndexRecords(i),a}function ns(e,{errors:t=0,currentLocation:r=0,expectedLocation:n=0,distance:i=_e.distance,ignoreLocation:a=_e.ignoreLocation}={}){let o=t/e.length;if(a)return o;let s=Math.abs(n-r);return i?o+s/i:s?1:o}function RS(e=[],t=_e.minMatchCharLength){let r=[],n=-1,i=-1,a=0;for(let o=e.length;a=t&&r.push([n,i]),n=-1)}return e[a-1]&&a-n>=t&&r.push([n,a-1]),r}var Mr=32;function HS(e,t,r,{location:n=_e.location,distance:i=_e.distance,threshold:a=_e.threshold,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,includeMatches:u=_e.includeMatches,ignoreLocation:l=_e.ignoreLocation}={}){if(t.length>Mr)throw new Error(DS(Mr));let c=t.length,d=e.length,f=Math.max(0,Math.min(n,d)),p=a,m=f,v=s>1||u,b=v?Array(d):[],k;for(;(k=e.indexOf(t,m))>-1;){let F=ns(t,{currentLocation:k,expectedLocation:f,distance:i,ignoreLocation:l});if(p=Math.min(F,p),m=k+c,v){let U=0;for(;U=ee;G-=1){let re=G-1,pe=r[e.charAt(re)];if(v&&(b[re]=+!!pe),le[G]=(le[G+1]<<1|1)&pe,F&&(le[G]|=(T[G+1]|T[G])<<1|1|T[G+1]),le[G]&H&&(D=ns(t,{errors:F,currentLocation:re,expectedLocation:f,distance:i,ignoreLocation:l}),D<=p)){if(p=D,m=re,m<=f)break;ee=Math.max(1,2*f-m)}}if(ns(t,{errors:F+1,currentLocation:f,expectedLocation:f,distance:i,ignoreLocation:l})>p)break;T=le}let C={isMatch:m>=0,score:Math.max(.001,D)};if(v){let F=RS(b,s);F.length?u&&(C.indices=F):C.isMatch=!1}return C}function BS(e){let t={};for(let r=0,n=e.length;r{this.chunks.push({pattern:f,alphabet:BS(f),startIndex:p})},d=this.pattern.length;if(d>Mr){let f=0,p=d%Mr,m=d-p;for(;f{let{isMatch:k,score:T,indices:D}=HS(t,m,v,{location:i+b,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:u,includeMatches:n,ignoreLocation:l});k&&(f=!0),d+=T,k&&D&&(c=[...c,...D])});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&n&&(p.indices=c),p}},Wn=class{constructor(t){this.pattern=t}static isMultiMatch(t){return gy(t,this.multiRegex)}static isSingleMatch(t){return gy(t,this.singleRegex)}search(){}};function gy(e,t){let r=e.match(t);return r?r[1]:null}var yy=class extends Wn{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){let r=t===this.pattern;return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},vy=class extends Wn{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){let n=t.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}},by=class extends Wn{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){let r=t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},wy=class extends Wn{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){let r=!t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},Ey=class extends Wn{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){let r=t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},xy=class extends Wn{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){let r=!t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},xu=class extends Wn{constructor(t,{location:r=_e.location,threshold:n=_e.threshold,distance:i=_e.distance,includeMatches:a=_e.includeMatches,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,isCaseSensitive:u=_e.isCaseSensitive,ignoreLocation:l=_e.ignoreLocation}={}){super(t);this._bitapSearch=new Eu(t,{location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:u,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}},ku=class extends Wn{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let r=0,n,i=[],a=this.pattern.length;for(;(n=t.indexOf(this.pattern,r))>-1;)r=n+a,i.push([n,r-1]);let o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}},Su=[yy,ku,by,wy,xy,Ey,vy,xu],ky=Su.length,KS=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,$S="|";function US(e,t={}){return e.split($S).map(r=>{let n=r.trim().split(KS).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(e[rs.AND]||e[rs.OR]),zS=e=>!!e[Cu.PATH],jS=e=>!Un(e)&&cy(e)&&!Tu(e),_y=e=>({[rs.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Dy(e,t,{auto:r=!0}={}){let n=i=>{let a=Object.keys(i),o=zS(i);if(!o&&a.length>1&&!Tu(i))return n(_y(i));if(jS(i)){let u=o?i[Cu.PATH]:a[0],l=o?i[Cu.PATTERN]:i[u];if(!Mn(l))throw new Error(_S(u));let c={keyId:wu(u),pattern:l};return r&&(c.searcher=Du(l,t)),c}let s={children:[],operator:a[0]};return a.forEach(u=>{let l=i[u];Un(l)&&l.forEach(c=>{s.children.push(n(c))})}),s};return Tu(e)||(e=_y(e)),n(e)}function qS(e,{ignoreFieldNorm:t=_e.ignoreFieldNorm}){e.forEach(r=>{let n=1;r.matches.forEach(({key:i,norm:a,score:o})=>{let s=i?i.weight:null;n*=Math.pow(o===0&&s?Number.EPSILON:o,(s||1)*(t?1:a))}),r.score=n})}function YS(e,t){let r=e.matches;t.matches=[],!!on(r)&&r.forEach(n=>{if(!on(n.indices)||!n.indices.length)return;let{indices:i,value:a}=n,o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),t.matches.push(o)})}function JS(e,t){t.score=e.score}function GS(e,t,{includeMatches:r=_e.includeMatches,includeScore:n=_e.includeScore}={}){let i=[];return r&&i.push(YS),n&&i.push(JS),e.map(a=>{let{idx:o}=a,s={item:t[o],refIndex:o};return i.length&&i.forEach(u=>{u(a,s)}),s})}var dn=class{constructor(t,r={},n){this.options={..._e,...r},this.options.useExtendedSearch,this._keyStore=new fy(this.options.keys),this.setCollection(t,n)}setCollection(t,r){if(this._docs=t,r&&!(r instanceof ts))throw new Error(SS);this._myIndex=r||my(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){!on(t)||(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){let r=[];for(let n=0,i=this._docs.length;n-1&&(u=u.slice(0,r)),GS(u,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(t){let r=Du(t,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:s})=>{if(!on(a))return;let{isMatch:u,score:l,indices:c}=r.searchIn(a);u&&i.push({item:a,idx:o,matches:[{score:l,value:a,norm:s,indices:c}]})}),i}_searchLogical(t){let r=Dy(t,this.options),n=(s,u,l)=>{if(!s.children){let{keyId:d,searcher:f}=s,p=this._findMatches({key:this._keyStore.get(d),value:this._myIndex.getValueForItemAtKeyId(u,d),searcher:f});return p&&p.length?[{idx:l,item:u,matches:p}]:[]}let c=[];for(let d=0,f=s.children.length;d{if(on(s)){let l=n(r,s,u);l.length&&(a[u]||(a[u]={idx:u,item:s,matches:[]},o.push(a[u])),l.forEach(({matches:c})=>{a[u].matches.push(...c)}))}}),o}_searchObjectList(t){let r=Du(t,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:s})=>{if(!on(o))return;let u=[];n.forEach((l,c)=>{u.push(...this._findMatches({key:l,value:o[c],searcher:r}))}),u.length&&a.push({idx:s,item:o,matches:u})}),a}_findMatches({key:t,value:r,searcher:n}){if(!on(r))return[];let i=[];if(Un(r))r.forEach(({v:a,i:o,n:s})=>{if(!on(a))return;let{isMatch:u,score:l,indices:c}=n.searchIn(a);u&&i.push({score:l,key:t,value:a,idx:o,norm:s,indices:c})});else{let{v:a,n:o}=r,{isMatch:s,score:u,indices:l}=n.searchIn(a);s&&i.push({score:u,key:t,value:a,norm:o,indices:l})}return i}};dn.version="6.6.2";dn.createIndex=my;dn.parseIndex=NS;dn.config=_e;dn.parseQuery=Dy;VS(Sy);var qy=ye(require("obsidian"));h();var Cy=ye(require("obsidian"));function is(e,t,r){let n=r.getSetting("date-format"),i=r.getSetting("link-date-to-daily-note"),a=(0,Cy.moment)(e).format(n),o=i?Mo(r.app,a):`{${a}}`;Tt(t.current,o),t.current.focus()}function Ty({div:e,inputRef:t,cb:r,stateManager:n}){e.createEl("input",{type:"text"},i=>{e.win.setTimeout(()=>r(Ko(i,{now:new Date,locale:Po(n),inline:!0,onChange:a=>{is(a[0],t,n)},win:i.win})))})}function Mu(e,t){let r=t.clientHeight,n=t.clientWidth,i=Ze(t);e.top+r>i.innerHeight&&(t.style.top=`${(e.clientTop||0)-r}px`),e.left+n>i.innerWidth&&(t.style.left=`${(e.left||0)-n}px`)}function My(e){let t=e.getSetting("time-trigger"),r=new RegExp(`\\B${Sn(t)}{?([^}]*)$`),n=uu(e);return{id:"time",match:r,index:1,search:(i,a)=>{a(i?n.filter(o=>o.startsWith(i)):n)},template:i=>i,replace:i=>`${t}{${i}} `}}function Iy(e){let t=e.month(),r=e.clone().startOf("month").weekday(0),n=e.diff(r,"week");e.subtract(1,"month").startOf("month").weekday(6).add(n,"week");let i=e.month();for(;t===i;)e.subtract(1,"week"),i=e.month();return e}function Ay(e){let t=e.month(),r=e.clone().startOf("month").weekday(6),n=e.diff(r,"week");e.add(1,"month").startOf("month").weekday(0).add(n,"week");let i=e.month();for(;t===i;)e.add(1,"week"),i=e.month();return e}h();var Ly=ye(require("obsidian"));var QS=/\B\[\[([^\]]*)$/,XS=/\B!\[\[([^\]]*)$/,ZS=/\B\[\[([^#\]]+)#([^\]]*)$/,e0=/\B!\[\[([^#\]]+)#([^\]]*)$/,t0=/\B\[\[([^#\]]+)#?\^([^\]]*)$/,n0=/\B!\[\[([^#\]]+)#?\^([^\]]*)$/;function r0(e,t,r,n){let i=e.document.body.createDiv(V("file-suggestion-wrapper"));i.detach(),(0,Ly.setIcon)(i.createDiv(V("file-suggestion-icon")),"forward-arrow",12),i.createDiv({},o=>{o.createDiv({cls:V("file-suggestion-title"),text:n.item.alias}),o.createDiv({cls:V("file-suggestion-subtitle"),text:t.app.metadataCache.fileToLinktext(n.item.file,r)})});let a=i.outerHTML;return i.remove(),i=null,a}function Iu(e,t,r,n,i,a,o){return{id:`link-${o?"embed":"normal"}`,match:o?XS:QS,index:1,template:s=>s.item.file===null?`${s.item.path.split("|").pop()||s.item.path}`:s.item.alias?r0(e,i,n,s):i.app.metadataCache.fileToLinktext(s.item.file,n),search:(s,u)=>{if(!s)u(t.slice(0,10).map((l,c)=>({item:l,refIndex:c})));else{let l=s.split("|"),c=l.length>1,d=l[0],f=c?l.slice(1).join("|"):null,p=s;c&&(p={"file.basename":d,alias:f}),u([{item:{file:null,path:s,alias:""},refIndex:-1},...r.search(p)])}},replace:s=>{let u=[];o&&s.item.file.extension==="md"&&u.push("!"),s.item.file===null?u.push(`[[${s.item.path}]]`):u.push(i.app.fileManager.generateMarkdownLink(s.item.file,i.file.path,void 0,s.item.alias));let l=!!i.app.vault.getConfig("useMarkdownLinks");return a&&!l&&(u[u.length-1]=u[u.length-1].slice(0,-2)),u.join("")}}}function i0(e,t,r,n){var u;if(!r)return[];let i=r.split("|"),a=e.metadataCache.getFirstLinkpathDest(i[0],t);if(!a)return[];let o=e.metadataCache.getFileCache(a);if(!o||!((u=o.headings)==null?void 0:u.length))return[];let s=o.headings.map(l=>({file:a,heading:l.heading,alias:i[1]||""}));return n?new dn(s,{keys:["heading"]}).search(n):s.map((l,c)=>({item:l,refIndex:c}))}function Au(e,t,r,n){return{id:`heading-${n?"embed":"normal"}`,match:n?e0:ZS,index:1,template:i=>i.item.heading,search:(i,a,o)=>{a(i0(t.app,e,o[1],o[2]))},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!"),a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,"#"+i.item.heading,i.item.alias));let o=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!o?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!o&&a.push("]] "),a.join("")}}}var Py=class{constructor(){this.running=!1;this.cancelled=!1}start(){this.running=!0}stop(){this.running=!1}cancel(){this.stop(),this.cancelled=!0}isRunning(){return this.running}isCancelled(){return this.cancelled}};async function a0(e,t,r,n,i){var u;if(!r)return i([]);let a=r.split("|"),o=e.metadataCache.getFirstLinkpathDest(a[0],t);if(!o)return i([]);let s=e.metadataCache.getFileCache(o);if(!s||!((u=s.sections)==null?void 0:u.length))return i([]);try{let l=await e.metadataCache.blockCache.getForFile(new Py,o);if(!(l==null?void 0:l.blocks))return i([]);let c=l.blocks.map(d=>d.node.type==="heading"?null:{file:o,searchString:d.display,blockId:d.node.id,block:{type:d.node.type,start:d.node.position.start.offset,end:d.node.position.end.offset},alias:a[1]||""}).filter(d=>d);i(n?new dn(c,{keys:["searchString","blockId"]}).search(n):c.map((d,f)=>({item:d,refIndex:f})))}catch(l){i([])}}function o0(e){return["blockquote","code","table","comment","footnoteDefinition"].includes(e)}function Lu(e,t,r,n){return{id:`block-${n?"embed":"normal"}`,match:n?n0:t0,index:1,template:i=>i.item.blockId?`
    ${i.item.searchString}
    ${i.item.blockId}
    `:i.item.searchString,search:(i,a,o)=>{a0(t.app,e,o[1],o[2],a)},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!");let o="#^";if(i.item.blockId)o+=i.item.blockId;else{let u=Ve(),l=o0(i.item.block.type)?` -`:" ";t.app.vault.cachedRead(i.item.file).then(c=>{let d=`${c.slice(0,i.item.block.end)}${l}^${u}${c.slice(i.item.block.end)}`;t.app.vault.modify(i.item.file,d)}).catch(c=>{t.setError(c),console.error(c)}),o+=u}a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,o,i.item.alias));let s=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!s?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!s&&a.push("]] "),a.join("")}}}h();var i0=/\B#([^\s]*)?$/;function Mv(e,t){return{id:"tag",match:i0,index:1,search:(r,n)=>{n(r?[{item:`#${r}`,refIndex:-1},...t.search(r,{limit:50})]:e.slice(0,50).map((i,a)=>({item:i,refIndex:a})))},template:r=>r.item,replace:r=>`${r.item} `}}h();h();var Av=ge(ha());h();h();var s0=/\$&/g,l0=/\$(\d)/g,Pu=class{constructor(t,r,n){this.data=t;this.term=r;this.strategy=n}getReplacementData(t){let r=this.strategy.replace(this.data);if(r==null)return null;let n="";Array.isArray(r)&&(n=r[1],r=r[0]);let i=this.strategy.match(t);if(i==null||i.index==null)return null;let a=r.replace(s0,i[0]).replace(l0,(o,s)=>i[parseInt(s)]);return{start:i.index,end:i.index+i[0].length,beforeCursor:a,afterCursor:n}}replace(t,r){let n=this.getReplacementData(t);if(n!==null)return r=n.afterCursor+r,[[t.slice(0,n.start),n.beforeCursor,t.slice(n.end)].join(""),r]}render(){return this.strategy.renderTemplate(this.data,this.term)}getStrategyId(){return this.strategy.getId()}};var c0=1,Fu=class{constructor(t){this.props=t;this.cache={}}destroy(){return this.cache={},this}replace(t){return this.props.replace(t)}execute(t,r){var a;let n=this.matchWithContext(t);if(!n)return!1;let i=n[(a=this.props.index)!=null?a:c0];return this.search(i,o=>{r(o.map(s=>new Pu(s,i,this)))},n),!0}renderTemplate(t,r){if(this.props.template)return this.props.template(t,r);if(typeof t=="string")return t;throw new Error(`Unexpected render data type: ${typeof t}. Please implement template parameter by yourself`)}getId(){return this.props.id||null}match(t){return typeof this.props.match=="function"?this.props.match(t):t.match(this.props.match)}search(t,r,n){this.props.cache?this.searchWithCach(t,r,n):this.props.search(t,r,n)}matchWithContext(t){let r=this.context(t);return r===!1?null:this.match(r===!0?t:r)}context(t){return this.props.context?this.props.context(t):!0}searchWithCach(t,r,n){this.cache[t]!=null?r(this.cache[t]):this.props.search(t,i=>{this.cache[t]=i,r(i)},n)}};var Ou=class extends Av.EventEmitter{constructor(t){super();this.handleQueryResult=t=>{this.emit("hit",{searchResults:t})};this.strategies=t.map(r=>new Fu(r))}destroy(){return this.strategies.forEach(t=>t.destroy()),this}run(t){for(let r of this.strategies)if(r.execute(t,this.handleQueryResult))return;this.handleQueryResult([])}};h();var Lv=ge(ha());h();var u0=typeof window!="undefined"&&!!window.CustomEvent,Ht=(e,t)=>{if(u0)return new CustomEvent(e,t);let r=document.createEvent("CustomEvent");return r.initCustomEvent(e,!1,(t==null?void 0:t.cancelable)||!1,(t==null?void 0:t.detail)||void 0),r};var d0=10,f0="auto",p0="dropdown-menu textcomplete-dropdown",Pv="textcomplete-item",h0=`${Pv} active`,ma=class extends Lv.EventEmitter{constructor(t,r){super();this.el=t;this.option=r;this.shown=!1;this.items=[];this.activeIndex=null}static create(t){let r=t.parent||window.document.body,i=r.ownerDocument.createElement("ul");return i.className=t.className||p0,Object.assign(i.style,{display:"none",position:"absolute",zIndex:"1000"},t.style),r==null||r.appendChild(i),new ma(i,t)}render(t,r){let n=Ht("render",{cancelable:!0});return this.emit("render",n),n.defaultPrevented?this:(this.clear(),t.length===0?this.hide():(this.items=t.slice(0,this.option.maxCount||d0).map((i,a)=>{var o;return new Fv(this,a,i,((o=this.option)==null?void 0:o.item)||{})}),this.setStrategyId(t[0]).renderEdge(t,"header").renderItems().renderEdge(t,"footer").show().setOffset(r).activate(0),this.emit("rendered",Ht("rendered")),this))}destroy(){var t;return this.clear(),(t=this.el.parentNode)==null||t.removeChild(this.el),this}select(t){let r={searchResult:t.searchResult},n=Ht("select",{cancelable:!0,detail:r});return this.emit("select",n),n.defaultPrevented?this:(this.hide(),this.emit("selected",Ht("selected",{detail:r})),this)}show(){if(!this.shown){let t=Ht("show",{cancelable:!0});if(this.emit("show",t),t.defaultPrevented)return this;this.el.style.display="block",this.shown=!0,this.emit("shown",Ht("shown"))}return this}hide(){if(this.shown){let t=Ht("hide",{cancelable:!0});if(this.emit("hide",t),t.defaultPrevented)return this;this.el.style.display="none",this.shown=!1,this.clear(),this.emit("hidden",Ht("hidden"))}return this}clear(){return this.items.forEach(t=>t.destroy()),this.items=[],this.el.innerHTML="",this.activeIndex=null,this}up(t){return this.shown?this.moveActiveItem("prev",t):this}down(t){return this.shown?this.moveActiveItem("next",t):this}moveActiveItem(t,r){if(this.activeIndex!=null){let n=t==="next"?this.getNextActiveIndex():this.getPrevActiveIndex();n!=null&&(this.activate(n),r.preventDefault())}return this}activate(t){return this.activeIndex!==t&&(this.activeIndex!=null&&this.items[this.activeIndex].deactivate(),this.activeIndex=t,this.items[t].activate()),this}isShown(){return this.shown}getActiveItem(){return this.activeIndex!=null?this.items[this.activeIndex]:null}setOffset(t){let n=this.el.ownerDocument.documentElement;if(n){let i=this.el.offsetWidth;if(t.left){let s=this.option.dynamicWidth?n.scrollWidth:n.clientWidth;t.left+i>s&&(t.left=s-i),this.el.style.left=`${t.left}px`}else t.right&&(t.right-i<0&&(t.right=0),this.el.style.right=`${t.right}px`);let a=!1,o=this.option.placement||f0;if(o==="auto"){let s=this.el.clientHeight;a=t.clientTop!=null&&t.clientTop+s>n.clientHeight}o==="top"||a?(this.el.style.bottom=`${n.clientHeight-t.top+t.lineHeight}px`,this.el.style.top="auto"):(this.el.style.top=`${t.top}px`,this.el.style.bottom="auto")}return this}getNextActiveIndex(){if(this.activeIndex==null)throw new Error;return this.activeIndexo.data)):n||"",this.el.appendChild(a),this}},Fv=class{constructor(t,r,n,i){this.dropdown=t;this.index=r;this.searchResult=n;this.props=i;this.active=!1;this.onClick=t=>{t.preventDefault(),this.dropdown.select(this)};this.className=this.props.className||Pv,this.activeClassName=this.props.activeClassName||h0;let a=t.el.ownerDocument,o=a.createElement("li");o.className=this.active?this.activeClassName:this.className;let s=a.createElement("span");s.tabIndex=-1,s.innerHTML=this.searchResult.render(),o.appendChild(s),o.addEventListener("mousedown",this.onClick),o.addEventListener("touchstart",this.onClick),this.el=o}destroy(){var r;let t=this.el;return(r=t.parentNode)==null||r.removeChild(t),t.removeEventListener("mousedown",this.onClick,!1),t.removeEventListener("touchstart",this.onClick,!1),this}activate(){return this.active||(this.active=!0,this.el.className=this.activeClassName,this.dropdown.el.scrollTop=this.el.offsetTop),this}deactivate(){return this.active&&(this.active=!1,this.el.className=this.className),this}};h();var Ov=ge(ha());var Nu=class extends Ov.EventEmitter{destroy(){return this}applySearchResult(t){throw new Error("Not implemented.")}getCursorOffset(){throw new Error("Not implemented.")}getBeforeCursor(){throw new Error("Not implemented.")}emitMoveEvent(t){let r=Ht("move",{cancelable:!0,detail:{code:t}});return this.emit("move",r),r}emitEnterEvent(){let t=Ht("enter",{cancelable:!0});return this.emit("enter",t),t}emitChangeEvent(){let t=Ht("change",{detail:{beforeCursor:this.getBeforeCursor()}});return this.emit("change",t),t}emitEscEvent(){let t=Ht("esc",{cancelable:!0});return this.emit("esc",t),t}getCode(t){return t.keyCode===9||t.keyCode===13?"ENTER":t.keyCode===27?"ESC":t.keyCode===38?"UP":t.keyCode===40||t.keyCode===78&&t.ctrlKey?"DOWN":t.keyCode===80&&t.ctrlKey?"UP":"OTHER"}};h();var Nv=ge(ha());var m0=["show","shown","render","rendered","selected","hidden","hide"],Ru=class extends Nv.EventEmitter{constructor(t,r,n){super();this.editor=t;this.isQueryInFlight=!1;this.nextPendingQuery=null;this.handleHit=({searchResults:t})=>{t.length?this.dropdown.render(t,this.editor.getCursorOffset()):this.dropdown.hide(),this.isQueryInFlight=!1,this.nextPendingQuery!==null&&this.trigger(this.nextPendingQuery)};this.handleMove=t=>{t.detail.code==="UP"?this.dropdown.up(t):this.dropdown.down(t)};this.handleEnter=t=>{let r=this.dropdown.getActiveItem();r?(this.dropdown.select(r),t.preventDefault()):this.dropdown.hide()};this.handleEsc=t=>{this.dropdown.isShown()&&(this.dropdown.hide(),t.preventDefault())};this.handleChange=t=>{t.detail.beforeCursor!=null?this.trigger(t.detail.beforeCursor):this.dropdown.hide()};this.handleSelect=t=>{this.emit("select",t),t.defaultPrevented||this.editor.applySearchResult(t.detail.searchResult)};this.handleResize=()=>{this.dropdown.isShown()&&this.dropdown.setOffset(this.editor.getCursorOffset())};this.completer=new Ou(r),this.dropdown=ma.create((n==null?void 0:n.dropdown)||{}),this.startListening()}destroy(t=!0){return this.completer.destroy(),this.dropdown.destroy(),t&&this.editor.destroy(),this.stopListening(),this}isShown(){return this.dropdown.isShown()}hide(){return this.dropdown.hide(),this}trigger(t){return this.isQueryInFlight?this.nextPendingQuery=t:(this.isQueryInFlight=!0,this.nextPendingQuery=null,this.completer.run(t)),this}startListening(){var t;this.editor.on("move",this.handleMove).on("enter",this.handleEnter).on("esc",this.handleEsc).on("change",this.handleChange),this.dropdown.on("select",this.handleSelect);for(let r of m0)this.dropdown.on(r,n=>this.emit(r,n));this.completer.on("hit",this.handleHit),(t=Je(this.dropdown.el))==null||t.addEventListener("resize",this.handleResize)}stopListening(){var t;(t=Je(this.dropdown.el))==null||t.removeEventListener("resize",this.handleResize),this.completer.removeAllListeners(),this.dropdown.removeAllListeners(),this.editor.removeListener("move",this.handleMove).removeListener("enter",this.handleEnter).removeListener("esc",this.handleEsc).removeListener("change",this.handleChange)}};h();h();var Uv=ge(Rv());h();function Hv(e,t,r){let n=e.value,i=t+(r||""),a=document.activeElement,o=0,s=0;for(;o=0&&i.length-s-1>=0&&n[n.length-s-1]===i[i.length-s-1];)s++;o=Math.min(o,Math.min(n.length,i.length)-s),e.setSelectionRange(o,n.length-s);let u=i.substring(o,i.length-s);if(e.focus(),!document.execCommand("insertText",!1,u)){e.value=i;let l=document.createEvent("Event");l.initEvent("input",!0,!0),e.dispatchEvent(l)}return e.setSelectionRange(t.length,t.length),a.focus(),e}h();h();var Bv=e=>{let t=e.getBoundingClientRect(),r=e.ownerDocument;if(r==null)throw new Error("Given element does not belong to document");let{defaultView:n,documentElement:i}=r;if(n==null)throw new Error("Given element does not belong to window");let a={top:t.top+n.pageYOffset,left:t.left+n.pageXOffset};return i&&(a.top-=i.clientTop,a.left-=i.clientLeft),a};h();var g0="0".charCodeAt(0),v0="9".charCodeAt(0),Kv=e=>g0<=e&&e<=v0,$v=e=>{let t=getComputedStyle(e),r=t.lineHeight;if(Kv(r.charCodeAt(0))){let n=parseFloat(r);return Kv(r.charCodeAt(r.length-1))?n*parseFloat(t.fontSize):n}return y0(e.nodeName,t)},y0=(e,t)=>{let r=document.body;if(!r)return 0;let n=document.createElement(e);n.innerHTML=" ",Object.assign(n.style,{fontSize:t.fontSize,fontFamily:t.fontFamily,padding:"0"}),r.appendChild(n),n instanceof Je(n).HTMLTextAreaElement&&(n.rows=1);let i=n.offsetHeight;return r.removeChild(n),i};h();var as=class extends Nu{constructor(t){super();this.el=t;this.onInput=()=>{this.emitChangeEvent()};this.onKeydown=t=>{let r=this.getCode(t),n;r==="UP"||r==="DOWN"?n=this.emitMoveEvent(r):r==="ENTER"?n=this.emitEnterEvent():r==="ESC"&&(n=this.emitEscEvent()),n&&n.defaultPrevented&&t.preventDefault()};this.startListening()}destroy(){return super.destroy(),this.stopListening(),this}applySearchResult(t){let r=this.getBeforeCursor();if(r!=null){let n=t.replace(r,this.getAfterCursor());this.el.focus(),Array.isArray(n)&&(Hv(this.el,n[0],n[1]),this.el&&this.el.dispatchEvent(Ht("input")))}}getCursorOffset(){let t=Bv(this.el),r=this.getElScroll(),n=this.getCursorPosition(),i=$v(this.el),a=t.top-r.top+n.top+i,o=t.left-r.left+n.left,s=this.el.getBoundingClientRect().top,u=this.el.ownerDocument;if(this.el.dir!=="rtl")return{top:a,left:o,lineHeight:i,clientTop:s};{let l=u.documentElement?u.documentElement.clientWidth-o:0;return{top:a,right:l,lineHeight:i,clientTop:s}}}getBeforeCursor(){return this.el.selectionStart!==this.el.selectionEnd?null:this.el.value.slice(0,this.el.selectionEnd)}getAfterCursor(){return this.el.value.slice(this.el.selectionEnd)}getElScroll(){return{top:this.el.scrollTop,left:this.el.scrollLeft}}getCursorPosition(){return(0,Uv.default)(this.el,this.el.selectionEnd)}startListening(){this.el.addEventListener("input",this.onInput),this.el.addEventListener("keydown",this.onKeydown)}stopListening(){this.el.removeEventListener("input",this.onInput),this.el.removeEventListener("keydown",this.onKeydown)}};function b0({inputRef:e,isAutocompleteVisibleRef:t,obsidianContext:r,excludeDatePicker:n}){let{stateManager:i,filePath:a,view:o}=r,s=null,u=null,l=i.getSetting("date-trigger"),c=new RegExp(`(?:^|\\s)${Sn(l)}$`),d=Object.keys(i.app.metadataCache.getTags()).sort(),f=new dn(d),p=i.app.metadataCache.getLinkSuggestions().filter(B=>!!B.file),m=new dn(p,{keys:["file.basename","alias"]}),y=o.app.vault.getConfig("autoPairBrackets"),b=[Mv(d,f),Au(a,i,y,!0),Au(a,i,y,!1),Iu(a,i,y,!0),Iu(a,i,y,!1),Mu(p,m,a,i,y,!0),Mu(p,m,a,i,y,!1)];n||b.push(Sv(i));let k=new as(e.current),T=new Ru(k,b,{dropdown:{parent:Ja(e.current),maxCount:96,className:`${z("autocomplete")} ${z("ignore-click-outside")}`,rotate:!0,item:{className:`${z("autocomplete-item")} ${z("ignore-click-outside")}`,activeClassName:`${z("autocomplete-item-active")} ${z("ignore-click-outside")}`}}}),D=()=>{T.isShown()||(t.current=!1),u.destroy(),s.remove(),setTimeout(()=>s=null)};T.on("show",()=>{t.current=!0}),T.on("hidden",()=>{t.current=!1});let A;if(!n){A=C=>{if(T.isShown&&["#","^"].contains(C.key)){let U=T.dropdown.getActiveItem(),W=U==null?void 0:U.searchResult;if(W&&W.strategy.props.id.startsWith("link")){C.preventDefault(),k.applySearchResult(W),Tt(e.current,C.key==="^"?"#^":"#");return}}if(!s)return;if(C.key==="Enter"){C.preventDefault();let U=u.selectedDates;return U.length?ns(U[0],e,i):ns(new Date,e,i),D()}if(C.key==="Escape")return C.preventDefault(),D();let N=(0,Vv.moment)(u.selectedDates[0]||new Date);if(C.key==="ArrowRight"){C.preventDefault(),N.weekday()===6?u.setDate(Dv(N).toDate(),!1):u.setDate(N.add(1,"day").toDate(),!1);return}if(C.key==="ArrowLeft"){C.preventDefault(),N.weekday()===0?u.setDate(_v(N).toDate(),!1):u.setDate(N.subtract(1,"day").toDate(),!1);return}if(C.key==="ArrowUp"){C.preventDefault(),u.setDate(N.subtract(1,"week").toDate(),!1);return}if(C.key==="ArrowDown"){C.preventDefault(),u.setDate(N.add(1,"week").toDate(),!1);return}},e.current.addEventListener("keydown",A);let B=e.current.ownerDocument;k.on("change",C=>{let N=C.detail.beforeCursor;if(N&&c.test(N)){let U=k.getCursorOffset();s?(s.style.left=`${U.left||0}px`,s.style.top=`${U.top||0}px`,Tu(U,s)):s=B.body.createDiv({cls:`${z("date-picker")} ${z("ignore-click-outside")}`},W=>{W.style.left=`${U.left||0}px`,W.style.top=`${U.top||0}px`,kv({div:W,inputRef:e,stateManager:i,cb:te=>{u=te,t.current=!0,Tu(U,s)}})})}else s&&D()})}return()=>{!n&&e.current&&e.current.removeEventListener("keydown",A),s&&D(),T.destroy(),k.destroy()}}function zv({isInputVisible:e,onEnter:t,onEscape:r,onKeyDown:n,excludeDatePicker:i}){let a=R.useContext(Ve),o=R.useRef(!1),s=R.useRef(),{oncompositionstart:u,oncompositionend:l,getShouldIMEBlockAction:c}=eo();return R.useEffect(()=>{let d=s.current;if(e&&d)return d.focus(),d.selectionStart=d.selectionEnd=d.value.length,b0({inputRef:s,isAutocompleteVisibleRef:o,obsidianContext:a,excludeDatePicker:i})},[e]),{ref:s,oncompositionstart:u,oncompositionend:l,onKeyDownCapture:d=>{c()||o.current||n(d)||(d.key==="Enter"?t&&t(d):d.key==="Escape"&&r&&r(d))}}}h();var Wv=/^[*_]{2}(.+)[*_]{2}$/;function w0(e){return e.replace(Wv,"$1")}var jv=/^[*_]{1}(.+)[*_]{1}$/;function E0(e){return e.replace(jv,"$1")}var qv=/^`{1}(.+)`{1}$/;function x0(e){return e.replace(qv,"$1")}var Yv=/^={2}(.+)={2}$/;function k0(e){return e.replace(Yv,"$1")}var Jv=/^~{2}(.+)~{2}$/;function S0(e){return e.replace(Jv,"$1")}var _0=/^(?:>.+?(?:[\r\n]|$))+$/;function D0(e){return e.split(` +`:" ";t.app.vault.cachedRead(i.item.file).then(c=>{let d=`${c.slice(0,i.item.block.end)}${l}^${u}${c.slice(i.item.block.end)}`;t.app.vault.modify(i.item.file,d)}).catch(c=>{t.setError(c),console.error(c)}),o+=u}a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,o,i.item.alias));let s=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!s?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!s&&a.push("]] "),a.join("")}}}h();var s0=/\B#([^\s]*)?$/;function Fy(e,t){return{id:"tag",match:s0,index:1,search:(r,n)=>{n(r?[{item:`#${r}`,refIndex:-1},...t.search(r,{limit:50})]:e.slice(0,50).map((i,a)=>({item:i,refIndex:a})))},template:r=>r.item,replace:r=>`${r.item} `}}h();h();var Ny=ye(ma());h();h();var u0=/\$&/g,d0=/\$(\d)/g,Fu=class{constructor(t,r,n){this.data=t;this.term=r;this.strategy=n}getReplacementData(t){let r=this.strategy.replace(this.data);if(r==null)return null;let n="";Array.isArray(r)&&(n=r[1],r=r[0]);let i=this.strategy.match(t);if(i==null||i.index==null)return null;let a=r.replace(u0,i[0]).replace(d0,(o,s)=>i[parseInt(s)]);return{start:i.index,end:i.index+i[0].length,beforeCursor:a,afterCursor:n}}replace(t,r){let n=this.getReplacementData(t);if(n!==null)return r=n.afterCursor+r,[[t.slice(0,n.start),n.beforeCursor,t.slice(n.end)].join(""),r]}render(){return this.strategy.renderTemplate(this.data,this.term)}getStrategyId(){return this.strategy.getId()}};var f0=1,Ou=class{constructor(t){this.props=t;this.cache={}}destroy(){return this.cache={},this}replace(t){return this.props.replace(t)}execute(t,r){var a;let n=this.matchWithContext(t);if(!n)return!1;let i=n[(a=this.props.index)!=null?a:f0];return this.search(i,o=>{r(o.map(s=>new Fu(s,i,this)))},n),!0}renderTemplate(t,r){if(this.props.template)return this.props.template(t,r);if(typeof t=="string")return t;throw new Error(`Unexpected render data type: ${typeof t}. Please implement template parameter by yourself`)}getId(){return this.props.id||null}match(t){return typeof this.props.match=="function"?this.props.match(t):t.match(this.props.match)}search(t,r,n){this.props.cache?this.searchWithCach(t,r,n):this.props.search(t,r,n)}matchWithContext(t){let r=this.context(t);return r===!1?null:this.match(r===!0?t:r)}context(t){return this.props.context?this.props.context(t):!0}searchWithCach(t,r,n){this.cache[t]!=null?r(this.cache[t]):this.props.search(t,i=>{this.cache[t]=i,r(i)},n)}};var Nu=class extends Ny.EventEmitter{constructor(t){super();this.handleQueryResult=t=>{this.emit("hit",{searchResults:t})};this.strategies=t.map(r=>new Ou(r))}destroy(){return this.strategies.forEach(t=>t.destroy()),this}run(t){for(let r of this.strategies)if(r.execute(t,this.handleQueryResult))return;this.handleQueryResult([])}};h();var Ry=ye(ma());h();var p0=typeof window!="undefined"&&!!window.CustomEvent,Ht=(e,t,r)=>{if(p0)return new CustomEvent(t,r);let n=e.createEvent("CustomEvent");return n.initCustomEvent(t,!1,(r==null?void 0:r.cancelable)||!1,(r==null?void 0:r.detail)||void 0),n};var h0=10,m0="auto",g0="dropdown-menu textcomplete-dropdown",Hy="textcomplete-item",y0=`${Hy} active`,ga=class extends Ry.EventEmitter{constructor(t,r){super();this.el=t;this.option=r;this.shown=!1;this.items=[];this.activeIndex=null}static create(t){let r=t.parent||window.document.body,i=r.doc.createElement("ul");return i.className=t.className||g0,Object.assign(i.style,{display:"none",position:"absolute",zIndex:"1000"},t.style),r==null||r.appendChild(i),new ga(i,t)}render(t,r){let n=Ht(this.el.doc,"render",{cancelable:!0});return this.emit("render",n),n.defaultPrevented?this:(this.clear(),t.length===0?this.hide():(this.items=t.slice(0,this.option.maxCount||h0).map((i,a)=>{var o;return new By(this,a,i,((o=this.option)==null?void 0:o.item)||{})}),this.setStrategyId(t[0]).renderEdge(t,"header").renderItems().renderEdge(t,"footer").show().setOffset(r).activate(0),this.emit("rendered",Ht(this.el.doc,"rendered")),this))}destroy(){var t;return this.clear(),(t=this.el.parentNode)==null||t.removeChild(this.el),this}select(t){let r={searchResult:t.searchResult},n=Ht(this.el.doc,"select",{cancelable:!0,detail:r});return this.emit("select",n),n.defaultPrevented?this:(this.hide(),this.emit("selected",Ht(this.el.doc,"selected",{detail:r})),this)}show(){if(!this.shown){let t=Ht(this.el.doc,"show",{cancelable:!0});if(this.emit("show",t),t.defaultPrevented)return this;this.el.style.display="block",this.shown=!0,this.emit("shown",Ht(this.el.doc,"shown"))}return this}hide(){if(this.shown){let t=Ht(this.el.doc,"hide",{cancelable:!0});if(this.emit("hide",t),t.defaultPrevented)return this;this.el.style.display="none",this.shown=!1,this.clear(),this.emit("hidden",Ht(this.el.doc,"hidden"))}return this}clear(){return this.items.forEach(t=>t.destroy()),this.items=[],this.el.innerHTML="",this.activeIndex=null,this}up(t){return this.shown?this.moveActiveItem("prev",t):this}down(t){return this.shown?this.moveActiveItem("next",t):this}moveActiveItem(t,r){if(this.activeIndex!=null){let n=t==="next"?this.getNextActiveIndex():this.getPrevActiveIndex();n!=null&&(this.activate(n),r.preventDefault())}return this}activate(t){return this.activeIndex!==t&&(this.activeIndex!=null&&this.items[this.activeIndex].deactivate(),this.activeIndex=t,this.items[t].activate()),this}isShown(){return this.shown}getActiveItem(){return this.activeIndex!=null?this.items[this.activeIndex]:null}setOffset(t){let n=this.el.doc.documentElement;if(n){let i=this.el.offsetWidth;if(t.left){let s=this.option.dynamicWidth?n.scrollWidth:n.clientWidth;t.left+i>s&&(t.left=s-i),this.el.style.left=`${t.left}px`}else t.right&&(t.right-i<0&&(t.right=0),this.el.style.right=`${t.right}px`);let a=!1,o=this.option.placement||m0;if(o==="auto"){let s=this.el.clientHeight;a=t.clientTop!=null&&t.clientTop+s>n.clientHeight}o==="top"||a?(this.el.style.bottom=`${n.clientHeight-t.top+t.lineHeight}px`,this.el.style.top="auto"):(this.el.style.top=`${t.top}px`,this.el.style.bottom="auto")}return this}getNextActiveIndex(){if(this.activeIndex==null)throw new Error;return this.activeIndexo.data)):n||"",this.el.appendChild(a),this}},By=class{constructor(t,r,n,i){this.dropdown=t;this.index=r;this.searchResult=n;this.props=i;this.active=!1;this.onClick=t=>{t.preventDefault(),this.dropdown.select(this)};this.className=this.props.className||Hy,this.activeClassName=this.props.activeClassName||y0;let a=t.el.doc,o=a.createElement("li");o.className=this.active?this.activeClassName:this.className;let s=a.createElement("span");s.tabIndex=-1,s.innerHTML=this.searchResult.render(),o.appendChild(s),o.addEventListener("mousedown",this.onClick),o.addEventListener("touchstart",this.onClick),this.el=o}destroy(){var r;let t=this.el;return(r=t.parentNode)==null||r.removeChild(t),t.removeEventListener("mousedown",this.onClick,!1),t.removeEventListener("touchstart",this.onClick,!1),this}activate(){return this.active||(this.active=!0,this.el.className=this.activeClassName,this.dropdown.el.scrollTop=this.el.offsetTop),this}deactivate(){return this.active&&(this.active=!1,this.el.className=this.className),this}};h();var Ky=ye(ma());var Ru=class extends Ky.EventEmitter{destroy(){return this}applySearchResult(t){throw new Error("Not implemented.")}getCursorOffset(){throw new Error("Not implemented.")}getBeforeCursor(){throw new Error("Not implemented.")}emitMoveEvent(t){let r=Ht(activeDocument,"move",{cancelable:!0,detail:{code:t}});return this.emit("move",r),r}emitEnterEvent(){let t=Ht(activeDocument,"enter",{cancelable:!0});return this.emit("enter",t),t}emitChangeEvent(){let t=Ht(activeDocument,"change",{detail:{beforeCursor:this.getBeforeCursor()}});return this.emit("change",t),t}emitEscEvent(){let t=Ht(activeDocument,"esc",{cancelable:!0});return this.emit("esc",t),t}getCode(t){return t.keyCode===9||t.keyCode===13?"ENTER":t.keyCode===27?"ESC":t.keyCode===38?"UP":t.keyCode===40||t.keyCode===78&&t.ctrlKey?"DOWN":t.keyCode===80&&t.ctrlKey?"UP":"OTHER"}};h();var $y=ye(ma());var v0=["show","shown","render","rendered","selected","hidden","hide"],Hu=class extends $y.EventEmitter{constructor(t,r,n){super();this.editor=t;this.isQueryInFlight=!1;this.nextPendingQuery=null;this.handleHit=({searchResults:t})=>{t.length?this.dropdown.render(t,this.editor.getCursorOffset()):this.dropdown.hide(),this.isQueryInFlight=!1,this.nextPendingQuery!==null&&this.trigger(this.nextPendingQuery)};this.handleMove=t=>{t.detail.code==="UP"?this.dropdown.up(t):this.dropdown.down(t)};this.handleEnter=t=>{let r=this.dropdown.getActiveItem();r?(this.dropdown.select(r),t.preventDefault()):this.dropdown.hide()};this.handleEsc=t=>{this.dropdown.isShown()&&(this.dropdown.hide(),t.preventDefault())};this.handleChange=t=>{t.detail.beforeCursor!=null?this.trigger(t.detail.beforeCursor):this.dropdown.hide()};this.handleSelect=t=>{this.emit("select",t),t.defaultPrevented||this.editor.applySearchResult(t.detail.searchResult)};this.handleResize=()=>{this.dropdown.isShown()&&this.dropdown.setOffset(this.editor.getCursorOffset())};this.completer=new Nu(r),this.dropdown=ga.create((n==null?void 0:n.dropdown)||{}),this.startListening()}destroy(t=!0){return this.completer.destroy(),this.dropdown.destroy(),t&&this.editor.destroy(),this.stopListening(),this}isShown(){return this.dropdown.isShown()}hide(){return this.dropdown.hide(),this}trigger(t){return this.isQueryInFlight?this.nextPendingQuery=t:(this.isQueryInFlight=!0,this.nextPendingQuery=null,this.completer.run(t)),this}startListening(){var t;this.editor.on("move",this.handleMove).on("enter",this.handleEnter).on("esc",this.handleEsc).on("change",this.handleChange),this.dropdown.on("select",this.handleSelect);for(let r of v0)this.dropdown.on(r,n=>this.emit(r,n));this.completer.on("hit",this.handleHit),(t=Ze(this.dropdown.el))==null||t.addEventListener("resize",this.handleResize)}stopListening(){var t;(t=Ze(this.dropdown.el))==null||t.removeEventListener("resize",this.handleResize),this.completer.removeAllListeners(),this.dropdown.removeAllListeners(),this.editor.removeListener("move",this.handleMove).removeListener("enter",this.handleEnter).removeListener("esc",this.handleEsc).removeListener("change",this.handleChange)}};h();h();h();var b0=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];function Uy(e,t){let r=e.doc,n=e.win,i=r.createElement("div");i.id="input-textarea-caret-position-mirror-div",r.body.appendChild(i);let a=i.style,o=n.getComputedStyle(e);a.whiteSpace="pre-wrap",a.position="absolute",b0.forEach(l=>{a[l]=o[l]}),a.overflow="hidden",i.textContent=e.value.substring(0,t);let s=r.createElement("span");s.textContent=e.value.substring(t)||".",i.appendChild(s);let u={top:s.offsetTop+parseInt(o.borderTopWidth),left:s.offsetLeft+parseInt(o.borderLeftWidth),height:parseInt(o.lineHeight)};return r.body.removeChild(i),u}h();function Wy(e,t,r){let n=e.doc,i=e.value,a=t+(r||""),o=n.activeElement,s=0,u=0;for(;s=0&&a.length-u-1>=0&&i[i.length-u-1]===a[a.length-u-1];)u++;s=Math.min(s,Math.min(i.length,a.length)-u),e.setSelectionRange(s,i.length-u);let l=a.substring(s,a.length-u);if(e.focus(),!n.execCommand("insertText",!1,l)){e.value=a;let c=n.createEvent("Event");c.initEvent("input",!0,!0),e.dispatchEvent(c)}return e.setSelectionRange(t.length,t.length),o.focus(),e}h();h();var Vy=e=>{let t=e.getBoundingClientRect(),r=e.doc;if(r==null)throw new Error("Given element does not belong to document");let{defaultView:n,documentElement:i}=r;if(n==null)throw new Error("Given element does not belong to window");let a={top:t.top+n.pageYOffset,left:t.left+n.pageXOffset};return i&&(a.top-=i.clientTop,a.left-=i.clientLeft),a};h();var w0="0".charCodeAt(0),E0="9".charCodeAt(0),zy=e=>w0<=e&&e<=E0,jy=e=>{let t=getComputedStyle(e),r=t.lineHeight;if(zy(r.charCodeAt(0))){let n=parseFloat(r);return zy(r.charCodeAt(r.length-1))?n*parseFloat(t.fontSize):n}return x0(e.doc,e.nodeName,t)},x0=(e,t,r)=>{let n=e.body;if(!n)return 0;let i=e.createElement(t);i.innerHTML=" ",Object.assign(i.style,{fontSize:r.fontSize,fontFamily:r.fontFamily,padding:"0"}),n.appendChild(i),i.instanceOf(HTMLTextAreaElement)&&(i.rows=1);let a=i.offsetHeight;return n.removeChild(i),a};h();var os=class extends Ru{constructor(t){super();this.el=t;this.onInput=()=>{this.emitChangeEvent()};this.onKeydown=t=>{let r=this.getCode(t),n;r==="UP"||r==="DOWN"?n=this.emitMoveEvent(r):r==="ENTER"?n=this.emitEnterEvent():r==="ESC"&&(n=this.emitEscEvent()),n&&n.defaultPrevented&&t.preventDefault()};this.startListening()}destroy(){return super.destroy(),this.stopListening(),this}applySearchResult(t){let r=this.getBeforeCursor();if(r!=null){let n=t.replace(r,this.getAfterCursor());this.el.focus(),Array.isArray(n)&&(Wy(this.el,n[0],n[1]),this.el&&this.el.dispatchEvent(Ht(this.el.doc,"input")))}}getCursorOffset(){let t=Vy(this.el),r=this.getElScroll(),n=this.getCursorPosition(),i=jy(this.el),a=t.top-r.top+n.top+i,o=t.left-r.left+n.left,s=this.el.getBoundingClientRect().top,u=this.el.doc;if(this.el.dir!=="rtl")return{top:a,left:o,lineHeight:i,clientTop:s};{let l=u.documentElement?u.documentElement.clientWidth-o:0;return{top:a,right:l,lineHeight:i,clientTop:s}}}getBeforeCursor(){return this.el.selectionStart!==this.el.selectionEnd?null:this.el.value.slice(0,this.el.selectionEnd)}getAfterCursor(){return this.el.value.slice(this.el.selectionEnd)}getElScroll(){return{top:this.el.scrollTop,left:this.el.scrollLeft}}getCursorPosition(){return Uy(this.el,this.el.selectionEnd)}startListening(){this.el.addEventListener("input",this.onInput),this.el.addEventListener("keydown",this.onKeydown)}stopListening(){this.el.removeEventListener("input",this.onInput),this.el.removeEventListener("keydown",this.onKeydown)}};function k0({inputRef:e,isAutocompleteVisibleRef:t,obsidianContext:r,excludeDatePicker:n}){let{stateManager:i,filePath:a,view:o}=r,s=null,u=null,l=i.getSetting("date-trigger"),c=new RegExp(`(?:^|\\s)${Sn(l)}$`),d=Object.keys(i.app.metadataCache.getTags()).sort(),f=new dn(d),p=i.app.metadataCache.getLinkSuggestions().filter(H=>!!H.file),m=new dn(p,{keys:["file.basename","alias"]}),v=o.app.vault.getConfig("autoPairBrackets"),b=[Fy(d,f),Lu(a,i,v,!0),Lu(a,i,v,!1),Au(a,i,v,!0),Au(a,i,v,!1),Iu(o.getWindow(),p,m,a,i,v,!0),Iu(o.getWindow(),p,m,a,i,v,!1)];n||b.push(My(i));let k=new os(e.current),T=new Hu(k,b,{dropdown:{parent:Ja(e.current),maxCount:96,className:`${V("autocomplete")} ${V("ignore-click-outside")}`,rotate:!0,item:{className:`${V("autocomplete-item")} ${V("ignore-click-outside")}`,activeClassName:`${V("autocomplete-item-active")} ${V("ignore-click-outside")}`}}}),D=()=>{T.isShown()||(t.current=!1);let H=s.win;u.destroy(),s.remove(),H.setTimeout(()=>{s=null})};T.on("show",()=>{t.current=!0}),T.on("hidden",()=>{t.current=!1});let I;if(!n){I=C=>{if(T.isShown&&["#","^"].contains(C.key)){let U=T.dropdown.getActiveItem(),z=U==null?void 0:U.searchResult;if(z&&z.strategy.props.id.startsWith("link")){C.preventDefault(),k.applySearchResult(z),Tt(e.current,C.key==="^"?"#^":"#");return}}if(!s)return;if(C.key==="Enter"){C.preventDefault();let U=u.selectedDates;return U.length?is(U[0],e,i):is(new Date,e,i),D()}if(C.key==="Escape")return C.preventDefault(),D();let F=(0,qy.moment)(u.selectedDates[0]||new Date);if(C.key==="ArrowRight"){C.preventDefault(),F.weekday()===6?u.setDate(Ay(F).toDate(),!1):u.setDate(F.add(1,"day").toDate(),!1);return}if(C.key==="ArrowLeft"){C.preventDefault(),F.weekday()===0?u.setDate(Iy(F).toDate(),!1):u.setDate(F.subtract(1,"day").toDate(),!1);return}if(C.key==="ArrowUp"){C.preventDefault(),u.setDate(F.subtract(1,"week").toDate(),!1);return}if(C.key==="ArrowDown"){C.preventDefault(),u.setDate(F.add(1,"week").toDate(),!1);return}},e.current.addEventListener("keydown",I);let H=e.current.doc;k.on("change",C=>{let F=C.detail.beforeCursor;if(F&&c.test(F)){let U=k.getCursorOffset();s?(s.style.left=`${U.left||0}px`,s.style.top=`${U.top||0}px`,Mu(U,s)):s=H.body.createDiv({cls:`${V("date-picker")} ${V("ignore-click-outside")}`},z=>{z.style.left=`${U.left||0}px`,z.style.top=`${U.top||0}px`,Ty({div:z,inputRef:e,stateManager:i,cb:ee=>{u=ee,t.current=!0,Mu(U,s)}})})}else s&&D()})}return()=>{!n&&e.current&&e.current.removeEventListener("keydown",I),s&&D(),T.destroy(),k.destroy()}}function Yy({isInputVisible:e,onEnter:t,onEscape:r,onKeyDown:n,excludeDatePicker:i}){let a=R.useContext(We),o=R.useRef(!1),s=R.useRef(),{oncompositionstart:u,oncompositionend:l,getShouldIMEBlockAction:c}=eo();return R.useEffect(()=>{let d=s.current;if(e&&d)return d.focus(),d.selectionStart=d.selectionEnd=d.value.length,k0({inputRef:s,isAutocompleteVisibleRef:o,obsidianContext:a,excludeDatePicker:i})},[e]),{ref:s,oncompositionstart:u,oncompositionend:l,onKeyDownCapture:d=>{c()||o.current||n(d)||(d.key==="Enter"?t&&t(d):d.key==="Escape"&&r&&r(d))}}}h();var Jy=/^[*_]{2}(.+)[*_]{2}$/;function S0(e){return e.replace(Jy,"$1")}var Gy=/^[*_]{1}(.+)[*_]{1}$/;function _0(e){return e.replace(Gy,"$1")}var Qy=/^`{1}(.+)`{1}$/;function D0(e){return e.replace(Qy,"$1")}var Xy=/^={2}(.+)={2}$/;function C0(e){return e.replace(Xy,"$1")}var Zy=/^~{2}(.+)~{2}$/;function T0(e){return e.replace(Zy,"$1")}var M0=/^(?:>.+?(?:[\r\n]|$))+$/;function I0(e){return e.split(` `).map(r=>r[0]===">"?r:`> ${r}`).join(` -`)}function C0(e){return e.split(` -`).map(r=>r[0]!==">"?r:r.replace(/^>+\s*/,"")).join(` -`)}var ga=/^(?:\s*\d+[.)]\s+.*?(?:[\r\n]|$))+$/,Hu=/^(?:\s*\d+[.)]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,Bu=/^(?:\s*\d+[.)]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function T0(e){return e.match(/^\s*/)[0].length}function M0(e){return parseInt(e.match(/^\s*(\d+)/)[1],10)}function I0(e){let t=[0],r=0;return e.split(` -`).map(n=>{let i=T0(n);if(i>r?t.push(0):iga.test(t)?t.replace(/^(\s*)\d+[.)]\s+/,"$1"):t).join(` -`)}var va=/^(?:\s*[-*+]\s+.*?(?:[\r\n]|$))+$/,Ku=/^(?:\s*[-*+]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,$u=/^(?:\s*[-*+]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function Gv(e){return e.split(` -`).map(r=>va.test(r)?r:r.replace(/^(\s*)/,"$1- ")).join(` -`)}function L0(e){return e.split(` -`).map(t=>Ku.test(t)||$u.test(t)?t:t.replace(/^(\s*[-*+]\s+)/,"$1[ ] ")).join(` -`)}function P0(e){return e.split(` -`).map(t=>Hu.test(t)||Bu.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)/,"$1[ ] ")).join(` -`)}function F0(e){return e.split(` -`).map(t=>Ku.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")).join(` +`).map(r=>r[0]!==">"?r:r.replace(/^>+\s*/,"")).join(` +`)}var ya=/^(?:\s*\d+[.)]\s+.*?(?:[\r\n]|$))+$/,Bu=/^(?:\s*\d+[.)]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,Ku=/^(?:\s*\d+[.)]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function L0(e){return e.match(/^\s*/)[0].length}function P0(e){return parseInt(e.match(/^\s*(\d+)/)[1],10)}function F0(e){let t=[0],r=0;return e.split(` +`).map(n=>{let i=L0(n);if(i>r?t.push(0):iHu.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[[^\]]{1}\]/,"$1[ ]")).join(` +`).map(t=>ya.test(t)?t.replace(/^(\s*)\d+[.)]\s+/,"$1"):t).join(` +`)}var va=/^(?:\s*[-*+]\s+.*?(?:[\r\n]|$))+$/,$u=/^(?:\s*[-*+]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,Uu=/^(?:\s*[-*+]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function ev(e){return e.split(` +`).map(r=>va.test(r)?r:r.replace(/^(\s*)/,"$1- ")).join(` `)}function N0(e){return e.split(` -`).map(t=>$u.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[\s\]/,"$1[x]")).join(` +`).map(t=>$u.test(t)||Uu.test(t)?t:t.replace(/^(\s*[-*+]\s+)/,"$1[ ] ")).join(` `)}function R0(e){return e.split(` -`).map(t=>Bu.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[\s\]/,"$1[x]")).join(` +`).map(t=>Bu.test(t)||Ku.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)/,"$1[ ] ")).join(` `)}function H0(e){return e.split(` +`).map(t=>$u.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")).join(` +`)}function B0(e){return e.split(` +`).map(t=>Bu.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[[^\]]{1}\]/,"$1[ ]")).join(` +`)}function K0(e){return e.split(` +`).map(t=>Uu.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[\s\]/,"$1[x]")).join(` +`)}function $0(e){return e.split(` +`).map(t=>Ku.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[\s\]/,"$1[x]")).join(` +`)}function U0(e){return e.split(` `).map(r=>va.test(r)?r.replace(/^(\s*)[-+*]\s+/,"$1"):r).join(` -`)}var Qv={"editor:toggle-bold":e=>{di(e,Wv,w0,"**")},"editor:toggle-code":e=>{di(e,qv,x0,"`")},"editor:toggle-italics":e=>{di(e,jv,E0,"*")},"editor:toggle-highlight":e=>{di(e,Yv,k0,"==")},"editor:toggle-strikethrough":e=>{di(e,Jv,S0,"~~")},"editor:toggle-blockquote":e=>{Jo(e,_0,D0,C0)},"editor:toggle-bullet-list":e=>{Jo(e,va,Gv,H0)},"editor:toggle-numbered-list":e=>{Jo(e,ga,I0,A0)},"editor:toggle-checklist-status":e=>{let t=Tn(e),r=t.selection.end===t.selection.start,n=ui({text:t.text,selection:t.selection}),i=Mt(e,n),a=i.selectedText,o=va.test(a),s=ga.test(a);!o&&!s?a=Gv(a):o?Ku.test(a)?a=N0(a):$u.test(a)?a=F0(a):a=L0(a):Hu.test(a)?a=R0(a):Bu.test(a)?a=O0(a):a=P0(a);let u=Tt(e,a);if(r){let l=a.length-i.selectedText.length;Mt(e,{start:t.selection.start+l,end:t.selection.end+l})}else Mt(e,{start:i.selection.start,end:u.selection.end})}},Uu={"(":e=>rn(e,"(",")",!1),"[":e=>rn(e,"[","]",!1,!0),"{":e=>rn(e,"{","}",!1),"'":e=>rn(e,"'","'",!1),'"':e=>rn(e,'"','"',!1)},Vu={"*":e=>rn(e,"*","*",!1),_:e=>rn(e,"_","_",!1),"`":e=>rn(e,"`","`",!1),"=":e=>rn(e,"=","=",!0),"~":e=>rn(e,"~","~",!0),$:e=>rn(e,"$","$",!0),"%":e=>rn(e,"%","%",!0)},B0={"(":")","[":"]","{":"}","'":"'",'"':'"',"*":"*",_:"_","`":"`","=":"=","~":"~",$:"$","%":"%"};function Xv(e,t){let r=Tn(e);if(r.selection.end!==r.selection.start||r.selection.end===r.text.length)return!1;let n=r.text[r.selection.end-1],i=r.text[r.selection.end];if(t[n]&&i===B0[n])return Mt(e,{start:r.selection.end,end:r.selection.end+1}),Tt(e,""),!0}function Zv(e){return Xv(e,Uu)}function ey(e){return Xv(e,Vu)}function K0(e,t,r){let n=t?" ":" ".repeat(r);return e.split(` +`)}var tv={"editor:toggle-bold":e=>{hi(e,Jy,S0,"**")},"editor:toggle-code":e=>{hi(e,Qy,D0,"`")},"editor:toggle-italics":e=>{hi(e,Gy,_0,"*")},"editor:toggle-highlight":e=>{hi(e,Xy,C0,"==")},"editor:toggle-strikethrough":e=>{hi(e,Zy,T0,"~~")},"editor:toggle-blockquote":e=>{Qo(e,M0,I0,A0)},"editor:toggle-bullet-list":e=>{Qo(e,va,ev,U0)},"editor:toggle-numbered-list":e=>{Qo(e,ya,F0,O0)},"editor:toggle-checklist-status":e=>{let t=Tn(e),r=t.selection.end===t.selection.start,n=pi({text:t.text,selection:t.selection}),i=Mt(e,n),a=i.selectedText,o=va.test(a),s=ya.test(a);!o&&!s?a=ev(a):o?$u.test(a)?a=K0(a):Uu.test(a)?a=H0(a):a=N0(a):Bu.test(a)?a=$0(a):Ku.test(a)?a=B0(a):a=R0(a);let u=Tt(e,a);if(r){let l=a.length-i.selectedText.length;Mt(e,{start:t.selection.start+l,end:t.selection.end+l})}else Mt(e,{start:i.selection.start,end:u.selection.end})}},Wu={"(":e=>an(e,"(",")",!1),"[":e=>an(e,"[","]",!1,!0),"{":e=>an(e,"{","}",!1),"'":e=>an(e,"'","'",!1),'"':e=>an(e,'"','"',!1)},Vu={"*":e=>an(e,"*","*",!1),_:e=>an(e,"_","_",!1),"`":e=>an(e,"`","`",!1),"=":e=>an(e,"=","=",!0),"~":e=>an(e,"~","~",!0),$:e=>an(e,"$","$",!0),"%":e=>an(e,"%","%",!0)},W0={"(":")","[":"]","{":"}","'":"'",'"':'"',"*":"*",_:"_","`":"`","=":"=","~":"~",$:"$","%":"%"};function nv(e,t){let r=Tn(e);if(r.selection.end!==r.selection.start||r.selection.end===r.text.length)return!1;let n=r.text[r.selection.end-1],i=r.text[r.selection.end];if(t[n]&&i===W0[n])return Mt(e,{start:r.selection.end,end:r.selection.end+1}),Tt(e,""),!0}function rv(e){return nv(e,Wu)}function iv(e){return nv(e,Vu)}function V0(e,t,r){let n=t?" ":" ".repeat(r);return e.split(` `).map(i=>n+i).join(` -`)}function $0(e,t,r){let n=t?"\\t":" ".repeat(r),i=new RegExp(`^${n}`);return e.split(` +`)}function z0(e,t,r){let n=t?"\\t":" ".repeat(r),i=new RegExp(`^${n}`);return e.split(` `).map(a=>i.test(a)?a.replace(i,""):a).join(` -`)}function ty(e,t,r,n){let i=Tn(e);if(t){let l=ui(i),c=Mt(e,l);if(Tt(e,$0(c.selectedText,r,n)),i.selection.start===i.selection.end){let d=r?1:n;Mt(e,{start:i.selection.start-d,end:i.selection.end-d})}return!0}let a=ui(i),o=Mt(e,a),u=K0(o.selectedText,r,n).replace(/^(\s*)(\d+)([.)]\s)/,(l,c,d,f)=>`${c}1${f}`);return Tt(e,u),!0}function ny(e){let t=Tn(e);if(t.selection.start!==t.selection.end)return!1;let r=ui(t),n=e.value.slice(r.start,t.selection.end),i=e.value.slice(r.start,r.end);if(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Mt(e,{start:r.start-1,end:r.end}),Tt(e,` +`)}function av(e,t,r,n){let i=Tn(e);if(t){let l=pi(i),c=Mt(e,l);if(Tt(e,z0(c.selectedText,r,n)),i.selection.start===i.selection.end){let d=r?1:n;Mt(e,{start:i.selection.start-d,end:i.selection.end-d})}return!0}let a=pi(i),o=Mt(e,a),u=V0(o.selectedText,r,n).replace(/^(\s*)(\d+)([.)]\s)/,(l,c,d,f)=>`${c}1${f}`);return Tt(e,u),!0}function ov(e){let t=Tn(e);if(t.selection.start!==t.selection.end)return!1;let r=pi(t),n=e.value.slice(r.start,t.selection.end),i=e.value.slice(r.start,r.end);if(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Mt(e,{start:r.start-1,end:r.end}),Tt(e,` `),!0;if(/^(\s*\d[.)]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Mt(e,{start:r.start-1,end:r.end}),Tt(e,` -`),!0;if(va.test(n)){let a=n.match(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)/)[1];return fa(e,` -${a.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")}`),!0}if(ga.test(n)){let s=n.match(/^(\s*\d+[.)]\s+(?:\[[^\]]\]\s*)?)/)[1].replace(/^(\s*\d+[.)]\s+)\[[^\]]\]/,"$1[ ]").replace(/^(\s*)(\d+)/,(u,l,c)=>`${l}${parseInt(c)+1}`);return fa(e,` -${s}`),!0}return!1}function zn(e,t){return zu.Platform.isMobile?e.key==="Enter"&&!0:t.getSetting("new-line-trigger")==="enter"?e.key==="Enter"&&!(e.shiftKey||e.metaKey||e.ctrlKey):e.key==="Enter"&&e.shiftKey}var lr=R.forwardRef(function({onEnter:t,onEscape:r,onSubmit:n,...i},a){let{view:o,stateManager:s}=R.useContext(Ve),u=app.vault.getConfig("autoPairMarkdown"),l=app.vault.getConfig("autoPairBrackets"),c=app.vault.getConfig("useTab"),d=app.vault.getConfig("tabSize"),f=!!app.vault.getConfig("useMarkdownLinks"),p=zv({isInputVisible:!0,onEnter:t,onEscape:r,onKeyDown:m=>{if(m.key==="Backspace"){let y=Zv(m.target);return y||ey(m.target)}if(zn(m,s)){let y=ny(m.target);if(y)return m.preventDefault(),y}if(m.key==="Tab")return m.preventDefault(),ty(m.target,m.shiftKey,c,d);if(u){let y=Vu[m.key];if(y&&y(m.target))return m.preventDefault(),!0}if(l){if(f&&m.key==="[")return!1;let y=Uu[m.key];if(y&&y(m.target))return m.preventDefault(),!0}return!1}});return R.useEffect(()=>{let m=y=>{let b=Qv[y];b&&b(p.ref.current)};return o.emitter.on("hotkey",m),()=>{o.emitter.off("hotkey",m)}},[o]),v(S,null,v("div",{"data-replicated-value":i.value,className:z("grow-wrap")},v("textarea",{"data-ignore-drag":!0,rows:1,className:z("item-input"),...i,...p,ref:m=>{p.ref.current=m,a&&typeof a=="function"?a(m):a&&(a.current=m)}})),zu.Platform.isMobile&&v("button",{onPointerDown:n,className:z("item-submit-button")},H("Submit")))});h();var qu=ge(ry());h();var cr=ge(require("obsidian"));var U0=["bmp","png","jpg","jpeg","gif","svg"],V0=["mp3","wav","m4a","3gp","flac","ogg","oga"],z0=["mp4","webm","ogv"],W0=/\u00A0/g,j0=/[!"#$%&()*+,.:;<=>?@^`{|}~/[\]\\]/g;function iy(e){return e.replace(j0," ").replace(/\s+/g," ").trim()}function Ir(e){let r=e.replace(W0," ").normalize("NFC").split(/\|(.*)/),n=r[0].split(/#(.*)/);return{root:n[0],subpath:n[1]?"#"+n[1]:"",alias:r[1]||""}}function q0(e,t){if(!e||!t)return null;let r=t.split("#").filter(l=>!!l);if(!r||r.length===0)return null;if(r.length===1){let l=r[0];if(l.startsWith("^")){let c=l.slice(1).toLowerCase(),d=e.blocks;if(d&&d[c]){let f=d[c];return{type:"block",block:f,start:f.position.start.offset,end:f.position.end.offset,startLine:f.position.start.line,endLine:f.position.end.line}}else return null}}let n=e.headings;if(!n||n.length===0)return null;let i=0,a=0,o=0,s=null,u=null;for(;ao&&iy(l.heading).toLowerCase()===iy(r[i]).toLowerCase()&&(i++,o=l.level,i===r.length&&(s=l))}return s?{type:"heading",current:s,next:u,start:s.position.start.offset,end:u?u.position.start.offset:null,startLine:s.position.start.line,endLine:u?u.position.end.line:null}:null}function Y0(e){e.querySelectorAll(".task-list-item-checkbox").forEach((r,n)=>{r.dataset.checkboxIndex=n.toString()})}function J0(e,t){e.querySelectorAll(".internal-link").forEach(n=>{let i=Ir(n.getAttr("href"));t.app.metadataCache.getFirstLinkpathDest(i.root,t.file.path)||n.addClass("is-unresolved")})}function G0(e,t,r){e.empty(),e.createEl("img",{attr:{src:r.app.vault.getResourcePath(t)}},n=>{e.hasAttribute("width")&&n.setAttribute("width",e.getAttribute("width")),e.hasAttribute("height")&&n.setAttribute("height",e.getAttribute("height")),e.hasAttribute("alt")&&n.setAttribute("alt",e.getAttribute("alt"))}),e.addClasses(["image-embed","is-loaded"])}function ay(e,t,r){e.empty(),e.createEl("audio",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}}),e.addClasses(["media-embed","is-loaded"])}function Q0(e,t,r){e.empty(),e.createEl("video",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}},n=>{let i=()=>{n.removeEventListener("loadedmetadata",i),n.videoWidth===0&&n.videoHeight===0&&(e.empty(),ay(e,t,r))};n.addEventListener("loadedmetadata",i)}),e.addClasses(["media-embed","is-loaded"])}async function oy(e,t,r){let n=r.app.metadataCache.getFileCache(e);if(!n)return null;let i=await r.app.vault.cachedRead(e);if(!t.subpath)return{markdown:i,boundary:null};let a=q0(n,t.subpath);if(a)return{markdown:i.substring(a.start,a.end===null?void 0:a.end),boundary:a};if(t.subpath)return{markdown:`${H("Unable to find")} ${t.root}${t.subpath}`,boundary:null}}function sy(e,t,r,n){setTimeout(async()=>{if(!r.plugin.windowRegistry.has(r.getWindow()))return;if(r.plugin.windowRegistry.get(r.getWindow()).viewMap.has(r.id)){let{markdown:a}=await oy(e,t,r);if(!a)return;a.startsWith(H("Unable to find"))?n>0&&sy(e,t,r,--n):r.plugin.stateManagers.forEach(o=>{o.onFileMetadataChange()})}},2e3)}async function X0(e,t,r,n,i){var u;let{markdown:a,boundary:o}=await oy(t,r,n);if(!a)return;e.empty();let s=e.createDiv();if(s.addClasses(["markdown-preview-view",z("markdown-preview-view")]),s.createDiv(z("embed-link-wrapper"),l=>{l.createEl("a",{href:e.getAttr("src")||t.basename,cls:`internal-link ${z("embed-link")}`},c=>{(0,cr.setIcon)(c,"link"),c.setAttr("aria-label",t.basename)})}),await cr.MarkdownRenderer.renderMarkdown(a,s.createDiv(),t.path,n),e.addClass("is-loaded"),a.startsWith(H("Unable to find"))&&r.subpath&&r.subpath!=="#")sy(t,r,n,4);else{let l=e.findAll(".task-list-item-checkbox");(l==null?void 0:l.length)&&((u=app.metadataCache.getFileCache(t).listItems)==null||u.filter(d=>o?d.position.start.line>=o.startLine&&d.position.end.line<=o.endLine:!0).forEach((d,f)=>{l[f]&&(l[f].dataset.oStart=d.position.start.offset.toString(),l[f].dataset.oEnd=d.position.end.offset.toString(),l[f].dataset.src=t.path)}))}i>0&&await ly(s,n,--i)}function Z0(e,t){e.addClass("is-loaded"),e.empty(),e.createEl("a",{cls:"file-link",href:e.getAttribute("src"),text:t.name},r=>{r.setAttribute("aria-label",H("Open in default app")),r.createSpan({},n=>(0,cr.setIcon)(n,"open-elsewhere-glyph"))})}function ly(e,t,r){return Promise.all(e.findAll(".internal-embed").map(async n=>{let i=n.getAttribute("src"),a=Ir(i),o=typeof i=="string"&&t.app.metadataCache.getFirstLinkpathDest(a.root,t.file.path);if(o instanceof cr.TFile)return U0.contains(o.extension)?G0(n,o,t):V0.contains(o.extension)?ay(n,o,t):z0.contains(o.extension)?Q0(n,o,t):o.extension==="md"?await X0(n,o,a,t,r):Z0(n,o)}))}async function ya(e,t){let r=createDiv();try{await cr.MarkdownRenderer.renderMarkdown(t,r,e.file.path,e),Y0(r),J0(r,e),await ly(r,e,5)}catch(n){console.error(n)}return r}function Yu(e,t){!t||!e||(e&&!e.firstChild?e.appendChild(t):e.firstChild&&e.firstChild!==t&&e.replaceChild(t,e.firstChild))}var ba=R.memo(function({className:t,markdownString:r,searchQuery:n,...i}){let{stateManager:a}=R.useContext(Ve),o=R.useRef(),s=R.useRef(),u=R.useRef();return R.useEffect(()=>{ya(a.getAView(),r).then(l=>{s.current=l,u.current=new qu.default(l),o.current&&Yu(o.current,l)}).catch(l=>{a.setError(l),console.error(l)})},[a,r]),R.useEffect(()=>{var l,c;(l=u.current)==null||l.unmark(),n&&n.trim()&&((c=u.current)==null||c.mark(n))},[n]),v("div",{ref:l=>{o.current=l,Yu(l,s.current)},className:bt(["markdown-preview-view",z("markdown-preview-view"),t]),...i})}),cy=R.memo(function({dom:t,className:r,searchQuery:n,...i}){let{stateManager:a}=R.useContext(Ve),o=R.useMemo(()=>t.cloneNode(!0),[t,a]),s=R.useMemo(()=>new qu.default(o),[o]);return R.useEffect(()=>{s.unmark(),n&&n.trim()&&s.mark(n)},[s,n]),v("div",{ref:u=>{Yu(u,o)},className:bt(["markdown-preview-view",z("markdown-preview-view"),r]),...i})});h();var wa=ge(require("obsidian"));function e_(e,t){if(t)return t.from((0,wa.moment)());let r=(0,wa.moment)().startOf("day");if(r.isSame(e,"day"))return H("today");let n=e.diff(r,"day");return n===-1?H("yesterday"):n===1?H("tomorrow"):e.from(r)}function uy({item:e,stateManager:t}){if(!t.useSetting("show-relative-date")||!e.data.metadata.date)return null;let n=e_(e.data.metadata.date,e.data.metadata.time);return v("span",{className:z("item-metadata-date-relative")},n)}function dy({item:e,stateManager:t,filePath:r,onEditDate:n,onEditTime:i}){let a=t.useSetting("hide-date-display"),o=t.useSetting("date-format"),s=t.useSetting("time-format"),u=t.useSetting("date-display-format"),l=t.useSetting("link-date-to-daily-note");if(a||!e.data.metadata.date)return null;let c=e.data.metadata.date.format(o);if(!c)return null;let d=!!e.data.metadata.time,f=e.data.metadata.date.format(u),p=d?e.data.metadata.time.format(s):null,m=c?(0,wa.getLinkpath)(c):null,y=c?t.app.metadataCache.getFirstLinkpathDest(m,r):null,b=m&&l?v("a",{href:m,"data-href":m,className:`internal-link ${y?"":"is-unresolved"}`,target:"blank",rel:"noopener"},f):f,k={};return l||(k["aria-label"]=H("Change date"),k.onClick=n),v("span",{"aria-label":"hello",className:z("item-metadata-date-wrapper")},v("span",{...k,className:`${z("item-metadata-date")} ${l?"":"is-button"}`},b)," ",d&&v("span",{onClick:i,className:`${z("item-metadata-time")} is-button`,"aria-label":H("Change time")},p))}function t_(e){let{stateManager:t,boardModifiers:r}=R.useContext(Ve),n=Nn();return R.useMemo(()=>({onEditDate:o=>{var s;$o(o.view,t,{x:o.clientX,y:o.clientY},Uo({stateManager:t,boardModifiers:r,item:e,hasDate:!0,path:n}),(s=e.data.metadata.date)==null?void 0:s.toDate())},onEditTime:o=>{Vo(o.view,t,{x:o.clientX,y:o.clientY},zo({stateManager:t,boardModifiers:r,item:e,hasTime:!0,path:n}),e.data.metadata.time)}}),[r,n,e,t])}function n_(e,t){let r=0;return e.replace(/^(\s*[-+*]\s+?\[)([^\]])(\]\s+)/gm,(n,i,a,o)=>{let s=n;return r===t&&(a===" "?s=`${i}x${o}`:s=`${i} ${o}`),r++,s})}async function r_(e){let t=app.vault.getAbstractFileByPath(e.dataset.src);if(!(t instanceof fy.TFile))return;let r=await app.vault.cachedRead(t),n=parseInt(e.dataset.oStart),i=parseInt(e.dataset.oEnd),o=r.substring(n,i).replace(/^(.+?)\[(.)\](.+)$/,(s,u,l,c)=>l!==" "?(e.parentElement.removeClass("is-checked"),e.parentElement.dataset.task="",`${u}[ ]${c}`):(e.parentElement.addClass("is-checked"),e.parentElement.dataset.task="x",`${u}[x]${c}`));await app.vault.modify(t,`${r.substring(0,n)}${o}${r.substring(i)}`)}var py=R.memo(function({item:t,isEditing:r,setIsEditing:n,searchQuery:i}){var T;let[a,o]=R.useState(t.data.titleRaw),{stateManager:s,filePath:u,boardModifiers:l}=R.useContext(Ve),c=s.useSetting("hide-tags-display"),d=Nn(),{onEditDate:f,onEditTime:p}=t_(t);R.useEffect(()=>{r&&o(t.data.titleRaw)},[r]);let m=R.useCallback(D=>{if(!zn(D,s))return D.preventDefault(),s.updateItemContent(t,a).then(A=>{l.updateItem(d,A)}).catch(A=>{s.setError(A),console.error(A)}),n(!1),!0},[s,a,t,d]),y=R.useCallback(()=>{s.updateItemContent(t,a).then(D=>{l.updateItem(d,D)}).catch(D=>{s.setError(D),console.error(D)}),n(!1)},[s,a,t,d]),b=R.useCallback(()=>(n(!1),o(t.data.titleRaw),!0),[t]),k=R.useCallback(D=>{let A=D.target;if(A.hasClass("task-list-item-checkbox")){if(A.dataset.src)return r_(A);let B=parseInt(A.dataset.checkboxIndex,10);s.updateItemContent(t,n_(t.data.titleRaw,B)).then(C=>{l.updateItem(d,C)}).catch(C=>{s.setError(C),console.error(C)})}},[d,l,s,t]);return r?v("div",{className:z("item-input-wrapper")},v(lr,{className:z("item-input"),onChange:D=>o(D.target.value),onEnter:m,onEscape:b,onSubmit:y,value:a,onPaste:D=>{Qo(D,s)}})):v("div",{className:z("item-title")},v(cy,{className:z("item-markdown"),dom:t.data.dom,searchQuery:i,onPointerDown:k}),v("div",{className:z("item-metadata")},v(uy,{item:t,stateManager:s}),v(dy,{item:t,stateManager:s,filePath:u,onEditDate:f,onEditTime:p}),!c&&!!((T=t.data.metadata.tags)==null?void 0:T.length)&&v("div",{className:z("item-tags")},t.data.metadata.tags.map((D,A)=>v("a",{href:D,key:A,className:`tag ${z("item-tag")} ${D.toLocaleLowerCase().contains(i)?"is-search-match":""}`},v("span",null,D[0]),D.slice(1))))))});h();var os=ge(require("obsidian"));var i_=/[\\/:"*?<>|]+/g,a_=/!?\[\[([^\]]*)\.[^\]]+\]\]/g,o_=/!?\[\[([^\]]*)\]\]/g,s_=/!?\[([^\]]*)\]\([^)]*\)/g;function hy({setIsEditing:e,item:t,path:r,boardModifiers:n,stateManager:i}){return R.useCallback((a,o)=>{if(o)app.workspace.onLinkContextMenu(a,(0,os.getLinkpath)(o),i.file.path);else{let s={x:a.clientX,y:a.clientY},u=!!t.data.metadata.date,l=!!t.data.metadata.time,c=new os.Menu().addItem(d=>{d.setIcon("pencil").setTitle(H("Edit card")).onClick(()=>e(!0))});c.addItem(d=>{d.setIcon("create-new").setTitle(H("New note from card")).onClick(async()=>{let f=t.data.title.split(` -`)[0].trim(),p=f.replace(a_,"$1").replace(o_,"$1").replace(s_,"$1").replace(i_," ").trim(),m=i.getSetting("new-note-folder"),y=i.getSetting("new-note-template"),b=m?i.app.vault.getAbstractFileByPath(m):i.app.fileManager.getNewFileParent(i.file.path),k=await i.app.fileManager.createNewMarkdownFile(b,p),T=i.app.workspace.splitActiveLeaf();await T.openFile(k),i.app.workspace.setActiveLeaf(T,!1,!0),await Zf(i,y);let D=t.data.titleRaw.replace(f,i.app.fileManager.generateMarkdownLink(k,i.file.path));i.updateItemContent(t,D).then(A=>{n.updateItem(r,A)}).catch(A=>{i.setError(A),console.error(A)})})}).addItem(d=>{d.setIcon("links-coming-in").setTitle(H("Copy link to card")).onClick(()=>{if(t.data.blockId)navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+t.data.blockId)}`);else{let f=ze(6);navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+f)}`),i.updateItemContent(t,`${t.data.titleRaw} ^${f}`).then(p=>{n.updateItem(r,p)}).catch(p=>{i.setError(p),console.error(p)})}})}).addSeparator(),/\n/.test(t.data.titleRaw)&&c.addItem(d=>{d.setIcon("split").setTitle(H("Split card")).onClick(async()=>{let f=t.data.titleRaw.split(/[\r\n]+/g).map(m=>m.trim()),p=await Promise.all(f.map(m=>i.getNewItem(m)));n.splitItem(r,p)})}),c.addItem(d=>{d.setIcon("documents").setTitle(H("Duplicate card")).onClick(()=>n.duplicateEntity(r))}).addItem(d=>{d.setIcon("plus-with-circle").setTitle(H("Insert card before")).onClick(async()=>n.insertItems(r,[await i.getNewItem("",!1,!0)]))}).addItem(d=>{d.setIcon("plus-with-circle").setTitle(H("Insert card after")).onClick(async()=>{let f=[...r];f[f.length-1]=f[f.length-1]+1,n.insertItems(f,[await i.getNewItem("",!1,!0)])})}).addItem(d=>{d.setIcon("sheets-in-box").setTitle(H("Archive card")).onClick(()=>n.archiveItem(r))}).addItem(d=>{d.setIcon("trash").setTitle(H("Delete card")).onClick(()=>n.deleteEntity(r))}).addSeparator().addItem(d=>{d.setIcon("calendar-with-checkmark").setTitle(u?H("Edit date"):H("Add date")).onClick(()=>{var f;$o(a.view,i,s,Uo({stateManager:i,boardModifiers:n,item:t,hasDate:u,path:r}),(f=t.data.metadata.date)==null?void 0:f.toDate())})}),u&&(c.addItem(d=>{d.setIcon("cross").setTitle(H("Remove date")).onClick(()=>{let f=i.getSetting("link-date-to-daily-note"),p=i.getSetting("date-trigger"),m=f?"(?:\\[[^\\]]+\\]\\([^\\)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",y=new RegExp(`(^|\\s)${Sn(p)}${m}`),b=t.data.titleRaw.replace(y,"").trim();i.updateItemContent(t,b).then(k=>{n.updateItem(r,k)}).catch(k=>{i.setError(k),console.error(k)})})}),c.addItem(d=>{d.setIcon("clock").setTitle(l?H("Edit time"):H("Add time")).onClick(()=>{Vo(a.view,i,s,zo({stateManager:i,boardModifiers:n,item:t,hasTime:l,path:r}),t.data.metadata.time)})}),l&&c.addItem(d=>{d.setIcon("cross").setTitle(H("Remove time")).onClick(()=>{let f=i.getSetting("time-trigger"),p=new RegExp(`(^|\\s)${Sn(f)}{([^}]+)}`),m=t.data.titleRaw.replace(p,"").trim();i.updateItemContent(t,m).then(y=>{n.updateItem(r,y)}).catch(y=>{i.setError(y),console.error(y)})})})),c.showAtPosition(s)}},[e,t,r,n,i])}h();var my=R.memo(function({isEditing:t,setIsEditing:r,showMenu:n}){let i=R.useMemo(()=>t?{"data-ignore-drag":!0}:{},[t]);return v("div",{...i,className:z("item-postfix-button-wrapper")},t?v("button",{"data-ignore-drag":!0,onPointerDown:a=>{a.preventDefault()},onClick:()=>{r(!1)},className:`${z("item-postfix-button")} is-enabled`,"aria-label":H("Cancel")},v(Zt,{name:"cross"})):v("button",{"data-ignore-drag":!0,onPointerDown:a=>a.preventDefault(),onClick:n,className:z("item-postfix-button"),"aria-label":H("More options")},v(Zt,{name:"vertical-three-dots"})))});h();var ss=ge(require("obsidian"));function gy({item:e,isSettingsVisible:t,searchQuery:r}){return t||!e.data.metadata.fileMetadata?null:v("div",{className:z("item-metadata-wrapper")},v(c_,{metadata:e.data.metadata.fileMetadata,order:e.data.metadata.fileMetadataOrder,searchQuery:r}))}function vy(e,t){if(e.ts){let r=t.getSetting("date-display-format");return(0,ss.moment)(e.ts).format(r)}return null}function yy(e,t){if(!e.path)return null;let r=app.vault.getAbstractFileByPath(e.path);if(r&&r instanceof ss.TFile){let n=app.fileManager.generateMarkdownLink(r,t.file.path,e.subpath,e.display);return`${e.embed?"!":""}${n}`}return`${e.embed?"!":""}[[${e.path}${e.display?`|${e.display}`:""}]]`}function l_({data:e,searchQuery:t}){let{view:r,stateManager:n}=R.useContext(Ve);if(Array.isArray(e.value))return v("span",{className:z("meta-value")},e.value.map((s,u,l)=>{let c=`${s}`,d=typeof s=="object"&&!Array.isArray(s)&&(vy(s,n)||yy(s,r)),f=c.toLocaleLowerCase().contains(t);return v(S,null,d||e.containsMarkdown?v(ba,{className:"inline",markdownString:d||c,searchQuery:t}):f?v("span",{className:"is-search-match"},c):c,u{let a=t[i];return v("tr",{key:i,className:z("meta-row")},!a.shouldHideLabel&&v("td",{className:`${z("meta-key")} ${(a.label||i).toLocaleLowerCase().contains(n)?"is-search-match":""}`,"data-key":i},v("span",null,a.label||i)),v("td",{colSpan:a.shouldHideLabel?2:1,className:z("meta-value-wrapper"),"data-value":Array.isArray(a.value)?a.value.join(", "):`${a.value}`},i==="tags"?a.value.map((o,s)=>v("a",{href:o,key:s,className:`tag ${z("item-tag")} ${o.toLocaleLowerCase().contains(n)?"is-search-match":""}`},v("span",null,o[0]),o.slice(1))):v(l_,{data:a,searchQuery:n})))})))});var by=R.memo(function({item:t,shouldMarkItemsComplete:r,isMatch:n,searchQuery:i}){let{stateManager:a,boardModifiers:o}=R.useContext(Ve),[s,u]=R.useState(!1),l=R.useContext(wt);R.useEffect(()=>{let y=()=>{s&&u(!1)};return l.dragManager.emitter.on("dragStart",y),()=>{l.dragManager.emitter.off("dragStart",y)}},[l,s]),R.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]);let c=Nn(),d=hy({boardModifiers:o,item:t,setIsEditing:u,stateManager:a,path:c}),f=R.useCallback(y=>{if(y.target instanceof y.view.HTMLTextAreaElement)return;y.preventDefault(),y.stopPropagation();let b=y.target instanceof y.view.HTMLAnchorElement&&y.target.hasClass("internal-link")?y.target.dataset.href:void 0;d(y,b)},[d]),p=R.useCallback(()=>{u(!0)},[u]),m=R.useMemo(()=>s?{"data-ignore-drag":!0}:{},[s]);return v("div",{onContextMenu:f,onDblClick:p,className:z("item-content-wrapper"),...m},v("div",{className:z("item-title-wrapper"),...m},v(Ag,{boardModifiers:o,item:t,path:c,shouldMarkItemsComplete:r,stateManager:a}),v(py,{isEditing:s,item:t,searchQuery:n?i:void 0,setIsEditing:u}),v(my,{isEditing:s,setIsEditing:u,showMenu:d})),v(gy,{searchQuery:n?i:void 0,isSettingsVisible:s,item:t}))}),Ju=R.memo(function(t){let r=R.useRef(null),n=R.useRef(null),i=R.useContext(Qa),{itemIndex:a,...o}=t;ci(n,n);let s=i?o.item.data.titleSearch.contains(i):!1,u=Dg(o.item);return i&&(s?u.push("is-search-hit"):u.push("is-search-miss")),v("div",{ref:n,className:z("item-wrapper")},v("div",{ref:r,className:bt([z("item"),...u])},t.isStatic?v(by,{...o,isMatch:s,searchQuery:i}):v(nr,{elementRef:r,measureRef:n,id:t.item.id,index:a,data:t.item},v(by,{...o,isMatch:s,searchQuery:i}))))}),wy=R.memo(function({isStatic:t,items:r,shouldMarkItemsComplete:n}){return v(S,null,r.map((i,a)=>v(Ju,{key:i.id,item:i,itemIndex:a,shouldMarkItemsComplete:n,isStatic:t})))});h();h();var u_=function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(c){try{l(n.next(c))}catch(d){o(d)}}function u(c){try{l(n.throw(c))}catch(d){o(d)}}function l(c){c.done?a(c.value):i(c.value).then(s,u)}l((n=n.apply(e,t||[])).next())})};function ls(e){let t=0,r=0,n=e;do t+=n.offsetTop||0,r+=n.offsetLeft||0,n=n.offsetParent;while(n);return{top:t,left:r}}var Ey=class{constructor(t){this.element=t}getHorizontalScroll(){return this.element.scrollLeft}getVerticalScroll(){return this.element.scrollTop}getMaxHorizontalScroll(){return this.element.scrollWidth-this.element.clientWidth}getMaxVerticalScroll(){return this.element.scrollHeight-this.element.clientHeight}getHorizontalElementScrollOffset(t,r){return ls(t).left-ls(r).left}getVerticalElementScrollOffset(t,r){return ls(t).top-ls(r).top}scrollTo(t,r){this.element.scrollLeft=t,this.element.scrollTop=r}},xy=class{constructor(){this.element=window}getHorizontalScroll(){return window.scrollX||document.documentElement.scrollLeft}getVerticalScroll(){return window.scrollY||document.documentElement.scrollTop}getMaxHorizontalScroll(){return Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth)-window.innerWidth}getMaxVerticalScroll(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)-window.innerHeight}getHorizontalElementScrollOffset(t){return(window.scrollX||document.documentElement.scrollLeft)+t.getBoundingClientRect().left}getVerticalElementScrollOffset(t){return(window.scrollY||document.documentElement.scrollTop)+t.getBoundingClientRect().top}scrollTo(t,r){window.scrollTo(t,r)}},Wn={elements:[],cancelMethods:[],add:(e,t)=>{Wn.elements.push(e),Wn.cancelMethods.push(t)},remove:(e,t)=>{let r=Wn.elements.indexOf(e);r>-1&&(t&&Wn.cancelMethods[r](),Wn.elements.splice(r,1),Wn.cancelMethods.splice(r,1))}},ky=typeof window!="undefined",d_={cancelOnUserAction:!0,easing:e=>--e*e*e+1,elementToScroll:ky?window:null,horizontalOffset:0,maxDuration:3e3,minDuration:250,speed:500,verticalOffset:0};function f_(e,t={}){return u_(this,void 0,void 0,function*(){if(ky){if(!window.Promise)throw"Browser doesn't support Promises, and animated-scroll-to depends on it, please provide a polyfill."}else return new Promise(A=>{A(!1)});let r,n,i,a=Object.assign(Object.assign({},d_),t),o=a.elementToScroll===window,s=!!a.elementToScroll.nodeName;if(!o&&!s)throw"Element to scroll needs to be either window or DOM element.";let u=o?document.documentElement:a.elementToScroll;getComputedStyle(u).getPropertyValue("scroll-behavior")==="smooth"&&console.warn(`${u.tagName} has "scroll-behavior: smooth" which can mess up with animated-scroll-to's animations`);let c=o?new xy:new Ey(a.elementToScroll);if(e instanceof Element){if(i=e,s&&(!a.elementToScroll.contains(i)||a.elementToScroll.isSameNode(i)))throw"options.elementToScroll has to be a parent of scrollToElement";r=c.getHorizontalElementScrollOffset(i,a.elementToScroll),n=c.getVerticalElementScrollOffset(i,a.elementToScroll)}else if(typeof e=="number")r=c.getHorizontalScroll(),n=e;else if(Array.isArray(e)&&e.length===2)r=e[0]===null?c.getHorizontalScroll():e[0],n=e[1]===null?c.getVerticalScroll():e[1];else throw`Wrong function signature. Check documentation. +`),!0;if(va.test(n)){let a=n.match(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)/)[1];return pa(e,` +${a.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")}`),!0}if(ya.test(n)){let s=n.match(/^(\s*\d+[.)]\s+(?:\[[^\]]\]\s*)?)/)[1].replace(/^(\s*\d+[.)]\s+)\[[^\]]\]/,"$1[ ]").replace(/^(\s*)(\d+)/,(u,l,c)=>`${l}${parseInt(c)+1}`);return pa(e,` +${s}`),!0}return!1}function Vn(e,t){return zu.Platform.isMobile?e.key==="Enter"&&!0:t.getSetting("new-line-trigger")==="enter"?e.key==="Enter"&&!(e.shiftKey||e.metaKey||e.ctrlKey):e.key==="Enter"&&e.shiftKey}var cr=R.forwardRef(function({onEnter:t,onEscape:r,onSubmit:n,...i},a){let{view:o,stateManager:s}=R.useContext(We),u=app.vault.getConfig("autoPairMarkdown"),l=app.vault.getConfig("autoPairBrackets"),c=app.vault.getConfig("useTab"),d=app.vault.getConfig("tabSize"),f=!!app.vault.getConfig("useMarkdownLinks"),p=Yy({isInputVisible:!0,onEnter:t,onEscape:r,onKeyDown:m=>{if(m.key==="Backspace"){let v=rv(m.target);return v||iv(m.target)}if(Vn(m,s)){let v=ov(m.target);if(v)return m.preventDefault(),v}if(m.key==="Tab")return m.preventDefault(),av(m.target,m.shiftKey,c,d);if(u){let v=Vu[m.key];if(v&&v(m.target))return m.preventDefault(),!0}if(l){if(f&&m.key==="[")return!1;let v=Wu[m.key];if(v&&v(m.target))return m.preventDefault(),!0}return!1}});return R.useEffect(()=>{let m=v=>{let b=tv[v];b&&b(p.ref.current)};return o.emitter.on("hotkey",m),()=>{o.emitter.off("hotkey",m)}},[o]),y(S,null,y("div",{"data-replicated-value":i.value,className:V("grow-wrap")},y("textarea",{"data-ignore-drag":!0,rows:1,className:V("item-input"),...i,...p,ref:m=>{p.ref.current=m,a&&typeof a=="function"?a(m):a&&(a.current=m)}})),zu.Platform.isMobile&&y("button",{onPointerDown:n,className:V("item-submit-button")},B("Submit")))});h();var Yu=ye(sv());h();var ur=ye(require("obsidian"));var j0=["bmp","png","jpg","jpeg","gif","svg"],q0=["mp3","wav","m4a","3gp","flac","ogg","oga"],Y0=["mp4","webm","ogv"],J0=/\u00A0/g,G0=/[!"#$%&()*+,.:;<=>?@^`{|}~/[\]\\]/g;function lv(e){return e.replace(G0," ").replace(/\s+/g," ").trim()}function Ir(e){let r=e.replace(J0," ").normalize("NFC").split(/\|(.*)/),n=r[0].split(/#(.*)/);return{root:n[0],subpath:n[1]?"#"+n[1]:"",alias:r[1]||""}}function Q0(e,t){if(!e||!t)return null;let r=t.split("#").filter(l=>!!l);if(!r||r.length===0)return null;if(r.length===1){let l=r[0];if(l.startsWith("^")){let c=l.slice(1).toLowerCase(),d=e.blocks;if(d&&d[c]){let f=d[c];return{type:"block",block:f,start:f.position.start.offset,end:f.position.end.offset,startLine:f.position.start.line,endLine:f.position.end.line}}else return null}}let n=e.headings;if(!n||n.length===0)return null;let i=0,a=0,o=0,s=null,u=null;for(;ao&&lv(l.heading).toLowerCase()===lv(r[i]).toLowerCase()&&(i++,o=l.level,i===r.length&&(s=l))}return s?{type:"heading",current:s,next:u,start:s.position.start.offset,end:u?u.position.start.offset:null,startLine:s.position.start.line,endLine:u?u.position.end.line:null}:null}function X0(e){e.querySelectorAll(".task-list-item-checkbox").forEach((r,n)=>{r.dataset.checkboxIndex=n.toString()})}function Z0(e,t){e.querySelectorAll(".internal-link").forEach(n=>{let i=Ir(n.getAttr("href"));t.app.metadataCache.getFirstLinkpathDest(i.root,t.file.path)||n.addClass("is-unresolved")})}function e_(e,t,r){e.empty(),e.createEl("img",{attr:{src:r.app.vault.getResourcePath(t)}},n=>{e.hasAttribute("width")&&n.setAttribute("width",e.getAttribute("width")),e.hasAttribute("height")&&n.setAttribute("height",e.getAttribute("height")),e.hasAttribute("alt")&&n.setAttribute("alt",e.getAttribute("alt"))}),e.addClasses(["image-embed","is-loaded"])}function cv(e,t,r){e.empty(),e.createEl("audio",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}}),e.addClasses(["media-embed","is-loaded"])}function t_(e,t,r){e.empty(),e.createEl("video",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}},n=>{let i=()=>{n.removeEventListener("loadedmetadata",i),n.videoWidth===0&&n.videoHeight===0&&(e.empty(),cv(e,t,r))};n.addEventListener("loadedmetadata",i)}),e.addClasses(["media-embed","is-loaded"])}async function uv(e,t,r){let n=r.app.metadataCache.getFileCache(e);if(!n)return null;let i=await r.app.vault.cachedRead(e);if(!t.subpath)return{markdown:i,boundary:null};let a=Q0(n,t.subpath);if(a)return{markdown:i.substring(a.start,a.end===null?void 0:a.end),boundary:a};if(t.subpath)return{markdown:`${B("Unable to find")} ${t.root}${t.subpath}`,boundary:null}}function dv(e,t,r,n){r.getWindow().setTimeout(async()=>{if(!r.plugin.windowRegistry.has(r.getWindow()))return;if(r.plugin.windowRegistry.get(r.getWindow()).viewMap.has(r.id)){let{markdown:a}=await uv(e,t,r);if(!a)return;a.startsWith(B("Unable to find"))?n>0&&dv(e,t,r,--n):r.plugin.stateManagers.forEach(o=>{o.onFileMetadataChange()})}},2e3)}async function n_(e,t,r,n,i){var u;let{markdown:a,boundary:o}=await uv(t,r,n);if(!a)return;e.empty();let s=e.createDiv();if(s.addClasses(["markdown-preview-view",V("markdown-preview-view")]),s.createDiv(V("embed-link-wrapper"),l=>{l.createEl("a",{href:e.getAttr("src")||t.basename,cls:`internal-link ${V("embed-link")}`},c=>{(0,ur.setIcon)(c,"link"),c.setAttr("aria-label",t.basename)})}),await ur.MarkdownRenderer.renderMarkdown(a,s.createDiv(),t.path,n),e.addClass("is-loaded"),a.startsWith(B("Unable to find"))&&r.subpath&&r.subpath!=="#")dv(t,r,n,4);else{let l=e.findAll(".task-list-item-checkbox");(l==null?void 0:l.length)&&((u=app.metadataCache.getFileCache(t).listItems)==null||u.filter(d=>o?d.position.start.line>=o.startLine&&d.position.end.line<=o.endLine:!0).forEach((d,f)=>{l[f]&&(l[f].dataset.oStart=d.position.start.offset.toString(),l[f].dataset.oEnd=d.position.end.offset.toString(),l[f].dataset.src=t.path)}))}i>0&&await fv(s,n,--i)}function r_(e,t){e.addClass("is-loaded"),e.empty(),e.createEl("a",{cls:"file-link",href:e.getAttribute("src"),text:t.name},r=>{r.setAttribute("aria-label",B("Open in default app")),r.createSpan({},n=>(0,ur.setIcon)(n,"open-elsewhere-glyph"))})}function fv(e,t,r){return Promise.all(e.findAll(".internal-embed").map(async n=>{let i=n.getAttribute("src"),a=Ir(i),o=typeof i=="string"&&t.app.metadataCache.getFirstLinkpathDest(a.root,t.file.path);if(o instanceof ur.TFile)return j0.contains(o.extension)?e_(n,o,t):q0.contains(o.extension)?cv(n,o,t):Y0.contains(o.extension)?t_(n,o,t):o.extension==="md"?await n_(n,o,a,t,r):r_(n,o)}))}async function ba(e,t){let r=e.getWindow().document.body.createDiv();r.detach();try{await ur.MarkdownRenderer.renderMarkdown(t,r,e.file.path,e),X0(r),Z0(r,e),await fv(r,e,5)}catch(n){console.error(n)}return r}function Ju(e,t){!t||!e||(e&&!e.firstChild?e.appendChild(t):e.firstChild&&e.firstChild!==t&&e.replaceChild(t,e.firstChild))}var wa=R.memo(function({className:t,markdownString:r,searchQuery:n,...i}){let{stateManager:a}=R.useContext(We),o=R.useRef(),s=R.useRef(),u=R.useRef();return R.useEffect(()=>{ba(a.getAView(),r).then(l=>{s.current=l,u.current=new Yu.default(l),o.current&&Ju(o.current,l)}).catch(l=>{a.setError(l),console.error(l)})},[a,r]),R.useEffect(()=>{var l,c;(l=u.current)==null||l.unmark(),n&&n.trim()&&((c=u.current)==null||c.mark(n))},[n]),y("div",{ref:l=>{o.current=l,Ju(l,s.current)},className:pt(["markdown-preview-view",V("markdown-preview-view"),t]),...i})}),pv=R.memo(function({dom:t,className:r,searchQuery:n,...i}){let{stateManager:a}=R.useContext(We),o=R.useMemo(()=>t.cloneNode(!0),[t,a]),s=R.useMemo(()=>new Yu.default(o),[o]);return R.useEffect(()=>{s.unmark(),n&&n.trim()&&s.mark(n)},[s,n]),y("div",{ref:u=>{Ju(u,o)},className:pt(["markdown-preview-view",V("markdown-preview-view"),r]),...i})});h();var Ea=ye(require("obsidian"));function i_(e,t){if(t)return t.from((0,Ea.moment)());let r=(0,Ea.moment)().startOf("day");if(r.isSame(e,"day"))return B("today");let n=e.diff(r,"day");return n===-1?B("yesterday"):n===1?B("tomorrow"):e.from(r)}function hv({item:e,stateManager:t}){if(!t.useSetting("show-relative-date")||!e.data.metadata.date)return null;let n=i_(e.data.metadata.date,e.data.metadata.time);return y("span",{className:V("item-metadata-date-relative")},n)}function mv({item:e,stateManager:t,filePath:r,onEditDate:n,onEditTime:i}){let a=t.useSetting("hide-date-display"),o=t.useSetting("date-format"),s=t.useSetting("time-format"),u=t.useSetting("date-display-format"),l=t.useSetting("link-date-to-daily-note");if(a||!e.data.metadata.date)return null;let c=e.data.metadata.date.format(o);if(!c)return null;let d=!!e.data.metadata.time,f=e.data.metadata.date.format(u),p=d?e.data.metadata.time.format(s):null,m=c?(0,Ea.getLinkpath)(c):null,v=c?t.app.metadataCache.getFirstLinkpathDest(m,r):null,b=m&&l?y("a",{href:m,"data-href":m,className:`internal-link ${v?"":"is-unresolved"}`,target:"blank",rel:"noopener"},f):f,k={};return l||(k["aria-label"]=B("Change date"),k.onClick=n),y("span",{"aria-label":"hello",className:V("item-metadata-date-wrapper")},y("span",{...k,className:`${V("item-metadata-date")} ${l?"":"is-button"}`},b)," ",d&&y("span",{onClick:i,className:`${V("item-metadata-time")} is-button`,"aria-label":B("Change time")},p))}function a_(e){let{stateManager:t,boardModifiers:r}=R.useContext(We),n=Nn();return R.useMemo(()=>({onEditDate:o=>{var s;$o(o.view,t,{x:o.clientX,y:o.clientY},Uo({stateManager:t,boardModifiers:r,item:e,hasDate:!0,path:n}),(s=e.data.metadata.date)==null?void 0:s.toDate())},onEditTime:o=>{Wo(o.view,t,{x:o.clientX,y:o.clientY},Vo({stateManager:t,boardModifiers:r,item:e,hasTime:!0,path:n}),e.data.metadata.time)}}),[r,n,e,t])}function o_(e,t){let r=0;return e.replace(/^(\s*[-+*]\s+?\[)([^\]])(\]\s+)/gm,(n,i,a,o)=>{let s=n;return r===t&&(a===" "?s=`${i}x${o}`:s=`${i} ${o}`),r++,s})}async function s_(e){let t=app.vault.getAbstractFileByPath(e.dataset.src);if(!(t instanceof gv.TFile))return;let r=await app.vault.cachedRead(t),n=parseInt(e.dataset.oStart),i=parseInt(e.dataset.oEnd),o=r.substring(n,i).replace(/^(.+?)\[(.)\](.+)$/,(s,u,l,c)=>l!==" "?(e.parentElement.removeClass("is-checked"),e.parentElement.dataset.task="",`${u}[ ]${c}`):(e.parentElement.addClass("is-checked"),e.parentElement.dataset.task="x",`${u}[x]${c}`));await app.vault.modify(t,`${r.substring(0,n)}${o}${r.substring(i)}`)}var yv=R.memo(function({item:t,isEditing:r,setIsEditing:n,searchQuery:i}){var D;let[a,o]=R.useState(t.data.titleRaw),{stateManager:s,filePath:u,boardModifiers:l,view:c}=R.useContext(We),d=s.useSetting("hide-tags-display"),f=Nn(),{onEditDate:p,onEditTime:m}=a_(t);R.useEffect(()=>{r&&o(t.data.titleRaw)},[r]);let v=R.useCallback(I=>{if(!Vn(I,s))return I.preventDefault(),s.updateItemContent(t,a).then(H=>{l.updateItem(f,H)}).catch(H=>{s.setError(H),console.error(H)}),n(!1),!0},[s,a,t,f]),b=R.useCallback(()=>{s.updateItemContent(t,a).then(I=>{l.updateItem(f,I)}).catch(I=>{s.setError(I),console.error(I)}),n(!1)},[s,a,t,f]),k=R.useCallback(()=>(n(!1),o(t.data.titleRaw),!0),[t]),T=R.useCallback(I=>{let H=I.target;if(H.hasClass("task-list-item-checkbox")){if(H.dataset.src)return s_(H);let C=parseInt(H.dataset.checkboxIndex,10);s.updateItemContent(t,o_(t.data.titleRaw,C)).then(F=>{l.updateItem(f,F)}).catch(F=>{s.setError(F),console.error(F)})}},[f,l,s,t]);return r?y("div",{className:V("item-input-wrapper")},y(cr,{className:V("item-input"),onChange:I=>o(I.target.value),onEnter:v,onEscape:k,onSubmit:b,value:a,onPaste:I=>{Zo(I,s,c.getWindow())}})):y("div",{className:V("item-title")},y(pv,{className:V("item-markdown"),dom:t.data.dom,searchQuery:i,onPointerDown:T}),y("div",{className:V("item-metadata")},y(hv,{item:t,stateManager:s}),y(mv,{item:t,stateManager:s,filePath:u,onEditDate:p,onEditTime:m}),!d&&!!((D=t.data.metadata.tags)==null?void 0:D.length)&&y("div",{className:V("item-tags")},t.data.metadata.tags.map((I,H)=>y("a",{href:I,key:H,className:`tag ${V("item-tag")} ${I.toLocaleLowerCase().contains(i)?"is-search-match":""}`},y("span",null,I[0]),I.slice(1))))))});h();var ss=ye(require("obsidian"));var l_=/[\\/:"*?<>|]+/g,c_=/!?\[\[([^\]]*)\.[^\]]+\]\]/g,u_=/!?\[\[([^\]]*)\]\]/g,d_=/!?\[([^\]]*)\]\([^)]*\)/g;function vv({setIsEditing:e,item:t,path:r,boardModifiers:n,stateManager:i}){return R.useCallback((a,o)=>{if(o)app.workspace.onLinkContextMenu(a,(0,ss.getLinkpath)(o),i.file.path);else{let s={x:a.clientX,y:a.clientY},u=!!t.data.metadata.date,l=!!t.data.metadata.time,c=new ss.Menu().addItem(d=>{d.setIcon("pencil").setTitle(B("Edit card")).onClick(()=>e(!0))});c.addItem(d=>{d.setIcon("create-new").setTitle(B("New note from card")).onClick(async()=>{let f=t.data.title.split(` +`)[0].trim(),p=f.replace(c_,"$1").replace(u_,"$1").replace(d_,"$1").replace(l_," ").trim(),m=i.getSetting("new-note-folder"),v=i.getSetting("new-note-template"),b=m?i.app.vault.getAbstractFileByPath(m):i.app.fileManager.getNewFileParent(i.file.path),k=await i.app.fileManager.createNewMarkdownFile(b,p),T=i.app.workspace.splitActiveLeaf();await T.openFile(k),i.app.workspace.setActiveLeaf(T,!1,!0),await ep(i,v);let D=t.data.titleRaw.replace(f,i.app.fileManager.generateMarkdownLink(k,i.file.path));i.updateItemContent(t,D).then(I=>{n.updateItem(r,I)}).catch(I=>{i.setError(I),console.error(I)})})}).addItem(d=>{d.setIcon("links-coming-in").setTitle(B("Copy link to card")).onClick(()=>{if(t.data.blockId)navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+t.data.blockId)}`);else{let f=Ve(6);navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+f)}`),i.updateItemContent(t,`${t.data.titleRaw} ^${f}`).then(p=>{n.updateItem(r,p)}).catch(p=>{i.setError(p),console.error(p)})}})}).addSeparator(),/\n/.test(t.data.titleRaw)&&c.addItem(d=>{d.setIcon("split").setTitle(B("Split card")).onClick(async()=>{let f=t.data.titleRaw.split(/[\r\n]+/g).map(m=>m.trim()),p=await Promise.all(f.map(m=>i.getNewItem(m)));n.splitItem(r,p)})}),c.addItem(d=>{d.setIcon("documents").setTitle(B("Duplicate card")).onClick(()=>n.duplicateEntity(r))}).addItem(d=>{d.setIcon("plus-with-circle").setTitle(B("Insert card before")).onClick(async()=>n.insertItems(r,[await i.getNewItem("",!1,!0)]))}).addItem(d=>{d.setIcon("plus-with-circle").setTitle(B("Insert card after")).onClick(async()=>{let f=[...r];f[f.length-1]=f[f.length-1]+1,n.insertItems(f,[await i.getNewItem("",!1,!0)])})}).addItem(d=>{d.setIcon("sheets-in-box").setTitle(B("Archive card")).onClick(()=>n.archiveItem(r))}).addItem(d=>{d.setIcon("trash").setTitle(B("Delete card")).onClick(()=>n.deleteEntity(r))}).addSeparator().addItem(d=>{d.setIcon("calendar-with-checkmark").setTitle(u?B("Edit date"):B("Add date")).onClick(()=>{var f;$o(a.view,i,s,Uo({stateManager:i,boardModifiers:n,item:t,hasDate:u,path:r}),(f=t.data.metadata.date)==null?void 0:f.toDate())})}),u&&(c.addItem(d=>{d.setIcon("cross").setTitle(B("Remove date")).onClick(()=>{let f=i.getSetting("link-date-to-daily-note"),p=i.getSetting("date-trigger"),m=f?"(?:\\[[^\\]]+\\]\\([^\\)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",v=new RegExp(`(^|\\s)${Sn(p)}${m}`),b=t.data.titleRaw.replace(v,"").trim();i.updateItemContent(t,b).then(k=>{n.updateItem(r,k)}).catch(k=>{i.setError(k),console.error(k)})})}),c.addItem(d=>{d.setIcon("clock").setTitle(l?B("Edit time"):B("Add time")).onClick(()=>{Wo(a.view,i,s,Vo({stateManager:i,boardModifiers:n,item:t,hasTime:l,path:r}),t.data.metadata.time)})}),l&&c.addItem(d=>{d.setIcon("cross").setTitle(B("Remove time")).onClick(()=>{let f=i.getSetting("time-trigger"),p=new RegExp(`(^|\\s)${Sn(f)}{([^}]+)}`),m=t.data.titleRaw.replace(p,"").trim();i.updateItemContent(t,m).then(v=>{n.updateItem(r,v)}).catch(v=>{i.setError(v),console.error(v)})})})),c.showAtPosition(s)}},[e,t,r,n,i])}h();var bv=R.memo(function({isEditing:t,setIsEditing:r,showMenu:n}){let i=R.useMemo(()=>t?{"data-ignore-drag":!0}:{},[t]);return y("div",{...i,className:V("item-postfix-button-wrapper")},t?y("button",{"data-ignore-drag":!0,onPointerDown:a=>{a.preventDefault()},onClick:()=>{r(!1)},className:`${V("item-postfix-button")} is-enabled`,"aria-label":B("Cancel")},y(Zt,{name:"cross"})):y("button",{"data-ignore-drag":!0,onPointerDown:a=>a.preventDefault(),onClick:n,className:V("item-postfix-button"),"aria-label":B("More options")},y(Zt,{name:"vertical-three-dots"})))});h();var ls=ye(require("obsidian"));function wv({item:e,isSettingsVisible:t,searchQuery:r}){return t||!e.data.metadata.fileMetadata?null:y("div",{className:V("item-metadata-wrapper")},y(p_,{metadata:e.data.metadata.fileMetadata,order:e.data.metadata.fileMetadataOrder,searchQuery:r}))}function Ev(e,t){if(e.ts){let r=t.getSetting("date-display-format");return(0,ls.moment)(e.ts).format(r)}return null}function xv(e,t){if(!e.path)return null;let r=app.vault.getAbstractFileByPath(e.path);if(r&&r instanceof ls.TFile){let n=app.fileManager.generateMarkdownLink(r,t.file.path,e.subpath,e.display);return`${e.embed?"!":""}${n}`}return`${e.embed?"!":""}[[${e.path}${e.display?`|${e.display}`:""}]]`}function f_({data:e,searchQuery:t}){let{view:r,stateManager:n}=R.useContext(We);if(Array.isArray(e.value))return y("span",{className:V("meta-value")},e.value.map((s,u,l)=>{let c=`${s}`,d=typeof s=="object"&&!Array.isArray(s)&&(Ev(s,n)||xv(s,r)),f=c.toLocaleLowerCase().contains(t);return y(S,null,d||e.containsMarkdown?y(wa,{className:"inline",markdownString:d||c,searchQuery:t}):f?y("span",{className:"is-search-match"},c):c,u{let a=t[i];return y("tr",{key:i,className:V("meta-row")},!a.shouldHideLabel&&y("td",{className:`${V("meta-key")} ${(a.label||i).toLocaleLowerCase().contains(n)?"is-search-match":""}`,"data-key":i},y("span",null,a.label||i)),y("td",{colSpan:a.shouldHideLabel?2:1,className:V("meta-value-wrapper"),"data-value":Array.isArray(a.value)?a.value.join(", "):`${a.value}`},i==="tags"?a.value.map((o,s)=>y("a",{href:o,key:s,className:`tag ${V("item-tag")} ${o.toLocaleLowerCase().contains(n)?"is-search-match":""}`},y("span",null,o[0]),o.slice(1))):y(f_,{data:a,searchQuery:n})))})))});var kv=R.memo(function({item:t,shouldMarkItemsComplete:r,isMatch:n,searchQuery:i}){let{stateManager:a,boardModifiers:o}=R.useContext(We),[s,u]=R.useState(!1),l=R.useContext(wt);R.useEffect(()=>{let v=()=>{s&&u(!1)};return l.dragManager.emitter.on("dragStart",v),()=>{l.dragManager.emitter.off("dragStart",v)}},[l,s]),R.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]);let c=Nn(),d=vv({boardModifiers:o,item:t,setIsEditing:u,stateManager:a,path:c}),f=R.useCallback(v=>{if(v.target instanceof v.view.HTMLTextAreaElement)return;v.preventDefault(),v.stopPropagation();let b=v.target instanceof v.view.HTMLAnchorElement&&v.target.hasClass("internal-link")?v.target.dataset.href:void 0;d(v,b)},[d]),p=R.useCallback(()=>{u(!0)},[u]),m=R.useMemo(()=>s?{"data-ignore-drag":!0}:{},[s]);return y("div",{onContextMenu:f,onDblClick:p,className:V("item-content-wrapper"),...m},y("div",{className:V("item-title-wrapper"),...m},y(Ng,{boardModifiers:o,item:t,path:c,shouldMarkItemsComplete:r,stateManager:a}),y(yv,{isEditing:s,item:t,searchQuery:n?i:void 0,setIsEditing:u}),y(bv,{isEditing:s,setIsEditing:u,showMenu:d})),y(wv,{searchQuery:n?i:void 0,isSettingsVisible:s,item:t}))}),Gu=R.memo(function(t){let r=R.useRef(null),n=R.useRef(null),i=R.useContext(Qa),{itemIndex:a,...o}=t;fi(n,n);let s=i?o.item.data.titleSearch.contains(i):!1,u=Cg(o.item);return i&&(s?u.push("is-search-hit"):u.push("is-search-miss")),y("div",{ref:n,className:V("item-wrapper")},y("div",{ref:r,className:pt([V("item"),...u])},t.isStatic?y(kv,{...o,isMatch:s,searchQuery:i}):y(nr,{elementRef:r,measureRef:n,id:t.item.id,index:a,data:t.item},y(kv,{...o,isMatch:s,searchQuery:i}))))}),Sv=R.memo(function({isStatic:t,items:r,shouldMarkItemsComplete:n}){return y(S,null,r.map((i,a)=>y(Gu,{key:i.id,item:i,itemIndex:a,shouldMarkItemsComplete:n,isStatic:t})))});h();h();var h_=function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(c){try{l(n.next(c))}catch(d){o(d)}}function u(c){try{l(n.throw(c))}catch(d){o(d)}}function l(c){c.done?a(c.value):i(c.value).then(s,u)}l((n=n.apply(e,t||[])).next())})};function cs(e){let t=0,r=0,n=e;do t+=n.offsetTop||0,r+=n.offsetLeft||0,n=n.offsetParent;while(n);return{top:t,left:r}}var _v=class{constructor(t){this.element=t}getHorizontalScroll(){return this.element.scrollLeft}getVerticalScroll(){return this.element.scrollTop}getMaxHorizontalScroll(){return this.element.scrollWidth-this.element.clientWidth}getMaxVerticalScroll(){return this.element.scrollHeight-this.element.clientHeight}getHorizontalElementScrollOffset(t,r){return cs(t).left-cs(r).left}getVerticalElementScrollOffset(t,r){return cs(t).top-cs(r).top}scrollTo(t,r){this.element.scrollLeft=t,this.element.scrollTop=r}},Dv=class{constructor(){this.element=window}getHorizontalScroll(){return window.scrollX||document.documentElement.scrollLeft}getVerticalScroll(){return window.scrollY||document.documentElement.scrollTop}getMaxHorizontalScroll(){return Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth)-window.innerWidth}getMaxVerticalScroll(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)-window.innerHeight}getHorizontalElementScrollOffset(t){return(window.scrollX||document.documentElement.scrollLeft)+t.getBoundingClientRect().left}getVerticalElementScrollOffset(t){return(window.scrollY||document.documentElement.scrollTop)+t.getBoundingClientRect().top}scrollTo(t,r){window.scrollTo(t,r)}},zn={elements:[],cancelMethods:[],add:(e,t)=>{zn.elements.push(e),zn.cancelMethods.push(t)},remove:(e,t)=>{let r=zn.elements.indexOf(e);r>-1&&(t&&zn.cancelMethods[r](),zn.elements.splice(r,1),zn.cancelMethods.splice(r,1))}},Cv=typeof window!="undefined",m_={cancelOnUserAction:!0,easing:e=>--e*e*e+1,elementToScroll:Cv?window:null,horizontalOffset:0,maxDuration:3e3,minDuration:250,speed:500,verticalOffset:0};function g_(e,t={}){return h_(this,void 0,void 0,function*(){if(Cv){if(!window.Promise)throw"Browser doesn't support Promises, and animated-scroll-to depends on it, please provide a polyfill."}else return new Promise(I=>{I(!1)});let r,n,i,a=Object.assign(Object.assign({},m_),t),o=a.elementToScroll===window,s=!!a.elementToScroll.nodeName;if(!o&&!s)throw"Element to scroll needs to be either window or DOM element.";let u=o?document.documentElement:a.elementToScroll;getComputedStyle(u).getPropertyValue("scroll-behavior")==="smooth"&&console.warn(`${u.tagName} has "scroll-behavior: smooth" which can mess up with animated-scroll-to's animations`);let c=o?new Dv:new _v(a.elementToScroll);if(e instanceof Element){if(i=e,s&&(!a.elementToScroll.contains(i)||a.elementToScroll.isSameNode(i)))throw"options.elementToScroll has to be a parent of scrollToElement";r=c.getHorizontalElementScrollOffset(i,a.elementToScroll),n=c.getVerticalElementScrollOffset(i,a.elementToScroll)}else if(typeof e=="number")r=c.getHorizontalScroll(),n=e;else if(Array.isArray(e)&&e.length===2)r=e[0]===null?c.getHorizontalScroll():e[0],n=e[1]===null?c.getVerticalScroll():e[1];else throw`Wrong function signature. Check documentation. Available method signatures are: animateScrollTo(y:number, options) animateScrollTo([x:number | null, y:number | null], options) - animateScrollTo(scrollToElement:Element, options)`;r+=a.horizontalOffset,n+=a.verticalOffset;let d=c.getMaxHorizontalScroll(),f=c.getHorizontalScroll();r>d&&(r=d);let p=r-f,m=c.getMaxVerticalScroll(),y=c.getVerticalScroll();n>m&&(n=m);let b=n-y,k=Math.abs(Math.round(p/1e3*a.speed)),T=Math.abs(Math.round(b/1e3*a.speed)),D=k>T?k:T;return Da.maxDuration&&(D=a.maxDuration),new Promise((A,B)=>{p===0&&b===0&&A(!0),Wn.remove(c.element,!0);let C,N=()=>{le(),cancelAnimationFrame(C),A(!1)};Wn.add(c.element,N);let U=re=>re.preventDefault(),W=a.cancelOnUserAction?N:U,te=a.cancelOnUserAction?{passive:!0}:{passive:!1},Z=["wheel","touchstart","keydown","mousedown"],le=()=>{Z.forEach(re=>{c.element.removeEventListener(re,W,te)})};Z.forEach(re=>{c.element.addEventListener(re,W,te)});let X=Date.now(),G=()=>{var re=Date.now()-X,pe=re/D;let he=Math.round(f+p*a.easing(pe)),ve=Math.round(y+b*a.easing(pe));re{this.activeScroll.size===0&&(this.scrollState=Sl(this.scrollEl),this.handleEntityRegistration())};this.onDragEnd=()=>{this.activeScroll.clear()};this.handleBeginDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||(this.activeScroll.set(t,r),this.handleDragScroll())};this.handleUpdateDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||this.activeScroll.set(t,r)};this.handleEndDragScroll=({scrollEntitySide:t})=>{this.activeScroll.delete(t)};this.dndManager=t,this.instanceId=ze(),this.scopeId=r,this.triggerTypes=n,this.scrollState=tn,this.parent=i,this.activeScroll=new Map,this.pollForNodes(a)}pollForNodes(t){t()?this.initNodes(t()):requestAnimationFrame(()=>this.pollForNodes(t))}initNodes(t){this.scrollEl=t,this.scrollEl.dataset.hitboxid=this.instanceId,this.scrollEl.dataset.scrollid=this.instanceId,this.top=this.createScrollEntity("top"),this.right=this.createScrollEntity("right"),this.bottom=this.createScrollEntity("bottom"),this.left=this.createScrollEntity("left"),this.bindScrollHandlers(),this.observerHandlers=new Map,this.observer=new IntersectionObserver(r=>{r.forEach(n=>{var a;let i=(a=n.target.dataset)==null?void 0:a.hitboxid;if(i&&this.observerHandlers.has(i)){let o=this.observerHandlers.get(i);o&&o(n)}})},{root:t,threshold:.1}),this.scrollEl.addEventListener("scroll",this.onScroll,{passive:!0,capture:!1}),this.dndManager.emitter.on("scrollResize",this.onScroll),setTimeout(()=>{this.onScroll()}),this.dndManager.observeResize(this.scrollEl),this.parent?this.parent.registerObserverHandler(this.instanceId,this.scrollEl,r=>{r.isIntersecting?this.handleEntityRegistration():this.handleEntityUnregistration()}):this.handleEntityRegistration()}destroy(){var t;this.handleEntityUnregistration(),this.observer.disconnect(),this.unbindScrollHandlers(),this.scrollEl.removeEventListener("scroll",this.onScroll),this.dndManager.emitter.off("scrollResize",this.onScroll),(t=this.parent)==null||t.unregisterObserverHandler(this.instanceId,this.scrollEl),this.dndManager.unobserveResize(this.scrollEl)}handleEntityRegistration(){ds.forEach(t=>{let r=Je(this.scrollEl),n=this.getId(t),i=this.dndManager.scrollEntities.has(r)&&this.dndManager.scrollEntities.get(r).has(n),a=this.isDoneScrolling(t);!a&&!i?this.dndManager.registerScrollEntity(n,this[t],r):a&&i&&this.dndManager.unregisterScrollEntity(n,r)})}handleEntityUnregistration(){ds.forEach(t=>{let r=Je(this.scrollEl),n=this.getId(t);this.dndManager.unregisterScrollEntity(n,r)})}registerObserverHandler(t,r,n){this.observerHandlers.set(t,n),this.observer.observe(r)}unregisterObserverHandler(t,r){this.observerHandlers.delete(t),this.observer.unobserve(r)}bindScrollHandlers(){ds.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.on("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.on("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.on("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.on("dragEnd",this.onDragEnd)})}unbindScrollHandlers(){ds.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.off("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.off("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.off("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.off("dragEnd",this.onDragEnd)})}isDoneScrolling(t){switch(t){case"top":return this.scrollState.y===0;case"right":return this.scrollState.x===this.scrollState.maxX;case"bottom":return this.scrollState.y===this.scrollState.maxY;case"left":return this.scrollState.x===0}}handleDragScroll(){this.activeScroll.size!==0&&requestAnimationFrame(()=>{let t={left:0,top:0};this.activeScroll.forEach((r,n)=>{if(this.isDoneScrolling(n))return this.activeScroll.delete(n);let i=["left","right"].includes(n)?"left":"top",a=["right","bottom"].includes(n);t[i]=a?Math.max(us-us*r/35,0):Math.min(-us+us*r/35,0)}),this.scrollEl.scrollBy(t),this.scrollState=Sl(this.scrollEl),this.handleEntityRegistration(),this.handleDragScroll()})}getId(t){return`${this.instanceId}-${t}`}getPath(t){var r,n,i,a;switch(t){case"right":return[...((r=this.parent)==null?void 0:r.getPath())||[],1];case"bottom":return[...((n=this.parent)==null?void 0:n.getPath())||[],2];case"left":return[...((i=this.parent)==null?void 0:i.getPath())||[],3]}return[...((a=this.parent)==null?void 0:a.getPath())||[],0]}getScrollShift(){var r,n,i;let t=(r=this.parent)==null?void 0:r.getScrollShift();return{x:Xe((n=this.parent)==null?void 0:n.scrollState.x)+Xe(t==null?void 0:t.x),y:Xe((i=this.parent)==null?void 0:i.scrollState.y)+Xe(t==null?void 0:t.y)}}createScrollEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:r.getId(t),initial:xl(this.scrollEl.getBoundingClientRect(),((n=this.parent)==null?void 0:n.scrollState)||tn,((i=this.parent)==null?void 0:i.getScrollShift())||_n,t),getParentScrollState(){var a;return((a=r.parent)==null?void 0:a.scrollState)||tn},getParentScrollShift(){var a;return((a=r.parent)==null?void 0:a.getScrollShift())||_n},recalcInitial(){var a,o;this.initial=xl(r.scrollEl.getBoundingClientRect(),((a=r.parent)==null?void 0:a.scrollState)||tn,((o=r.parent)==null?void 0:o.getScrollShift())||_n,t)},getHitbox(){return io(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath(t)},getData(){return{id:r.getId(t),type:p_,side:t,accepts:r.triggerTypes||[],scrollContainer:r.scrollEl,win:Je(r.scrollEl)}}}}};function Sy({scrollRef:e,triggerTypes:t,children:r}){let n=R.useContext(wt),i=R.useContext(tr),a=R.useContext(ji),o=R.useRef(),s=R.useMemo(()=>{if(n){o.current&&o.current.destroy();let u=new Gu(n,i,t||[],a,()=>e.current);return o.current=u,u}return null},[n,i,e,t,a]);return R.useEffect(()=>()=>{var u;return(u=o.current)==null?void 0:u.destroy()},[]),s?v(ji.Provider,{value:s},r):null}h();function _y({children:e}){let t=R.useMemo(()=>new Wi,[]);return v(qi.Provider,{value:t},e)}function Dy(e,t){let r=R.useContext(tr),n=R.useRef(null),i=R.useContext(qi),a=o=>{n.current=o,n.current&&requestAnimationFrame(()=>{let s=i.getScrollState(e);s&&(s.x!==0||s.y!==0)&&(n.current.scrollLeft=s.x,n.current.scrollTop=s.y)})};return R.useEffect(()=>{let o=n.current;if(!o)return;let s=Do(u=>{let l=u.target;i.setScrollState(r,e,{x:l.scrollLeft,y:l.scrollTop})});return o.addEventListener("scroll",s),()=>{o.removeEventListener("scroll",s)}},[i,e,t]),{setRef:a,scrollRef:n}}function fs({className:e,children:t,triggerTypes:r,isStatic:n,id:i,index:a}){let{setRef:o,scrollRef:s}=Dy(i,a);return v("div",{ref:o,className:bt([e,z("scroll-container")])},n?t:v(Sy,{scrollRef:s,triggerTypes:r},t))}h();h();h();var Cy={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"};var fi={outOfTheWay:200,minDropTime:330,maxDropTime:550},ur=`${fi.outOfTheWay}ms ${Cy.outOfTheWay}`;var on={none:"none",fluid:`opacity ${ur}`,snap:`transform ${ur}, opacity ${ur}`,drop:e=>{let t=`${e}ms ${Cy.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${ur}`,placeholder:`height ${ur}, width ${ur}, margin ${ur}, border-color ${ur}`},h_=(e,t)=>e.x===t.x&&e.y===t.y,m_={x:0,y:0},Ty=e=>h_(e,m_)?void 0:`translate(${e.x}px, ${e.y}px)`,My={moveTo:Ty,drop:e=>Ty(e)},g_=fi.maxDropTime-fi.minDropTime,Iy=1500,v_=.6;function pi({position:e,destination:t,isCancel:r}){let n=qr(e,t);if(n<=0)return fi.minDropTime;if(n>=Iy)return fi.maxDropTime;let i=n/Iy,a=fi.minDropTime+g_*i,o=r?a*v_:a;return Math.round(o)}function xn(e,t,r){e.style.getPropertyValue(t)!==r&&e.style.setProperty(t,r)}function ps(e,t){e.style.getPropertyValue(t)&&e.style.removeProperty(t)}var Qu={width:0,height:0},y_=100,Xu=class{constructor(t,r,n){this.hitboxDimensions=Qu;this.handleDragStart=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n})=>{let i=t==null?void 0:t.entityId,a=i?this.sortables.has(i):null;!t||!a||!n||(this.setSortState(!0),this.hitboxDimensions=_l(n,r),this.activatePlaceholder(this.hitboxDimensions,on.none),this.sortables.forEach(([o,s,u])=>{let l=Ui(t.getPath(),o.getPath()),c=o.entityId;if(l===en.Self)return this.hidden.add(c),this.hideDraggingEntity(u);l===en.After&&(this.shifted.has(c)||this.shifted.add(c),this.shiftEl(s,on.none,this.hitboxDimensions))}))};this.dragEndTimeout=0;this.handleDragEnd=({primaryIntersection:t,dragPosition:r,dragOriginHitbox:n,dragEntity:i})=>{if(!this.isSorting||!r||!n||!i){if(!t&&i&&this.sortables.has(i.entityId))return this.resetSelf({maintainHidden:!1});if(t&&i){let s=(t==null?void 0:t.getHitbox())||n,u=pi({position:r,destination:{x:s[0],y:s[1]}});return window.setTimeout(()=>{this.resetSelf({maintainHidden:!1})},u)}return this.resetSelf({maintainHidden:!0})}clearTimeout(this.dragEnterTimeout),clearTimeout(this.dragLeaveTimeout),clearTimeout(this.dragEndTimeout);let a=(t==null?void 0:t.getHitbox())||n,o=i.scopeId==="htmldnd"?0:pi({position:r,destination:{x:a[0],y:a[1]}});this.dragEndTimeout=window.setTimeout(()=>{let s=i.entityId.split(":::").pop(),u=t==null?void 0:t.entityId.split(":::").pop();t&&this.sortables.has(t.entityId)&&u!==s&&this.dndManager.onDrop(i,t),this.resetSelf({maintainHidden:!1,shiftTransition:on.none,placeholderTransition:on.none})},o),this.hitboxDimensions=Qu};this.dragEnterTimeout=0;this.handleDragEnter=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n,primaryIntersection:i})=>{let a=i==null?void 0:i.entityId,o=a?this.sortables.has(a):null;if(!t||!i||!o||!n){!o&&this.isSorting&&this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0});return}t.entityId!==i.entityId&&(clearTimeout(this.dragLeaveTimeout),clearTimeout(this.dragEnterTimeout),this.dragEnterTimeout=window.setTimeout(()=>{this.setSortState(!0),this.hitboxDimensions=_l(n,r),this.activatePlaceholder(this.hitboxDimensions,on.placeholder),this.sortables.forEach(([s,u])=>{let l=Ui(i.getPath(),s.getPath()),c=s.entityId;!this.hidden.has(c)&&(l===en.Self||l===en.After)?this.shifted.has(c)||(this.shifted.add(c),this.shiftEl(u,on.outOfTheWay,this.hitboxDimensions)):this.shifted.has(c)&&(this.shifted.delete(c),this.resetEl(u))})},10))};this.dragLeaveTimeout=0;this.handleDragLeave=()=>{!this.isSorting||(clearTimeout(this.dragLeaveTimeout),clearTimeout(this.dragEnterTimeout),this.dragLeaveTimeout=window.setTimeout(()=>{this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0})},y_),this.hitboxDimensions=Qu)};this.instanceId=ze(),this.dndManager=t,this.sortables=new Map,this.shifted=new Set,this.hidden=new Set,this.isSorting=!1,this.axis=r,this.placeholder=null,this.sortListeners=n?[n]:[],t.dragManager.emitter.on("dragStart",this.handleDragStart),t.dragManager.emitter.on("dragEnd",this.handleDragEnd),t.dragManager.emitter.on("dragEnter",this.handleDragEnter),t.dragManager.emitter.on("dragLeave",this.handleDragLeave)}destroy(){clearTimeout(this.dragLeaveTimeout),clearTimeout(this.dragEndTimeout),this.dndManager.dragManager.emitter.off("dragStart",this.handleDragStart),this.dndManager.dragManager.emitter.off("dragEnd",this.handleDragEnd),this.dndManager.dragManager.emitter.off("dragEnter",this.handleDragEnter),this.dndManager.dragManager.emitter.off("dragLeave",this.handleDragLeave)}registerSortable(t,r,n,i){let a=r.getData().type==="placeholder";this.sortables.set(t,[r,n,i]),a?(this.placeholder=[r,n,i],i.dataset.axis=this.axis,xn(i,"transition",on.none)):xn(n,"transition",on.none)}unregisterSortable(t){this.sortables.delete(t)}resetSelf({maintainHidden:t,maintainPlaceholder:r,shiftTransition:n,placeholderTransition:i}){this.isSorting&&this.setSortState(!1),this.isPlaceholderActive&&!r&&this.deactivatePlaceholder(i),this.shifted.size>0&&(this.shifted.forEach(a=>{if(this.sortables.has(a)){let[,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.shifted.clear()),!t&&this.hidden.size>0&&(this.hidden.forEach(a=>{if(this.sortables.has(a)){let[,,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.hidden.clear())}activatePlaceholder(t,r){if(this.placeholder){let n=this.axis==="horizontal",[,,i]=this.placeholder;xn(i,"transition",r),xn(i,n?"width":"height",`${n?t.width:t.height}px`),this.isPlaceholderActive=!0}}deactivatePlaceholder(t=on.placeholder){if(this.placeholder){let[,,r]=this.placeholder;xn(r,"transition",t),ps(r,"width"),ps(r,"height"),this.isPlaceholderActive=!1}}hideDraggingEntity(t){xn(t,"display","none")}shiftEl(t,r,n){let i=this.axis==="horizontal"?`translate3d(${n.width}px, 0, 0)`:`translate3d(0, ${n.height}px, 0)`;xn(t,"transition",r),xn(t,"transform",i)}resetEl(t,r=on.outOfTheWay){xn(t,"transition",r),xn(t,"transform","translate3d(0, 0, 0)"),ps(t,"display")}addSortNotifier(t){this.sortListeners.push(t)}removeSortNotifier(t){this.sortListeners=this.sortListeners.filter(r=>r!==t)}setSortState(t){this.isSorting!==t&&(this.isSorting=t,this.sortListeners.forEach(r=>r(t)))}};function hi({axis:e,children:t,onSortChange:r}){let n=R.useContext(wt),i=R.useRef(),a=R.useMemo(()=>{if(n){i.current&&i.current.destroy();let o=new Xu(n,e,r);return i.current=o,o}return null},[n,e,r]);return R.useEffect(()=>()=>{var o;return(o=i.current)==null?void 0:o.destroy()},[]),a?v(to.Provider,{value:a},t):null}h();function mi({index:e,accepts:t,className:r,isStatic:n}){let i=R.useRef(null),a=R.useRef(null),o=R.useMemo(()=>({id:ze(),type:"placeholder",accepts:t}),t);return v("div",{ref:a,className:bt([r,z("placeholder")])},v("div",{ref:i},!n&&v(nr,{elementRef:i,measureRef:a,id:o.id,index:e,data:o})))}h();h();h();yr();yr();function b_(e,t){for(var r in t)e[r]=t[r];return e}function Ay(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Ly(e){this.props=e}(Ly.prototype=new vt).isPureReactComponent=!0,Ly.prototype.shouldComponentUpdate=function(e,t){return Ay(this.props,e)||Ay(this.state,t)};var Py=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Py&&Py(e)};var DR=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var w_=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}w_(e,t,r,n)};var Fy=fe.unmount;function Zu(){this.__u=0,this.t=null,this.__b=null}function Oy(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function hs(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),Fy&&Fy(e)},(Zu.prototype=new vt).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=Oy(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,m){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(y){return d(y,p,m)}),f.__c&&f.__c.__P===p&&(f.__e&&m.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=m)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},Zu.prototype.componentWillUnmount=function(){this.t=[]},Zu.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=b_({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&v(S,null,e.fallback);return i&&(i.__h=null),[v(S,null,t.__e?null:e.children),i]};var Ny=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]{r(!1)},{ignoreClass:z("ignore-click-outside")}),l=R.useCallback(()=>{a(""),r(!1)},[]),c=async p=>{try{e(await Promise.all(p.map(m=>o.getNewItem(m))))}catch(m){o.setError(m)}},d=p=>{if(!zn(p,o)){p.preventDefault();let m=i.trim();m&&(c([m]),a(""))}},f=()=>{let p=i.trim();p&&(c([p]),a(""))};return t?v("div",{className:z("item-form"),ref:u},v("div",{className:z("item-input-wrapper")},v(lr,{ref:s,className:z("item-input"),placeholder:H("Card title..."),onEnter:d,onEscape:l,onSubmit:f,value:i,onChange:p=>{a(p.target.value)},onPaste:p=>{Qo(p,o)}}))):n?null:v("div",{className:z("item-button-wrapper")},v("button",{className:z("new-item-button"),onClick:()=>r(!0),onDragOver:p=>{Go(o,p.dataTransfer)&&r(!0)}},v("span",{className:z("item-button-plus")},"+")," ",H("Add a card")))}h();var Zy=ge(_t());h();function zy(e){return v("svg",{...e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},v("path",{fill:"currentColor",d:"M5 3h2v2H5zm0 4h2v2H5zm0 4h2v2H5zm4-8h2v2H9zm0 4h2v2H9zm0 4h2v2H9z"}))}h();var td=ge(_t()),Wy=ge(require("obsidian"));var jy={delete:{description:H("Are you sure you want to delete this list and all its cards?"),confirm:H("Yes, delete list")},archive:{description:H("Are you sure you want to archive this list and all its cards?"),confirm:H("Yes, archive list")},"archive-items":{description:H("Are you sure you want to archive all cards in this list?"),confirm:H("Yes, archive cards")}};function qy({action:e,cancel:t,onAction:r,lane:n}){return R.useEffect(()=>{e&&n.children.length===0&&r()},[e,n.children.length]),!e||e&&n.children.length===0?null:v("div",{className:z("action-confirm-wrapper")},v("div",{className:z("action-confirm-text")},jy[e].description),v("div",null,v("button",{onClick:r,className:z("confirm-action-button")},jy[e].confirm),v("button",{onClick:t,className:z("cancel-action-button")},"Cancel")))}function Yy({setIsEditing:e,path:t,lane:r}){let{stateManager:n,boardModifiers:i}=R.useContext(Ve),[a,o]=R.useState(null);return{settingsMenu:R.useMemo(()=>new Wy.Menu().addItem(u=>{u.setIcon("pencil").setTitle(H("Edit list")).onClick(()=>e(!0))}).addItem(u=>{u.setIcon("documents").setTitle(H("Archive cards")).onClick(()=>o("archive-items"))}).addSeparator().addItem(u=>{u.setIcon("up-and-down-arrows").setTitle(H("Sort by card text")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===En.TitleAsc;l.sort((d,f)=>c?f.data.titleSearch.localeCompare(d.data.titleSearch):d.data.titleSearch.localeCompare(f.data.titleSearch)),i.updateLane(t,(0,td.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===En.TitleAsc?En.TitleDsc:En.TitleAsc}}}))})}).addItem(u=>{u.setIcon("up-and-down-arrows").setTitle(H("Sort by date")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===En.DateAsc?-1:1;l.sort((d,f)=>{let p=d.data.metadata.time||d.data.metadata.date,m=f.data.metadata.time||f.data.metadata.date;return p&&!m?-1*c:m&&!p?1*c:!p&&!m?0:(p.isBefore(m)?-1:1)*c}),i.updateLane(t,(0,td.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===En.DateAsc?En.DateDsc:En.DateAsc}}}))})}).addSeparator().addItem(u=>{u.setIcon("plus-with-circle").setTitle(H("Insert list before")).onClick(()=>i.insertLane(t,{...sr,id:ze(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}}))}).addItem(u=>{u.setIcon("plus-with-circle").setTitle(H("Insert list after")).onClick(()=>{let l=[...t];l[l.length-1]=l[l.length-1]+1,i.insertLane(l,{...sr,id:ze(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}})})}).addSeparator().addItem(u=>{u.setIcon("sheets-in-box").setTitle(H("Archive list")).onClick(()=>o("archive"))}).addItem(u=>{u.setIcon("trash").setTitle(H("Delete list")).onClick(()=>o("delete"))}),[n,o,t,r]),confirmAction:a,setConfirmAction:o}}h();var Jy=ge(_t());function Gy({lane:e,lanePath:t}){let{boardModifiers:r}=R.useContext(Ve);return v("div",{className:z("lane-setting-wrapper")},v("div",{className:z("checkbox-wrapper")},v("div",{className:z("checkbox-label")},H("Mark cards in this list as complete")),v("div",{onClick:()=>r.updateLane(t,(0,Jy.default)(e,{data:{$toggle:["shouldMarkItemsComplete"]}})),className:`checkbox-container ${e.data.shouldMarkItemsComplete?"is-enabled":""}`})))}h();var Qy=ge(require("obsidian"));function Xy({itemCount:e,isEditing:t,setIsEditing:r,title:n,onChange:i}){let{stateManager:a}=R.useContext(Ve),o=R.useRef(),s=a.getSetting("hide-card-count"),u=d=>{zn(d,a)||(d.preventDefault(),t&&r(!1))},l=()=>{t&&r(!1)},c=()=>{t&&r(!1)};return R.useEffect(()=>{if(t&&o.current){let d=o.current;o.current.focus(),d.selectionStart=d.selectionEnd=d.value.length}},[t]),v(S,null,v("div",{className:z("lane-title")},t?v(lr,{ref:o,className:z("lane-input"),onChange:i,onEnter:u,onEscape:c,onSubmit:l,value:n}):v(S,null,v("div",{className:z("lane-title-text"),onContextMenu:d=>{d.preventDefault(),d.stopPropagation();let f=d.target instanceof d.view.HTMLAnchorElement&&d.target.hasClass("internal-link")?d.target.dataset.href:void 0;f&&a.app.workspace.onLinkContextMenu(d,(0,Qy.getLinkpath)(f),a.file.path)}},v(ba,{markdownString:n})))),!t&&!s&&v("div",{className:z("lane-title-count")},e))}var eb=R.memo(function({lane:t,laneIndex:r,dragHandleRef:n,setIsItemInputVisible:i}){let{boardModifiers:a,stateManager:o}=R.useContext(Ve),[s,u]=R.useState(!1),l=Nn(r),{settingsMenu:c,confirmAction:d,setConfirmAction:f}=Yy({setIsEditing:u,path:l,lane:t});return R.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]),v(S,null,v("div",{onDblClick:()=>u(!0),className:z("lane-header-wrapper")},v("div",{className:z("lane-grip"),ref:n},v(zy,null)),v(Xy,{isEditing:s,setIsEditing:u,itemCount:t.children.length,title:t.data.title,onChange:p=>{a.updateLane(l,(0,Zy.default)(t,{data:{title:{$set:p.target.value}}}))}}),v("div",{className:z("lane-settings-button-wrapper")},s?v("button",{onClick:()=>{u(!1)},"aria-label":"Close",className:`${z("lane-settings-button")} is-enabled`},v(Zt,{name:"cross"})):v(S,null,i&&v("button",{"aria-label":H("Add a card"),className:z("lane-settings-button"),onClick:()=>{i(!0)},onDragOver:p=>{Go(o,p.dataTransfer)&&i(!0)}},v(Zt,{name:"plus-with-circle"})),v("button",{"aria-label":H("More options"),className:z("lane-settings-button"),onClick:p=>{c.showAtPosition({x:p.clientX,y:p.clientY})}},v(Zt,{name:"vertical-three-dots"}))))),s&&v(Gy,{lane:t,lanePath:l}),d&&v(qy,{lane:t,action:d,onAction:()=>{switch(d){case"archive":a.archiveLane(l);break;case"archive-items":a.archiveLaneItems(l);break;case"delete":a.deleteEntity(l);break}f(null)},cancel:()=>f(null)}))});var nb=[Ze.Item],nd=R.memo(function({isStatic:t,lane:r,laneIndex:n}){let{stateManager:i,boardModifiers:a}=R.useContext(Ve),[o,s]=R.useState(!1),u=Nn(n),l=i.useSetting("lane-width"),c=i.useSetting("new-card-insertion-method"),d=!!r.data.shouldMarkItemsComplete,f=l?{width:`${l}px`}:void 0,p=R.useRef(null),m=R.useRef(null),y=R.useRef(null),[b,k]=R.useState(!1),T=c==="prepend-compact",D=T||c==="prepend";ci(m,y);let A=N=>{a[D?"prependItems":"appendItems"]([...u,r.children.length-1],N.map(U=>(0,tb.default)(U,{data:{isComplete:{$set:d}}}))),setTimeout(()=>{var W;let U=(W=p.current)==null?void 0:W.getElementsByClassName(z("lane-items"));U.length&&cs([0,D?0:U[0].scrollHeight],{elementToScroll:U[0],speed:200,minDuration:150,easing:te=>te===1?1:1-Math.pow(2,-10*te)})})},B=v(S,null,v(wy,{items:r.children,isStatic:t,shouldMarkItemsComplete:d}),v(mi,{accepts:nb,index:r.children.length,isStatic:t})),C=v(fs,{id:r.id,index:n,className:bt([z("lane-items"),z("vertical")]),triggerTypes:nb,isStatic:t},t?B:v(hi,{onSortChange:k,axis:"vertical"},B));return v("div",{ref:m,className:bt([z("lane-wrapper"),{"is-sorting":b}]),style:f},v("div",{"data-count":r.children.length,ref:p,className:bt([z("lane"),{"will-prepend":D}])},v(eb,{dragHandleRef:y,laneIndex:n,lane:r,setIsItemInputVisible:T?s:void 0}),D&&v(ed,{addItems:A,hideButton:T,isInputVisible:o,setIsInputVisible:s}),t?C:v(nr,{elementRef:p,measureRef:m,id:r.id,index:n,data:r},C),!D&&v(ed,{addItems:A,isInputVisible:o,setIsInputVisible:s})))}),rb=R.memo(function({lanes:t}){return v(S,null,t.map((r,n)=>v(nd,{lane:r,laneIndex:n,key:r.id})))});h();h();var ib=ge(require("obsidian"));h();function gs(){return{events:{},emit(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[e],a=this.events[n];if(!i&&!a){console.warn("Event emitted with no handler",e,r);return}r&&a&&a.forEach(o=>o(t)),i&&i.forEach(o=>o(t))},on(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];return i||(this.events[n]=i=[]),i.push(t),()=>this.off(e,t,r)},off(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];i&&(i.splice(i.indexOf(t)>>>0,1),i.length===0&&delete this.events[n])}}}var rd=class{constructor(t){this.scrollResizeDebounce=0;this.handleResize=t=>{let r=new Set;t.forEach(n=>{let i=Je(n.target);r.has(i)||r.add(i),n.target.dataset.scrollid&&(clearTimeout(this.scrollResizeDebounce),this.scrollResizeDebounce=window.setTimeout(()=>{this.emitter.emit("scrollResize",null)},50))}),r.forEach(n=>{this.hitboxEntities.has(n)&&this.hitboxEntities.get(n).forEach(i=>{i.recalcInitial()}),this.scrollEntities.has(n)&&this.scrollEntities.get(n).forEach(i=>{i.recalcInitial()})}),r.clear()};this.emitter=gs(),this.hitboxEntities=new Map,this.scrollEntities=new Map,this.onDrop=t,this.resizeObserver=new ResizeObserver((0,ib.debounce)(this.handleResize,100,!0)),this.dragManager=new pu(this.emitter,this.hitboxEntities,this.scrollEntities)}destroy(){this.resizeObserver.disconnect()}observeResize(t){this.resizeObserver.observe(t,{box:"border-box"})}unobserveResize(t){this.resizeObserver.unobserve(t)}registerHitboxEntity(t,r,n){this.hitboxEntities.has(n)||this.hitboxEntities.set(n,new Map),this.hitboxEntities.get(n).set(t,r)}registerScrollEntity(t,r,n){this.scrollEntities.has(n)||this.scrollEntities.set(n,new Map),this.scrollEntities.get(n).set(t,r)}unregisterHitboxEntity(t,r){if(!this.hitboxEntities.has(r))return;let n=this.hitboxEntities.get(r);n.delete(t),n.size===0&&this.hitboxEntities.delete(r)}unregisterScrollEntity(t,r){if(!this.scrollEntities.has(r))return;let n=this.scrollEntities.get(r);n.delete(t),n.size===0&&this.scrollEntities.delete(r)}};function vs({children:e,onDrop:t}){let r=R.useRef(t);r.current=t;let n=R.useMemo(()=>new rd((i,a)=>r.current(i,a)),[]);return R.useEffect(()=>()=>{n.destroy()},[n]),v(wt.Provider,{value:n},v(_y,null,e))}h();function id(e,t,r,n,i,a){let o=[r[0]-n[0],r[1]-n[1],r[2]+n[2],r[3]+n[3]];return{transform:a||`translate3d(${e.x-t.x+o[0]}px, ${e.y-t.y+o[1]}px, 0px)`,width:`${o[2]-o[0]}px`,height:`${o[3]-o[1]}px`,transition:i}}function ys({children:e}){let t=R.useContext(wt),[r,n]=R.useState(),[i,a]=R.useState();return R.useEffect(()=>{if(!t)return;let o=np,s=({dragEntity:c,dragOrigin:d,dragPosition:f,dragEntityMargin:p})=>{!c||!f||!d||(o=c.getHitbox(),n(c),a(id(f,d,o,p)))},u=({dragOrigin:c,dragPosition:d,dragEntityMargin:f})=>{!d||!c||a(id(d,c,o,f))},l=({dragOrigin:c,primaryIntersection:d,dragPosition:f,dragEntityMargin:p})=>{if(d&&f&&c){let m=d.getHitbox(),y={x:m[0],y:m[1]},b=pi({position:f,destination:y}),k=on.drop(b),T=My.drop(y);a(id(f,c,o,p,k,T)),setTimeout(()=>{n(void 0),a(void 0)},b)}else n(void 0),a(void 0)};return t.dragManager.emitter.on("dragStart",s),t.dragManager.emitter.on("dragMove",u),t.dragManager.emitter.on("dragEnd",l),()=>{t.dragManager.emitter.off("dragStart",s),t.dragManager.emitter.off("dragMove",u),t.dragManager.emitter.off("dragEnd",l)}},[t]),!r||!i?null:R.createPortal(e(r,i),r.getData().win.document.body)}function ab(){let e=R.useContext(wt),[t,r]=R.useState(!1);return R.useEffect(()=>{let n=()=>{r(!0)},i=({primaryIntersection:a,dragPosition:o})=>{let s=(a==null?void 0:a.getHitbox())||[0,0],u={x:s[0],y:s[1]},l=pi({position:o||u,destination:u});setTimeout(()=>{r(!1)},l)};return e.dragManager.emitter.on("dragStart",n),e.dragManager.emitter.on("dragEnd",i),()=>{e.dragManager.emitter.off("dragStart",n),e.dragManager.emitter.off("dragEnd",i)}},[e]),t}h();var Ea=ge(_t()),ob=ge(require("obsidian"));function bs(e){let t=r=>{let n=e.getSetting("prepend-archive-format"),i=e.getSetting("prepend-archive-separator"),a=[(0,ob.moment)().format(n)];i&&a.push(i),a.push(r.data.titleRaw);let o=a.join(" ");return e.updateItemContent(r,o)};return{appendItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>vl(i,r,n))},prependItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>Qf(i,r,n))},insertItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>er(i,r,n))},splitItem:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>er(wr(i,r),r,n))},addLane:r=>{e.app.workspace.trigger("kanban:lane-added",e.file,r),e.setState(n=>vl(n,[],[r]))},insertLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-added",e.file,n),e.setState(i=>er(i,r,[n]))},updateLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-updated",e.file,n),e.setState(i=>yl(i,r,{children:{[r[r.length-1]]:{$set:n}}}))},archiveLane:r=>{e.setState(async n=>{let i=ft(n,r),a=i.children;e.app.workspace.trigger("kanban:lane-archived",e.file,i);try{return(0,Ea.default)(wr(n,r),{data:{archive:{$unshift:e.getSetting("prepend-archive-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},archiveLaneItems:r=>{e.setState(async n=>{let a=ft(n,r).children;e.app.workspace.trigger("kanban:lane-cards-archived",e.file,a);try{return(0,Ea.default)(Xa(n,r,{children:{$set:[]}}),{data:{archive:{$unshift:e.getSetting("prepend-archive-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},deleteEntity:r=>{e.setState(n=>{let i=ft(n,r);return e.app.workspace.trigger(`kanban:${i.type}-deleted`,e.file,i),wr(n,r)})},updateItem:(r,n)=>{e.setState(i=>{let a=ft(i,r);return e.app.workspace.trigger("kanban:card-updated",e.file,a,n),yl(i,r,{children:{[r[r.length-1]]:{$set:n}}})})},archiveItem:r=>{e.setState(async n=>{let i=ft(n,r);e.app.workspace.trigger("kanban:card-archived",e.file,r,i);try{return(0,Ea.default)(wr(n,r),{data:{archive:{$push:[e.getSetting("prepend-archive-date")?await t(i):i]}}})}catch(a){return e.setError(a),n}})},duplicateEntity:r=>{e.setState(n=>{let i=ft(n,r);e.app.workspace.trigger(`kanban:${i.type}-duplicated`,e.file,r,i);let a=(0,Ea.default)(i,{id:{$set:ze()}});return er(n,r,[a])})}}}function lb(e,t){return v(F_,{win:e,plugin:t})}var P_=R.memo(function({view:t}){return R.createPortal(t.getPortal(),t.contentEl)});function F_({win:e,plugin:t}){let r=t.useViewState(e),n=r.map(a=>v(P_,{key:a.id,view:a})),i=R.useCallback((a,o)=>{if(!a||!o)return;if(a.scopeId==="htmldnd"){let y=a.getData(),b=t.getStateManagerFromViewID(y.viewId,y.win),k=o.getPath(),T=ft(b.state,k.slice(0,-1));(A=>Promise.all(A.map(B=>b.getNewItem(B))))(y.content).then(A=>{let B=A.map(C=>{var N;return(0,sb.default)(C,{data:{isComplete:{$set:!!((N=T==null?void 0:T.data)==null?void 0:N.shouldMarkItemsComplete)}}})});return b.setState(C=>er(C,k,B))}).catch(A=>{b.setError(A),console.error(A)});return}let s=a.getPath(),u=o.getPath(),[,l]=a.scopeId.split(":::"),[,c]=o.scopeId.split(":::"),d=a.getData(),f=o.getData();if(l===c){let y=t.getStateManagerFromViewID(a.scopeId,d.win);return t.app.workspace.trigger("kanban:card-moved",y.file,s,u,d),y.setState(b=>{var B;let k=!1,T=Gf(b,s,u,C=>C.type===Ze.Item?(k=!0,wl(b,s,b,u,C)):C);if(!k)return T;let D=u.slice(0,-1),A=ft(b,D);return((B=A==null?void 0:A.data)==null?void 0:B.sorted)!==void 0?Xa(T,D,{data:{$unset:["sorted"]}}):T})}let p=t.getStateManagerFromViewID(a.scopeId,d.win),m=t.getStateManagerFromViewID(o.scopeId,f.win);p.setState(y=>{let b=ft(y,s);return m.setState(k=>{let T=b.type===Ze.Item?wl(y,s,k,u,b):b;return er(k,u,[T])}),wr(y,s)})},[r]);if(n.length)return v(vs,{onDrop:i},n,v(ys,null,(a,o)=>{let[s,u]=R.useMemo(()=>{if(a.scopeId==="htmldnd")return[null,null];let l=a.getData(),c=t.getKanbanView(a.scopeId,l.win),d=t.stateManagers.get(c.file),f=ft(d.state,a.getPath()),p=bs(d),m=c.file.path;return[f,{view:c,stateManager:d,boardModifiers:p,filePath:m}]},[a]);return(s==null?void 0:s.type)===Ze.Lane?v(Ve.Provider,{value:u},v("div",{className:z("drag-container"),style:o},v(nd,{lane:s,laneIndex:0,isStatic:!0}))):(s==null?void 0:s.type)===Ze.Item?v(Ve.Provider,{value:u},v("div",{className:z("drag-container"),style:o},v(Ju,{item:s,itemIndex:0,isStatic:!0}))):v("div",null)}))}h();var dd=ge(_t()),Tb=ge(require("obsidian"));h();var gb=ge(_t()),vb=ge(require("obsidian")),Es=ge(Gl());h();function ws({id:e,children:t}){let r=R.useContext(qi),n=R.useMemo(()=>e||ze(),[e]);return R.useEffect(()=>()=>{r.unmountScope(e)},[e]),v(tr.Provider,{value:n},t)}h();var fn="kanban-plugin",cb;(function(t){t[t.List=0]="List"})(cb||(cb={}));var ub=`**${H("Complete")}**`,db="***",ad=["---","",`${fn}: basic`,"","---","",""].join(` -`);function fb(e){return["","","%% kanban:settings","```",JSON.stringify(e),"```","%%"].join(` -`)}function pb(e,t,r){let n=e.innerText.trim();if((t==null?void 0:t.length)&&(n+=" "+t.join(" ")),r){let i=Object.keys(r).join(" "),a=Object.values(r).map(o=>Array.isArray(o.value)?o.value.join(" "):o.value.toString()).join(" ");n+=" "+i+" "+a}return n.toLocaleLowerCase()}function O_(e,t,r){var n,i,a;if(e.plugins.enabledPlugins.has("dataview")&&((a=(i=(n=e.plugins)==null?void 0:n.plugins)==null?void 0:i.dataview)==null?void 0:a.api))return e.plugins.plugins.dataview.api.page(t.path,r.path)}function od(e,t){let r=e.getSetting("metadata-keys");if(!r.length)return{};if(!t)return{};let n=e.app.metadataCache.getFileCache(t),i=O_(e.app,t,e.file);if(!n&&!i)return{};let a={},o={},s={},u=[],l=!1;return r.forEach(c=>{var d;if(!s[c.metadataKey]){if(s[c.metadataKey]=!0,c.metadataKey==="tags"){let f=(n==null?void 0:n.tags)||[];if(Array.isArray((d=n==null?void 0:n.frontmatter)==null?void 0:d.tags)&&(f=[].concat(f,n.frontmatter.tags.map(p=>({tag:`#${p}`})))),(f==null?void 0:f.length)===0)return;u.push(c.metadataKey),a.tags={...c,value:f.map(p=>p.tag).filter(p=>o[p]?!1:(o[p]=!0,!0))},l=!0;return}if((n==null?void 0:n.frontmatter)&&n.frontmatter[c.metadataKey])u.push(c.metadataKey),a[c.metadataKey]={...c,value:n.frontmatter[c.metadataKey]},l=!0;else if(i&&i[c.metadataKey]){let f=i[c.metadataKey],p=f.values||f.val||f;if(p===f&&typeof p=="object")p={...f};else if(!Array.isArray(p)&&typeof p!="string"&&typeof p!="number")return;u.push(c.metadataKey),a[c.metadataKey]={...c,value:p},l=!0}}}),{fileMetadata:l?a:void 0,fileMetadataOrder:u}}function hb(e,t){return!e&&t?!0:!["metadata-keys","date-trigger","time-trigger","link-date-to-daily-note","date-format","time-format","hide-date-in-title","hide-tags-in-title","hide-tags-in-title","hide-card-count"].every(n=>e[n]===t[n])}h();function mb({onNewLane:e,closeLaneForm:t}){let{boardModifiers:r,stateManager:n}=R.useContext(Ve),[i,a]=R.useState(!1),[o,s]=R.useState(""),u=R.useRef(),l=ms(()=>{t()},{ignoreClass:z("ignore-click-outside")});R.useLayoutEffect(()=>{var d;(d=u.current)==null||d.focus()},[]);let c=()=>{r.addLane({...sr,id:ze(),children:[],data:{title:o,shouldMarkItemsComplete:i}}),s(""),a(!1),e()};return v("div",{ref:l,className:z("lane-form-wrapper")},v("div",{className:z("lane-input-wrapper")},v(lr,{ref:u,className:z("lane-input"),onChange:d=>s(d.target.value),onEnter:d=>{zn(d,n)||(d.preventDefault(),c())},onSubmit:()=>{c()},onEscape:t,value:o})),v("div",{className:z("checkbox-wrapper")},v("div",{className:z("checkbox-label")},H("Mark cards in this list as complete")),v("div",{onClick:()=>a(!i),className:`checkbox-container ${i?"is-enabled":""}`})),v("div",{className:z("lane-input-actions")},v("button",{className:z("lane-action-add"),onClick:c},H("Add list")),v("button",{className:z("lane-action-cancel"),onClick:t},H("Cancel"))))}var N_=[Ze.Item,Ze.Lane],R_=[Ze.Lane],yb=({view:e,stateManager:t})=>{let r=t.useState(),n=ab(),i=R.useRef(null),a=R.useRef(null),[o,s]=R.useState(""),[u,l]=R.useState(!1),[c,d]=R.useState(""),[f,p]=R.useState((r==null?void 0:r.children.length)===0),m=t.file.path,y=t.useSetting("max-archive-size"),b=R.useCallback(()=>{(r==null?void 0:r.children.length)>0&&p(!1)},[r==null?void 0:r.children.length]);R.useEffect(()=>{(r==null?void 0:r.children.length)===0&&!t.hasError()&&p(!0)},[r==null?void 0:r.children.length,t]);let k=R.useCallback(()=>{setTimeout(()=>{var U;let N=(U=i.current)==null?void 0:U.getElementsByClassName(z("board"));N.length&&cs([N[0].scrollWidth,0],{elementToScroll:N[0],speed:300,minDuration:150,easing:W=>W===1?1:1-Math.pow(2,-10*W)})})},[]);R.useEffect(()=>{let N=W=>{W==="editor:open-search"&&l(te=>!te)},U=()=>{p(!0)};return e.emitter.on("hotkey",N),e.emitter.on("showLaneForm",U),()=>{e.emitter.off("hotkey",N),e.emitter.off("showLaneForm",U)}},[e]),R.useEffect(()=>{var N;u&&((N=a.current)==null||N.focus())},[u]),R.useEffect(()=>{let N=o.trim(),U;return N?U=window.setTimeout(()=>{d(N)},250):d(""),()=>{window.clearTimeout(U)}},[o]),R.useEffect(()=>{y===void 0||y===-1||typeof y=="number"&&(r==null?void 0:r.data.archive.length)>y&&t.setState(N=>(0,gb.default)(N,{data:{archive:{$set:N.data.archive.slice(y*-1)}}}))},[r==null?void 0:r.data.archive.length,y]);let T=R.useMemo(()=>bs(t),[t]),D=R.useCallback(N=>{let U=N.target;U.tagName==="A"&&U.hasClass("internal-link")&&e.app.workspace.trigger("hover-link",{event:N,source:fn,hoverParent:e,targetEl:U,linktext:U.getAttr("href"),sourcePath:e.file.path})},[e]),A=R.useCallback(async N=>{if(N.type==="auxclick"&&N.button==2)return;let U=N.target,W=U.tagName==="A"?U:U.closest("a");if(!!W){if(W.hasClass("file-link")){N.preventDefault();let te=W.getAttribute("href"),Z=Ir(te),le=typeof te=="string"&&e.app.metadataCache.getFirstLinkpathDest(Z.root,e.file.path);if(!le)return;t.app.openWithDefaultApp(le.path);return}if(W.hasClass("internal-link")){N.preventDefault();let te=W.getAttr("href"),Z=N.button===1||N.ctrlKey||N.metaKey;if(W.hasClass("is-unresolved")&&(0,Es.appHasDailyNotesPluginLoaded)()){let X=t.getSetting("date-format"),G=(0,vb.moment)(te,X,!0);if(G.isValid()){try{let re=await(0,Es.createDailyNote)(G);await(Z?app.workspace.getLeaf(!0):app.workspace.getLeaf(!1)).openFile(re,{active:!0})}catch(re){console.error(re),t.setError(re)}return}}t.app.workspace.openLinkText(te,m,Z);return}if(W.hasClass("tag")){N.preventDefault(),t.app.internalPlugins.getPluginById("global-search").instance.openGlobalSearch(`tag:${W.getAttr("href")}`);return}W.hasClass("external-link")&&(N.preventDefault(),window.open(W.getAttr("href"),"_blank"))}},[t,m]),B=R.useMemo(()=>({view:e,stateManager:t,boardModifiers:T,filePath:m}),[e,t,T,m]),C=Tg(t);return r==null?v("div",{className:z("loading")},v("div",{className:"sk-pulse"})):r.data.errors.length>0?v("div",null,v("div",null,"Error:"),r.data.errors.map((N,U)=>v("div",{key:U},v("div",null,N.description),v("pre",null,N.stack)))):v(ws,{id:e.id},v(Ve.Provider,{value:B},v(Qa.Provider,{value:c?c.toLocaleLowerCase():null},v("div",{ref:i,className:bt([bl,{"something-is-dragging":n}]),onMouseOver:D,onPointerDown:A,onClick:A,onAuxClick:A,...C},(f||r.children.length===0)&&v(mb,{onNewLane:k,closeLaneForm:b}),u&&v("div",{className:z("search-wrapper")},v("input",{ref:a,value:o,onChange:N=>{s(N.target.value)},onKeyDown:N=>{N.key==="Escape"&&(s(""),d(""),N.target.blur(),l(!1))},type:"text",className:z("filter-input"),placeholder:H("Search...")}),v("button",{className:z("search-cancel-button"),onClick:()=>{s(""),d(""),l(!1)},"aria-label":H("Cancel")},v(Zt,{name:"cross"}))),v(fs,{id:e.id,className:bt([z("board"),z("horizontal"),{"is-adding-lane":f}]),triggerTypes:N_},v("div",null,v(hi,{axis:"horizontal"},v(rb,{lanes:r.children}),v(mi,{className:z("lane-placeholder"),accepts:R_,index:r.children.length}))))))))};h();var _b=ge(_t()),Ke=ge(require("obsidian"));h();var Ar=ge(_t());function bb({isStatic:e,itemIndex:t,item:r,toggleShouldHideLabel:n,toggleContainsMarkdown:i,deleteKey:a,updateKey:o,updateLabel:s}){let u=R.useRef(null),l=R.useRef(null),c=R.useRef(null);ci(l,c);let d=v("div",{className:z("setting-controls-wrapper")},v("div",{className:z("setting-input-wrapper")},v("div",null,v("div",{className:z("setting-item-label")},H("Metadata key")),v("input",{type:"text",value:r.data.metadataKey,onChange:f=>o(f.target.value)})),v("div",null,v("div",{className:z("setting-item-label")},H("Display label")),v("input",{type:"text",value:r.data.label,onChange:f=>s(f.target.value)}))),v("div",{className:z("setting-toggle-wrapper")},v("div",null,v("div",{className:`checkbox-container ${r.data.shouldHideLabel?"is-enabled":""}`,onClick:n,"aria-label":H("Hide label")}),v("div",{className:z("setting-item-label")},H("Hide label"))),v("div",null,v("div",{className:`checkbox-container ${r.data.containsMarkdown?"is-enabled":""}`,onClick:i,"aria-label":H("Field contains markdown")}),v("div",{className:z("setting-item-label")},H("Field contains markdown")))));return v("div",{ref:l,className:z("setting-item-wrapper")},v("div",{ref:u,className:z("setting-item")},e?d:v(nr,{elementRef:u,measureRef:l,id:r.id,index:t,data:r},d),v("div",{className:z("setting-button-wrapper")},v("div",{onClick:a,"aria-label":H("Delete")},v(Zt,{name:"cross"})),v("div",{className:"mobile-option-setting-drag-icon","aria-label":H("Drag to rearrange"),ref:c},v(Zt,{name:"three-horizontal-bars"})))))}function H_({onChange:e,inputValue:t,keys:r,setKeys:n}){let i=a=>{e(a),n(a)};return{updateKey:a=>o=>{i((0,Ar.default)(r,{[a]:{data:{metadataKey:{$set:o}}}}))},updateLabel:a=>o=>{i((0,Ar.default)(r,{[a]:{data:{label:{$set:o}}}}))},toggleShouldHideLabel:a=>()=>{i((0,Ar.default)(r,{[a]:{data:{$toggle:["shouldHideLabel"]}}}))},toggleContainsMarkdown:a=>()=>{i((0,Ar.default)(r,{[a]:{data:{$toggle:["containsMarkdown"]}}}))},deleteKey:a=>()=>{i((0,Ar.default)(r,{$splice:[[a,1]]}))},newKey:()=>{i((0,Ar.default)(r,{$push:[{...Yo,id:ze(),data:{metadataKey:t,label:"",shouldHideLabel:!1,containsMarkdown:!1}}]}))},moveKey:(a,o)=>{let s=a.getPath(),u=o.getPath(),l=s[s.length-1],c=u[u.length-1];if(l===c)return;let d=r.slice(),[f]=d.splice(l,1);d.splice(c,0,f),i(d)}}}var B_=[Ze.MetadataSetting];function K_({keys:e,portalContainer:t}){return R.createPortal(v(ys,null,(r,n)=>{let a=r.getPath()[0],o=e[a];return v("div",{className:z("drag-container"),style:n},v(bb,{item:o,itemIndex:a,updateKey:Wr,updateLabel:Wr,toggleShouldHideLabel:Wr,toggleContainsMarkdown:Wr,deleteKey:Wr,isStatic:!0}))}),t)}function $_({scrollEl:e}){let t=R.useContext(wt);return R.useEffect(()=>{let r=0,n=()=>{clearTimeout(r),r=window.setTimeout(()=>{var i;(i=t.hitboxEntities.get(Je(e)))==null||i.forEach(a=>{a.recalcInitial()})},100)};return e.addEventListener("scroll",n,{passive:!0,capture:!1}),()=>{e.removeEventListener("scroll",n)}},[e,t]),null}function U_(e){let[t,r]=R.useState(e.dataKeys),[n,i]=R.useState(""),{getShouldIMEBlockAction:a,...o}=eo(),{updateKey:s,updateLabel:u,toggleShouldHideLabel:l,toggleContainsMarkdown:c,deleteKey:d,newKey:f,moveKey:p}=H_({onChange:e.onChange,inputValue:n,keys:t,setKeys:r,win:Je(e.scrollEl)});return v(S,null,v(vs,{onDrop:p},v($_,{scrollEl:e.scrollEl}),v(ws,null,v(hi,{axis:"vertical"},t.map((m,y)=>v(bb,{key:m.id,item:m,itemIndex:y,updateKey:s(y),updateLabel:u(y),toggleShouldHideLabel:l(y),toggleContainsMarkdown:c(y),deleteKey:d(y)})),v(mi,{accepts:B_,index:t.length}))),v(K_,{keys:t,portalContainer:e.portalContainer})),v("div",{className:z("setting-key-input-wrapper")},v("input",{placeholder:H("Metadata key"),type:"text",value:n,onChange:m=>i(m.target.value),onKeyDown:m=>{if(!a()){if(m.key==="Enter"){f(),i("");let y=m.target;setTimeout(()=>{y.scrollIntoView()});return}m.key==="Escape"&&(i(""),m.target.blur())}},...o}),v("button",{onClick:m=>{f(),i("");let y=m.target;setTimeout(()=>{y.scrollIntoView()})}},H("Add key"))))}function wb(e,t,r,n){R.render(v(U_,{dataKeys:r,scrollEl:t,onChange:n,portalContainer:Ja(e)}),e)}function Eb(e){R.unmountComponentAtNode(e)}h();var kb=ge(xb()),ks=ge(_t()),dr=ge(require("obsidian"));var Ss="@",_s="@@";function V_(e){let t=[];return dr.Vault.recurseChildren(e.vault.getRoot(),r=>{r instanceof dr.TFolder&&t.push({value:r.path,label:r.path,selected:!1,disabled:!1})}),t}function z_(e,t){let r=[],n=t?e.vault.getAbstractFileByPath(t):null;return(!n||!(n instanceof dr.TFolder))&&(n=e.vault.getRoot()),dr.Vault.recurseChildren(n,i=>{i instanceof dr.TFile&&r.push({value:i.path,label:i.basename,selected:!1,disabled:!1})}),r}function Sb(e){let{templateFolder:t,templatesEnabled:r,templaterPlugin:n}=El(e),i=z_(e,t),a=V_(e),o="";return!r&&!n&&(o=H("Note: No template plugins are currently enabled.")),{templateFiles:i,vaultFolders:a,templateWarning:o}}function ld({choices:e,key:t,warningText:r,local:n,placeHolderStr:i,manager:a}){return o=>{o.controlEl.createEl("select",{},s=>{setTimeout(()=>{let u=e,[l,c]=a.getSetting(t,n);if(c){let p=e.findIndex(y=>y.value===c),m=e[p];u=(0,ks.default)(u,{$splice:[[p,1]],$unshift:[(0,ks.default)(m,{placeholder:{$set:!0},value:{$set:""},label:{$apply:y=>`${y} (${H("default")})`}})]})}else u=(0,ks.default)(u,{$unshift:[{placeholder:!0,value:"",label:i,selected:!1,disabled:!1}]});let d=new kb.default(s,{placeholder:!0,position:"bottom",searchPlaceholderValue:H("Search..."),searchEnabled:u.length>10,choices:u}).setChoiceByValue("");l&&typeof l=="string"&&d.setChoiceByValue(l);let f=p=>{let m=p.detail.value;m?a.applySettingsUpdate({[t]:{$set:m}}):a.applySettingsUpdate({$unset:[t]})};s.addEventListener("change",f),a.cleanupFns.push(()=>{d.destroy(),s.removeEventListener("change",f)})}),r&&o.descEl.createDiv({},u=>{u.createEl("strong",{text:r})})})}}var Db=/^\d+(?:\.\d+)?$/,Cb={[fn]:!0,"date-display-format":!0,"date-format":!0,"date-picker-week-start":!0,"date-time-display-format":!0,"date-trigger":!0,"hide-card-count":!0,"hide-date-display":!0,"hide-date-in-title":!0,"hide-tags-display":!0,"hide-tags-in-title":!0,"lane-width":!0,"link-date-to-daily-note":!0,"max-archive-size":!0,"metadata-keys":!0,"new-card-insertion-method":!0,"new-line-trigger":!0,"new-note-folder":!0,"new-note-template":!0,"prepend-archive-date":!0,"prepend-archive-format":!0,"prepend-archive-separator":!0,"show-checkboxes":!0,"show-relative-date":!0,"time-format":!0,"time-trigger":!0,"show-add-list":!0,"show-archive-all":!0,"show-view-as-markdown":!0,"show-board-settings":!0,"show-search":!0},cd=class{constructor(t,r,n){this.cleanupFns=[];this.applyDebounceTimer=0;this.app=t.app,this.plugin=t,this.config=r,this.settings=n}applySettingsUpdate(t){clearTimeout(this.applyDebounceTimer),this.applyDebounceTimer=window.setTimeout(()=>{this.settings=(0,_b.default)(this.settings,t),this.config.onSettingsChange(this.settings)},200)}getSetting(t,r){return r?[this.settings[t],this.plugin.settings[t]]:[this.settings[t],null]}constructUI(t,r,n){let{templateFiles:i,vaultFolders:a,templateWarning:o}=Sb(this.app);t.createEl("h3",{text:r}),n?t.createEl("p",{text:H("These settings will take precedence over the default Kanban board settings.")}):t.createEl("p",{text:H("Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.")}),new Ke.Setting(t).setName(H("New line trigger")).setDesc(H("Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.")).addDropdown(s=>{s.addOption("shift-enter",H("Shift + Enter")),s.addOption("enter",H("Enter"));let[u,l]=this.getSetting("new-line-trigger",n);s.setValue(u||l||"shift-enter"),s.onChange(c=>{this.applySettingsUpdate({"new-line-trigger":{$set:c}})})}),new Ke.Setting(t).setName(H("Prepend / append new cards")).setDesc(H("This setting controls whether new cards are added to the beginning or end of the list.")).addDropdown(s=>{s.addOption("prepend",H("Prepend")),s.addOption("prepend-compact",H("Prepend (compact)")),s.addOption("append",H("Append"));let[u,l]=this.getSetting("new-card-insertion-method",n);s.setValue(u||l||"append"),s.onChange(c=>{this.applySettingsUpdate({"new-card-insertion-method":{$set:c}})})}),new Ke.Setting(t).setName(H("Note template")).setDesc(H("This template will be used when creating new notes from Kanban cards.")).then(ld({choices:i,key:"new-note-template",warningText:o,local:n,placeHolderStr:H("No template"),manager:this})),new Ke.Setting(t).setName(H("Note folder")).setDesc(H("Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.")).then(ld({choices:a,key:"new-note-folder",local:n,placeHolderStr:H("Default folder"),manager:this})),new Ke.Setting(t).setName(H("Hide card counts in list titles")).setDesc(H("When toggled, card counts are hidden from the list title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-card-count",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-card-count":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-card-count",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-card-count"]})})})}),new Ke.Setting(t).setName(H("List width")).setDesc(H("Enter a number to set the list width in pixels.")).addText(s=>{let[u,l]=this.getSetting("lane-width",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"272"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Db.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"lane-width":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["lane-width"]})})}),new Ke.Setting(t).setName(H("Maximum number of archived cards")).setDesc(H("Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.")).addText(s=>{let[u,l]=this.getSetting("max-archive-size",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"-1"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Db.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"max-archive-size":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["max-archive-size"]})})}),new Ke.Setting(t).setName(H("Display card checkbox")).setDesc(H("When toggled, a checkbox will be displayed with each card")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-checkboxes",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-checkboxes":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-checkboxes",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-checkboxes"]})})})}),new Ke.Setting(t).setName(H("Hide tags in card titles")).setDesc(H("When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-in-title"]})})})}),new Ke.Setting(t).setName(H("Hide card display tags")).setDesc(H("When toggled, tags will not be displayed below the card title.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-display"]})})})}),t.createEl("h4",{text:H("Board Header Buttons")}),new Ke.Setting(t).setName(H("Add a list")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-add-list",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-add-list":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-add-list",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-add-list"]})})})}),new Ke.Setting(t).setName(H("Archive completed cards")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-archive-all",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-archive-all":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-archive-all",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-archive-all"]})})})}),new Ke.Setting(t).setName(H("Open as markdown")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-view-as-markdown",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-view-as-markdown":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-view-as-markdown",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-view-as-markdown"]})})})}),new Ke.Setting(t).setName(H("Open board settings")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-board-settings",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-board-settings":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-board-settings",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-board-settings"]})})})}),new Ke.Setting(t).setName(H("Search...")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-search",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-search":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-search",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-search"]})})})}),t.createEl("h4",{text:H("Date & Time")}),new Ke.Setting(t).setName(H("Date trigger")).setDesc(H("When this is typed, it will trigger the date selector")).addText(s=>{let[u,l]=this.getSetting("date-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||Ss),s.onChange(c=>{c?this.applySettingsUpdate({"date-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["date-trigger"]})})}),new Ke.Setting(t).setName(H("Time trigger")).setDesc(H("When this is typed, it will trigger the time selector")).addText(s=>{let[u,l]=this.getSetting("time-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||_s),s.onChange(c=>{c?this.applySettingsUpdate({"time-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["time-trigger"]})})}),new Ke.Setting(t).setName(H("Date format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(H("This format will be used when saving dates in markdown.")),f.createEl("br"),f.appendText(H("For more syntax, refer to")+" "),f.createEl("a",{text:H("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(H("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-format",n),d=jr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-format"]})})})}),new Ke.Setting(t).setName(H("Time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(H("For more syntax, refer to")+" "),f.createEl("a",{text:H("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(H("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("time-format",n),d=zi(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"time-format":{$set:f}}):this.applySettingsUpdate({$unset:["time-format"]})})})}),new Ke.Setting(t).setName(H("Date display format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(H("This format will be used when displaying dates in Kanban cards.")),f.createEl("br"),f.appendText(H("For more syntax, refer to")+" "),f.createEl("a",{text:H("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(H("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-display-format",n),d=jr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-display-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-display-format"]})})})}),new Ke.Setting(t).setName(H("Show relative date")).setDesc(H("When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-relative-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-relative-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-relative-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-relative-date"]})})})}),new Ke.Setting(t).setName(H("Hide card display dates")).setDesc(H("When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-display"]})})})}),new Ke.Setting(t).setName(H("Hide dates in card titles")).setDesc(H("When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-in-title"]})})})}),new Ke.Setting(t).setName(H("Link dates to daily notes")).setDesc(H("When toggled, dates will link to daily notes. Eg. [[2021-04-26]]")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("link-date-to-daily-note",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"link-date-to-daily-note":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("link-date-to-daily-note",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["link-date-to-daily-note"]})})})}),new Ke.Setting(t).setName(H("Add date and time to archived cards")).setDesc(H("When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("prepend-archive-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"prepend-archive-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(H("Reset to default")).onClick(()=>{let[,c]=this.getSetting("prepend-archive-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["prepend-archive-date"]})})})}),new Ke.Setting(t).setName(H("Archive date/time separator")).setDesc(H("This will be used to separate the archived date/time from the title")).addText(s=>{let[u,l]=this.getSetting("prepend-archive-separator",n);s.inputEl.placeholder=l?`${l} (default)`:"",s.inputEl.value=u||"",s.onChange(c=>{if(c){this.applySettingsUpdate({"prepend-archive-separator":{$set:c}});return}this.applySettingsUpdate({$unset:["prepend-archive-separator"]})})}),new Ke.Setting(t).setName(H("Archive date/time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(T=>{T.appendText(H("For more syntax, refer to")+" "),T.createEl("a",{text:H("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},D=>{D.setAttr("target","_blank")}),T.createEl("br"),T.appendText(H("Your current syntax looks like this")+": "),u.setSampleEl(T.createEl("b",{cls:"u-pop"})),T.createEl("br")}));let[l,c]=this.getSetting("prepend-archive-format",n),[d,f]=this.getSetting("date-format",n),p=d||f||jr(this.app),[m,y]=this.getSetting("time-format",n),b=m||y||zi(this.app),k=`${p} ${b}`;u.setPlaceholder(k),u.setDefaultFormat(k),(l||c)&&u.setValue(l||c),u.onChange(T=>{T?this.applySettingsUpdate({"prepend-archive-format":{$set:T}}):this.applySettingsUpdate({$unset:["prepend-archive-format"]})})})}),new Ke.Setting(t).setName(H("Calendar: first day of week")).setDesc(H("Override which day is used as the start of the week")).addDropdown(s=>{s.addOption("",H("default")),s.addOption("0",H("Sunday")),s.addOption("1",H("Monday")),s.addOption("2",H("Tuesday")),s.addOption("3",H("Wednesday")),s.addOption("4",H("Thursday")),s.addOption("5",H("Friday")),s.addOption("6",H("Saturday"));let[u,l]=this.getSetting("date-picker-week-start",n);s.setValue((u==null?void 0:u.toString())||(l==null?void 0:l.toString())||""),s.onChange(c=>{c?this.applySettingsUpdate({"date-picker-week-start":{$set:Number(c)}}):this.applySettingsUpdate({$unset:["date-picker-week-start"]})})}),t.createEl("br"),t.createEl("h4",{text:H("Linked Page Metadata")}),t.createEl("p",{cls:z("metadata-setting-desc"),text:H("Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.")}),new Ke.Setting(t).then(s=>{s.settingEl.addClass(z("draggable-setting-container"));let[u]=this.getSetting("metadata-keys",n),l=(u||[]).map(c=>({...Yo,id:ze(),data:c,win:Je(t)}));wb(s.settingEl,t,l,c=>this.applySettingsUpdate({"metadata-keys":{$set:c.map(d=>d.data)}})),this.cleanupFns.push(()=>{s.settingEl&&Eb(s.settingEl)})})}cleanUp(){this.cleanupFns.forEach(t=>t()),this.cleanupFns=[]}},Ds=class extends Ke.Modal{constructor(t,r,n){super(t.app);this.view=t,this.settingsManager=new cd(t.plugin,r,n)}onOpen(){let{contentEl:t,modalEl:r}=this;r.addClass(z("board-settings-modal")),this.settingsManager.constructUI(t,this.view.file.basename,!0)}onClose(){let{contentEl:t}=this;this.settingsManager.cleanUp(),t.empty()}},ud=class extends Ke.PluginSettingTab{constructor(t,r){super(t.app,t);this.plugin=t,this.settingsManager=new cd(t,r,t.settings)}display(){let{containerEl:t}=this;t.empty(),t.addClass(z("board-settings-modal")),this.settingsManager.constructUI(t,H("Kanban Plugin"),!1)}};var pn="kanban",xa="blocks",jn=class extends Tb.TextFileView{constructor(t,r){super(t);this.actionButtons={};this.plugin=r,this.emitter=gs(),this.emitter.on("hotkey",n=>{switch(n){case"daily-notes:goto-prev":{dm(this.app,this.file);break}case"daily-notes:goto-next":{um(this.app,this.file);break}}}),this.register(this.containerEl.onWindowMigrated(()=>{this.plugin.removeView(this),this.plugin.addView(this,this.data,this.isPrimary)}))}get isPrimary(){var t;return((t=this.plugin.getStateManager(this.file))==null?void 0:t.getAView())===this}get id(){var t;return`${this.leaf.id}:::${(t=this.file)==null?void 0:t.path}`}get isShiftPressed(){return this.plugin.isShiftPressed}setBoard(t,r=!0){this.plugin.stateManagers.get(this.file).setState(t,r)}getBoard(){return this.plugin.stateManagers.get(this.file).state}getViewType(){return pn}getIcon(){return xa}getDisplayText(){var t;return((t=this.file)==null?void 0:t.basename)||"Kanban"}getWindow(){return Je(this.containerEl)}async onLoadFile(t){try{return await super.onLoadFile(t)}catch(r){throw this.plugin.stateManagers.get(this.file).setError(r),r}}destroy(){this.plugin.removeView(this),Object.values(this.actionButtons).forEach(t=>t.remove()),this.actionButtons={}}async onClose(){this.destroy()}async onUnloadFile(t){return this.destroy(),await super.onUnloadFile(t)}handleRename(t,r){this.file.path===t&&this.plugin.handleViewFileRename(this,r)}requestSaveToDisk(t){this.data!==t&&this.isPrimary?(this.data=t,this.requestSave()):this.data=t}getViewData(){return this.data}setViewData(t,r){if(!fm(t)){this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.removeView(this),this.plugin.setMarkdownView(this.leaf,!1);return}this.plugin.addView(this,t,!r&&this.isPrimary)}getPortal(){let t=this.plugin.stateManagers.get(this.file);return v(yb,{stateManager:t,view:this})}onPaneMenu(t,r,n=!0){if(r!=="more-options"){super.onPaneMenu(t,r);return}t.addItem(i=>{i.setTitle(H("Open as markdown")).setIcon("document").setSection("pane").onClick(()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)})}).addItem(i=>{i.setTitle(H("Open board settings")).setIcon("gear").setSection("pane").onClick(()=>{let a=this.plugin.stateManagers.get(this.file),o=a.state;new Ds(this,{onSettingsChange:s=>{let u=(0,dd.default)(o,{data:{settings:{$set:s}}});a.setState(u)}},o.data.settings).open()})}).addItem(i=>{i.setTitle(H("Archive completed cards")).setIcon("sheets-in-box").setSection("pane").onClick(()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()})}),n&&super.onPaneMenu(t,r)}initHeaderButtons(){let t=this.plugin.getStateManager(this.file);if(!!t)if(t.getSetting("show-board-settings")&&!this.actionButtons["show-board-settings"]?this.actionButtons["show-board-settings"]=this.addAction("gear",H("Open board settings"),()=>{let r=this.plugin.stateManagers.get(this.file),n=r.state;new Ds(this,{onSettingsChange:i=>{let a=(0,dd.default)(n,{data:{settings:{$set:i}}});r.setState(a)}},n.data.settings).open()}):!t.getSetting("show-board-settings")&&this.actionButtons["show-board-settings"]&&(this.actionButtons["show-board-settings"].remove(),delete this.actionButtons["show-board-settings"]),t.getSetting("show-search")&&!this.actionButtons["show-search"]?this.actionButtons["show-search"]=this.addAction("search",H("Search..."),()=>{this.emitter.emit("hotkey","editor:open-search")}):!t.getSetting("show-search")&&this.actionButtons["show-search"]&&(this.actionButtons["show-search"].remove(),delete this.actionButtons["show-search"]),t.getSetting("show-view-as-markdown")&&!this.actionButtons["show-view-as-markdown"]?this.actionButtons["show-view-as-markdown"]=this.addAction("document",H("Open as markdown"),()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}):!t.getSetting("show-view-as-markdown")&&this.actionButtons["show-view-as-markdown"]&&(this.actionButtons["show-view-as-markdown"].remove(),delete this.actionButtons["show-view-as-markdown"]),t.getSetting("show-archive-all")&&!this.actionButtons["show-archive-all"]?this.actionButtons["show-archive-all"]=this.addAction("sheets-in-box",H("Archive completed cards"),()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()}):!t.getSetting("show-archive-all")&&this.actionButtons["show-archive-all"]&&(this.actionButtons["show-archive-all"].remove(),delete this.actionButtons["show-archive-all"]),t.getSetting("show-add-list")&&!this.actionButtons["show-add-list"]){let r=this.addAction("plus-with-circle",H("Add a list"),()=>{this.emitter.emit("showLaneForm",void 0)});r.addClass(z("ignore-click-outside")),this.actionButtons["show-add-list"]=r}else!t.getSetting("show-add-list")&&this.actionButtons["show-add-list"]&&(this.actionButtons["show-add-list"].remove(),delete this.actionButtons["show-add-list"])}clear(){}};h();var ki=ge(_t()),Ww=ge(require("obsidian"));h();h();var fd={};Ci(fd,{JsonPatchError:()=>it,_areEquals:()=>_a,applyOperation:()=>Lr,applyPatch:()=>Ls,applyReducer:()=>J_,deepClone:()=>q_,getValueByPointer:()=>As,validate:()=>Ib,validator:()=>Ps});h();h();var W_=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)i.hasOwnProperty(a)&&(n[a]=i[a])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),j_=Object.prototype.hasOwnProperty;function Cs(e,t){return j_.call(e,t)}function Ts(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&n<=57){t++;continue}return!1}return!0}function In(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function ka(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Is(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&u[c-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&f===void 0&&(l[p]===void 0?f=u.slice(0,c).join("/"):c==d-1&&(f=t.path),f!==void 0&&m(t,0,e,f)),c++,Array.isArray(l)){if(p==="-")p=l.length;else{if(r&&!Ms(p))throw new it("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a,t,e);Ms(p)&&(p=~~p)}if(c>=d){if(r&&t.op==="add"&&p>l.length)throw new it("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a,t,e);var o=Y_[t.op].call(t,l,p,e);if(o.test===!1)throw new it("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}}else if(c>=d){var o=gi[t.op].call(t,l,p,e);if(o.test===!1)throw new it("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}if(l=l[p],r&&c0)throw new it('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new it("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new it("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&Is(e.value))throw new it("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var i=e.path.split("/").length,a=n.split("/").length;if(i!==a+1&&i!==a)throw new it("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==n)throw new it("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var o={op:"_get",path:e.from,value:void 0},s=Ib([o],r);if(s&&s.name==="OPERATION_PATH_UNRESOLVABLE")throw new it("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new it("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function Ib(e,t,r){try{if(!Array.isArray(e))throw new it("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)Ls(It(t),It(e),r||!0);else{r=r||Ps;for(var n=0;ngd,generate:()=>hd,observe:()=>nD,unobserve:()=>tD});h();var pd=new WeakMap,G_=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),Q_=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function X_(e){return pd.get(e)}function Z_(e,t){return e.observers.get(t)}function eD(e,t){e.observers.delete(t.callback)}function tD(e,t){t.unobserve()}function nD(e,t){var r=[],n,i=X_(e);if(!i)i=new G_(e),pd.set(e,i);else{var a=Z_(i,t);n=a&&a.observer}if(n)return n;if(n={},i.value=It(e),t){n.callback=t,n.next=null;var o=function(){hd(n)},s=function(){clearTimeout(n.next),n.next=setTimeout(o)};typeof window!="undefined"&&(window.addEventListener("mouseup",s),window.addEventListener("keyup",s),window.addEventListener("mousedown",s),window.addEventListener("keydown",s),window.addEventListener("change",s))}return n.patches=r,n.object=e,n.unobserve=function(){hd(n),clearTimeout(n.next),eD(i,n),typeof window!="undefined"&&(window.removeEventListener("mouseup",s),window.removeEventListener("keyup",s),window.removeEventListener("mousedown",s),window.removeEventListener("keydown",s),window.removeEventListener("change",s))},i.observers.set(t,new Q_(t,n)),n}function hd(e,t){t===void 0&&(t=!1);var r=pd.get(e.object);md(r.value,e.object,e.patches,"",t),e.patches.length&&Ls(r.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function md(e,t,r,n,i){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var a=Ts(t),o=Ts(e),s=!1,u=!1,l=o.length-1;l>=0;l--){var c=o[l],d=e[c];if(Cs(t,c)&&!(t[c]===void 0&&d!==void 0&&Array.isArray(t)===!1)){var f=t[c];typeof d=="object"&&d!=null&&typeof f=="object"&&f!=null&&Array.isArray(d)===Array.isArray(f)?md(d,f,r,n+"/"+In(c),i):d!==f&&(s=!0,i&&r.push({op:"test",path:n+"/"+In(c),value:It(d)}),r.push({op:"replace",path:n+"/"+In(c),value:It(f)}))}else Array.isArray(e)===Array.isArray(t)?(i&&r.push({op:"test",path:n+"/"+In(c),value:It(d)}),r.push({op:"remove",path:n+"/"+In(c)}),u=!0):(i&&r.push({op:"test",path:n,value:e}),r.push({op:"replace",path:n,value:t}),s=!0)}if(!(!u&&a.length==o.length))for(var l=0;l":""))+")"})),f;function f(){let p=[],m,y,b;if((!t||i(s,u,l[l.length-1]||null))&&(p=sD(r(s,l)),p[0]===bd))return p;if(s.children&&p[0]!==Rb)for(y=(n?s.children.length:-1)+a,b=l.concat(s);y>-1&&y!0){for(let i=t+1,a=e.length;i{try{await Ub(e,r),await Promise.all(r.children.map(n=>Ca(e,n)))}catch(n){throw e.setError(n),n}}))}catch(r){throw e.setError(r),r}return t}function lD(e){return(e.op==="add"||e.op==="replace")&&["/title","/titleRaw","/dateStr","/timeStr",/\d$/,/\/fileAccessor\/.+$/].some(t=>typeof t=="string"?e.path.endsWith(t):t.test(e.path))}async function zb(e,t,r){let n={},i=r.reduce((a,o)=>{if(!lD(o))return a;let s=o.path.split("/").reduce((l,c)=>(/\d+/.test(c)&&l.push(Number(c)),l),[]),u=s.join(",");return n[u]||(n[u]=!0,a.push(s)),a},[]);try{await Promise.all(i.map(a=>{let o=ft(t,a);if(o.type===Ze.Lane)return Ub(e,o);if(o.type===Ze.Item)return Ca(e,o)}))}catch(a){throw e.setError(a),a}return t}h();function Ns(e,t){let r=t.end-t.start;return e.slice(0,t.start)+"\0".repeat(r)+e.slice(t.end)}function Wb(e){return e.replace(/\s*\0+\s*/g," ").trim()}function Ta(e){return e.trim().replace(/(\r\n|\n)/g,"
    ")}function Ma(e){return e.replace(/
    /g,` -`).trim()}h();h();h();h();h();h();function At(e,t,r,n){let i=e.length,a=0,o;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,r=r>0?r:0,n.length<1e4)o=Array.from(n),o.unshift(t,r),[].splice.apply(e,o);else for(r&&[].splice.apply(e,[t,r]);a0?(At(e,e.length,0,t),e):t}var jb={}.hasOwnProperty;function qb(e){let t={},r=-1;for(;++ro))return;let N=t.events.length,U=N,W,te;for(;U--;)if(t.events[U][0]==="exit"&&t.events[U][1].type==="chunkFlow"){if(W){te=t.events[U][1].end;break}W=!0}for(k(n),C=N;CD;){let B=r[A];t.containerState=B[1],B[0].exit.call(t,e)}r.length=D}function T(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function pD(e,t,r){return Se(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}h();h();h();h();function Sd(e){if(e===null||Qe(e)||Qb(e))return 1;if(Xb(e))return 2}h();function vi(e,t,r){let n=[],i=-1;for(;++i1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;let d=Object.assign({},e[n][1].end),f=Object.assign({},e[r][1].start);nw(d,-u),nw(f,u),o={type:u>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},s={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[r][1].start),end:f},a={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[r][1].start)},i={type:u>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},s.end)},e[n][1].end=Object.assign({},o.start),e[r][1].start=Object.assign({},s.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=zt(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=zt(l,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),l=zt(l,vi(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),l=zt(l,[["exit",a,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[r][1].end.offset-e[r][1].start.offset?(c=2,l=zt(l,[["enter",e[r][1],t],["exit",e[r][1],t]])):c=0,At(e,n-1,r-n+3,l),r=n+l.length-c-2;break}}for(r=-1;++r",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xCD",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` -`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacute:"\xD3",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslash:"\xD8",Otilde:"\xD5",Otimes:"\u2A37",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acirc:"\xE2",acute:"\xB4",acy:"\u0430",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atilde:"\xE3",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedil:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\u2256",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",eth:"\xF0",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xED",ic:"\u2063",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslash:"\xF8",osol:"\u2298",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",ouml:"\xF6",ovbar:"\u233D",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thorn:"\xFE",tilde:"\u02DC",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"};var xD={}.hasOwnProperty;function yi(e){return xD.call(Dd,e)?Dd[e]:!1}var Bs={name:"characterReference",tokenize:kD};function kD(e,t,r){let n=this,i=0,a,o;return s;function s(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),u}function u(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),a=31,o=Wt,c(d))}function l(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,o=Jb,c):(e.enter("characterReferenceValue"),a=7,o=Ia,c(d))}function c(d){let f;return d===59&&i?(f=e.exit("characterReferenceValue"),o===Wt&&!yi(n.sliceSerialize(f))?r(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)):o(d)&&i++=4?o(l):r(l)}function o(l){return l===null?u(l):ce(l)?e.attempt(_D,o,u)(l):(e.enter("codeFlowValue"),s(l))}function s(l){return l===null||ce(l)?(e.exit("codeFlowValue"),o(l)):(e.consume(l),s)}function u(l){return e.exit("codeIndented"),t(l)}}function CD(e,t,r){let n=this;return i;function i(o){return n.parser.lazy[n.now().line]?r(o):ce(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Se(e,a,"linePrefix",4+1)(o)}function a(o){let s=n.events[n.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(o):ce(o)?i(o):r(o)}}h();var Cd={name:"codeText",tokenize:ID,resolve:TD,previous:MD};function TD(e){let t=e.length-4,r=3,n,i;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=r;++n=4?t(o):e.interrupt(n.parser.constructs.flow,r,t)(o)}}h();h();function Us(e,t,r,n,i,a,o,s,u){let l=u||Number.POSITIVE_INFINITY,c=0;return d;function d(k){return k===60?(e.enter(n),e.enter(i),e.enter(a),e.consume(k),e.exit(a),f):k===null||k===41||Aa(k)?r(k):(e.enter(n),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),y(k))}function f(k){return k===62?(e.enter(a),e.consume(k),e.exit(a),e.exit(i),e.exit(n),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(k))}function p(k){return k===62?(e.exit("chunkString"),e.exit(s),f(k)):k===null||k===60||ce(k)?r(k):(e.consume(k),k===92?m:p)}function m(k){return k===60||k===62||k===92?(e.consume(k),p):p(k)}function y(k){return k===40?++c>l?r(k):(e.consume(k),y):k===41?c--?(e.consume(k),y):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(k)):k===null||Qe(k)?c?r(k):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(k)):Aa(k)?r(k):(e.consume(k),k===92?b:y)}function b(k){return k===40||k===41||k===92?(e.consume(k),y):y(k)}}h();function Vs(e,t,r,n,i,a){let o=this,s=0,u;return l;function l(p){return e.enter(n),e.enter(i),e.consume(p),e.exit(i),e.enter(a),c}function c(p){return p===null||p===91||p===93&&!u||p===94&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs||s>999?r(p):p===93?(e.exit(a),e.enter(i),e.consume(p),e.exit(i),e.exit(n),t):ce(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||ce(p)||s++>999?(e.exit("chunkString"),c(p)):(e.consume(p),u=u||!He(p),p===92?f:d)}function f(p){return p===91||p===92||p===93?(e.consume(p),s++,d):d(p)}}h();function zs(e,t,r,n,i,a){let o;return s;function s(f){return e.enter(n),e.enter(i),e.consume(f),e.exit(i),o=f===40?41:f,u}function u(f){return f===o?(e.enter(i),e.consume(f),e.exit(i),e.exit(n),t):(e.enter(a),l(f))}function l(f){return f===o?(e.exit(a),u(o)):f===null?r(f):ce(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Se(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(f){return f===o||f===null||ce(f)?(e.exit("chunkString"),l(f)):(e.consume(f),f===92?d:c)}function d(f){return f===o||f===92?(e.consume(f),c):c(f)}}h();function Pr(e,t){let r;return n;function n(i){return ce(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),r=!0,n):He(i)?Se(e,n,r?"linePrefix":"lineSuffix")(i):t(i)}}h();function qn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var Md={name:"definition",tokenize:RD},ND={tokenize:HD,partial:!0};function RD(e,t,r){let n=this,i;return a;function a(u){return e.enter("definition"),Vs.call(n,e,o,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}function o(u){return i=qn(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),u===58?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),Pr(e,Us(e,e.attempt(ND,Se(e,s,"whitespace"),Se(e,s,"whitespace")),r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):r(u)}function s(u){return u===null||ce(u)?(e.exit("definition"),n.parser.defined.includes(i)||n.parser.defined.push(i),t(u)):r(u)}}function HD(e,t,r){return n;function n(o){return Qe(o)?Pr(e,i)(o):r(o)}function i(o){return o===34||o===39||o===40?zs(e,Se(e,a,"whitespace"),r,"definitionTitle","definitionTitleMarker","definitionTitleString")(o):r(o)}function a(o){return o===null||ce(o)?t(o):r(o)}}h();var Id={name:"hardBreakEscape",tokenize:BD};function BD(e,t,r){return n;function n(a){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(a),i}function i(a){return ce(a)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(a)):r(a)}}h();var Ad={name:"headingAtx",tokenize:$D,resolve:KD};function KD(e,t){let r=e.length-2,n=3,i,a;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(i={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},a={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},At(e,n,r-n+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function $D(e,t,r){let n=this,i=0;return a;function a(c){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&i++<6?(e.consume(c),o):c===null||Qe(c)?(e.exit("atxHeadingSequence"),n.interrupt?t(c):s(c)):r(c)}function s(c){return c===35?(e.enter("atxHeadingSequence"),u(c)):c===null||ce(c)?(e.exit("atxHeading"),t(c)):He(c)?Se(e,s,"whitespace")(c):(e.enter("atxHeadingText"),l(c))}function u(c){return c===35?(e.consume(c),u):(e.exit("atxHeadingSequence"),s(c))}function l(c){return c===null||c===35||Qe(c)?(e.exit("atxHeadingText"),s(c)):(e.consume(c),l)}}h();h();var rw=["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","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Ld=["pre","script","style","textarea"];var Pd={name:"htmlFlow",tokenize:zD,resolveTo:VD,concrete:!0},UD={tokenize:WD,partial:!0};function VD(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zD(e,t,r){let n=this,i,a,o,s,u;return l;function l(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),c}function c(P){return P===33?(e.consume(P),d):P===47?(e.consume(P),m):P===63?(e.consume(P),i=3,n.interrupt?t:be):sn(P)?(e.consume(P),o=String.fromCharCode(P),a=!0,y):r(P)}function d(P){return P===45?(e.consume(P),i=2,f):P===91?(e.consume(P),i=5,o="CDATA[",s=0,p):sn(P)?(e.consume(P),i=4,n.interrupt?t:be):r(P)}function f(P){return P===45?(e.consume(P),n.interrupt?t:be):r(P)}function p(P){return P===o.charCodeAt(s++)?(e.consume(P),s===o.length?n.interrupt?t:Z:p):r(P)}function m(P){return sn(P)?(e.consume(P),o=String.fromCharCode(P),y):r(P)}function y(P){return P===null||P===47||P===62||Qe(P)?P!==47&&a&&Ld.includes(o.toLowerCase())?(i=1,n.interrupt?t(P):Z(P)):rw.includes(o.toLowerCase())?(i=6,P===47?(e.consume(P),b):n.interrupt?t(P):Z(P)):(i=7,n.interrupt&&!n.parser.lazy[n.now().line]?r(P):a?T(P):k(P)):P===45||Wt(P)?(e.consume(P),o+=String.fromCharCode(P),y):r(P)}function b(P){return P===62?(e.consume(P),n.interrupt?t:Z):r(P)}function k(P){return He(P)?(e.consume(P),k):W(P)}function T(P){return P===47?(e.consume(P),W):P===58||P===95||sn(P)?(e.consume(P),D):He(P)?(e.consume(P),T):W(P)}function D(P){return P===45||P===46||P===58||P===95||Wt(P)?(e.consume(P),D):A(P)}function A(P){return P===61?(e.consume(P),B):He(P)?(e.consume(P),A):T(P)}function B(P){return P===null||P===60||P===61||P===62||P===96?r(P):P===34||P===39?(e.consume(P),u=P,C):He(P)?(e.consume(P),B):(u=null,N(P))}function C(P){return P===null||ce(P)?r(P):P===u?(e.consume(P),U):(e.consume(P),C)}function N(P){return P===null||P===34||P===39||P===60||P===61||P===62||P===96||Qe(P)?A(P):(e.consume(P),N)}function U(P){return P===47||P===62||He(P)?T(P):r(P)}function W(P){return P===62?(e.consume(P),te):r(P)}function te(P){return He(P)?(e.consume(P),te):P===null||ce(P)?Z(P):r(P)}function Z(P){return P===45&&i===2?(e.consume(P),re):P===60&&i===1?(e.consume(P),pe):P===62&&i===4?(e.consume(P),Te):P===63&&i===3?(e.consume(P),be):P===93&&i===5?(e.consume(P),ve):ce(P)&&(i===6||i===7)?e.check(UD,Te,le)(P):P===null||ce(P)?le(P):(e.consume(P),Z)}function le(P){return e.exit("htmlFlowData"),X(P)}function X(P){return P===null?L(P):ce(P)?e.attempt({tokenize:G,partial:!0},X,L)(P):(e.enter("htmlFlowData"),Z(P))}function G(P,ct,Ge){return V;function V(q){return P.enter("lineEnding"),P.consume(q),P.exit("lineEnding"),j}function j(q){return n.parser.lazy[n.now().line]?Ge(q):ct(q)}}function re(P){return P===45?(e.consume(P),be):Z(P)}function pe(P){return P===47?(e.consume(P),o="",he):Z(P)}function he(P){return P===62&&Ld.includes(o.toLowerCase())?(e.consume(P),Te):sn(P)&&o.length<8?(e.consume(P),o+=String.fromCharCode(P),he):Z(P)}function ve(P){return P===93?(e.consume(P),be):Z(P)}function be(P){return P===62?(e.consume(P),Te):P===45&&i===2?(e.consume(P),be):Z(P)}function Te(P){return P===null||ce(P)?(e.exit("htmlFlowData"),L(P)):(e.consume(P),Te)}function L(P){return e.exit("htmlFlow"),t(P)}}function WD(e,t,r){return n;function n(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(pr,t,r)}}h();var Fd={name:"htmlText",tokenize:jD};function jD(e,t,r){let n=this,i,a,o,s;return u;function u(L){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(L),l}function l(L){return L===33?(e.consume(L),c):L===47?(e.consume(L),N):L===63?(e.consume(L),B):sn(L)?(e.consume(L),te):r(L)}function c(L){return L===45?(e.consume(L),d):L===91?(e.consume(L),a="CDATA[",o=0,b):sn(L)?(e.consume(L),A):r(L)}function d(L){return L===45?(e.consume(L),f):r(L)}function f(L){return L===null||L===62?r(L):L===45?(e.consume(L),p):m(L)}function p(L){return L===null||L===62?r(L):m(L)}function m(L){return L===null?r(L):L===45?(e.consume(L),y):ce(L)?(s=m,ve(L)):(e.consume(L),m)}function y(L){return L===45?(e.consume(L),Te):m(L)}function b(L){return L===a.charCodeAt(o++)?(e.consume(L),o===a.length?k:b):r(L)}function k(L){return L===null?r(L):L===93?(e.consume(L),T):ce(L)?(s=k,ve(L)):(e.consume(L),k)}function T(L){return L===93?(e.consume(L),D):k(L)}function D(L){return L===62?Te(L):L===93?(e.consume(L),D):k(L)}function A(L){return L===null||L===62?Te(L):ce(L)?(s=A,ve(L)):(e.consume(L),A)}function B(L){return L===null?r(L):L===63?(e.consume(L),C):ce(L)?(s=B,ve(L)):(e.consume(L),B)}function C(L){return L===62?Te(L):B(L)}function N(L){return sn(L)?(e.consume(L),U):r(L)}function U(L){return L===45||Wt(L)?(e.consume(L),U):W(L)}function W(L){return ce(L)?(s=W,ve(L)):He(L)?(e.consume(L),W):Te(L)}function te(L){return L===45||Wt(L)?(e.consume(L),te):L===47||L===62||Qe(L)?Z(L):r(L)}function Z(L){return L===47?(e.consume(L),Te):L===58||L===95||sn(L)?(e.consume(L),le):ce(L)?(s=Z,ve(L)):He(L)?(e.consume(L),Z):Te(L)}function le(L){return L===45||L===46||L===58||L===95||Wt(L)?(e.consume(L),le):X(L)}function X(L){return L===61?(e.consume(L),G):ce(L)?(s=X,ve(L)):He(L)?(e.consume(L),X):Z(L)}function G(L){return L===null||L===60||L===61||L===62||L===96?r(L):L===34||L===39?(e.consume(L),i=L,re):ce(L)?(s=G,ve(L)):He(L)?(e.consume(L),G):(e.consume(L),i=void 0,he)}function re(L){return L===i?(e.consume(L),pe):L===null?r(L):ce(L)?(s=re,ve(L)):(e.consume(L),re)}function pe(L){return L===62||L===47||Qe(L)?Z(L):r(L)}function he(L){return L===null||L===34||L===39||L===60||L===61||L===96?r(L):L===62||Qe(L)?Z(L):(e.consume(L),he)}function ve(L){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),Se(e,be,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function be(L){return e.enter("htmlTextData"),s(L)}function Te(L){return L===62?(e.consume(L),e.exit("htmlTextData"),e.exit("htmlText"),t):r(L)}}h();var Fr={name:"labelEnd",tokenize:XD,resolveTo:QD,resolveAll:GD},qD={tokenize:ZD},YD={tokenize:eC},JD={tokenize:tC};function GD(e){let t=-1,r;for(;++t-1&&(o[0]=o[0].slice(n)),a>0&&o.push(e[i].slice(0,a))),o}function yC(e,t){let r=-1,n=[],i;for(;++rd&&(r=d);let p=r-f,m=c.getMaxVerticalScroll(),v=c.getVerticalScroll();n>m&&(n=m);let b=n-v,k=Math.abs(Math.round(p/1e3*a.speed)),T=Math.abs(Math.round(b/1e3*a.speed)),D=k>T?k:T;return Da.maxDuration&&(D=a.maxDuration),new Promise((I,H)=>{p===0&&b===0&&I(!0),zn.remove(c.element,!0);let C,F=()=>{le(),cancelAnimationFrame(C),I(!1)};zn.add(c.element,F);let U=re=>re.preventDefault(),z=a.cancelOnUserAction?F:U,ee=a.cancelOnUserAction?{passive:!0}:{passive:!1},Z=["wheel","touchstart","keydown","mousedown"],le=()=>{Z.forEach(re=>{c.element.removeEventListener(re,z,ee)})};Z.forEach(re=>{c.element.addEventListener(re,z,ee)});let X=Date.now(),G=()=>{var re=Date.now()-X,pe=re/D;let he=Math.round(f+p*a.easing(pe)),ge=Math.round(v+b*a.easing(pe));re{this.activeScroll.size===0&&(this.scrollState=_l(this.scrollEl),this.handleEntityRegistration())};this.onDragEnd=()=>{this.activeScroll.clear()};this.handleBeginDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||(this.activeScroll.set(t,r),this.handleDragScroll())};this.handleUpdateDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||this.activeScroll.set(t,r)};this.handleEndDragScroll=({scrollEntitySide:t})=>{this.activeScroll.delete(t)};this.dndManager=t,this.instanceId=Ve(),this.scopeId=r,this.triggerTypes=n,this.scrollState=tn,this.parent=i,this.activeScroll=new Map,this.pollForNodes(a)}pollForNodes(t){!t()||this.parent&&!this.parent.observerHandlers?this.dndManager.win.requestAnimationFrame(()=>this.pollForNodes(t)):this.initNodes(t())}initNodes(t){this.scrollEl=t,this.scrollEl.dataset.hitboxid=this.instanceId,this.scrollEl.dataset.scrollid=this.instanceId,this.top=this.createScrollEntity("top"),this.right=this.createScrollEntity("right"),this.bottom=this.createScrollEntity("bottom"),this.left=this.createScrollEntity("left"),this.bindScrollHandlers(),this.observerHandlers=new Map,this.observer=new IntersectionObserver(r=>{r.forEach(n=>{var a;let i=(a=n.target.dataset)==null?void 0:a.hitboxid;if(i&&this.observerHandlers.has(i)){let o=this.observerHandlers.get(i);o&&o(n)}})},{root:t,threshold:.1}),this.scrollEl.addEventListener("scroll",this.onScroll,{passive:!0,capture:!1}),this.dndManager.emitter.on("scrollResize",this.onScroll),this.scrollEl.win.setTimeout(()=>{this.onScroll()}),this.dndManager.observeResize(this.scrollEl),this.parent?this.parent.registerObserverHandler(this.instanceId,this.scrollEl,r=>{r.isIntersecting?this.handleEntityRegistration():this.handleEntityUnregistration()}):this.handleEntityRegistration()}destroy(){var t;this.handleEntityUnregistration(),this.observer.disconnect(),this.unbindScrollHandlers(),this.scrollEl.removeEventListener("scroll",this.onScroll),this.dndManager.emitter.off("scrollResize",this.onScroll),(t=this.parent)==null||t.unregisterObserverHandler(this.instanceId,this.scrollEl),this.dndManager.unobserveResize(this.scrollEl)}handleEntityRegistration(){fs.forEach(t=>{let r=Ze(this.scrollEl),n=this.getId(t),i=this.dndManager.scrollEntities.has(n),a=this.isDoneScrolling(t);!a&&!i?this.dndManager.registerScrollEntity(n,this[t],r):a&&i&&this.dndManager.unregisterScrollEntity(n,r)})}handleEntityUnregistration(){fs.forEach(t=>{let r=Ze(this.scrollEl),n=this.getId(t);this.dndManager.unregisterScrollEntity(n,r)})}registerObserverHandler(t,r,n){this.observerHandlers.set(t,n),this.observer.observe(r)}unregisterObserverHandler(t,r){this.observerHandlers.delete(t),this.observer.unobserve(r)}bindScrollHandlers(){fs.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.on("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.on("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.on("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.on("dragEnd",this.onDragEnd)})}unbindScrollHandlers(){fs.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.off("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.off("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.off("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.off("dragEnd",this.onDragEnd)})}isDoneScrolling(t){switch(t){case"top":return this.scrollState.y===0;case"right":return this.scrollState.x===this.scrollState.maxX;case"bottom":return this.scrollState.y===this.scrollState.maxY;case"left":return this.scrollState.x===0}}handleDragScroll(){this.activeScroll.size!==0&&this.scrollEl.win.requestAnimationFrame(()=>{let t={left:0,top:0};this.activeScroll.forEach((r,n)=>{if(this.isDoneScrolling(n))return this.activeScroll.delete(n);let i=["left","right"].includes(n)?"left":"top",a=["right","bottom"].includes(n);t[i]=a?Math.max(ds-ds*r/35,0):Math.min(-ds+ds*r/35,0)}),this.scrollEl.scrollBy(t),this.scrollState=_l(this.scrollEl),this.handleEntityRegistration(),this.handleDragScroll()})}getId(t){return`${this.instanceId}-${t}`}getPath(t){var r,n,i,a;switch(t){case"right":return[...((r=this.parent)==null?void 0:r.getPath())||[],1];case"bottom":return[...((n=this.parent)==null?void 0:n.getPath())||[],2];case"left":return[...((i=this.parent)==null?void 0:i.getPath())||[],3]}return[...((a=this.parent)==null?void 0:a.getPath())||[],0]}getScrollShift(){var r,n,i;let t=(r=this.parent)==null?void 0:r.getScrollShift();return{x:Qe((n=this.parent)==null?void 0:n.scrollState.x)+Qe(t==null?void 0:t.x),y:Qe((i=this.parent)==null?void 0:i.scrollState.y)+Qe(t==null?void 0:t.y)}}createScrollEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:r.getId(t),initial:kl(this.scrollEl.getBoundingClientRect(),((n=this.parent)==null?void 0:n.scrollState)||tn,((i=this.parent)==null?void 0:i.getScrollShift())||_n,t),getParentScrollState(){var a;return((a=r.parent)==null?void 0:a.scrollState)||tn},getParentScrollShift(){var a;return((a=r.parent)==null?void 0:a.getScrollShift())||_n},recalcInitial(){var a,o;this.initial=kl(r.scrollEl.getBoundingClientRect(),((a=r.parent)==null?void 0:a.scrollState)||tn,((o=r.parent)==null?void 0:o.getScrollShift())||_n,t)},getHitbox(){return io(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath(t)},getData(){return{id:r.getId(t),type:y_,side:t,accepts:r.triggerTypes||[],scrollContainer:r.scrollEl,win:Ze(r.scrollEl)}}}}};function Tv({scrollRef:e,triggerTypes:t,children:r}){let n=R.useContext(wt),i=R.useContext(tr),a=R.useContext(qi),o=R.useRef(),s=R.useMemo(()=>{if(n){o.current&&o.current.destroy();let u=new Qu(n,i,t||[],a,()=>e.current);return o.current=u,u}return null},[n,i,e,t,a]);return R.useEffect(()=>()=>{var u;return(u=o.current)==null?void 0:u.destroy()},[]),s?y(qi.Provider,{value:s},r):null}h();function Mv({children:e}){let t=R.useMemo(()=>new ji,[]);return y(Yi.Provider,{value:t},e)}function Iv(e,t){let r=R.useContext(tr),n=R.useRef(null),i=R.useContext(Yi),a=o=>{n.current=o,n.current&&o.win.requestAnimationFrame(()=>{let s=i.getScrollState(e);s&&(s.x!==0||s.y!==0)&&(n.current.scrollLeft=s.x,n.current.scrollTop=s.y)})};return R.useEffect(()=>{let o=n.current;if(!o)return;let s=jo(o.win,u=>{let l=u.target;i.setScrollState(r,e,{x:l.scrollLeft,y:l.scrollTop})});return o.addEventListener("scroll",s),()=>{o.removeEventListener("scroll",s)}},[i,e,t]),{setRef:a,scrollRef:n}}function ps({className:e,children:t,triggerTypes:r,isStatic:n,id:i,index:a}){let{setRef:o,scrollRef:s}=Iv(i,a);return y("div",{ref:o,className:pt([e,V("scroll-container")])},n?t:y(Tv,{scrollRef:s,triggerTypes:r},t))}h();h();var Xu={width:0,height:0},v_=100,Zu=class{constructor(t,r,n){this.hitboxDimensions=Xu;this.handleDragStart=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n})=>{let i=t==null?void 0:t.entityId,a=i?this.sortables.has(i):null;!t||!a||!n||(this.setSortState(!0),this.hitboxDimensions=Dl(n,r),this.activatePlaceholder(this.hitboxDimensions,rn.none),this.sortables.forEach(([o,s,u])=>{let l=Wi(t.getPath(),o.getPath()),c=o.entityId;if(l===en.Self)return this.hidden.add(c),this.hideDraggingEntity(u);l===en.After&&(this.shifted.has(c)||this.shifted.add(c),this.shiftEl(s,rn.none,this.hitboxDimensions))}))};this.dragEndTimeout=0;this.handleDragEnd=({primaryIntersection:t,dragPosition:r,dragOriginHitbox:n,dragEntity:i})=>{if(!this.isSorting||!r||!n||!i){if(!t&&i&&this.sortables.has(i.entityId))return this.resetSelf({maintainHidden:!1});if(t&&i){let s=(t==null?void 0:t.getHitbox())||n,u=ui({position:r,destination:{x:s[0],y:s[1]}});return this.dndManager.win.setTimeout(()=>{this.resetSelf({maintainHidden:!1})},u)}return this.resetSelf({maintainHidden:!0})}this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEndTimeout);let a=(t==null?void 0:t.getHitbox())||n,o=i.scopeId==="htmldnd"?0:ui({position:r,destination:{x:a[0],y:a[1]}});this.dragEndTimeout=this.dndManager.win.setTimeout(()=>{let s=i.entityId.split(":::").pop(),u=t==null?void 0:t.entityId.split(":::").pop();t&&this.sortables.has(t.entityId)&&u!==s&&this.dndManager.onDrop(i,t),this.resetSelf({maintainHidden:!1,shiftTransition:rn.none,placeholderTransition:rn.none})},o),this.hitboxDimensions=Xu};this.dragEnterTimeout=0;this.handleDragEnter=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n,primaryIntersection:i})=>{let a=i==null?void 0:i.entityId,o=a?this.sortables.has(a):null;if(!t||!i||!o||!n){!o&&this.isSorting&&this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0});return}t.entityId!==i.entityId&&(this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dragEnterTimeout=this.dndManager.win.setTimeout(()=>{this.setSortState(!0),this.hitboxDimensions=Dl(n,r),this.activatePlaceholder(this.hitboxDimensions,rn.placeholder),this.sortables.forEach(([s,u])=>{let l=Wi(i.getPath(),s.getPath()),c=s.entityId;!this.hidden.has(c)&&(l===en.Self||l===en.After)?this.shifted.has(c)||(this.shifted.add(c),this.shiftEl(u,rn.outOfTheWay,this.hitboxDimensions)):this.shifted.has(c)&&(this.shifted.delete(c),this.resetEl(u))})},10))};this.dragLeaveTimeout=0;this.handleDragLeave=()=>{!this.isSorting||(this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dragLeaveTimeout=this.dndManager.win.setTimeout(()=>{this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0})},v_),this.hitboxDimensions=Xu)};this.instanceId=Ve(),this.dndManager=t,this.sortables=new Map,this.shifted=new Set,this.hidden=new Set,this.isSorting=!1,this.axis=r,this.placeholder=null,this.sortListeners=n?[n]:[],t.dragManager.emitter.on("dragStart",this.handleDragStart),t.dragManager.emitter.on("dragEnd",this.handleDragEnd),t.dragManager.emitter.on("dragEnter",this.handleDragEnter),t.dragManager.emitter.on("dragLeave",this.handleDragLeave)}destroy(){this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEndTimeout),this.dndManager.dragManager.emitter.off("dragStart",this.handleDragStart),this.dndManager.dragManager.emitter.off("dragEnd",this.handleDragEnd),this.dndManager.dragManager.emitter.off("dragEnter",this.handleDragEnter),this.dndManager.dragManager.emitter.off("dragLeave",this.handleDragLeave)}registerSortable(t,r,n,i){let a=r.getData().type==="placeholder";this.sortables.set(t,[r,n,i]),a?(this.placeholder=[r,n,i],i.dataset.axis=this.axis,En(i,"transition",rn.none)):En(n,"transition",rn.none)}unregisterSortable(t){this.sortables.delete(t)}resetSelf({maintainHidden:t,maintainPlaceholder:r,shiftTransition:n,placeholderTransition:i}){this.isSorting&&this.setSortState(!1),this.isPlaceholderActive&&!r&&this.deactivatePlaceholder(i),this.shifted.size>0&&(this.shifted.forEach(a=>{if(this.sortables.has(a)){let[,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.shifted.clear()),!t&&this.hidden.size>0&&(this.hidden.forEach(a=>{if(this.sortables.has(a)){let[,,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.hidden.clear())}activatePlaceholder(t,r){if(this.placeholder){let n=this.axis==="horizontal",[,,i]=this.placeholder;En(i,"transition",r),En(i,n?"width":"height",`${n?t.width:t.height}px`),this.isPlaceholderActive=!0}}deactivatePlaceholder(t=rn.placeholder){if(this.placeholder){let[,,r]=this.placeholder;En(r,"transition",t),qo(r,"width"),qo(r,"height"),this.isPlaceholderActive=!1}}hideDraggingEntity(t){En(t,"display","none")}shiftEl(t,r,n){let i=this.axis==="horizontal"?`translate3d(${n.width}px, 0, 0)`:`translate3d(0, ${n.height}px, 0)`;En(t,"transition",r),En(t,"transform",i)}resetEl(t,r=rn.outOfTheWay){En(t,"transition",r),En(t,"transform","translate3d(0, 0, 0)"),qo(t,"display")}addSortNotifier(t){this.sortListeners.push(t)}removeSortNotifier(t){this.sortListeners=this.sortListeners.filter(r=>r!==t)}setSortState(t){this.isSorting!==t&&(this.isSorting=t,this.sortListeners.forEach(r=>r(t)))}};function mi({axis:e,children:t,onSortChange:r}){let n=R.useContext(wt),i=R.useRef(),a=R.useMemo(()=>{if(n){i.current&&i.current.destroy();let o=new Zu(n,e,r);return i.current=o,o}return null},[n,e,r]);return R.useEffect(()=>()=>{var o;return(o=i.current)==null?void 0:o.destroy()},[]),a?y(to.Provider,{value:a},t):null}h();function gi({index:e,accepts:t,className:r,isStatic:n}){let i=R.useRef(null),a=R.useRef(null),o=R.useMemo(()=>({id:Ve(),type:"placeholder",accepts:t}),t);return y("div",{ref:a,className:pt([r,V("placeholder")])},y("div",{ref:i},!n&&y(nr,{elementRef:i,measureRef:a,id:o.id,index:e,data:o})))}h();h();h();vr();vr();function b_(e,t){for(var r in t)e[r]=t[r];return e}function Av(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Lv(e){this.props=e}(Lv.prototype=new vt).isPureReactComponent=!0,Lv.prototype.shouldComponentUpdate=function(e,t){return Av(this.props,e)||Av(this.state,t)};var Pv=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Pv&&Pv(e)};var _R=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var w_=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}w_(e,t,r,n)};var Fv=fe.unmount;function ed(){this.__u=0,this.t=null,this.__b=null}function Ov(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function hs(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),Fv&&Fv(e)},(ed.prototype=new vt).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=Ov(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,m){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(v){return d(v,p,m)}),f.__c&&f.__c.__P===p&&(f.__e&&m.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=m)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},ed.prototype.componentWillUnmount=function(){this.t=[]},ed.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=b_({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&y(S,null,e.fallback);return i&&(i.__h=null),[y(S,null,t.__e?null:e.children),i]};var Nv=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]{r(!1)},{ignoreClass:V("ignore-click-outside")}),c=R.useCallback(()=>{a(""),r(!1)},[]),d=async m=>{try{e(await Promise.all(m.map(v=>o.getNewItem(v))))}catch(v){o.setError(v)}},f=m=>{if(!Vn(m,o)){m.preventDefault();let v=i.trim();v&&(d([v]),a(""))}},p=()=>{let m=i.trim();m&&(d([m]),a(""))};return t?y("div",{className:V("item-form"),ref:l},y("div",{className:V("item-input-wrapper")},y(cr,{ref:u,className:V("item-input"),placeholder:B("Card title..."),onEnter:f,onEscape:c,onSubmit:p,value:i,onChange:m=>{a(m.target.value)},onPaste:m=>{Zo(m,o,s.getWindow())}}))):n?null:y("div",{className:V("item-button-wrapper")},y("button",{className:V("new-item-button"),onClick:()=>r(!0),onDragOver:m=>{Xo(o,m.dataTransfer)&&r(!0)}},y("span",{className:V("item-button-plus")},"+")," ",B("Add a card")))}h();var eb=ye(_t());h();function Vv(e){return y("svg",{...e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},y("path",{fill:"currentColor",d:"M5 3h2v2H5zm0 4h2v2H5zm0 4h2v2H5zm4-8h2v2H9zm0 4h2v2H9zm0 4h2v2H9z"}))}h();var nd=ye(_t()),zv=ye(require("obsidian"));var jv={delete:{description:B("Are you sure you want to delete this list and all its cards?"),confirm:B("Yes, delete list")},archive:{description:B("Are you sure you want to archive this list and all its cards?"),confirm:B("Yes, archive list")},"archive-items":{description:B("Are you sure you want to archive all cards in this list?"),confirm:B("Yes, archive cards")}};function qv({action:e,cancel:t,onAction:r,lane:n}){return R.useEffect(()=>{e&&n.children.length===0&&r()},[e,n.children.length]),!e||e&&n.children.length===0?null:y("div",{className:V("action-confirm-wrapper")},y("div",{className:V("action-confirm-text")},jv[e].description),y("div",null,y("button",{onClick:r,className:V("confirm-action-button")},jv[e].confirm),y("button",{onClick:t,className:V("cancel-action-button")},"Cancel")))}function Yv({setIsEditing:e,path:t,lane:r}){let{stateManager:n,boardModifiers:i}=R.useContext(We),[a,o]=R.useState(null);return{settingsMenu:R.useMemo(()=>new zv.Menu().addItem(u=>{u.setIcon("pencil").setTitle(B("Edit list")).onClick(()=>e(!0))}).addItem(u=>{u.setIcon("documents").setTitle(B("Archive cards")).onClick(()=>o("archive-items"))}).addSeparator().addItem(u=>{u.setIcon("up-and-down-arrows").setTitle(B("Sort by card text")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===xn.TitleAsc;l.sort((d,f)=>c?f.data.titleSearch.localeCompare(d.data.titleSearch):d.data.titleSearch.localeCompare(f.data.titleSearch)),i.updateLane(t,(0,nd.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===xn.TitleAsc?xn.TitleDsc:xn.TitleAsc}}}))})}).addItem(u=>{u.setIcon("up-and-down-arrows").setTitle(B("Sort by date")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===xn.DateAsc?-1:1;l.sort((d,f)=>{let p=d.data.metadata.time||d.data.metadata.date,m=f.data.metadata.time||f.data.metadata.date;return p&&!m?-1*c:m&&!p?1*c:!p&&!m?0:(p.isBefore(m)?-1:1)*c}),i.updateLane(t,(0,nd.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===xn.DateAsc?xn.DateDsc:xn.DateAsc}}}))})}).addSeparator().addItem(u=>{u.setIcon("plus-with-circle").setTitle(B("Insert list before")).onClick(()=>i.insertLane(t,{...lr,id:Ve(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}}))}).addItem(u=>{u.setIcon("plus-with-circle").setTitle(B("Insert list after")).onClick(()=>{let l=[...t];l[l.length-1]=l[l.length-1]+1,i.insertLane(l,{...lr,id:Ve(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}})})}).addSeparator().addItem(u=>{u.setIcon("sheets-in-box").setTitle(B("Archive list")).onClick(()=>o("archive"))}).addItem(u=>{u.setIcon("trash").setTitle(B("Delete list")).onClick(()=>o("delete"))}),[n,o,t,r]),confirmAction:a,setConfirmAction:o}}h();var Jv=ye(_t());function Gv({lane:e,lanePath:t}){let{boardModifiers:r}=R.useContext(We);return y("div",{className:V("lane-setting-wrapper")},y("div",{className:V("checkbox-wrapper")},y("div",{className:V("checkbox-label")},B("Mark cards in this list as complete")),y("div",{onClick:()=>r.updateLane(t,(0,Jv.default)(e,{data:{$toggle:["shouldMarkItemsComplete"]}})),className:`checkbox-container ${e.data.shouldMarkItemsComplete?"is-enabled":""}`})))}h();var Qv=ye(require("obsidian"));function Xv({itemCount:e,maxItems:t,isEditing:r,setIsEditing:n,title:i,onChange:a}){let{stateManager:o}=R.useContext(We),s=R.useRef(),u=o.getSetting("hide-card-count"),l=p=>{Vn(p,o)||(p.preventDefault(),r&&n(!1))},c=()=>{r&&n(!1)},d=()=>{r&&n(!1)};R.useEffect(()=>{if(r&&s.current){let p=s.current;s.current.focus(),p.selectionStart=p.selectionEnd=p.value.length}},[r]);let f=[V("lane-title-count")];return t&&t{p.preventDefault(),p.stopPropagation();let m=p.target instanceof p.view.HTMLAnchorElement&&p.target.hasClass("internal-link")?p.target.dataset.href:void 0;m&&o.app.workspace.onLinkContextMenu(p,(0,Qv.getLinkpath)(m),o.file.path)}},y(wa,{markdownString:i})))),!r&&!u&&y("div",{className:pt(f)},e,t>0&&y(S,null,y("span",{className:V("lane-title-count-separator")},"/"),y("span",{className:V("lane-title-count-limit")},t))))}h();function gs(e,t){let r=t.end-t.start;return e.slice(0,t.start)+"\0".repeat(r)+e.slice(t.end)}function Zv(e){return e.replace(/\s*\0+\s*/g," ").trim()}function xa(e){return e.trim().replace(/(\r\n|\n)/g,"
    ")}function ys(e){return e.replace(/
    /g,` +`).trim()}function Ar(e){e=ys(e);let t=e.match(/^(.*?)\s*\((\d+)\)$/);return t==null?{title:e,maxItems:0}:{title:t[1],maxItems:Number(t[2])}}var tb=R.memo(function({lane:t,laneIndex:r,dragHandleRef:n,setIsItemInputVisible:i}){let{boardModifiers:a,stateManager:o}=R.useContext(We),[s,u]=R.useState(!1),l=Nn(r),{settingsMenu:c,confirmAction:d,setConfirmAction:f}=Yv({setIsEditing:u,path:l,lane:t});return R.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]),y(S,null,y("div",{onDblClick:()=>u(!0),className:V("lane-header-wrapper")},y("div",{className:V("lane-grip"),ref:n},y(Vv,null)),y(Xv,{isEditing:s,setIsEditing:u,itemCount:t.children.length,maxItems:t.data.maxItems,title:t.data.title,onChange:p=>{let{title:m,maxItems:v}=Ar(p.target.value);a.updateLane(l,(0,eb.default)(t,{data:{title:{$set:m},maxItems:{$set:v}}}))}}),y("div",{className:V("lane-settings-button-wrapper")},s?y("button",{onClick:()=>{u(!1)},"aria-label":"Close",className:`${V("lane-settings-button")} is-enabled`},y(Zt,{name:"cross"})):y(S,null,i&&y("button",{"aria-label":B("Add a card"),className:V("lane-settings-button"),onClick:()=>{i(!0)},onDragOver:p=>{Xo(o,p.dataTransfer)&&i(!0)}},y(Zt,{name:"plus-with-circle"})),y("button",{"aria-label":B("More options"),className:V("lane-settings-button"),onClick:p=>{c.showAtPosition({x:p.clientX,y:p.clientY})}},y(Zt,{name:"vertical-three-dots"}))))),s&&y(Gv,{lane:t,lanePath:l}),d&&y(qv,{lane:t,action:d,onAction:()=>{switch(d){case"archive":a.archiveLane(l);break;case"archive-items":a.archiveLaneItems(l);break;case"delete":a.deleteEntity(l);break}f(null)},cancel:()=>f(null)}))});var rb=[Xe.Item],rd=R.memo(function({isStatic:t,lane:r,laneIndex:n}){let{stateManager:i,boardModifiers:a,view:o}=R.useContext(We),[s,u]=R.useState(!1),l=Nn(n),c=i.useSetting("lane-width"),d=i.useSetting("new-card-insertion-method"),f=!!r.data.shouldMarkItemsComplete,p=c?{width:`${c}px`}:void 0,m=R.useRef(null),v=R.useRef(null),b=R.useRef(null),[k,T]=R.useState(!1),D=d==="prepend-compact",I=D||d==="prepend";fi(v,b);let H=U=>{a[I?"prependItems":"appendItems"]([...l,r.children.length-1],U.map(z=>(0,nb.default)(z,{data:{isComplete:{$set:f}}}))),o.getWindow().setTimeout(()=>{var ee;let z=(ee=m.current)==null?void 0:ee.getElementsByClassName(V("lane-items"));z.length&&us([0,I?0:z[0].scrollHeight],{elementToScroll:z[0],speed:200,minDuration:150,easing:Z=>Z===1?1:1-Math.pow(2,-10*Z)})})},C=y(S,null,y(Sv,{items:r.children,isStatic:t,shouldMarkItemsComplete:f}),y(gi,{accepts:rb,index:r.children.length,isStatic:t})),F=y(ps,{id:r.id,index:n,className:pt([V("lane-items"),V("vertical")]),triggerTypes:rb,isStatic:t},t?C:y(mi,{onSortChange:T,axis:"vertical"},C));return y("div",{ref:v,className:pt([V("lane-wrapper"),{"is-sorting":k}]),style:p},y("div",{"data-count":r.children.length,ref:m,className:pt([V("lane"),{"will-prepend":I}])},y(tb,{dragHandleRef:b,laneIndex:n,lane:r,setIsItemInputVisible:D?u:void 0}),I&&y(td,{addItems:H,hideButton:D,isInputVisible:s,setIsInputVisible:u}),t?F:y(nr,{elementRef:m,measureRef:v,id:r.id,index:n,data:r},F),!I&&y(td,{addItems:H,isInputVisible:s,setIsInputVisible:u})))}),ib=R.memo(function({lanes:t}){return y(S,null,t.map((r,n)=>y(rd,{lane:r,laneIndex:n,key:r.id})))});h();h();var ab=ye(require("obsidian"));h();function vs(){return{events:{},emit(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[e],a=this.events[n];if(!i&&!a){console.warn("Event emitted with no handler",e,r);return}r&&a&&a.forEach(o=>o(t)),i&&i.forEach(o=>o(t))},on(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];return i||(this.events[n]=i=[]),i.push(t),()=>this.off(e,t,r)},off(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];i&&(i.splice(i.indexOf(t)>>>0,1),i.length===0&&delete this.events[n])}}}var id=class{constructor(t,r){this.scrollResizeDebounce=0;this.handleResize=t=>{let r=!1;t.forEach(n=>{let i=Ze(n.target);this.win===i&&(r=!0,n.target.dataset.scrollid&&(this.win.clearTimeout(this.scrollResizeDebounce),this.scrollResizeDebounce=this.win.setTimeout(()=>{var a;((a=this.emitter.events.scrollResize)==null?void 0:a.length)&&this.emitter.emit("scrollResize",null)},50)))}),!!r&&(this.hitboxEntities.forEach(n=>{n.recalcInitial()}),this.scrollEntities.forEach(n=>{n.recalcInitial()}))};this.win=t,this.emitter=vs(),this.hitboxEntities=new Map,this.scrollEntities=new Map,this.onDrop=r,this.resizeObserver=new ResizeObserver((0,ab.debounce)(this.handleResize,100,!0)),this.dragManager=new hu(t,this.emitter,this.hitboxEntities,this.scrollEntities)}destroy(){this.resizeObserver.disconnect()}observeResize(t){this.resizeObserver.observe(t,{box:"border-box"})}unobserveResize(t){this.resizeObserver.unobserve(t)}registerHitboxEntity(t,r,n){n===this.win&&this.hitboxEntities.set(t,r)}registerScrollEntity(t,r,n){n===this.win&&this.scrollEntities.set(t,r)}unregisterHitboxEntity(t,r){r===this.win&&this.hitboxEntities.delete(t)}unregisterScrollEntity(t,r){r===this.win&&this.scrollEntities.delete(t)}};function bs({win:e,children:t,onDrop:r}){let n=R.useRef(r);n.current=r;let i=R.useMemo(()=>new id(e,(a,o)=>n.current(a,o)),[]);return R.useEffect(()=>()=>{i.destroy()},[i]),y(wt.Provider,{value:i},y(Mv,null,t))}h();function ad(e,t,r,n,i,a){let o=[r[0]-n[0],r[1]-n[1],r[2]+n[2],r[3]+n[3]];return{transform:a||`translate3d(${e.x-t.x+o[0]}px, ${e.y-t.y+o[1]}px, 0px)`,width:`${o[2]-o[0]}px`,height:`${o[3]-o[1]}px`,transition:i}}function ws({children:e}){let t=R.useContext(wt),[r,n]=R.useState(),[i,a]=R.useState();return R.useEffect(()=>{if(!t)return;let o=rp,s=({dragEntity:c,dragOrigin:d,dragPosition:f,dragEntityMargin:p})=>{!c||!f||!d||(o=c.getHitbox(),n(c),a(ad(f,d,o,p)))},u=({dragOrigin:c,dragPosition:d,dragEntityMargin:f})=>{!d||!c||a(ad(d,c,o,f))},l=({dragOrigin:c,primaryIntersection:d,dragPosition:f,dragEntityMargin:p})=>{if(d&&f&&c){let m=d.getHitbox(),v={x:m[0],y:m[1]},b=ui({position:f,destination:v}),k=rn.drop(b),T=Ag.drop(v);a(ad(f,c,o,p,k,T)),activeWindow.setTimeout(()=>{n(void 0),a(void 0)},b)}else n(void 0),a(void 0)};return t.dragManager.emitter.on("dragStart",s),t.dragManager.emitter.on("dragMove",u),t.dragManager.emitter.on("dragEnd",l),()=>{t.dragManager.emitter.off("dragStart",s),t.dragManager.emitter.off("dragMove",u),t.dragManager.emitter.off("dragEnd",l)}},[t]),!r||!i?null:R.createPortal(e(r,i),r.getData().win.document.body)}function ob(){let e=R.useContext(wt),[t,r]=R.useState(!1);return R.useEffect(()=>{let n=()=>{r(!0)},i=({primaryIntersection:a,dragPosition:o})=>{let s=(a==null?void 0:a.getHitbox())||[0,0],u={x:s[0],y:s[1]},l=ui({position:o||u,destination:u});activeWindow.setTimeout(()=>{r(!1)},l)};return e.dragManager.emitter.on("dragStart",n),e.dragManager.emitter.on("dragEnd",i),()=>{e.dragManager.emitter.off("dragStart",n),e.dragManager.emitter.off("dragEnd",i)}},[e]),t}h();var ka=ye(_t()),sb=ye(require("obsidian"));function Es(e){let t=r=>{let n=e.getSetting("prepend-archive-format"),i=e.getSetting("prepend-archive-separator"),a=[(0,sb.moment)().format(n)];i&&a.push(i),a.push(r.data.titleRaw);let o=a.join(" ");return e.updateItemContent(r,o)};return{appendItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>vl(i,r,n))},prependItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>Xf(i,r,n))},insertItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>er(i,r,n))},splitItem:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>er(wr(i,r),r,n))},addLane:r=>{e.app.workspace.trigger("kanban:lane-added",e.file,r),e.setState(n=>vl(n,[],[r]))},insertLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-added",e.file,n),e.setState(i=>er(i,r,[n]))},updateLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-updated",e.file,n),e.setState(i=>bl(i,r,{children:{[r[r.length-1]]:{$set:n}}}))},archiveLane:r=>{e.setState(async n=>{let i=ft(n,r),a=i.children;e.app.workspace.trigger("kanban:lane-archived",e.file,i);try{return(0,ka.default)(wr(n,r),{data:{archive:{$unshift:e.getSetting("prepend-archive-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},archiveLaneItems:r=>{e.setState(async n=>{let a=ft(n,r).children;e.app.workspace.trigger("kanban:lane-cards-archived",e.file,a);try{return(0,ka.default)(Xa(n,r,{children:{$set:[]}}),{data:{archive:{$unshift:e.getSetting("prepend-archive-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},deleteEntity:r=>{e.setState(n=>{let i=ft(n,r);return e.app.workspace.trigger(`kanban:${i.type}-deleted`,e.file,i),wr(n,r)})},updateItem:(r,n)=>{e.setState(i=>{let a=ft(i,r);return e.app.workspace.trigger("kanban:card-updated",e.file,a,n),bl(i,r,{children:{[r[r.length-1]]:{$set:n}}})})},archiveItem:r=>{e.setState(async n=>{let i=ft(n,r);e.app.workspace.trigger("kanban:card-archived",e.file,r,i);try{return(0,ka.default)(wr(n,r),{data:{archive:{$push:[e.getSetting("prepend-archive-date")?await t(i):i]}}})}catch(a){return e.setError(a),n}})},duplicateEntity:r=>{e.setState(n=>{let i=ft(n,r);e.app.workspace.trigger(`kanban:${i.type}-duplicated`,e.file,r,i);let a=(0,ka.default)(i,{id:{$set:Ve()}});return er(n,r,[a])})}}}function cb(e,t){return y(F_,{win:e,plugin:t})}var P_=R.memo(function({view:t}){return R.createPortal(t.getPortal(),t.contentEl)});function F_({win:e,plugin:t}){let r=t.useViewState(e),n=r.map(a=>y(P_,{key:a.id,view:a})),i=R.useCallback((a,o)=>{if(!a||!o)return;if(a.scopeId==="htmldnd"){let v=a.getData(),b=t.getStateManagerFromViewID(v.viewId,v.win),k=o.getPath(),T=ft(b.state,k.slice(0,-1));(I=>Promise.all(I.map(H=>b.getNewItem(H))))(v.content).then(I=>{let H=I.map(C=>{var F;return(0,lb.default)(C,{data:{isComplete:{$set:!!((F=T==null?void 0:T.data)==null?void 0:F.shouldMarkItemsComplete)}}})});return b.setState(C=>er(C,k,H))}).catch(I=>{b.setError(I),console.error(I)});return}let s=a.getPath(),u=o.getPath(),[,l]=a.scopeId.split(":::"),[,c]=o.scopeId.split(":::"),d=a.getData(),f=o.getData();if(l===c){let v=t.getStateManagerFromViewID(a.scopeId,d.win);return t.app.workspace.trigger("kanban:card-moved",v.file,s,u,d),v.setState(b=>{var H;let k=!1,T=Qf(b,s,u,C=>C.type===Xe.Item?(k=!0,El(b,s,b,u,C)):C);if(!k)return T;let D=u.slice(0,-1),I=ft(b,D);return((H=I==null?void 0:I.data)==null?void 0:H.sorted)!==void 0?Xa(T,D,{data:{$unset:["sorted"]}}):T})}let p=t.getStateManagerFromViewID(a.scopeId,d.win),m=t.getStateManagerFromViewID(o.scopeId,f.win);p.setState(v=>{let b=ft(v,s);return m.setState(k=>{let T=b.type===Xe.Item?El(v,s,k,u,b):b;return er(k,u,[T])}),wr(v,s)})},[r]);if(n.length)return y(bs,{win:e,onDrop:i},n,y(ws,null,(a,o)=>{let[s,u]=R.useMemo(()=>{if(a.scopeId==="htmldnd")return[null,null];let l=a.getData(),c=t.getKanbanView(a.scopeId,l.win),d=t.stateManagers.get(c.file),f=ft(d.state,a.getPath()),p=Es(d),m=c.file.path;return[f,{view:c,stateManager:d,boardModifiers:p,filePath:m}]},[a]);return(s==null?void 0:s.type)===Xe.Lane?y(We.Provider,{value:u},y("div",{className:V("drag-container"),style:o},y(rd,{lane:s,laneIndex:0,isStatic:!0}))):(s==null?void 0:s.type)===Xe.Item?y(We.Provider,{value:u},y("div",{className:V("drag-container"),style:o},y(Gu,{item:s,itemIndex:0,isStatic:!0}))):y("div",null)}))}h();var fd=ye(_t()),Ib=ye(require("obsidian"));h();var vb=ye(_t()),bb=ye(require("obsidian")),ks=ye(Ql());h();function xs({id:e,children:t}){let r=R.useContext(Yi),n=R.useMemo(()=>e||Ve(),[e]);return R.useEffect(()=>()=>{r.unmountScope(e)},[e]),y(tr.Provider,{value:n},t)}h();var fn="kanban-plugin",ub;(function(t){t[t.List=0]="List"})(ub||(ub={}));var db=`**${B("Complete")}**`,fb="***",od=["---","",`${fn}: basic`,"","---","",""].join(` +`);function pb(e){return["","","%% kanban:settings","```",JSON.stringify(e),"```","%%"].join(` +`)}function hb(e,t,r){let n=e.innerText.trim();if((t==null?void 0:t.length)&&(n+=" "+t.join(" ")),r){let i=Object.keys(r).join(" "),a=Object.values(r).map(o=>Array.isArray(o.value)?o.value.join(" "):o.value.toString()).join(" ");n+=" "+i+" "+a}return n.toLocaleLowerCase()}function O_(e,t,r){var n,i,a;if(e.plugins.enabledPlugins.has("dataview")&&((a=(i=(n=e.plugins)==null?void 0:n.plugins)==null?void 0:i.dataview)==null?void 0:a.api))return e.plugins.plugins.dataview.api.page(t.path,r.path)}function mb(e,t){if(!e)return null;if(e[t])return e[t];let r=t.split("."),n=e;for(let i of r)if(typeof n=="object"&&i in n)n=n[i];else{n=null;break}return n}function sd(e,t){let r=e.getSetting("metadata-keys");if(!r.length)return{};if(!t)return{};let n=e.app.metadataCache.getFileCache(t),i=O_(e.app,t,e.file);if(!n&&!i)return{};let a={},o={},s={},u=[],l=!1;return r.forEach(c=>{var p;if(s[c.metadataKey])return;if(s[c.metadataKey]=!0,c.metadataKey==="tags"){let m=(n==null?void 0:n.tags)||[];if(Array.isArray((p=n==null?void 0:n.frontmatter)==null?void 0:p.tags)&&(m=[].concat(m,n.frontmatter.tags.map(v=>({tag:`#${v}`})))),(m==null?void 0:m.length)===0)return;u.push(c.metadataKey),a.tags={...c,value:m.map(v=>v.tag).filter(v=>o[v]?!1:(o[v]=!0,!0))},l=!0;return}let d=mb(n==null?void 0:n.frontmatter,c.metadataKey),f=mb(i,c.metadataKey);if(d)u.push(c.metadataKey),a[c.metadataKey]={...c,value:d},l=!0;else if(f){let m=i[c.metadataKey],v=m.values||m.val||m;if(v===m&&typeof v=="object")v={...m};else if(!Array.isArray(v)&&typeof v!="string"&&typeof v!="number")return;u.push(c.metadataKey),a[c.metadataKey]={...c,value:v},l=!0}}),{fileMetadata:l?a:void 0,fileMetadataOrder:u}}function gb(e,t){return!e&&t?!0:!["metadata-keys","date-trigger","time-trigger","link-date-to-daily-note","date-format","time-format","hide-date-in-title","hide-tags-in-title","hide-card-count"].every(n=>e[n]===t[n])}h();function yb({onNewLane:e,closeLaneForm:t}){let{boardModifiers:r,stateManager:n}=R.useContext(We),[i,a]=R.useState(!1),[o,s]=R.useState(""),u=R.useRef(),l=ms(()=>{t()},{ignoreClass:V("ignore-click-outside")});R.useLayoutEffect(()=>{var d;(d=u.current)==null||d.focus()},[]);let c=()=>{r.addLane({...lr,id:Ve(),children:[],data:{...Ar(o),shouldMarkItemsComplete:i}}),s(""),a(!1),e()};return y("div",{ref:l,className:V("lane-form-wrapper")},y("div",{className:V("lane-input-wrapper")},y(cr,{ref:u,className:V("lane-input"),onChange:d=>s(d.target.value),onEnter:d=>{Vn(d,n)||(d.preventDefault(),c())},onSubmit:()=>{c()},onEscape:t,value:o})),y("div",{className:V("checkbox-wrapper")},y("div",{className:V("checkbox-label")},B("Mark cards in this list as complete")),y("div",{onClick:()=>a(!i),className:`checkbox-container ${i?"is-enabled":""}`})),y("div",{className:V("lane-input-actions")},y("button",{className:V("lane-action-add"),onClick:c},B("Add list")),y("button",{className:V("lane-action-cancel"),onClick:t},B("Cancel"))))}var N_=[Xe.Item,Xe.Lane],R_=[Xe.Lane],wb=({view:e,stateManager:t})=>{let r=t.useState(),n=ob(),i=R.useRef(null),a=R.useRef(null),[o,s]=R.useState(""),[u,l]=R.useState(!1),[c,d]=R.useState(""),[f,p]=R.useState((r==null?void 0:r.children.length)===0),m=t.file.path,v=t.useSetting("max-archive-size"),b=R.useCallback(()=>{(r==null?void 0:r.children.length)>0&&p(!1)},[r==null?void 0:r.children.length]);R.useEffect(()=>{(r==null?void 0:r.children.length)===0&&!t.hasError()&&p(!0)},[r==null?void 0:r.children.length,t]);let k=R.useCallback(()=>{var F;(F=i.current)==null||F.win.setTimeout(()=>{var z;let U=(z=i.current)==null?void 0:z.getElementsByClassName(V("board"));(U==null?void 0:U.length)&&us([U[0].scrollWidth,0],{elementToScroll:U[0],speed:300,minDuration:150,easing:ee=>ee===1?1:1-Math.pow(2,-10*ee)})})},[]);R.useEffect(()=>{let F=z=>{z==="editor:open-search"&&l(ee=>!ee)},U=()=>{p(!0)};return e.emitter.on("hotkey",F),e.emitter.on("showLaneForm",U),()=>{e.emitter.off("hotkey",F),e.emitter.off("showLaneForm",U)}},[e]),R.useEffect(()=>{var F;u&&((F=a.current)==null||F.focus())},[u]),R.useEffect(()=>{let F=e.getWindow(),U=o.trim(),z;return U?z=F.setTimeout(()=>{d(U)},250):d(""),()=>{F.clearTimeout(z)}},[o,e]),R.useEffect(()=>{v===void 0||v===-1||typeof v=="number"&&(r==null?void 0:r.data.archive.length)>v&&t.setState(F=>(0,vb.default)(F,{data:{archive:{$set:F.data.archive.slice(v*-1)}}}))},[r==null?void 0:r.data.archive.length,v]);let T=R.useMemo(()=>Es(t),[t]),D=R.useCallback(F=>{let U=F.target;U.tagName==="A"&&U.hasClass("internal-link")&&e.app.workspace.trigger("hover-link",{event:F,source:fn,hoverParent:e,targetEl:U,linktext:U.getAttr("href"),sourcePath:e.file.path})},[e]),I=R.useCallback(async F=>{if(F.type==="auxclick"||F.button===2)return;let U=F.target,z=U.tagName==="A"?U:U.closest("a");if(!!z){if(z.hasClass("file-link")){F.preventDefault();let ee=z.getAttribute("href"),Z=Ir(ee),le=typeof ee=="string"&&e.app.metadataCache.getFirstLinkpathDest(Z.root,e.file.path);if(!le)return;t.app.openWithDefaultApp(le.path);return}if(z.hasClass("internal-link")){F.preventDefault();let ee=z.getAttr("href"),Z=F.button===1||F.ctrlKey||F.metaKey;if(z.hasClass("is-unresolved")&&(0,ks.appHasDailyNotesPluginLoaded)()){let X=t.getSetting("date-format"),G=(0,bb.moment)(ee,X,!0);if(G.isValid()){try{let re=await(0,ks.createDailyNote)(G);await(Z?app.workspace.getLeaf(!0):app.workspace.getLeaf(!1)).openFile(re,{active:!0})}catch(re){console.error(re),t.setError(re)}return}}t.app.workspace.openLinkText(ee,m,Z);return}if(z.hasClass("tag")){F.preventDefault(),t.app.internalPlugins.getPluginById("global-search").instance.openGlobalSearch(`tag:${z.getAttr("href")}`);return}z.hasClass("external-link")&&(F.preventDefault(),window.open(z.getAttr("href"),"_blank"))}},[t,m]),H=R.useMemo(()=>({view:e,stateManager:t,boardModifiers:T,filePath:m}),[e,t,T,m]),C=Pg(t);return r==null?y("div",{className:V("loading")},y("div",{className:"sk-pulse"})):r.data.errors.length>0?y("div",null,y("div",null,"Error:"),r.data.errors.map((F,U)=>y("div",{key:U},y("div",null,F.description),y("pre",null,F.stack)))):y(xs,{id:e.id},y(We.Provider,{value:H},y(Qa.Provider,{value:c?c.toLocaleLowerCase():null},y("div",{ref:i,className:pt([wl,{"something-is-dragging":n}]),onMouseOver:D,onPointerDown:I,onClick:I,onAuxClick:I,...C},(f||r.children.length===0)&&y(yb,{onNewLane:k,closeLaneForm:b}),u&&y("div",{className:V("search-wrapper")},y("input",{ref:a,value:o,onChange:F=>{s(F.target.value)},onKeyDown:F=>{F.key==="Escape"&&(s(""),d(""),F.target.blur(),l(!1))},type:"text",className:V("filter-input"),placeholder:B("Search...")}),y("button",{className:V("search-cancel-button"),onClick:()=>{s(""),d(""),l(!1)},"aria-label":B("Cancel")},y(Zt,{name:"cross"}))),y(ps,{id:e.id,className:pt([V("board"),V("horizontal"),{"is-adding-lane":f}]),triggerTypes:N_},y("div",null,y(mi,{axis:"horizontal"},y(ib,{lanes:r.children}),y(gi,{className:V("lane-placeholder"),accepts:R_,index:r.children.length}))))))))};h();var Cb=ye(_t()),Ke=ye(require("obsidian"));h();var Lr=ye(_t());function Eb({isStatic:e,itemIndex:t,item:r,toggleShouldHideLabel:n,toggleContainsMarkdown:i,deleteKey:a,updateKey:o,updateLabel:s}){let u=R.useRef(null),l=R.useRef(null),c=R.useRef(null);fi(l,c);let d=y("div",{className:V("setting-controls-wrapper")},y("div",{className:V("setting-input-wrapper")},y("div",null,y("div",{className:V("setting-item-label")},B("Metadata key")),y("input",{type:"text",value:r.data.metadataKey,onChange:f=>o(f.target.value)})),y("div",null,y("div",{className:V("setting-item-label")},B("Display label")),y("input",{type:"text",value:r.data.label,onChange:f=>s(f.target.value)}))),y("div",{className:V("setting-toggle-wrapper")},y("div",null,y("div",{className:`checkbox-container ${r.data.shouldHideLabel?"is-enabled":""}`,onClick:n,"aria-label":B("Hide label")}),y("div",{className:V("setting-item-label")},B("Hide label"))),y("div",null,y("div",{className:`checkbox-container ${r.data.containsMarkdown?"is-enabled":""}`,onClick:i,"aria-label":B("Field contains markdown")}),y("div",{className:V("setting-item-label")},B("Field contains markdown")))));return y("div",{ref:l,className:V("setting-item-wrapper")},y("div",{ref:u,className:V("setting-item")},e?d:y(nr,{elementRef:u,measureRef:l,id:r.id,index:t,data:r},d),y("div",{className:V("setting-button-wrapper")},y("div",{onClick:a,"aria-label":B("Delete")},y(Zt,{name:"cross"})),y("div",{className:"mobile-option-setting-drag-icon","aria-label":B("Drag to rearrange"),ref:c},y(Zt,{name:"three-horizontal-bars"})))))}function H_({onChange:e,inputValue:t,keys:r,setKeys:n}){let i=a=>{e(a),n(a)};return{updateKey:a=>o=>{i((0,Lr.default)(r,{[a]:{data:{metadataKey:{$set:o}}}}))},updateLabel:a=>o=>{i((0,Lr.default)(r,{[a]:{data:{label:{$set:o}}}}))},toggleShouldHideLabel:a=>()=>{i((0,Lr.default)(r,{[a]:{data:{$toggle:["shouldHideLabel"]}}}))},toggleContainsMarkdown:a=>()=>{i((0,Lr.default)(r,{[a]:{data:{$toggle:["containsMarkdown"]}}}))},deleteKey:a=>()=>{i((0,Lr.default)(r,{$splice:[[a,1]]}))},newKey:()=>{i((0,Lr.default)(r,{$push:[{...Go,id:Ve(),data:{metadataKey:t,label:"",shouldHideLabel:!1,containsMarkdown:!1}}]}))},moveKey:(a,o)=>{let s=a.getPath(),u=o.getPath(),l=s[s.length-1],c=u[u.length-1];if(l===c)return;let d=r.slice(),[f]=d.splice(l,1);d.splice(c,0,f),i(d)}}}var B_=[Xe.MetadataSetting];function K_({keys:e,portalContainer:t}){return R.createPortal(y(ws,null,(r,n)=>{let a=r.getPath()[0],o=e[a];return y("div",{className:V("drag-container"),style:n},y(Eb,{item:o,itemIndex:a,updateKey:jr,updateLabel:jr,toggleShouldHideLabel:jr,toggleContainsMarkdown:jr,deleteKey:jr,isStatic:!0}))}),t)}function $_({scrollEl:e}){let t=R.useContext(wt);return R.useEffect(()=>{let r=0,n=()=>{e.win.clearTimeout(r),r=e.win.setTimeout(()=>{t.hitboxEntities.forEach(i=>{i.recalcInitial()})},100)};return e.addEventListener("scroll",n,{passive:!0,capture:!1}),()=>{e.removeEventListener("scroll",n)}},[e,t]),null}function U_(e){let[t,r]=R.useState(e.dataKeys),[n,i]=R.useState(""),{getShouldIMEBlockAction:a,...o}=eo(),s=Ze(e.scrollEl),{updateKey:u,updateLabel:l,toggleShouldHideLabel:c,toggleContainsMarkdown:d,deleteKey:f,newKey:p,moveKey:m}=H_({onChange:e.onChange,inputValue:n,keys:t,setKeys:r,win:s});return y(S,null,y(bs,{win:s,onDrop:m},y($_,{scrollEl:e.scrollEl}),y(xs,null,y(mi,{axis:"vertical"},t.map((v,b)=>y(Eb,{key:v.id,item:v,itemIndex:b,updateKey:u(b),updateLabel:l(b),toggleShouldHideLabel:c(b),toggleContainsMarkdown:d(b),deleteKey:f(b)})),y(gi,{accepts:B_,index:t.length}))),y(K_,{keys:t,portalContainer:e.portalContainer})),y("div",{className:V("setting-key-input-wrapper")},y("input",{placeholder:B("Metadata key"),type:"text",value:n,onChange:v=>i(v.target.value),onKeyDown:v=>{if(!a()){if(v.key==="Enter"){p(),i("");let b=v.target;b.win.setTimeout(()=>{b.scrollIntoView()});return}v.key==="Escape"&&(i(""),v.target.blur())}},...o}),y("button",{onClick:v=>{p(),i("");let b=v.target;b.win.setTimeout(()=>{b.scrollIntoView()})}},B("Add key"))))}function xb(e,t,r,n){R.render(y(U_,{dataKeys:r,scrollEl:t,onChange:n,portalContainer:Ja(e)}),e)}function kb(e){R.unmountComponentAtNode(e)}h();var _b=ye(Sb()),_s=ye(_t()),dr=ye(require("obsidian"));var Ds="@",Cs="@@";function W_(e){let t=[];return dr.Vault.recurseChildren(e.vault.getRoot(),r=>{r instanceof dr.TFolder&&t.push({value:r.path,label:r.path,selected:!1,disabled:!1})}),t}function V_(e,t){let r=[],n=t?e.vault.getAbstractFileByPath(t):null;return(!n||!(n instanceof dr.TFolder))&&(n=e.vault.getRoot()),dr.Vault.recurseChildren(n,i=>{i instanceof dr.TFile&&r.push({value:i.path,label:i.basename,selected:!1,disabled:!1})}),r}function Db(e){let{templateFolder:t,templatesEnabled:r,templaterPlugin:n}=xl(e),i=V_(e,t),a=W_(e),o="";return!r&&!n&&(o=B("Note: No template plugins are currently enabled.")),{templateFiles:i,vaultFolders:a,templateWarning:o}}function cd({choices:e,key:t,warningText:r,local:n,placeHolderStr:i,manager:a}){return o=>{o.controlEl.createEl("select",{},s=>{s.win.setTimeout(()=>{let u=e,[l,c]=a.getSetting(t,n);if(c){let p=e.findIndex(v=>v.value===c),m=e[p];u=(0,_s.default)(u,{$splice:[[p,1]],$unshift:[(0,_s.default)(m,{placeholder:{$set:!0},value:{$set:""},label:{$apply:v=>`${v} (${B("default")})`}})]})}else u=(0,_s.default)(u,{$unshift:[{placeholder:!0,value:"",label:i,selected:!1,disabled:!1}]});let d=new _b.default(s,{placeholder:!0,position:"bottom",searchPlaceholderValue:B("Search..."),searchEnabled:u.length>10,choices:u}).setChoiceByValue("");l&&typeof l=="string"&&d.setChoiceByValue(l);let f=p=>{let m=p.detail.value;m?a.applySettingsUpdate({[t]:{$set:m}}):a.applySettingsUpdate({$unset:[t]})};s.addEventListener("change",f),a.cleanupFns.push(()=>{d.destroy(),s.removeEventListener("change",f)})}),r&&o.descEl.createDiv({},u=>{u.createEl("strong",{text:r})})})}}var Tb=/^\d+(?:\.\d+)?$/,Mb={[fn]:!0,"date-display-format":!0,"date-format":!0,"date-picker-week-start":!0,"date-time-display-format":!0,"date-trigger":!0,"hide-card-count":!0,"hide-date-display":!0,"hide-date-in-title":!0,"hide-tags-display":!0,"hide-tags-in-title":!0,"lane-width":!0,"link-date-to-daily-note":!0,"max-archive-size":!0,"metadata-keys":!0,"new-card-insertion-method":!0,"new-line-trigger":!0,"new-note-folder":!0,"new-note-template":!0,"prepend-archive-date":!0,"prepend-archive-format":!0,"prepend-archive-separator":!0,"show-checkboxes":!0,"show-relative-date":!0,"time-format":!0,"time-trigger":!0,"show-add-list":!0,"show-archive-all":!0,"show-view-as-markdown":!0,"show-board-settings":!0,"show-search":!0},ud=class{constructor(t,r,n){this.cleanupFns=[];this.applyDebounceTimer=0;this.app=t.app,this.plugin=t,this.config=r,this.settings=n}applySettingsUpdate(t){this.win.clearTimeout(this.applyDebounceTimer),this.applyDebounceTimer=this.win.setTimeout(()=>{this.settings=(0,Cb.default)(this.settings,t),this.config.onSettingsChange(this.settings)},200)}getSetting(t,r){return r?[this.settings[t],this.plugin.settings[t]]:[this.settings[t],null]}constructUI(t,r,n){this.win=t.win;let{templateFiles:i,vaultFolders:a,templateWarning:o}=Db(this.app);t.createEl("h3",{text:r}),n?t.createEl("p",{text:B("These settings will take precedence over the default Kanban board settings.")}):t.createEl("p",{text:B("Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.")}),new Ke.Setting(t).setName(B("New line trigger")).setDesc(B("Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.")).addDropdown(s=>{s.addOption("shift-enter",B("Shift + Enter")),s.addOption("enter",B("Enter"));let[u,l]=this.getSetting("new-line-trigger",n);s.setValue(u||l||"shift-enter"),s.onChange(c=>{this.applySettingsUpdate({"new-line-trigger":{$set:c}})})}),new Ke.Setting(t).setName(B("Prepend / append new cards")).setDesc(B("This setting controls whether new cards are added to the beginning or end of the list.")).addDropdown(s=>{s.addOption("prepend",B("Prepend")),s.addOption("prepend-compact",B("Prepend (compact)")),s.addOption("append",B("Append"));let[u,l]=this.getSetting("new-card-insertion-method",n);s.setValue(u||l||"append"),s.onChange(c=>{this.applySettingsUpdate({"new-card-insertion-method":{$set:c}})})}),new Ke.Setting(t).setName(B("Note template")).setDesc(B("This template will be used when creating new notes from Kanban cards.")).then(cd({choices:i,key:"new-note-template",warningText:o,local:n,placeHolderStr:B("No template"),manager:this})),new Ke.Setting(t).setName(B("Note folder")).setDesc(B("Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.")).then(cd({choices:a,key:"new-note-folder",local:n,placeHolderStr:B("Default folder"),manager:this})),new Ke.Setting(t).setName(B("Hide card counts in list titles")).setDesc(B("When toggled, card counts are hidden from the list title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-card-count",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-card-count":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-card-count",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-card-count"]})})})}),new Ke.Setting(t).setName(B("List width")).setDesc(B("Enter a number to set the list width in pixels.")).addText(s=>{let[u,l]=this.getSetting("lane-width",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"272"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Tb.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"lane-width":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["lane-width"]})})}),new Ke.Setting(t).setName(B("Maximum number of archived cards")).setDesc(B("Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.")).addText(s=>{let[u,l]=this.getSetting("max-archive-size",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"-1"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Tb.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"max-archive-size":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["max-archive-size"]})})}),new Ke.Setting(t).setName(B("Display card checkbox")).setDesc(B("When toggled, a checkbox will be displayed with each card")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-checkboxes",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-checkboxes":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-checkboxes",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-checkboxes"]})})})}),new Ke.Setting(t).setName(B("Hide tags in card titles")).setDesc(B("When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-in-title"]})})})}),new Ke.Setting(t).setName(B("Hide card display tags")).setDesc(B("When toggled, tags will not be displayed below the card title.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-display"]})})})}),t.createEl("h4",{text:B("Board Header Buttons")}),new Ke.Setting(t).setName(B("Add a list")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-add-list",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-add-list":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-add-list",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-add-list"]})})})}),new Ke.Setting(t).setName(B("Archive completed cards")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-archive-all",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-archive-all":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-archive-all",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-archive-all"]})})})}),new Ke.Setting(t).setName(B("Open as markdown")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-view-as-markdown",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-view-as-markdown":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-view-as-markdown",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-view-as-markdown"]})})})}),new Ke.Setting(t).setName(B("Open board settings")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-board-settings",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-board-settings":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-board-settings",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-board-settings"]})})})}),new Ke.Setting(t).setName(B("Search...")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-search",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-search":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-search",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-search"]})})})}),t.createEl("h4",{text:B("Date & Time")}),new Ke.Setting(t).setName(B("Date trigger")).setDesc(B("When this is typed, it will trigger the date selector")).addText(s=>{let[u,l]=this.getSetting("date-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||Ds),s.onChange(c=>{c?this.applySettingsUpdate({"date-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["date-trigger"]})})}),new Ke.Setting(t).setName(B("Time trigger")).setDesc(B("When this is typed, it will trigger the time selector")).addText(s=>{let[u,l]=this.getSetting("time-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||Cs),s.onChange(c=>{c?this.applySettingsUpdate({"time-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["time-trigger"]})})}),new Ke.Setting(t).setName(B("Date format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(B("This format will be used when saving dates in markdown.")),f.createEl("br"),f.appendText(B("For more syntax, refer to")+" "),f.createEl("a",{text:B("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(B("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-format",n),d=qr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-format"]})})})}),new Ke.Setting(t).setName(B("Time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(B("For more syntax, refer to")+" "),f.createEl("a",{text:B("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(B("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("time-format",n),d=zi(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"time-format":{$set:f}}):this.applySettingsUpdate({$unset:["time-format"]})})})}),new Ke.Setting(t).setName(B("Date display format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(B("This format will be used when displaying dates in Kanban cards.")),f.createEl("br"),f.appendText(B("For more syntax, refer to")+" "),f.createEl("a",{text:B("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(B("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-display-format",n),d=qr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-display-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-display-format"]})})})}),new Ke.Setting(t).setName(B("Show relative date")).setDesc(B("When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-relative-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-relative-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-relative-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-relative-date"]})})})}),new Ke.Setting(t).setName(B("Hide card display dates")).setDesc(B("When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-display"]})})})}),new Ke.Setting(t).setName(B("Hide dates in card titles")).setDesc(B("When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-in-title"]})})})}),new Ke.Setting(t).setName(B("Link dates to daily notes")).setDesc(B("When toggled, dates will link to daily notes. Eg. [[2021-04-26]]")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("link-date-to-daily-note",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"link-date-to-daily-note":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("link-date-to-daily-note",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["link-date-to-daily-note"]})})})}),new Ke.Setting(t).setName(B("Add date and time to archived cards")).setDesc(B("When toggled, the current date and time will be added to the beginning of a card when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("prepend-archive-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"prepend-archive-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("reset").setTooltip(B("Reset to default")).onClick(()=>{let[,c]=this.getSetting("prepend-archive-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["prepend-archive-date"]})})})}),new Ke.Setting(t).setName(B("Archive date/time separator")).setDesc(B("This will be used to separate the archived date/time from the title")).addText(s=>{let[u,l]=this.getSetting("prepend-archive-separator",n);s.inputEl.placeholder=l?`${l} (default)`:"",s.inputEl.value=u||"",s.onChange(c=>{if(c){this.applySettingsUpdate({"prepend-archive-separator":{$set:c}});return}this.applySettingsUpdate({$unset:["prepend-archive-separator"]})})}),new Ke.Setting(t).setName(B("Archive date/time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(T=>{T.appendText(B("For more syntax, refer to")+" "),T.createEl("a",{text:B("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},D=>{D.setAttr("target","_blank")}),T.createEl("br"),T.appendText(B("Your current syntax looks like this")+": "),u.setSampleEl(T.createEl("b",{cls:"u-pop"})),T.createEl("br")}));let[l,c]=this.getSetting("prepend-archive-format",n),[d,f]=this.getSetting("date-format",n),p=d||f||qr(this.app),[m,v]=this.getSetting("time-format",n),b=m||v||zi(this.app),k=`${p} ${b}`;u.setPlaceholder(k),u.setDefaultFormat(k),(l||c)&&u.setValue(l||c),u.onChange(T=>{T?this.applySettingsUpdate({"prepend-archive-format":{$set:T}}):this.applySettingsUpdate({$unset:["prepend-archive-format"]})})})}),new Ke.Setting(t).setName(B("Calendar: first day of week")).setDesc(B("Override which day is used as the start of the week")).addDropdown(s=>{s.addOption("",B("default")),s.addOption("0",B("Sunday")),s.addOption("1",B("Monday")),s.addOption("2",B("Tuesday")),s.addOption("3",B("Wednesday")),s.addOption("4",B("Thursday")),s.addOption("5",B("Friday")),s.addOption("6",B("Saturday"));let[u,l]=this.getSetting("date-picker-week-start",n);s.setValue((u==null?void 0:u.toString())||(l==null?void 0:l.toString())||""),s.onChange(c=>{c?this.applySettingsUpdate({"date-picker-week-start":{$set:Number(c)}}):this.applySettingsUpdate({$unset:["date-picker-week-start"]})})}),t.createEl("br"),t.createEl("h4",{text:B("Linked Page Metadata")}),t.createEl("p",{cls:V("metadata-setting-desc"),text:B("Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.")}),new Ke.Setting(t).then(s=>{s.settingEl.addClass(V("draggable-setting-container"));let[u]=this.getSetting("metadata-keys",n),l=(u||[]).map(c=>({...Go,id:Ve(),data:c,win:Ze(t)}));xb(s.settingEl,t,l,c=>this.applySettingsUpdate({"metadata-keys":{$set:c.map(d=>d.data)}})),this.cleanupFns.push(()=>{s.settingEl&&kb(s.settingEl)})})}cleanUp(){this.win=null,this.cleanupFns.forEach(t=>t()),this.cleanupFns=[]}},Ts=class extends Ke.Modal{constructor(t,r,n){super(t.app);this.view=t,this.settingsManager=new ud(t.plugin,r,n)}onOpen(){let{contentEl:t,modalEl:r}=this;r.addClass(V("board-settings-modal")),this.settingsManager.constructUI(t,this.view.file.basename,!0)}onClose(){let{contentEl:t}=this;this.settingsManager.cleanUp(),t.empty()}},dd=class extends Ke.PluginSettingTab{constructor(t,r){super(t.app,t);this.plugin=t,this.settingsManager=new ud(t,r,t.settings)}display(){let{containerEl:t}=this;t.empty(),t.addClass(V("board-settings-modal")),this.settingsManager.constructUI(t,B("Kanban Plugin"),!1)}};var pn="kanban",Sa="blocks",jn=class extends Ib.TextFileView{constructor(t,r){super(t);this.actionButtons={};this.plugin=r,this.emitter=vs(),this.emitter.on("hotkey",n=>{switch(n){case"daily-notes:goto-prev":{fm(this.app,this.file);break}case"daily-notes:goto-next":{dm(this.app,this.file);break}}}),this.register(this.containerEl.onWindowMigrated(()=>{this.plugin.removeView(this),this.plugin.addView(this,this.data,this.isPrimary)}))}get isPrimary(){var t;return((t=this.plugin.getStateManager(this.file))==null?void 0:t.getAView())===this}get id(){var t;return`${this.leaf.id}:::${(t=this.file)==null?void 0:t.path}`}get isShiftPressed(){return this.plugin.isShiftPressed}setBoard(t,r=!0){this.plugin.stateManagers.get(this.file).setState(t,r)}getBoard(){return this.plugin.stateManagers.get(this.file).state}getViewType(){return pn}getIcon(){return Sa}getDisplayText(){var t;return((t=this.file)==null?void 0:t.basename)||"Kanban"}getWindow(){return Ze(this.containerEl)}async onLoadFile(t){try{return await super.onLoadFile(t)}catch(r){throw this.plugin.stateManagers.get(this.file).setError(r),r}}destroy(){this.plugin.removeView(this),Object.values(this.actionButtons).forEach(t=>t.remove()),this.actionButtons={}}async onClose(){this.destroy()}async onUnloadFile(t){return this.destroy(),await super.onUnloadFile(t)}handleRename(t,r){this.file.path===t&&this.plugin.handleViewFileRename(this,r)}requestSaveToDisk(t){this.data!==t&&this.isPrimary?(this.data=t,this.requestSave()):this.data=t}getViewData(){return this.data}setViewData(t,r){if(!pm(t)){this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.removeView(this),this.plugin.setMarkdownView(this.leaf,!1);return}this.plugin.addView(this,t,!r&&this.isPrimary)}getPortal(){let t=this.plugin.stateManagers.get(this.file);return y(wb,{stateManager:t,view:this})}onPaneMenu(t,r,n=!0){if(r!=="more-options"){super.onPaneMenu(t,r);return}t.addItem(i=>{i.setTitle(B("Open as markdown")).setIcon("document").setSection("pane").onClick(()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)})}).addItem(i=>{i.setTitle(B("Open board settings")).setIcon("gear").setSection("pane").onClick(()=>{let a=this.plugin.stateManagers.get(this.file),o=a.state;new Ts(this,{onSettingsChange:s=>{let u=(0,fd.default)(o,{data:{settings:{$set:s}}});a.setState(u)}},o.data.settings).open()})}).addItem(i=>{i.setTitle(B("Archive completed cards")).setIcon("sheets-in-box").setSection("pane").onClick(()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()})}),n&&super.onPaneMenu(t,r)}initHeaderButtons(){let t=this.plugin.getStateManager(this.file);if(!!t)if(t.getSetting("show-board-settings")&&!this.actionButtons["show-board-settings"]?this.actionButtons["show-board-settings"]=this.addAction("gear",B("Open board settings"),()=>{let r=this.plugin.stateManagers.get(this.file),n=r.state;new Ts(this,{onSettingsChange:i=>{let a=(0,fd.default)(n,{data:{settings:{$set:i}}});r.setState(a)}},n.data.settings).open()}):!t.getSetting("show-board-settings")&&this.actionButtons["show-board-settings"]&&(this.actionButtons["show-board-settings"].remove(),delete this.actionButtons["show-board-settings"]),t.getSetting("show-search")&&!this.actionButtons["show-search"]?this.actionButtons["show-search"]=this.addAction("search",B("Search..."),()=>{this.emitter.emit("hotkey","editor:open-search")}):!t.getSetting("show-search")&&this.actionButtons["show-search"]&&(this.actionButtons["show-search"].remove(),delete this.actionButtons["show-search"]),t.getSetting("show-view-as-markdown")&&!this.actionButtons["show-view-as-markdown"]?this.actionButtons["show-view-as-markdown"]=this.addAction("document",B("Open as markdown"),()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}):!t.getSetting("show-view-as-markdown")&&this.actionButtons["show-view-as-markdown"]&&(this.actionButtons["show-view-as-markdown"].remove(),delete this.actionButtons["show-view-as-markdown"]),t.getSetting("show-archive-all")&&!this.actionButtons["show-archive-all"]?this.actionButtons["show-archive-all"]=this.addAction("sheets-in-box",B("Archive completed cards"),()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()}):!t.getSetting("show-archive-all")&&this.actionButtons["show-archive-all"]&&(this.actionButtons["show-archive-all"].remove(),delete this.actionButtons["show-archive-all"]),t.getSetting("show-add-list")&&!this.actionButtons["show-add-list"]){let r=this.addAction("plus-with-circle",B("Add a list"),()=>{this.emitter.emit("showLaneForm",void 0)});r.addClass(V("ignore-click-outside")),this.actionButtons["show-add-list"]=r}else!t.getSetting("show-add-list")&&this.actionButtons["show-add-list"]&&(this.actionButtons["show-add-list"].remove(),delete this.actionButtons["show-add-list"])}clear(){}};h();var Si=ye(_t()),jw=ye(require("obsidian"));h();h();var pd={};Ti(pd,{JsonPatchError:()=>it,_areEquals:()=>Ca,applyOperation:()=>Pr,applyPatch:()=>Fs,applyReducer:()=>J_,deepClone:()=>q_,getValueByPointer:()=>Ps,validate:()=>Lb,validator:()=>Os});h();h();var z_=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)i.hasOwnProperty(a)&&(n[a]=i[a])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),j_=Object.prototype.hasOwnProperty;function Ms(e,t){return j_.call(e,t)}function Is(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&n<=57){t++;continue}return!1}return!0}function In(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function _a(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Ls(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&u[c-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&f===void 0&&(l[p]===void 0?f=u.slice(0,c).join("/"):c==d-1&&(f=t.path),f!==void 0&&m(t,0,e,f)),c++,Array.isArray(l)){if(p==="-")p=l.length;else{if(r&&!As(p))throw new it("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a,t,e);As(p)&&(p=~~p)}if(c>=d){if(r&&t.op==="add"&&p>l.length)throw new it("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a,t,e);var o=Y_[t.op].call(t,l,p,e);if(o.test===!1)throw new it("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}}else if(c>=d){var o=yi[t.op].call(t,l,p,e);if(o.test===!1)throw new it("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}if(l=l[p],r&&c0)throw new it('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new it("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new it("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&Ls(e.value))throw new it("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var i=e.path.split("/").length,a=n.split("/").length;if(i!==a+1&&i!==a)throw new it("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==n)throw new it("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var o={op:"_get",path:e.from,value:void 0},s=Lb([o],r);if(s&&s.name==="OPERATION_PATH_UNRESOLVABLE")throw new it("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new it("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function Lb(e,t,r){try{if(!Array.isArray(e))throw new it("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)Fs(It(t),It(e),r||!0);else{r=r||Os;for(var n=0;nyd,generate:()=>md,observe:()=>nD,unobserve:()=>tD});h();var hd=new WeakMap,G_=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),Q_=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function X_(e){return hd.get(e)}function Z_(e,t){return e.observers.get(t)}function eD(e,t){e.observers.delete(t.callback)}function tD(e,t){t.unobserve()}function nD(e,t){var r=[],n,i=X_(e);if(!i)i=new G_(e),hd.set(e,i);else{var a=Z_(i,t);n=a&&a.observer}if(n)return n;if(n={},i.value=It(e),t){n.callback=t,n.next=null;var o=function(){md(n)},s=function(){clearTimeout(n.next),n.next=setTimeout(o)};typeof window!="undefined"&&(window.addEventListener("mouseup",s),window.addEventListener("keyup",s),window.addEventListener("mousedown",s),window.addEventListener("keydown",s),window.addEventListener("change",s))}return n.patches=r,n.object=e,n.unobserve=function(){md(n),clearTimeout(n.next),eD(i,n),typeof window!="undefined"&&(window.removeEventListener("mouseup",s),window.removeEventListener("keyup",s),window.removeEventListener("mousedown",s),window.removeEventListener("keydown",s),window.removeEventListener("change",s))},i.observers.set(t,new Q_(t,n)),n}function md(e,t){t===void 0&&(t=!1);var r=hd.get(e.object);gd(r.value,e.object,e.patches,"",t),e.patches.length&&Fs(r.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function gd(e,t,r,n,i){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var a=Is(t),o=Is(e),s=!1,u=!1,l=o.length-1;l>=0;l--){var c=o[l],d=e[c];if(Ms(t,c)&&!(t[c]===void 0&&d!==void 0&&Array.isArray(t)===!1)){var f=t[c];typeof d=="object"&&d!=null&&typeof f=="object"&&f!=null&&Array.isArray(d)===Array.isArray(f)?gd(d,f,r,n+"/"+In(c),i):d!==f&&(s=!0,i&&r.push({op:"test",path:n+"/"+In(c),value:It(d)}),r.push({op:"replace",path:n+"/"+In(c),value:It(f)}))}else Array.isArray(e)===Array.isArray(t)?(i&&r.push({op:"test",path:n+"/"+In(c),value:It(d)}),r.push({op:"remove",path:n+"/"+In(c)}),u=!0):(i&&r.push({op:"test",path:n,value:e}),r.push({op:"replace",path:n,value:t}),s=!0)}if(!(!u&&a.length==o.length))for(var l=0;l":""))+")"})),f;function f(){let p=[],m,v,b;if((!t||i(s,u,l[l.length-1]||null))&&(p=sD(r(s,l)),p[0]===wd))return p;if(s.children&&p[0]!==Bb)for(v=(n?s.children.length:-1)+a,b=l.concat(s);v>-1&&v!0){for(let i=t+1,a=e.length;i{try{await Vb(e,r),await Promise.all(r.children.map(n=>Ma(e,n)))}catch(n){throw e.setError(n),n}}))}catch(r){throw e.setError(r),r}return t}function lD(e){return(e.op==="add"||e.op==="replace")&&["/title","/titleRaw","/dateStr","/timeStr",/\d$/,/\/fileAccessor\/.+$/].some(t=>typeof t=="string"?e.path.endsWith(t):t.test(e.path))}async function jb(e,t,r){let n={},i=r.reduce((a,o)=>{if(!lD(o))return a;let s=o.path.split("/").reduce((l,c)=>(/\d+/.test(c)&&l.push(Number(c)),l),[]),u=s.join(",");return n[u]||(n[u]=!0,a.push(s)),a},[]);try{await Promise.all(i.map(a=>{let o=ft(t,a);if(o.type===Xe.Lane)return Vb(e,o);if(o.type===Xe.Item)return Ma(e,o)}))}catch(a){throw e.setError(a),a}return t}h();h();h();h();h();h();function At(e,t,r,n){let i=e.length,a=0,o;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,r=r>0?r:0,n.length<1e4)o=Array.from(n),o.unshift(t,r),[].splice.apply(e,o);else for(r&&[].splice.apply(e,[t,r]);a0?(At(e,e.length,0,t),e):t}var qb={}.hasOwnProperty;function Yb(e){let t={},r=-1;for(;++ro))return;let F=t.events.length,U=F,z,ee;for(;U--;)if(t.events[U][0]==="exit"&&t.events[U][1].type==="chunkFlow"){if(z){ee=t.events[U][1].end;break}z=!0}for(k(n),C=F;CD;){let H=r[I];t.containerState=H[1],H[0].exit.call(t,e)}r.length=D}function T(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function pD(e,t,r){return Se(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}h();h();h();h();function _d(e){if(e===null||Ge(e)||Xb(e))return 1;if(Zb(e))return 2}h();function vi(e,t,r){let n=[],i=-1;for(;++i1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;let d=Object.assign({},e[n][1].end),f=Object.assign({},e[r][1].start);rw(d,-u),rw(f,u),o={type:u>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},s={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[r][1].start),end:f},a={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[r][1].start)},i={type:u>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},s.end)},e[n][1].end=Object.assign({},o.start),e[r][1].start=Object.assign({},s.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=Vt(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=Vt(l,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),l=Vt(l,vi(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),l=Vt(l,[["exit",a,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[r][1].end.offset-e[r][1].start.offset?(c=2,l=Vt(l,[["enter",e[r][1],t],["exit",e[r][1],t]])):c=0,At(e,n-1,r-n+3,l),r=n+l.length-c-2;break}}for(r=-1;++r",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xCD",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacute:"\xD3",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslash:"\xD8",Otilde:"\xD5",Otimes:"\u2A37",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acirc:"\xE2",acute:"\xB4",acy:"\u0430",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atilde:"\xE3",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedil:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\u2256",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",eth:"\xF0",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xED",ic:"\u2063",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslash:"\xF8",osol:"\u2298",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",ouml:"\xF6",ovbar:"\u233D",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thorn:"\xFE",tilde:"\u02DC",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"};var xD={}.hasOwnProperty;function bi(e){return xD.call(Cd,e)?Cd[e]:!1}var Ks={name:"characterReference",tokenize:kD};function kD(e,t,r){let n=this,i=0,a,o;return s;function s(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),u}function u(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),a=31,o=zt,c(d))}function l(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,o=Gb,c):(e.enter("characterReferenceValue"),a=7,o=Ia,c(d))}function c(d){let f;return d===59&&i?(f=e.exit("characterReferenceValue"),o===zt&&!bi(n.sliceSerialize(f))?r(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)):o(d)&&i++=4?o(l):r(l)}function o(l){return l===null?u(l):ce(l)?e.attempt(_D,o,u)(l):(e.enter("codeFlowValue"),s(l))}function s(l){return l===null||ce(l)?(e.exit("codeFlowValue"),o(l)):(e.consume(l),s)}function u(l){return e.exit("codeIndented"),t(l)}}function CD(e,t,r){let n=this;return i;function i(o){return n.parser.lazy[n.now().line]?r(o):ce(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Se(e,a,"linePrefix",4+1)(o)}function a(o){let s=n.events[n.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(o):ce(o)?i(o):r(o)}}h();var Td={name:"codeText",tokenize:ID,resolve:TD,previous:MD};function TD(e){let t=e.length-4,r=3,n,i;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=r;++n=4?t(o):e.interrupt(n.parser.constructs.flow,r,t)(o)}}h();h();function Ws(e,t,r,n,i,a,o,s,u){let l=u||Number.POSITIVE_INFINITY,c=0;return d;function d(k){return k===60?(e.enter(n),e.enter(i),e.enter(a),e.consume(k),e.exit(a),f):k===null||k===41||Aa(k)?r(k):(e.enter(n),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),v(k))}function f(k){return k===62?(e.enter(a),e.consume(k),e.exit(a),e.exit(i),e.exit(n),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(k))}function p(k){return k===62?(e.exit("chunkString"),e.exit(s),f(k)):k===null||k===60||ce(k)?r(k):(e.consume(k),k===92?m:p)}function m(k){return k===60||k===62||k===92?(e.consume(k),p):p(k)}function v(k){return k===40?++c>l?r(k):(e.consume(k),v):k===41?c--?(e.consume(k),v):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(k)):k===null||Ge(k)?c?r(k):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(k)):Aa(k)?r(k):(e.consume(k),k===92?b:v)}function b(k){return k===40||k===41||k===92?(e.consume(k),v):v(k)}}h();function Vs(e,t,r,n,i,a){let o=this,s=0,u;return l;function l(p){return e.enter(n),e.enter(i),e.consume(p),e.exit(i),e.enter(a),c}function c(p){return p===null||p===91||p===93&&!u||p===94&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs||s>999?r(p):p===93?(e.exit(a),e.enter(i),e.consume(p),e.exit(i),e.exit(n),t):ce(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||ce(p)||s++>999?(e.exit("chunkString"),c(p)):(e.consume(p),u=u||!He(p),p===92?f:d)}function f(p){return p===91||p===92||p===93?(e.consume(p),s++,d):d(p)}}h();function zs(e,t,r,n,i,a){let o;return s;function s(f){return e.enter(n),e.enter(i),e.consume(f),e.exit(i),o=f===40?41:f,u}function u(f){return f===o?(e.enter(i),e.consume(f),e.exit(i),e.exit(n),t):(e.enter(a),l(f))}function l(f){return f===o?(e.exit(a),u(o)):f===null?r(f):ce(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Se(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(f){return f===o||f===null||ce(f)?(e.exit("chunkString"),l(f)):(e.consume(f),f===92?d:c)}function d(f){return f===o||f===92?(e.consume(f),c):c(f)}}h();function Fr(e,t){let r;return n;function n(i){return ce(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),r=!0,n):He(i)?Se(e,n,r?"linePrefix":"lineSuffix")(i):t(i)}}h();function qn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var Id={name:"definition",tokenize:RD},ND={tokenize:HD,partial:!0};function RD(e,t,r){let n=this,i;return a;function a(u){return e.enter("definition"),Vs.call(n,e,o,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}function o(u){return i=qn(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),u===58?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),Fr(e,Ws(e,e.attempt(ND,Se(e,s,"whitespace"),Se(e,s,"whitespace")),r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):r(u)}function s(u){return u===null||ce(u)?(e.exit("definition"),n.parser.defined.includes(i)||n.parser.defined.push(i),t(u)):r(u)}}function HD(e,t,r){return n;function n(o){return Ge(o)?Fr(e,i)(o):r(o)}function i(o){return o===34||o===39||o===40?zs(e,Se(e,a,"whitespace"),r,"definitionTitle","definitionTitleMarker","definitionTitleString")(o):r(o)}function a(o){return o===null||ce(o)?t(o):r(o)}}h();var Ad={name:"hardBreakEscape",tokenize:BD};function BD(e,t,r){return n;function n(a){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(a),i}function i(a){return ce(a)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(a)):r(a)}}h();var Ld={name:"headingAtx",tokenize:$D,resolve:KD};function KD(e,t){let r=e.length-2,n=3,i,a;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(i={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},a={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},At(e,n,r-n+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function $D(e,t,r){let n=this,i=0;return a;function a(c){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&i++<6?(e.consume(c),o):c===null||Ge(c)?(e.exit("atxHeadingSequence"),n.interrupt?t(c):s(c)):r(c)}function s(c){return c===35?(e.enter("atxHeadingSequence"),u(c)):c===null||ce(c)?(e.exit("atxHeading"),t(c)):He(c)?Se(e,s,"whitespace")(c):(e.enter("atxHeadingText"),l(c))}function u(c){return c===35?(e.consume(c),u):(e.exit("atxHeadingSequence"),s(c))}function l(c){return c===null||c===35||Ge(c)?(e.exit("atxHeadingText"),s(c)):(e.consume(c),l)}}h();h();var iw=["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","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Pd=["pre","script","style","textarea"];var Fd={name:"htmlFlow",tokenize:VD,resolveTo:WD,concrete:!0},UD={tokenize:zD,partial:!0};function WD(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function VD(e,t,r){let n=this,i,a,o,s,u;return l;function l(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),c}function c(P){return P===33?(e.consume(P),d):P===47?(e.consume(P),m):P===63?(e.consume(P),i=3,n.interrupt?t:be):sn(P)?(e.consume(P),o=String.fromCharCode(P),a=!0,v):r(P)}function d(P){return P===45?(e.consume(P),i=2,f):P===91?(e.consume(P),i=5,o="CDATA[",s=0,p):sn(P)?(e.consume(P),i=4,n.interrupt?t:be):r(P)}function f(P){return P===45?(e.consume(P),n.interrupt?t:be):r(P)}function p(P){return P===o.charCodeAt(s++)?(e.consume(P),s===o.length?n.interrupt?t:Z:p):r(P)}function m(P){return sn(P)?(e.consume(P),o=String.fromCharCode(P),v):r(P)}function v(P){return P===null||P===47||P===62||Ge(P)?P!==47&&a&&Pd.includes(o.toLowerCase())?(i=1,n.interrupt?t(P):Z(P)):iw.includes(o.toLowerCase())?(i=6,P===47?(e.consume(P),b):n.interrupt?t(P):Z(P)):(i=7,n.interrupt&&!n.parser.lazy[n.now().line]?r(P):a?T(P):k(P)):P===45||zt(P)?(e.consume(P),o+=String.fromCharCode(P),v):r(P)}function b(P){return P===62?(e.consume(P),n.interrupt?t:Z):r(P)}function k(P){return He(P)?(e.consume(P),k):z(P)}function T(P){return P===47?(e.consume(P),z):P===58||P===95||sn(P)?(e.consume(P),D):He(P)?(e.consume(P),T):z(P)}function D(P){return P===45||P===46||P===58||P===95||zt(P)?(e.consume(P),D):I(P)}function I(P){return P===61?(e.consume(P),H):He(P)?(e.consume(P),I):T(P)}function H(P){return P===null||P===60||P===61||P===62||P===96?r(P):P===34||P===39?(e.consume(P),u=P,C):He(P)?(e.consume(P),H):(u=null,F(P))}function C(P){return P===null||ce(P)?r(P):P===u?(e.consume(P),U):(e.consume(P),C)}function F(P){return P===null||P===34||P===39||P===60||P===61||P===62||P===96||Ge(P)?I(P):(e.consume(P),F)}function U(P){return P===47||P===62||He(P)?T(P):r(P)}function z(P){return P===62?(e.consume(P),ee):r(P)}function ee(P){return He(P)?(e.consume(P),ee):P===null||ce(P)?Z(P):r(P)}function Z(P){return P===45&&i===2?(e.consume(P),re):P===60&&i===1?(e.consume(P),pe):P===62&&i===4?(e.consume(P),Te):P===63&&i===3?(e.consume(P),be):P===93&&i===5?(e.consume(P),ge):ce(P)&&(i===6||i===7)?e.check(UD,Te,le)(P):P===null||ce(P)?le(P):(e.consume(P),Z)}function le(P){return e.exit("htmlFlowData"),X(P)}function X(P){return P===null?L(P):ce(P)?e.attempt({tokenize:G,partial:!0},X,L)(P):(e.enter("htmlFlowData"),Z(P))}function G(P,lt,Je){return W;function W(q){return P.enter("lineEnding"),P.consume(q),P.exit("lineEnding"),j}function j(q){return n.parser.lazy[n.now().line]?Je(q):lt(q)}}function re(P){return P===45?(e.consume(P),be):Z(P)}function pe(P){return P===47?(e.consume(P),o="",he):Z(P)}function he(P){return P===62&&Pd.includes(o.toLowerCase())?(e.consume(P),Te):sn(P)&&o.length<8?(e.consume(P),o+=String.fromCharCode(P),he):Z(P)}function ge(P){return P===93?(e.consume(P),be):Z(P)}function be(P){return P===62?(e.consume(P),Te):P===45&&i===2?(e.consume(P),be):Z(P)}function Te(P){return P===null||ce(P)?(e.exit("htmlFlowData"),L(P)):(e.consume(P),Te)}function L(P){return e.exit("htmlFlow"),t(P)}}function zD(e,t,r){return n;function n(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(pr,t,r)}}h();var Od={name:"htmlText",tokenize:jD};function jD(e,t,r){let n=this,i,a,o,s;return u;function u(L){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(L),l}function l(L){return L===33?(e.consume(L),c):L===47?(e.consume(L),F):L===63?(e.consume(L),H):sn(L)?(e.consume(L),ee):r(L)}function c(L){return L===45?(e.consume(L),d):L===91?(e.consume(L),a="CDATA[",o=0,b):sn(L)?(e.consume(L),I):r(L)}function d(L){return L===45?(e.consume(L),f):r(L)}function f(L){return L===null||L===62?r(L):L===45?(e.consume(L),p):m(L)}function p(L){return L===null||L===62?r(L):m(L)}function m(L){return L===null?r(L):L===45?(e.consume(L),v):ce(L)?(s=m,ge(L)):(e.consume(L),m)}function v(L){return L===45?(e.consume(L),Te):m(L)}function b(L){return L===a.charCodeAt(o++)?(e.consume(L),o===a.length?k:b):r(L)}function k(L){return L===null?r(L):L===93?(e.consume(L),T):ce(L)?(s=k,ge(L)):(e.consume(L),k)}function T(L){return L===93?(e.consume(L),D):k(L)}function D(L){return L===62?Te(L):L===93?(e.consume(L),D):k(L)}function I(L){return L===null||L===62?Te(L):ce(L)?(s=I,ge(L)):(e.consume(L),I)}function H(L){return L===null?r(L):L===63?(e.consume(L),C):ce(L)?(s=H,ge(L)):(e.consume(L),H)}function C(L){return L===62?Te(L):H(L)}function F(L){return sn(L)?(e.consume(L),U):r(L)}function U(L){return L===45||zt(L)?(e.consume(L),U):z(L)}function z(L){return ce(L)?(s=z,ge(L)):He(L)?(e.consume(L),z):Te(L)}function ee(L){return L===45||zt(L)?(e.consume(L),ee):L===47||L===62||Ge(L)?Z(L):r(L)}function Z(L){return L===47?(e.consume(L),Te):L===58||L===95||sn(L)?(e.consume(L),le):ce(L)?(s=Z,ge(L)):He(L)?(e.consume(L),Z):Te(L)}function le(L){return L===45||L===46||L===58||L===95||zt(L)?(e.consume(L),le):X(L)}function X(L){return L===61?(e.consume(L),G):ce(L)?(s=X,ge(L)):He(L)?(e.consume(L),X):Z(L)}function G(L){return L===null||L===60||L===61||L===62||L===96?r(L):L===34||L===39?(e.consume(L),i=L,re):ce(L)?(s=G,ge(L)):He(L)?(e.consume(L),G):(e.consume(L),i=void 0,he)}function re(L){return L===i?(e.consume(L),pe):L===null?r(L):ce(L)?(s=re,ge(L)):(e.consume(L),re)}function pe(L){return L===62||L===47||Ge(L)?Z(L):r(L)}function he(L){return L===null||L===34||L===39||L===60||L===61||L===96?r(L):L===62||Ge(L)?Z(L):(e.consume(L),he)}function ge(L){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),Se(e,be,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function be(L){return e.enter("htmlTextData"),s(L)}function Te(L){return L===62?(e.consume(L),e.exit("htmlTextData"),e.exit("htmlText"),t):r(L)}}h();var Or={name:"labelEnd",tokenize:XD,resolveTo:QD,resolveAll:GD},qD={tokenize:ZD},YD={tokenize:eC},JD={tokenize:tC};function GD(e){let t=-1,r;for(;++t-1&&(o[0]=o[0].slice(n)),a>0&&o.push(e[i].slice(0,a))),o}function vC(e,t){let r=-1,n=[],i;for(;++rDC,contentInitial:()=>wC,disable:()=>CC,document:()=>bC,flow:()=>xC,flowInitial:()=>EC,insideSpan:()=>_C,string:()=>kC,text:()=>SC});h();var bC={[42]:Bt,[43]:Bt,[45]:Bt,[48]:Bt,[49]:Bt,[50]:Bt,[51]:Bt,[52]:Bt,[53]:Bt,[54]:Bt,[55]:Bt,[56]:Bt,[57]:Bt,[62]:Rs},wC={[91]:Md},EC={[-2]:Pa,[-1]:Pa,[32]:Pa},xC={[35]:Ad,[42]:Or,[45]:[Ws,Or],[60]:Pd,[61]:Ws,[95]:Or,[96]:Ks,[126]:Ks},kC={[38]:Bs,[92]:Hs},SC={[-5]:Fa,[-4]:Fa,[-3]:Fa,[33]:Od,[38]:Bs,[42]:La,[60]:[_d,Fd],[91]:Nd,[92]:[Id,Hs],[93]:Fr,[95]:La,[96]:Cd},_C={null:[La,aw]},DC={null:[42,95]},CC={null:[]};function dw(e={}){let t=qb([Rd].concat(e.extensions||[])),r={defined:[],lazy:{},constructs:t,content:n(Zb),document:n(ew),flow:n(iw),string:n(ow),text:n(sw)};return r;function n(i){return a;function a(o){return uw(r,i,o)}}}h();var fw=/[\0\t\n\r]/g;function pw(){let e=1,t="",r=!0,n;return i;function i(a,o,s){let u=[],l,c,d,f,p;for(a=t+a.toString(o),d=0,t="",r&&(a.charCodeAt(0)===65279&&d++,r=void 0);d13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)==65535||(r&65535)==65534||r>1114111?"\uFFFD":String.fromCharCode(r)}h();var TC=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function mw(e){return e.replace(TC,MC)}function MC(e,t,r){if(t)return t;if(r.charCodeAt(0)===35){let i=r.charCodeAt(1),a=i===120||i===88;return js(r.slice(a?2:1),a?16:10)}return yi(r)||e}h();function Oa(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?gw(e.position):"start"in e||"end"in e?gw(e):"line"in e||"column"in e?Hd(e):""}function Hd(e){return vw(e&&e.line)+":"+vw(e&&e.column)}function gw(e){return Hd(e&&e.start)+"-"+Hd(e&&e.end)}function vw(e){return e&&typeof e=="number"?e:1}var Bd={}.hasOwnProperty,qs=function(e,t,r){return typeof t!="string"&&(r=t,t=void 0),IC(r)(hw(dw(r).document().write(pw()(e,t,!0))))};function IC(e={}){let t=yw({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:u(Rr),autolinkProtocol:le,autolinkEmail:le,atxHeading:u(Pn),blockQuote:u(ut),characterEscape:le,characterReference:le,codeFenced:u(ht),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:u(ht,l),codeText:u(Lt,l),codeTextData:le,data:le,codeFlowValue:le,definition:u(An),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:u(Ln),hardBreakEscape:u(hn),hardBreakTrailing:u(hn),htmlFlow:u(mn,l),htmlFlowData:le,htmlText:u(mn,l),htmlTextData:le,image:u(Fn),label:l,link:u(Rr),listItem:u(Br),listItemValue:y,listOrdered:u(Hr,m),listUnordered:u(Hr),paragraph:u(Yn),reference:j,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:u(Pn),strong:u(Pt),thematicBreak:u(mt)},exit:{atxHeading:d(),atxHeadingSequence:U,autolink:d(),autolinkEmail:$e,autolinkProtocol:ke,blockQuote:d(),characterEscapeValue:X,characterReferenceMarkerHexadecimal:ee,characterReferenceMarkerNumeric:ee,characterReferenceValue:we,codeFenced:d(D),codeFencedFence:T,codeFencedFenceInfo:b,codeFencedFenceMeta:k,codeFlowValue:X,codeIndented:d(A),codeText:d(ve),codeTextData:X,data:X,definition:d(),definitionDestinationString:N,definitionLabelString:B,definitionTitleString:C,emphasis:d(),hardBreakEscape:d(re),hardBreakTrailing:d(re),htmlFlow:d(pe),htmlFlowData:X,htmlText:d(he),htmlTextData:X,image:d(Te),label:P,labelText:L,lineEnding:G,link:d(be),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:q,resourceDestinationString:ct,resourceTitleString:Ge,resource:V,setextHeading:d(Z),setextHeadingLineSequence:te,setextHeadingText:W,strong:d(),thematicBreak:d()}},e.mdastExtensions||[]),r={};return n;function n(Y){let oe={type:"root",children:[]},Ee=[oe],We=[],kt=[],gn={stack:Ee,tokenStack:We,config:t,enter:c,exit:f,buffer:l,resume:p,setData:a,getData:o},qe=-1;for(;++qe0){let at=We[We.length-1];(at[1]||bw).call(gn,void 0,at[0])}for(oe.position={start:s(Y.length>0?Y[0][1].start:{line:1,column:1,offset:0}),end:s(Y.length>0?Y[Y.length-2][1].end:{line:1,column:1,offset:0})},qe=-1;++qe".charCodeAt(0)?o(m):(i.enter(e),i.enter(`${e}Marker`),d(m))}function d(m){return u===t.length?(i.exit(`${e}Marker`),f(m)):m!==t.charCodeAt(u)?o(m):(i.consume(m),u++,d)}function f(m){return i.enter(`${e}Data`),i.enter(`${e}Target`),p(m)}function p(m){return Qe(m)||"<".charCodeAt(0)===m||"#".charCodeAt(0)===m||m===null?s?(i.exit(`${e}Target`),i.exit(`${e}Data`),i.exit(e),a(m)):o(m):(s=!0,i.consume(m),p)}}let n={tokenize:r};return{text:{[t.charCodeAt(0)]:n}}}function Iw(){let e="hashtag";function t(i){this.enter({type:e,value:null},i)}function r(i){let a=this.sliceSerialize(i),o=bi(this.stack);o.value=a}function n(i){this.exit(i)}return{enter:{[e]:t},exit:{[`${e}Target`]:r,[e]:n}}}h();h();var xi={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,byteOrderMarker:65279,replacementCharacter:65533};h();var Vd={data:"data",whitespace:"whitespace",lineEnding:"lineEnding",lineEndingBlank:"lineEndingBlank",linePrefix:"linePrefix",lineSuffix:"lineSuffix",atxHeading:"atxHeading",atxHeadingSequence:"atxHeadingSequence",atxHeadingText:"atxHeadingText",autolink:"autolink",autolinkEmail:"autolinkEmail",autolinkMarker:"autolinkMarker",autolinkProtocol:"autolinkProtocol",characterEscape:"characterEscape",characterEscapeValue:"characterEscapeValue",characterReference:"characterReference",characterReferenceMarker:"characterReferenceMarker",characterReferenceMarkerNumeric:"characterReferenceMarkerNumeric",characterReferenceMarkerHexadecimal:"characterReferenceMarkerHexadecimal",characterReferenceValue:"characterReferenceValue",codeFenced:"codeFenced",codeFencedFence:"codeFencedFence",codeFencedFenceSequence:"codeFencedFenceSequence",codeFencedFenceInfo:"codeFencedFenceInfo",codeFencedFenceMeta:"codeFencedFenceMeta",codeFlowValue:"codeFlowValue",codeIndented:"codeIndented",codeText:"codeText",codeTextData:"codeTextData",codeTextPadding:"codeTextPadding",codeTextSequence:"codeTextSequence",content:"content",definition:"definition",definitionDestination:"definitionDestination",definitionDestinationLiteral:"definitionDestinationLiteral",definitionDestinationLiteralMarker:"definitionDestinationLiteralMarker",definitionDestinationRaw:"definitionDestinationRaw",definitionDestinationString:"definitionDestinationString",definitionLabel:"definitionLabel",definitionLabelMarker:"definitionLabelMarker",definitionLabelString:"definitionLabelString",definitionMarker:"definitionMarker",definitionTitle:"definitionTitle",definitionTitleMarker:"definitionTitleMarker",definitionTitleString:"definitionTitleString",emphasis:"emphasis",emphasisSequence:"emphasisSequence",emphasisText:"emphasisText",escapeMarker:"escapeMarker",hardBreakEscape:"hardBreakEscape",hardBreakTrailing:"hardBreakTrailing",htmlFlow:"htmlFlow",htmlFlowData:"htmlFlowData",htmlText:"htmlText",htmlTextData:"htmlTextData",image:"image",label:"label",labelText:"labelText",labelLink:"labelLink",labelImage:"labelImage",labelMarker:"labelMarker",labelImageMarker:"labelImageMarker",labelEnd:"labelEnd",link:"link",paragraph:"paragraph",reference:"reference",referenceMarker:"referenceMarker",referenceString:"referenceString",resource:"resource",resourceDestination:"resourceDestination",resourceDestinationLiteral:"resourceDestinationLiteral",resourceDestinationLiteralMarker:"resourceDestinationLiteralMarker",resourceDestinationRaw:"resourceDestinationRaw",resourceDestinationString:"resourceDestinationString",resourceMarker:"resourceMarker",resourceTitle:"resourceTitle",resourceTitleMarker:"resourceTitleMarker",resourceTitleString:"resourceTitleString",setextHeading:"setextHeading",setextHeadingText:"setextHeadingText",setextHeadingLine:"setextHeadingLine",setextHeadingLineSequence:"setextHeadingLineSequence",strong:"strong",strongSequence:"strongSequence",strongText:"strongText",thematicBreak:"thematicBreak",thematicBreakSequence:"thematicBreakSequence",blockQuote:"blockQuote",blockQuotePrefix:"blockQuotePrefix",blockQuoteMarker:"blockQuoteMarker",blockQuotePrefixWhitespace:"blockQuotePrefixWhitespace",listOrdered:"listOrdered",listUnordered:"listUnordered",listItemIndent:"listItemIndent",listItemMarker:"listItemMarker",listItemPrefix:"listItemPrefix",listItemPrefixWhitespace:"listItemPrefixWhitespace",listItemValue:"listItemValue",chunkDocument:"chunkDocument",chunkContent:"chunkContent",chunkFlow:"chunkFlow",chunkText:"chunkText",chunkString:"chunkString"};var NC={tokenize:RC},Aw={text:{[xi.leftSquareBracket]:NC}};function RC(e,t,r){let n=this;return i;function i(s){return n.previous!==xi.eof||!n._gfmTasklistFirstContentOfListItem?r(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),a)}function a(s){return He(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),o):s!==xi.rightSquareBracket?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),o):r(s)}function o(s){return s===xi.rightSquareBracket?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:HC},t,r)):r(s)}}function HC(e,t,r){let n=this;return Se(e,i,Vd.whitespace);function i(a){let o=n.events[n.events.length-1];return o&&o[1].type===Vd.whitespace&&a!==xi.eof&&!Qe(a)?t(a):r(a)}}var Lw={exit:{taskListCheckValueChecked:Pw,taskListCheckValueUnchecked:Pw,paragraph:BC}};function Pw(e){let t=this.stack[this.stack.length-2];t.checked=e.type==="taskListCheckValueChecked",t.checkChar=this.sliceSerialize(e)}function BC(e){let t=this.stack[this.stack.length-2],r=this.stack[this.stack.length-1],n=t.children,i=r.children[0],a=-1,o;if(t&&t.type==="listItem"&&typeof t.checked=="boolean"&&i&&i.type==="text"){for(;++a=0;i--){if(!t&&/[`%\n\r]/.test(e[i])){e[i]==="`"&&(r++,r===3&&(t=!0,n=i-1));continue}else if(!t)return{};if(e[i]==="`"&&e[i-1]==="`"&&e[i-2]==="`"&&/[\r\n]/.test(e[i-3]))return JSON.parse(e.slice(i+1,n).trim())}}function Ow(e){return[Aw,wi("date",`${e.getSetting("date-trigger")}{`,"}"),wi("dateLink",`${e.getSetting("date-trigger")}[[`,"]]"),wi("time",`${e.getSetting("time-trigger")}{`,"}"),wi("embedWikilink","![[","]]"),wi("wikilink","[[","]]"),Mw(),Dw()]}function Nw(e){return[Lw,Ei("date",(t,r)=>{!t||(r.date=t)}),Ei("dateLink",(t,r)=>{!t||(r.date=t)}),Ei("time",(t,r)=>{!t||(r.time=t)}),Ei("embedWikilink",(t,r)=>{if(!t)return;let n=Ir(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);r.fileAccessor={target:n.root,isEmbed:!0,stats:i==null?void 0:i.stat}}),Ei("wikilink",(t,r)=>{if(!t)return;let n=Ir(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);if(r.fileAccessor={target:n.root,isEmbed:!1},i){let a=od(e,i);r.fileMetadata=a.fileMetadata,r.fileMetadataOrder=a.fileMetadataOrder}}),Tw((t,r)=>{if(!t.url||/:\/\//.test(t.url)||!/.md$/.test(t.url))return;let n=e.app.metadataCache.getFirstLinkpathDest(decodeURIComponent(t.url),e.file.path);if(r)t.type="embedLink",t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!0,stats:n.stat};else if(t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!1},n){let i=od(e,n);t.fileMetadata=i.fileMetadata,t.fileMetadataOrder=i.fileMetadataOrder}}),Iw(),Cw()]}function Rw(e,t){let r=KC(t),i={...$C(t)},a={};return Object.keys(r).forEach(o=>{o===fn?(i[o]=r[o],a[o]=r[o]):Cb[o]?i[o]=r[o]:a[o]=r[o]}),e.compileSettings(i),{settings:i,frontmatter:a,ast:qs(t,{extensions:[$d(["yaml"]),...Ow(e)],mdastExtensions:[kw(["yaml"]),...Nw(e)]})}}function zd(e,t){return qs(t,{extensions:Ow(e),mdastExtensions:Nw(e)})}function Qs(e,t,r){let n=e.getSetting("hide-tags-in-title"),i=e.getSetting("hide-date-in-title"),a=wd(r.children[0]),o=Ed(t,a);(o==="[ ]"||o==="[x]")&&(o="");let s=o,u={titleRaw:Ma(o),blockId:void 0,title:"",titleSearch:"",metadata:{dateStr:void 0,date:void 0,time:void 0,timeStr:void 0,tags:[],fileAccessor:void 0,file:void 0,fileMetadata:void 0,fileMetadataOrder:void 0},dom:void 0,isComplete:!!r.checked};return Bb(r,l=>l.type!=="paragraph",l=>{let c=l;if(c.type==="blockid")return u.blockId=c.value,!0;if(c.type==="hashtag")return u.metadata.tags||(u.metadata.tags=[]),u.metadata.tags.push("#"+c.value),n&&(s=Ns(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="date"||c.type==="dateLink")return u.metadata.dateStr=c.date,i&&(s=Ns(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="time")return u.metadata.timeStr=c.time,s=Ns(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start}),!0;if(c.type==="embedWikilink")return u.metadata.fileAccessor=c.fileAccessor,!0;if(c.type==="wikilink"||c.type==="link"&&c.fileAccessor)return u.metadata.fileAccessor=c.fileAccessor,u.metadata.fileMetadata=c.fileMetadata,u.metadata.fileMetadataOrder=c.fileMetadataOrder,!0;if(c.type==="embedLink")return u.metadata.fileAccessor=c.fileAccessor,!0}),u.title=Ma(Wb(s)),u}function UC(e,t,r){if(e.type!=="heading"||Da(e,{includeImageAlt:!1})!==H("Archive"))return!1;let n=Kb(t,r);return n&&n.type==="thematicBreak"}function Bw(e,t,r,n,i){let a=[],o=[];return n.children.forEach((s,u)=>{if(s.type==="heading"){let l=UC(s,n.children,u),c=wd(s),d=Ed(i,c),f=!1,p=$b(n.children,u,"list",m=>{if(m.type==="heading")return!1;if(m.type==="paragraph"){let y=Da(m);if(y.startsWith("%% kanban:settings"))return!1;if(y===H("Complete"))return f=!0,!0}return!0});if(l&&p){o.push(...p.children.map(m=>({...jo,id:ze(),data:Qs(e,i,m)})));return}p?a.push({...sr,children:p.children.map(m=>({...jo,id:ze(),data:Qs(e,i,m)})),id:ze(),data:{title:Ma(d),shouldMarkItemsComplete:f}}):a.push({...sr,children:[],id:ze(),data:{title:Ma(d),shouldMarkItemsComplete:f}})}}),{...qo,id:e.file.path,children:a,data:{settings:t,frontmatter:r,archive:o,isSearching:!1,errors:[]}}}async function Wd(e,t,r){let n=`- [${t.data.isComplete?"x":" "}] ${Ta(r)}${t.data.blockId?` ^${t.data.blockId}`:""}`,i=zd(e,n),a=Qs(e,n,i.children[0].children[0]),o=(0,Gs.default)(t,{data:{$set:a}});try{await Ca(e,o)}catch(s){console.error(s)}return o}async function Kw(e,t,r,n){let i=`- [${r?"x":" "}] ${Ta(t)}`,a=zd(e,i),o=Qs(e,i,a.children[0].children[0]);o.forceEditMode=!!n;let s={...jo,id:ze(),data:o};try{await Ca(e,s)}catch(u){console.error(u)}return s}async function $w(e,t){try{return(0,Gs.default)(t,{children:{$set:await Promise.all(t.children.map(async r=>{try{return(0,Gs.default)(r,{children:{$set:await Promise.all(r.children.map(n=>Wd(e,n,n.data.titleRaw)))}})}catch(n){throw e.setError(n),n}}))}})}catch(r){throw e.setError(r),r}}function Uw(e){return`- [${e.data.isComplete?"x":" "}] ${Ta(e.data.titleRaw)}${e.data.blockId?` ^${e.data.blockId}`:""}`}function VC(e){let t=[];return t.push(`## ${Ta(e.data.title)}`),t.push(""),e.data.shouldMarkItemsComplete&&t.push(ub),e.children.forEach(r=>{t.push(Uw(r))}),t.push(""),t.push(""),t.push(""),t.join(` -`)}function zC(e){if(e.length){let t=[db,"",`## ${H("Archive")}`,""];return e.forEach(r=>{t.push(Uw(r))}),t.join(` -`)}return""}function Vw(e){let t=e.children.reduce((n,i)=>n+VC(i),"");return["---","",(0,Hw.stringifyYaml)(e.data.frontmatter),"---","",""].join(` -`)+t+zC(e.data.archive)+fb(e.data.settings)}var jd=class{constructor(t){this.stateManager=t}newItem(t,r,n){return Kw(this.stateManager,t,r,n)}updateItemContent(t,r){return Wd(this.stateManager,t,r)}boardToMd(t){return Vw(t)}mdToBoard(t){let{ast:r,settings:n,frontmatter:i}=Rw(this.stateManager,t),a=Bw(this.stateManager,n,i,r,t);if(!this.stateManager.hasError()&&this.stateManager.state){let s=gd(this.stateManager.state,a).filter(l=>["/id","/dom","/date","/time","/titleSearch","/file"].every(c=>!l.path.endsWith(c))),u=(0,zw.immutableJSONPatch)(this.stateManager.state,s);return zb(this.stateManager,u,s)}return Vb(this.stateManager,a)}reparseBoard(){return $w(this.stateManager,this.stateManager.state)}};var qd=class{constructor(t,r,n,i,a){this.stateReceivers=[];this.settingsNotifiers=new Map;this.viewSet=new Set;this.compiledSettings={};this.newBoardPromise=null;this.getSetting=(t,r)=>r&&r[t]!==void 0?r[t]:this.compiledSettings&&this.compiledSettings[t]!==void 0?this.compiledSettings[t]:this.getSettingRaw(t);this.getSettingRaw=(t,r)=>{var n,i;return r&&r[t]!==void 0?r[t]:((i=(n=this.state)==null?void 0:n.data)==null?void 0:i.settings)&&this.state.data.settings[t]!==void 0?this.state.data.settings[t]:this.getGlobalSetting(t)};this.getGlobalSetting=t=>{let r=this.getGlobalSettings();return r&&r[t]!==void 0?r[t]:null};this.app=t,this.file=r.file,this.onEmpty=i,this.getGlobalSettings=a,this.parser=new jd(this),this.registerView(r,n,!0)}getAView(){return this.viewSet.values().next().value}hasError(){var t,r,n;return!!((n=(r=(t=this.state)==null?void 0:t.data)==null?void 0:r.errors)==null?void 0:n.length)}registerView(t,r,n){this.viewSet.has(t)||(this.viewSet.add(t),t.initHeaderButtons()),n&&(this.newBoardPromise!==null?this.newBoardPromise.then(()=>this.newBoard(r)):this.newBoardPromise=this.newBoard(r).then(()=>{this.newBoardPromise=null}).catch(i=>{console.error(i),this.setError(i)}))}unregisterView(t){this.viewSet.has(t)&&(this.viewSet.delete(t),this.viewSet.size===0&&this.onEmpty())}buildSettingRetrievers(){return{getGlobalSettings:this.getGlobalSettings,getGlobalSetting:this.getGlobalSetting,getSetting:this.getSetting}}async newBoard(t){try{await this.setState(await this.getParsedBoard(t),!1)}catch(r){this.setError(r)}}saveToDisk(){if(this.state.data.errors.length>0)return;let t=this.getAView(),r=this.parser.boardToMd(this.state);t.requestSaveToDisk(r),this.viewSet.forEach(n=>{n.data=r})}softRefresh(){this.stateReceivers.forEach(t=>t({...this.state}))}async forceRefresh(){if(this.state)try{this.compileSettings(),this.state=await this.parser.reparseBoard(),this.stateReceivers.forEach(t=>t(this.state)),this.viewSet.forEach(t=>t.initHeaderButtons())}catch(t){console.error(t),this.setError(t)}}async setState(t,r=!0){var n;try{let i=(n=this.state)==null?void 0:n.data.settings,a=typeof t=="function"?await t(this.state):t,o=a==null?void 0:a.data.settings;i&&o&&hb(i,o)?(this.state=(0,ki.default)(this.state,{data:{settings:{$set:o}}}),this.compileSettings(),this.state=await this.parser.reparseBoard()):(this.state=a,this.compileSettings()),this.viewSet.forEach(s=>s.initHeaderButtons()),r&&this.saveToDisk(),this.stateReceivers.forEach(s=>s(this.state)),i!==o&&o&&this.settingsNotifiers.forEach((s,u)=>{(!i&&o||i[u]!==o[u])&&s.forEach(l=>l())})}catch(i){console.error(i),this.setError(i)}}useState(){let[t,r]=R.useState(this.state);return R.useEffect(()=>(this.stateReceivers.push(n=>{r(n)}),r(this.state),()=>{this.stateReceivers.remove(r)}),[]),t}useSetting(t){let[r,n]=R.useState(this.getSetting(t));return R.useEffect(()=>{let i=()=>{n(this.getSetting(t))};return this.settingsNotifiers.has(t)?this.settingsNotifiers.get(t).push(i):this.settingsNotifiers.set(t,[i]),()=>{this.settingsNotifiers.get(t).remove(i)}},[]),r}compileSettings(t){var s,u,l,c,d;let r=this.getGlobalSetting("metadata-keys")||[],n=this.getSettingRaw("metadata-keys",t)||[],i=this.getSettingRaw("date-format",t)||jr(this.app),a=this.getSettingRaw("time-format",t)||zi(this.app),o=this.getSettingRaw("prepend-archive-format",t)||`${i} ${a}`;this.compiledSettings={"date-format":i,"date-display-format":this.getSettingRaw("date-display-format",t)||i,"date-trigger":this.getSettingRaw("date-trigger",t)||Ss,"time-format":a,"time-trigger":this.getSettingRaw("time-trigger",t)||_s,"link-date-to-daily-note":this.getSettingRaw("link-date-to-daily-note",t),"hide-date-in-title":this.getSettingRaw("hide-date-in-title",t),"hide-tags-in-title":this.getSettingRaw("hide-tags-in-title",t),"metadata-keys":[...r,...n],"prepend-archive-separator":this.getSettingRaw("prepend-archive-separator")||"","prepend-archive-format":o,"show-add-list":(s=this.getSettingRaw("show-add-list",t))!=null?s:!0,"show-archive-all":(u=this.getSettingRaw("show-archive-all",t))!=null?u:!0,"show-view-as-markdown":(l=this.getSettingRaw("show-view-as-markdown",t))!=null?l:!0,"show-board-settings":(c=this.getSettingRaw("show-board-settings",t))!=null?c:!0,"show-search":(d=this.getSettingRaw("show-search",t))!=null?d:!0}}async getParsedBoard(t){let r=t.trim(),n={...qo,id:this.file.path,children:[],data:{archive:[],settings:{"kanban-plugin":"basic"},frontmatter:{},isSearching:!1,errors:[]}};try{r&&(n=await this.parser.mdToBoard(r))}catch(i){console.error(i),n=(0,ki.default)(n,{data:{errors:{$push:[{description:i.toString(),stack:i.stack}]}}})}return n}setError(t){this.setState((0,ki.default)(this.state,{data:{errors:{$push:[{description:t.toString(),stack:t.stack}]}}}),!1)}onFileMetadataChange(){this.reparseBoardFromMd()}async reparseBoardFromMd(){try{this.setState(await this.getParsedBoard(this.getAView().data),!1)}catch(t){console.error(t),this.setError(t)}}async archiveCompletedCards(){let t=this.state,r=[],n=!!this.getSetting("prepend-archive-date"),i=this.getSetting("prepend-archive-separator"),a=this.getSetting("prepend-archive-format"),o=u=>{let l=[(0,Ww.moment)().format(a)];i&&l.push(i),l.push(u.data.titleRaw);let c=l.join(" ");return this.parser.updateItemContent(u,c)},s=t.children.map(u=>(0,ki.default)(u,{children:{$set:u.children.filter(l=>((u.data.shouldMarkItemsComplete||l.data.isComplete)&&r.push(l),!l.data.isComplete&&!u.data.shouldMarkItemsComplete))}}));this.app.workspace.trigger("kanban:board-cards-archived",this.file,r);try{this.setState((0,ki.default)(t,{children:{$set:s},data:{archive:{$push:n?await Promise.all(r.map(u=>o(u))):r}}}))}catch(u){this.setError(u)}}getNewItem(t,r,n){return this.parser.newItem(t,r,n)}updateItemContent(t,r){return this.parser.updateItemContent(t,r)}};var Yd=class extends xt.Plugin{constructor(){super(...arguments);this.settings={};this.kanbanFileModes={};this.stateManagers=new Map;this.windowRegistry=new Map;this._loaded=!1;this.isShiftPressed=!1;this.handleShift=t=>{this.isShiftPressed=t.shiftKey}}async loadSettings(){this.settings=Object.assign({},await this.loadData())}async saveSettings(){await this.saveData(this.settings)}unload(){Promise.all(app.workspace.getLeavesOfType(pn).map(t=>(this.kanbanFileModes[t.id]="markdown",this.setMarkdownView(t)))).then(()=>{super.unload()})}onunload(){this.windowRegistry.forEach((t,r)=>{t.viewStateReceivers.forEach(n=>n([])),this.unmount(r)}),this.unmount(window),this.stateManagers.clear(),this.windowRegistry.clear(),this.kanbanFileModes={},window.removeEventListener("keydown",this.handleShift),window.removeEventListener("keyup",this.handleShift),app.workspace.unregisterHoverLinkSource(fn)}async onload(){var t,r;await this.loadSettings(),this.registerEvent(app.workspace.on("window-open",(n,i)=>{this.mount(i)})),this.registerEvent(app.workspace.on("window-close",(n,i)=>{this.unmount(i)})),this.settingsTab=new ud(this,{onSettingsChange:async n=>{this.settings=n,await this.saveSettings(),this.stateManagers.forEach(i=>{i.forceRefresh()})}}),this.addSettingTab(this.settingsTab),this.registerView(pn,n=>new jn(n,this)),this.registerMonkeyPatches(),this.registerCommands(),this.registerEvents(),this.mount(window),(r=(t=app.workspace.floatingSplit)==null?void 0:t.children)==null||r.forEach(n=>{this.mount(n.win)}),window.addEventListener("keydown",this.handleShift),window.addEventListener("keyup",this.handleShift)}getKanbanViews(t){let r=this.windowRegistry.get(t);return r?Array.from(r.viewMap.values()):[]}getKanbanView(t,r){let n=this.windowRegistry.get(r);if(n==null?void 0:n.viewMap.has(t))return n.viewMap.get(t);for(let i of this.windowRegistry.values())if(i.viewMap.has(t))return i.viewMap.get(t);return null}getStateManager(t){return this.stateManagers.get(t)}getStateManagerFromViewID(t,r){let n=this.getKanbanView(t,r);return n?this.stateManagers.get(n.file):null}useViewState(t){let[r,n]=R.useState(this.getKanbanViews(t));return R.useEffect(()=>{let i=this.windowRegistry.get(t);return i==null||i.viewStateReceivers.push(n),()=>{i==null||i.viewStateReceivers.remove(n)}},[t]),r}addView(t,r,n){let i=t.getWindow(),a=this.windowRegistry.get(i);if(!a)return;a.viewMap.has(t.id)||a.viewMap.set(t.id,t);let o=t.file;this.stateManagers.has(o)?this.stateManagers.get(o).registerView(t,r,n):this.stateManagers.set(o,new qd(this.app,t,r,()=>this.stateManagers.delete(o),()=>this.settings)),a.viewStateReceivers.forEach(s=>s(this.getKanbanViews(i)))}removeView(t){let r=Array.from(this.windowRegistry.entries()).find(([,o])=>o.viewMap.has(t.id),[]);if(!r)return;let[n,i]=r,a=t.file;i.viewMap.has(t.id)&&i.viewMap.delete(t.id),this.stateManagers.has(a)&&(this.stateManagers.get(a).unregisterView(t),i.viewStateReceivers.forEach(o=>o(this.getKanbanViews(n))))}handleViewFileRename(t,r){let n=t.getWindow();if(!this.windowRegistry.has(n))return;let i=this.windowRegistry.get(n),a=`${t.leaf.id}:::${r}`;i.viewMap.has(a)&&i.viewMap.delete(a),i.viewMap.has(t.id)||i.viewMap.set(t.id,t),t.isPrimary&&this.getStateManager(t.file).softRefresh()}mount(t){if(this.windowRegistry.has(t))return;let r=t.document.body.createDiv();this.windowRegistry.set(t,{viewMap:new Map,viewStateReceivers:[],appRoot:r}),R.render(lb(t,this),r)}unmount(t){if(!this.windowRegistry.has(t))return;let r=this.windowRegistry.get(t);for(let n of r.viewMap.values())n.destroy();R.unmountComponentAtNode(r.appRoot),r.appRoot.remove(),r.viewMap.clear(),r.viewStateReceivers.length=0,r.appRoot=null,this.windowRegistry.delete(t)}async setMarkdownView(t,r=!0){await t.setViewState({type:"markdown",state:t.view.getState(),popstate:!0},{focus:r})}async setKanbanView(t){await t.setViewState({type:pn,state:t.view.getState(),popstate:!0})}async newKanban(t){var n;let r=t||app.fileManager.getNewFileParent(((n=app.workspace.getActiveFile())==null?void 0:n.path)||"");try{let i=await app.fileManager.createNewMarkdownFile(r,H("Untitled Kanban"));await app.vault.modify(i,ad),await app.workspace.getLeaf().setViewState({type:pn,state:{file:i.path}})}catch(i){console.error("Error creating kanban board:",i)}}registerEvents(){this.registerEvent(app.workspace.on("file-menu",(r,n,i,a)=>{if(n instanceof xt.TFolder){r.addItem(o=>{o.setTitle(H("New kanban board")).setIcon(xa).onClick(()=>this.newKanban(n))});return}if(!xt.Platform.isMobile&&n instanceof xt.TFile&&a&&i==="sidebar-context-menu"&&Ql(n)){let o=this.getKanbanViews(Je(a.view.containerEl)),s=!1;for(let u of o)if(u.file===n){u.onPaneMenu(r,"more-options",!1),s=!0;break}if(!s){r.addItem(u=>{u.setTitle(H("Open as kanban board")).setIcon(xa).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=pn,this.setKanbanView(a)})});return}}(a==null?void 0:a.view)instanceof xt.MarkdownView&&n instanceof xt.TFile&&i==="pane-more-options"&&Ql(n)&&r.addItem(o=>{o.setTitle(H("Open as kanban board")).setIcon(xa).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=pn,this.setKanbanView(a)})})})),this.registerEvent(app.vault.on("rename",(r,n)=>{app.workspace.getLeavesOfType(pn).forEach(a=>{a.view.handleRename(r.path,n)})}));let t=(0,xt.debounce)(r=>{this.stateManagers.forEach(n=>{n.file!==r&&n.onFileMetadataChange()})},2e3,!0);this.registerEvent(app.vault.on("modify",r=>{r instanceof xt.TFile&&t(r)})),this.registerEvent(app.metadataCache.on("changed",r=>{t(r)})),this.registerEvent(app.metadataCache.on("dataview:metadata-change",(r,n)=>{t(n)})),this.registerEvent(app.metadataCache.on("dataview:api-ready",()=>{this.stateManagers.forEach(r=>{r.forceRefresh()})})),app.workspace.registerHoverLinkSource(fn,{display:"Kanban",defaultMod:!0})}registerCommands(){this.addCommand({id:"create-new-kanban-board",name:H("Create new board"),callback:()=>this.newKanban()}),this.addCommand({id:"archive-completed-cards",name:H("Archive completed cards in active board"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(jn);if(!r)return!1;if(t)return!0;this.stateManagers.get(r.file).archiveCompletedCards()}}),this.addCommand({id:"toggle-kanban-view",name:H("Toggle between Kanban and markdown mode"),checkCallback:t=>{let r=app.workspace.getActiveFile();if(!r)return!1;let n=app.metadataCache.getFileCache(r),i=!!(n==null?void 0:n.frontmatter)&&!!n.frontmatter[fn];if(t)return i;let a=app.workspace.getActiveViewOfType(jn);if(a)this.kanbanFileModes[a.leaf.id||r.path]="markdown",this.setMarkdownView(a.leaf);else if(i){let o=app.workspace.getActiveViewOfType(xt.MarkdownView);o&&(this.kanbanFileModes[o.leaf.id||r.path]=pn,this.setKanbanView(o.leaf))}}}),this.addCommand({id:"convert-to-kanban",name:H("Convert empty note to Kanban"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(xt.MarkdownView);if(!r)return!1;let n=r.file.stat.size===0;if(t)return n;n&&app.vault.modify(r.file,ad).then(()=>{this.setKanbanView(r.leaf)}).catch(i=>console.error(i))}}),this.addCommand({id:"add-kanban-lane",name:H("Add a list"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(jn);if(t)return r&&r instanceof jn;r&&r instanceof jn&&r.emitter.emit("showLaneForm",void 0)}})}registerMonkeyPatches(){let t=this;app.workspace.onLayoutReady(()=>{this.register(al(app.commands,{executeCommand(r){return function(n){let i=app.workspace.getActiveViewOfType(jn);return i&&(n==null?void 0:n.id)&&i.emitter.emit("hotkey",n.id),r.call(this,n)}}}))}),this.register(al(xt.WorkspaceLeaf.prototype,{detach(r){return function(){var i;let n=(i=this.view)==null?void 0:i.getState();return(n==null?void 0:n.file)&&t.kanbanFileModes[this.id||n.file]&&delete t.kanbanFileModes[this.id||n.file],r.apply(this)}},setViewState(r){return function(n,...i){var a;if(t._loaded&&n.type==="markdown"&&((a=n.state)==null?void 0:a.file)&&t.kanbanFileModes[this.id||n.state.file]!=="markdown"){let o=t.app.metadataCache.getCache(n.state.file);if((o==null?void 0:o.frontmatter)&&o.frontmatter[fn]){let s={...n,type:pn};return t.kanbanFileModes[n.state.file]=pn,r.apply(this,[s,...i])}}return r.apply(this,[n,...i])}}}))}};0&&(module.exports={}); +`;break}case-2:{o=t?" ":" ";break}case-1:{if(!t&&i)continue;o=" ";break}default:o=String.fromCharCode(a)}i=a===-2,n.push(o)}return n.join("")}var Hd={};Ti(Hd,{attentionMarkers:()=>DC,contentInitial:()=>wC,disable:()=>CC,document:()=>bC,flow:()=>xC,flowInitial:()=>EC,insideSpan:()=>_C,string:()=>kC,text:()=>SC});h();var bC={[42]:Bt,[43]:Bt,[45]:Bt,[48]:Bt,[49]:Bt,[50]:Bt,[51]:Bt,[52]:Bt,[53]:Bt,[54]:Bt,[55]:Bt,[56]:Bt,[57]:Bt,[62]:Hs},wC={[91]:Id},EC={[-2]:Pa,[-1]:Pa,[32]:Pa},xC={[35]:Ld,[42]:Nr,[45]:[js,Nr],[60]:Fd,[61]:js,[95]:Nr,[96]:$s,[126]:$s},kC={[38]:Ks,[92]:Bs},SC={[-5]:Fa,[-4]:Fa,[-3]:Fa,[33]:Nd,[38]:Ks,[42]:La,[60]:[Dd,Od],[91]:Rd,[92]:[Ad,Bs],[93]:Or,[95]:La,[96]:Td},_C={null:[La,ow]},DC={null:[42,95]},CC={null:[]};function fw(e={}){let t=Yb([Hd].concat(e.extensions||[])),r={defined:[],lazy:{},constructs:t,content:n(ew),document:n(tw),flow:n(aw),string:n(sw),text:n(lw)};return r;function n(i){return a;function a(o){return dw(r,i,o)}}}h();var pw=/[\0\t\n\r]/g;function hw(){let e=1,t="",r=!0,n;return i;function i(a,o,s){let u=[],l,c,d,f,p;for(a=t+a.toString(o),d=0,t="",r&&(a.charCodeAt(0)===65279&&d++,r=void 0);d13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)==65535||(r&65535)==65534||r>1114111?"\uFFFD":String.fromCharCode(r)}h();var TC=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function gw(e){return e.replace(TC,MC)}function MC(e,t,r){if(t)return t;if(r.charCodeAt(0)===35){let i=r.charCodeAt(1),a=i===120||i===88;return qs(r.slice(a?2:1),a?16:10)}return bi(r)||e}h();function Oa(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?yw(e.position):"start"in e||"end"in e?yw(e):"line"in e||"column"in e?Bd(e):""}function Bd(e){return vw(e&&e.line)+":"+vw(e&&e.column)}function yw(e){return Bd(e&&e.start)+"-"+Bd(e&&e.end)}function vw(e){return e&&typeof e=="number"?e:1}var Kd={}.hasOwnProperty,Ys=function(e,t,r){return typeof t!="string"&&(r=t,t=void 0),IC(r)(mw(fw(r).document().write(hw()(e,t,!0))))};function IC(e={}){let t=bw({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:u(Hr),autolinkProtocol:le,autolinkEmail:le,atxHeading:u(Pn),blockQuote:u(ct),characterEscape:le,characterReference:le,codeFenced:u(mt),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:u(mt,l),codeText:u(Lt,l),codeTextData:le,data:le,codeFlowValue:le,definition:u(An),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:u(Ln),hardBreakEscape:u(hn),hardBreakTrailing:u(hn),htmlFlow:u(mn,l),htmlFlowData:le,htmlText:u(mn,l),htmlTextData:le,image:u(Fn),label:l,link:u(Hr),listItem:u(Kr),listItemValue:v,listOrdered:u(Br,m),listUnordered:u(Br),paragraph:u(Yn),reference:j,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:u(Pn),strong:u(Pt),thematicBreak:u(gt)},exit:{atxHeading:d(),atxHeadingSequence:U,autolink:d(),autolinkEmail:$e,autolinkProtocol:ke,blockQuote:d(),characterEscapeValue:X,characterReferenceMarkerHexadecimal:te,characterReferenceMarkerNumeric:te,characterReferenceValue:we,codeFenced:d(D),codeFencedFence:T,codeFencedFenceInfo:b,codeFencedFenceMeta:k,codeFlowValue:X,codeIndented:d(I),codeText:d(ge),codeTextData:X,data:X,definition:d(),definitionDestinationString:F,definitionLabelString:H,definitionTitleString:C,emphasis:d(),hardBreakEscape:d(re),hardBreakTrailing:d(re),htmlFlow:d(pe),htmlFlowData:X,htmlText:d(he),htmlTextData:X,image:d(Te),label:P,labelText:L,lineEnding:G,link:d(be),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:q,resourceDestinationString:lt,resourceTitleString:Je,resource:W,setextHeading:d(Z),setextHeadingLineSequence:ee,setextHeadingText:z,strong:d(),thematicBreak:d()}},e.mdastExtensions||[]),r={};return n;function n(Y){let oe={type:"root",children:[]},Ee=[oe],ze=[],kt=[],gn={stack:Ee,tokenStack:ze,config:t,enter:c,exit:f,buffer:l,resume:p,setData:a,getData:o},qe=-1;for(;++qe0){let at=ze[ze.length-1];(at[1]||ww).call(gn,void 0,at[0])}for(oe.position={start:s(Y.length>0?Y[0][1].start:{line:1,column:1,offset:0}),end:s(Y.length>0?Y[Y.length-2][1].end:{line:1,column:1,offset:0})},qe=-1;++qe".charCodeAt(0)?o(m):(i.enter(e),i.enter(`${e}Marker`),d(m))}function d(m){return u===t.length?(i.exit(`${e}Marker`),f(m)):m!==t.charCodeAt(u)?o(m):(i.consume(m),u++,d)}function f(m){return i.enter(`${e}Data`),i.enter(`${e}Target`),p(m)}function p(m){return Ge(m)||"<".charCodeAt(0)===m||"#".charCodeAt(0)===m||m===null?s?(i.exit(`${e}Target`),i.exit(`${e}Data`),i.exit(e),a(m)):o(m):(s=!0,i.consume(m),p)}}let n={tokenize:r};return{text:{[t.charCodeAt(0)]:n}}}function Aw(){let e="hashtag";function t(i){this.enter({type:e,value:null},i)}function r(i){let a=this.sliceSerialize(i),o=wi(this.stack);o.value=a}function n(i){this.exit(i)}return{enter:{[e]:t},exit:{[`${e}Target`]:r,[e]:n}}}h();h();var ki={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,byteOrderMarker:65279,replacementCharacter:65533};h();var Vd={data:"data",whitespace:"whitespace",lineEnding:"lineEnding",lineEndingBlank:"lineEndingBlank",linePrefix:"linePrefix",lineSuffix:"lineSuffix",atxHeading:"atxHeading",atxHeadingSequence:"atxHeadingSequence",atxHeadingText:"atxHeadingText",autolink:"autolink",autolinkEmail:"autolinkEmail",autolinkMarker:"autolinkMarker",autolinkProtocol:"autolinkProtocol",characterEscape:"characterEscape",characterEscapeValue:"characterEscapeValue",characterReference:"characterReference",characterReferenceMarker:"characterReferenceMarker",characterReferenceMarkerNumeric:"characterReferenceMarkerNumeric",characterReferenceMarkerHexadecimal:"characterReferenceMarkerHexadecimal",characterReferenceValue:"characterReferenceValue",codeFenced:"codeFenced",codeFencedFence:"codeFencedFence",codeFencedFenceSequence:"codeFencedFenceSequence",codeFencedFenceInfo:"codeFencedFenceInfo",codeFencedFenceMeta:"codeFencedFenceMeta",codeFlowValue:"codeFlowValue",codeIndented:"codeIndented",codeText:"codeText",codeTextData:"codeTextData",codeTextPadding:"codeTextPadding",codeTextSequence:"codeTextSequence",content:"content",definition:"definition",definitionDestination:"definitionDestination",definitionDestinationLiteral:"definitionDestinationLiteral",definitionDestinationLiteralMarker:"definitionDestinationLiteralMarker",definitionDestinationRaw:"definitionDestinationRaw",definitionDestinationString:"definitionDestinationString",definitionLabel:"definitionLabel",definitionLabelMarker:"definitionLabelMarker",definitionLabelString:"definitionLabelString",definitionMarker:"definitionMarker",definitionTitle:"definitionTitle",definitionTitleMarker:"definitionTitleMarker",definitionTitleString:"definitionTitleString",emphasis:"emphasis",emphasisSequence:"emphasisSequence",emphasisText:"emphasisText",escapeMarker:"escapeMarker",hardBreakEscape:"hardBreakEscape",hardBreakTrailing:"hardBreakTrailing",htmlFlow:"htmlFlow",htmlFlowData:"htmlFlowData",htmlText:"htmlText",htmlTextData:"htmlTextData",image:"image",label:"label",labelText:"labelText",labelLink:"labelLink",labelImage:"labelImage",labelMarker:"labelMarker",labelImageMarker:"labelImageMarker",labelEnd:"labelEnd",link:"link",paragraph:"paragraph",reference:"reference",referenceMarker:"referenceMarker",referenceString:"referenceString",resource:"resource",resourceDestination:"resourceDestination",resourceDestinationLiteral:"resourceDestinationLiteral",resourceDestinationLiteralMarker:"resourceDestinationLiteralMarker",resourceDestinationRaw:"resourceDestinationRaw",resourceDestinationString:"resourceDestinationString",resourceMarker:"resourceMarker",resourceTitle:"resourceTitle",resourceTitleMarker:"resourceTitleMarker",resourceTitleString:"resourceTitleString",setextHeading:"setextHeading",setextHeadingText:"setextHeadingText",setextHeadingLine:"setextHeadingLine",setextHeadingLineSequence:"setextHeadingLineSequence",strong:"strong",strongSequence:"strongSequence",strongText:"strongText",thematicBreak:"thematicBreak",thematicBreakSequence:"thematicBreakSequence",blockQuote:"blockQuote",blockQuotePrefix:"blockQuotePrefix",blockQuoteMarker:"blockQuoteMarker",blockQuotePrefixWhitespace:"blockQuotePrefixWhitespace",listOrdered:"listOrdered",listUnordered:"listUnordered",listItemIndent:"listItemIndent",listItemMarker:"listItemMarker",listItemPrefix:"listItemPrefix",listItemPrefixWhitespace:"listItemPrefixWhitespace",listItemValue:"listItemValue",chunkDocument:"chunkDocument",chunkContent:"chunkContent",chunkFlow:"chunkFlow",chunkText:"chunkText",chunkString:"chunkString"};var NC={tokenize:RC},Lw={text:{[ki.leftSquareBracket]:NC}};function RC(e,t,r){let n=this;return i;function i(s){return n.previous!==ki.eof||!n._gfmTasklistFirstContentOfListItem?r(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),a)}function a(s){return He(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),o):s!==ki.rightSquareBracket?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),o):r(s)}function o(s){return s===ki.rightSquareBracket?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:HC},t,r)):r(s)}}function HC(e,t,r){let n=this;return Se(e,i,Vd.whitespace);function i(a){let o=n.events[n.events.length-1];return o&&o[1].type===Vd.whitespace&&a!==ki.eof&&!Ge(a)?t(a):r(a)}}var Pw={exit:{taskListCheckValueChecked:Fw,taskListCheckValueUnchecked:Fw,paragraph:BC}};function Fw(e){let t=this.stack[this.stack.length-2];t.checked=e.type==="taskListCheckValueChecked",t.checkChar=this.sliceSerialize(e)}function BC(e){let t=this.stack[this.stack.length-2],r=this.stack[this.stack.length-1],n=t.children,i=r.children[0],a=-1,o;if(t&&t.type==="listItem"&&typeof t.checked=="boolean"&&i&&i.type==="text"){for(;++a=0;i--){if(!t&&/[`%\n\r]/.test(e[i])){e[i]==="`"&&(r++,r===3&&(t=!0,n=i-1));continue}else if(!t)return{};if(e[i]==="`"&&e[i-1]==="`"&&e[i-2]==="`"&&/[\r\n]/.test(e[i-3]))return JSON.parse(e.slice(i+1,n).trim())}}function Nw(e){return[Lw,Ei("date",`${e.getSetting("date-trigger")}{`,"}"),Ei("dateLink",`${e.getSetting("date-trigger")}[[`,"]]"),Ei("time",`${e.getSetting("time-trigger")}{`,"}"),Ei("embedWikilink","![[","]]"),Ei("wikilink","[[","]]"),Iw(),Cw()]}function Rw(e){return[Pw,xi("date",(t,r)=>{!t||(r.date=t)}),xi("dateLink",(t,r)=>{!t||(r.date=t)}),xi("time",(t,r)=>{!t||(r.time=t)}),xi("embedWikilink",(t,r)=>{if(!t)return;let n=Ir(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);r.fileAccessor={target:n.root,isEmbed:!0,stats:i==null?void 0:i.stat}}),xi("wikilink",(t,r)=>{if(!t)return;let n=Ir(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);if(r.fileAccessor={target:n.root,isEmbed:!1},i){let a=sd(e,i);r.fileMetadata=a.fileMetadata,r.fileMetadataOrder=a.fileMetadataOrder}}),Mw((t,r)=>{if(!t.url||/:\/\//.test(t.url)||!/.md$/.test(t.url))return;let n=e.app.metadataCache.getFirstLinkpathDest(decodeURIComponent(t.url),e.file.path);if(r)t.type="embedLink",t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!0,stats:n.stat};else if(t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!1},n){let i=sd(e,n);t.fileMetadata=i.fileMetadata,t.fileMetadataOrder=i.fileMetadataOrder}}),Aw(),Tw()]}function Hw(e,t){let r=KC(t),i={...$C(t)},a={};return Object.keys(r).forEach(o=>{o===fn?(i[o]=r[o],a[o]=r[o]):Mb[o]?i[o]=r[o]:a[o]=r[o]}),e.compileSettings(i),{settings:i,frontmatter:a,ast:Ys(t,{extensions:[Ud(["yaml"]),...Nw(e)],mdastExtensions:[Sw(["yaml"]),...Rw(e)]})}}function zd(e,t){return Ys(t,{extensions:Nw(e),mdastExtensions:Rw(e)})}function Xs(e,t,r){let n=e.getSetting("hide-tags-in-title"),i=e.getSetting("hide-date-in-title"),a=Ed(r.children[0]),o=xd(t,a);(o==="[ ]"||o==="[x]")&&(o="");let s=o,u={titleRaw:ys(o),blockId:void 0,title:"",titleSearch:"",metadata:{dateStr:void 0,date:void 0,time:void 0,timeStr:void 0,tags:[],fileAccessor:void 0,file:void 0,fileMetadata:void 0,fileMetadataOrder:void 0},dom:void 0,isComplete:!!r.checked};return $b(r,l=>l.type!=="paragraph",l=>{let c=l;if(c.type==="blockid")return u.blockId=c.value,!0;if(c.type==="hashtag")return u.metadata.tags||(u.metadata.tags=[]),u.metadata.tags.push("#"+c.value),n&&(s=gs(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="date"||c.type==="dateLink")return u.metadata.dateStr=c.date,i&&(s=gs(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="time")return u.metadata.timeStr=c.time,s=gs(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start}),!0;if(c.type==="embedWikilink")return u.metadata.fileAccessor=c.fileAccessor,!0;if(c.type==="wikilink"||c.type==="link"&&c.fileAccessor)return u.metadata.fileAccessor=c.fileAccessor,u.metadata.fileMetadata=c.fileMetadata,u.metadata.fileMetadataOrder=c.fileMetadataOrder,!0;if(c.type==="embedLink")return u.metadata.fileAccessor=c.fileAccessor,!0}),u.title=ys(Zv(s)),u}function UC(e,t,r){if(e.type!=="heading"||Ta(e,{includeImageAlt:!1})!==B("Archive"))return!1;let n=Ub(t,r);return n&&n.type==="thematicBreak"}function Kw(e,t,r,n,i){let a=[],o=[];return n.children.forEach((s,u)=>{if(s.type==="heading"){let l=UC(s,n.children,u),c=Ed(s),d=xd(i,c),f=!1,p=Wb(n.children,u,"list",m=>{if(m.type==="heading")return!1;if(m.type==="paragraph"){let v=Ta(m);if(v.startsWith("%% kanban:settings"))return!1;if(v===B("Complete"))return f=!0,!0}return!0});if(l&&p){o.push(...p.children.map(m=>({...Yo,id:Ve(),data:Xs(e,i,m)})));return}p?a.push({...lr,children:p.children.map(m=>({...Yo,id:Ve(),data:Xs(e,i,m)})),id:Ve(),data:{...Ar(d),shouldMarkItemsComplete:f}}):a.push({...lr,children:[],id:Ve(),data:{...Ar(d),shouldMarkItemsComplete:f}})}}),{...Jo,id:e.file.path,children:a,data:{settings:t,frontmatter:r,archive:o,isSearching:!1,errors:[]}}}async function jd(e,t,r){let n=`- [${t.data.isComplete?"x":" "}] ${xa(r)}${t.data.blockId?` ^${t.data.blockId}`:""}`,i=zd(e,n),a=Xs(e,n,i.children[0].children[0]),o=(0,Qs.default)(t,{data:{$set:a}});try{await Ma(e,o)}catch(s){console.error(s)}return o}async function $w(e,t,r,n){let i=`- [${r?"x":" "}] ${xa(t)}`,a=zd(e,i),o=Xs(e,i,a.children[0].children[0]);o.forceEditMode=!!n;let s={...Yo,id:Ve(),data:o};try{await Ma(e,s)}catch(u){console.error(u)}return s}async function Uw(e,t){try{return(0,Qs.default)(t,{children:{$set:await Promise.all(t.children.map(async r=>{try{return(0,Qs.default)(r,{children:{$set:await Promise.all(r.children.map(n=>jd(e,n,n.data.titleRaw)))}})}catch(n){throw e.setError(n),n}}))}})}catch(r){throw e.setError(r),r}}function Ww(e){return`- [${e.data.isComplete?"x":" "}] ${xa(e.data.titleRaw)}${e.data.blockId?` ^${e.data.blockId}`:""}`}function WC(e){let t=[];return t.push(`## ${xa(Io(e.data.title,e.data.maxItems))}`),t.push(""),e.data.shouldMarkItemsComplete&&t.push(db),e.children.forEach(r=>{t.push(Ww(r))}),t.push(""),t.push(""),t.push(""),t.join(` +`)}function VC(e){if(e.length){let t=[fb,"",`## ${B("Archive")}`,""];return e.forEach(r=>{t.push(Ww(r))}),t.join(` +`)}return""}function Vw(e){let t=e.children.reduce((n,i)=>n+WC(i),"");return["---","",(0,Bw.stringifyYaml)(e.data.frontmatter),"---","",""].join(` +`)+t+VC(e.data.archive)+pb(e.data.settings)}var qd=class{constructor(t){this.stateManager=t}newItem(t,r,n){return $w(this.stateManager,t,r,n)}updateItemContent(t,r){return jd(this.stateManager,t,r)}boardToMd(t){return Vw(t)}mdToBoard(t){let{ast:r,settings:n,frontmatter:i}=Hw(this.stateManager,t),a=Kw(this.stateManager,n,i,r,t);if(!this.stateManager.hasError()&&this.stateManager.state){let s=yd(this.stateManager.state,a).filter(l=>["/id","/dom","/date","/time","/titleSearch","/file"].every(c=>!l.path.endsWith(c))),u=(0,zw.immutableJSONPatch)(this.stateManager.state,s);return jb(this.stateManager,u,s)}return zb(this.stateManager,a)}reparseBoard(){return Uw(this.stateManager,this.stateManager.state)}};var Yd=class{constructor(t,r,n,i,a){this.stateReceivers=[];this.settingsNotifiers=new Map;this.viewSet=new Set;this.compiledSettings={};this.newBoardPromise=null;this.getSetting=(t,r)=>r&&r[t]!==void 0?r[t]:this.compiledSettings&&this.compiledSettings[t]!==void 0?this.compiledSettings[t]:this.getSettingRaw(t);this.getSettingRaw=(t,r)=>{var n,i;return r&&r[t]!==void 0?r[t]:((i=(n=this.state)==null?void 0:n.data)==null?void 0:i.settings)&&this.state.data.settings[t]!==void 0?this.state.data.settings[t]:this.getGlobalSetting(t)};this.getGlobalSetting=t=>{let r=this.getGlobalSettings();return r&&r[t]!==void 0?r[t]:null};this.app=t,this.file=r.file,this.onEmpty=i,this.getGlobalSettings=a,this.parser=new qd(this),this.registerView(r,n,!0)}getAView(){return this.viewSet.values().next().value}hasError(){var t,r,n;return!!((n=(r=(t=this.state)==null?void 0:t.data)==null?void 0:r.errors)==null?void 0:n.length)}registerView(t,r,n){this.viewSet.has(t)||(this.viewSet.add(t),t.initHeaderButtons()),n&&(this.newBoardPromise!==null?this.newBoardPromise.then(()=>this.newBoard(r)):this.newBoardPromise=this.newBoard(r).then(()=>{this.newBoardPromise=null}).catch(i=>{console.error(i),this.setError(i)}))}unregisterView(t){this.viewSet.has(t)&&(this.viewSet.delete(t),this.viewSet.size===0&&this.onEmpty())}buildSettingRetrievers(){return{getGlobalSettings:this.getGlobalSettings,getGlobalSetting:this.getGlobalSetting,getSetting:this.getSetting}}async newBoard(t){try{await this.setState(await this.getParsedBoard(t),!1)}catch(r){this.setError(r)}}saveToDisk(){if(this.state.data.errors.length>0)return;let t=this.getAView(),r=this.parser.boardToMd(this.state);t.requestSaveToDisk(r),this.viewSet.forEach(n=>{n.data=r})}softRefresh(){this.stateReceivers.forEach(t=>t({...this.state}))}async forceRefresh(){if(this.state)try{this.compileSettings(),this.state=await this.parser.reparseBoard(),this.stateReceivers.forEach(t=>t(this.state)),this.viewSet.forEach(t=>t.initHeaderButtons())}catch(t){console.error(t),this.setError(t)}}async setState(t,r=!0){var n;try{let i=(n=this.state)==null?void 0:n.data.settings,a=typeof t=="function"?await t(this.state):t,o=a==null?void 0:a.data.settings;i&&o&&gb(i,o)?(this.state=(0,Si.default)(this.state,{data:{settings:{$set:o}}}),this.compileSettings(),this.state=await this.parser.reparseBoard()):(this.state=a,this.compileSettings()),this.viewSet.forEach(s=>s.initHeaderButtons()),r&&this.saveToDisk(),this.stateReceivers.forEach(s=>s(this.state)),i!==o&&o&&this.settingsNotifiers.forEach((s,u)=>{(!i&&o||i[u]!==o[u])&&s.forEach(l=>l())})}catch(i){console.error(i),this.setError(i)}}useState(){let[t,r]=R.useState(this.state);return R.useEffect(()=>(this.stateReceivers.push(n=>{r(n)}),r(this.state),()=>{this.stateReceivers.remove(r)}),[]),t}useSetting(t){let[r,n]=R.useState(this.getSetting(t));return R.useEffect(()=>{let i=()=>{n(this.getSetting(t))};return this.settingsNotifiers.has(t)?this.settingsNotifiers.get(t).push(i):this.settingsNotifiers.set(t,[i]),()=>{this.settingsNotifiers.get(t).remove(i)}},[]),r}compileSettings(t){var s,u,l,c,d;let r=this.getGlobalSetting("metadata-keys")||[],n=this.getSettingRaw("metadata-keys",t)||[],i=this.getSettingRaw("date-format",t)||qr(this.app),a=this.getSettingRaw("time-format",t)||zi(this.app),o=this.getSettingRaw("prepend-archive-format",t)||`${i} ${a}`;this.compiledSettings={"date-format":i,"date-display-format":this.getSettingRaw("date-display-format",t)||i,"date-trigger":this.getSettingRaw("date-trigger",t)||Ds,"time-format":a,"time-trigger":this.getSettingRaw("time-trigger",t)||Cs,"link-date-to-daily-note":this.getSettingRaw("link-date-to-daily-note",t),"hide-date-in-title":this.getSettingRaw("hide-date-in-title",t),"hide-tags-in-title":this.getSettingRaw("hide-tags-in-title",t),"metadata-keys":[...r,...n],"prepend-archive-separator":this.getSettingRaw("prepend-archive-separator")||"","prepend-archive-format":o,"show-add-list":(s=this.getSettingRaw("show-add-list",t))!=null?s:!0,"show-archive-all":(u=this.getSettingRaw("show-archive-all",t))!=null?u:!0,"show-view-as-markdown":(l=this.getSettingRaw("show-view-as-markdown",t))!=null?l:!0,"show-board-settings":(c=this.getSettingRaw("show-board-settings",t))!=null?c:!0,"show-search":(d=this.getSettingRaw("show-search",t))!=null?d:!0}}async getParsedBoard(t){let r=t.trim(),n={...Jo,id:this.file.path,children:[],data:{archive:[],settings:{"kanban-plugin":"basic"},frontmatter:{},isSearching:!1,errors:[]}};try{r&&(n=await this.parser.mdToBoard(r))}catch(i){console.error(i),n=(0,Si.default)(n,{data:{errors:{$push:[{description:i.toString(),stack:i.stack}]}}})}return n}setError(t){this.setState((0,Si.default)(this.state,{data:{errors:{$push:[{description:t.toString(),stack:t.stack}]}}}),!1)}onFileMetadataChange(){this.reparseBoardFromMd()}async reparseBoardFromMd(){try{this.setState(await this.getParsedBoard(this.getAView().data),!1)}catch(t){console.error(t),this.setError(t)}}async archiveCompletedCards(){let t=this.state,r=[],n=!!this.getSetting("prepend-archive-date"),i=this.getSetting("prepend-archive-separator"),a=this.getSetting("prepend-archive-format"),o=u=>{let l=[(0,jw.moment)().format(a)];i&&l.push(i),l.push(u.data.titleRaw);let c=l.join(" ");return this.parser.updateItemContent(u,c)},s=t.children.map(u=>(0,Si.default)(u,{children:{$set:u.children.filter(l=>((u.data.shouldMarkItemsComplete||l.data.isComplete)&&r.push(l),!l.data.isComplete&&!u.data.shouldMarkItemsComplete))}}));this.app.workspace.trigger("kanban:board-cards-archived",this.file,r);try{this.setState((0,Si.default)(t,{children:{$set:s},data:{archive:{$push:n?await Promise.all(r.map(u=>o(u))):r}}}))}catch(u){this.setError(u)}}getNewItem(t,r,n){return this.parser.newItem(t,r,n)}updateItemContent(t,r){return this.parser.updateItemContent(t,r)}};var Jd=class extends xt.Plugin{constructor(){super(...arguments);this.settings={};this.kanbanFileModes={};this.stateManagers=new Map;this.windowRegistry=new Map;this._loaded=!1;this.isShiftPressed=!1;this.handleShift=t=>{this.isShiftPressed=t.shiftKey}}async loadSettings(){this.settings=Object.assign({},await this.loadData())}async saveSettings(){await this.saveData(this.settings)}unload(){Promise.all(app.workspace.getLeavesOfType(pn).map(t=>(this.kanbanFileModes[t.id]="markdown",this.setMarkdownView(t)))).then(()=>{super.unload()})}onunload(){this.windowRegistry.forEach((t,r)=>{t.viewStateReceivers.forEach(n=>n([])),this.unmount(r)}),this.unmount(window),this.stateManagers.clear(),this.windowRegistry.clear(),this.kanbanFileModes={},window.removeEventListener("keydown",this.handleShift),window.removeEventListener("keyup",this.handleShift),app.workspace.unregisterHoverLinkSource(fn)}async onload(){var t,r;await this.loadSettings(),this.registerEvent(app.workspace.on("window-open",(n,i)=>{this.mount(i)})),this.registerEvent(app.workspace.on("window-close",(n,i)=>{this.unmount(i)})),this.settingsTab=new dd(this,{onSettingsChange:async n=>{this.settings=n,await this.saveSettings(),this.stateManagers.forEach(i=>{i.forceRefresh()})}}),this.addSettingTab(this.settingsTab),this.registerView(pn,n=>new jn(n,this)),this.registerMonkeyPatches(),this.registerCommands(),this.registerEvents(),this.mount(window),(r=(t=app.workspace.floatingSplit)==null?void 0:t.children)==null||r.forEach(n=>{this.mount(n.win)}),window.addEventListener("keydown",this.handleShift),window.addEventListener("keyup",this.handleShift)}getKanbanViews(t){let r=this.windowRegistry.get(t);return r?Array.from(r.viewMap.values()):[]}getKanbanView(t,r){let n=this.windowRegistry.get(r);if(n==null?void 0:n.viewMap.has(t))return n.viewMap.get(t);for(let i of this.windowRegistry.values())if(i.viewMap.has(t))return i.viewMap.get(t);return null}getStateManager(t){return this.stateManagers.get(t)}getStateManagerFromViewID(t,r){let n=this.getKanbanView(t,r);return n?this.stateManagers.get(n.file):null}useViewState(t){let[r,n]=R.useState(this.getKanbanViews(t));return R.useEffect(()=>{let i=this.windowRegistry.get(t);return i==null||i.viewStateReceivers.push(n),()=>{i==null||i.viewStateReceivers.remove(n)}},[t]),r}addView(t,r,n){let i=t.getWindow(),a=this.windowRegistry.get(i);if(!a)return;a.viewMap.has(t.id)||a.viewMap.set(t.id,t);let o=t.file;this.stateManagers.has(o)?this.stateManagers.get(o).registerView(t,r,n):this.stateManagers.set(o,new Yd(this.app,t,r,()=>this.stateManagers.delete(o),()=>this.settings)),a.viewStateReceivers.forEach(s=>s(this.getKanbanViews(i)))}removeView(t){let r=Array.from(this.windowRegistry.entries()).find(([,o])=>o.viewMap.has(t.id),[]);if(!r)return;let[n,i]=r,a=t.file;i.viewMap.has(t.id)&&i.viewMap.delete(t.id),this.stateManagers.has(a)&&(this.stateManagers.get(a).unregisterView(t),i.viewStateReceivers.forEach(o=>o(this.getKanbanViews(n))))}handleViewFileRename(t,r){let n=t.getWindow();if(!this.windowRegistry.has(n))return;let i=this.windowRegistry.get(n),a=`${t.leaf.id}:::${r}`;i.viewMap.has(a)&&i.viewMap.delete(a),i.viewMap.has(t.id)||i.viewMap.set(t.id,t),t.isPrimary&&this.getStateManager(t.file).softRefresh()}mount(t){if(this.windowRegistry.has(t))return;let r=t.document.body.createDiv();this.windowRegistry.set(t,{viewMap:new Map,viewStateReceivers:[],appRoot:r}),R.render(cb(t,this),r)}unmount(t){if(!this.windowRegistry.has(t))return;let r=this.windowRegistry.get(t);for(let n of r.viewMap.values())n.destroy();R.unmountComponentAtNode(r.appRoot),r.appRoot.remove(),r.viewMap.clear(),r.viewStateReceivers.length=0,r.appRoot=null,this.windowRegistry.delete(t)}async setMarkdownView(t,r=!0){await t.setViewState({type:"markdown",state:t.view.getState(),popstate:!0},{focus:r})}async setKanbanView(t){await t.setViewState({type:pn,state:t.view.getState(),popstate:!0})}async newKanban(t){var n;let r=t||app.fileManager.getNewFileParent(((n=app.workspace.getActiveFile())==null?void 0:n.path)||"");try{let i=await app.fileManager.createNewMarkdownFile(r,B("Untitled Kanban"));await app.vault.modify(i,od),await app.workspace.getLeaf().setViewState({type:pn,state:{file:i.path}})}catch(i){console.error("Error creating kanban board:",i)}}registerEvents(){this.registerEvent(app.workspace.on("file-menu",(r,n,i,a)=>{if(n instanceof xt.TFolder){r.addItem(o=>{o.setTitle(B("New kanban board")).setIcon(Sa).onClick(()=>this.newKanban(n))});return}if(!xt.Platform.isMobile&&n instanceof xt.TFile&&a&&i==="sidebar-context-menu"&&Xl(n)){let o=this.getKanbanViews(Ze(a.view.containerEl)),s=!1;for(let u of o)if(u.file===n){u.onPaneMenu(r,"more-options",!1),s=!0;break}if(!s){r.addItem(u=>{u.setTitle(B("Open as kanban board")).setIcon(Sa).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=pn,this.setKanbanView(a)})});return}}(a==null?void 0:a.view)instanceof xt.MarkdownView&&n instanceof xt.TFile&&i==="pane-more-options"&&Xl(n)&&r.addItem(o=>{o.setTitle(B("Open as kanban board")).setIcon(Sa).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=pn,this.setKanbanView(a)})})})),this.registerEvent(app.vault.on("rename",(r,n)=>{app.workspace.getLeavesOfType(pn).forEach(a=>{a.view.handleRename(r.path,n)})}));let t=(0,xt.debounce)(r=>{this.stateManagers.forEach(n=>{n.file!==r&&n.onFileMetadataChange()})},2e3,!0);this.registerEvent(app.vault.on("modify",r=>{r instanceof xt.TFile&&t(r)})),this.registerEvent(app.metadataCache.on("changed",r=>{t(r)})),this.registerEvent(app.metadataCache.on("dataview:metadata-change",(r,n)=>{t(n)})),this.registerEvent(app.metadataCache.on("dataview:api-ready",()=>{this.stateManagers.forEach(r=>{r.forceRefresh()})})),app.workspace.registerHoverLinkSource(fn,{display:"Kanban",defaultMod:!0})}registerCommands(){this.addCommand({id:"create-new-kanban-board",name:B("Create new board"),callback:()=>this.newKanban()}),this.addCommand({id:"archive-completed-cards",name:B("Archive completed cards in active board"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(jn);if(!r)return!1;if(t)return!0;this.stateManagers.get(r.file).archiveCompletedCards()}}),this.addCommand({id:"toggle-kanban-view",name:B("Toggle between Kanban and markdown mode"),checkCallback:t=>{let r=app.workspace.getActiveFile();if(!r)return!1;let n=app.metadataCache.getFileCache(r),i=!!(n==null?void 0:n.frontmatter)&&!!n.frontmatter[fn];if(t)return i;let a=app.workspace.getActiveViewOfType(jn);if(a)this.kanbanFileModes[a.leaf.id||r.path]="markdown",this.setMarkdownView(a.leaf);else if(i){let o=app.workspace.getActiveViewOfType(xt.MarkdownView);o&&(this.kanbanFileModes[o.leaf.id||r.path]=pn,this.setKanbanView(o.leaf))}}}),this.addCommand({id:"convert-to-kanban",name:B("Convert empty note to Kanban"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(xt.MarkdownView);if(!r)return!1;let n=r.file.stat.size===0;if(t)return n;n&&app.vault.modify(r.file,od).then(()=>{this.setKanbanView(r.leaf)}).catch(i=>console.error(i))}}),this.addCommand({id:"add-kanban-lane",name:B("Add a list"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(jn);if(t)return r&&r instanceof jn;r&&r instanceof jn&&r.emitter.emit("showLaneForm",void 0)}})}registerMonkeyPatches(){let t=this;app.workspace.onLayoutReady(()=>{this.register(ol(app.commands,{executeCommand(r){return function(n){let i=app.workspace.getActiveViewOfType(jn);return i&&(n==null?void 0:n.id)&&i.emitter.emit("hotkey",n.id),r.call(this,n)}}}))}),this.register(ol(xt.WorkspaceLeaf.prototype,{detach(r){return function(){var i;let n=(i=this.view)==null?void 0:i.getState();return(n==null?void 0:n.file)&&t.kanbanFileModes[this.id||n.file]&&delete t.kanbanFileModes[this.id||n.file],r.apply(this)}},setViewState(r){return function(n,...i){var a;if(t._loaded&&n.type==="markdown"&&((a=n.state)==null?void 0:a.file)&&t.kanbanFileModes[this.id||n.state.file]!=="markdown"){let o=t.app.metadataCache.getCache(n.state.file);if((o==null?void 0:o.frontmatter)&&o.frontmatter[fn]){let s={...n,type:pn};return t.kanbanFileModes[n.state.file]=pn,r.apply(this,[s,...i])}}return r.apply(this,[n,...i])}}}))}};0&&(module.exports={}); /*! * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io) * diff --git a/notes/.obsidian/plugins/obsidian-kanban/manifest.json b/notes/.obsidian/plugins/obsidian-kanban/manifest.json index d2c8cb0..9ee3c41 100644 --- a/notes/.obsidian/plugins/obsidian-kanban/manifest.json +++ b/notes/.obsidian/plugins/obsidian-kanban/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-kanban", "name": "Kanban", - "version": "1.3.10", + "version": "1.3.17", "minAppVersion": "0.15.3", "description": "Create markdown-backed Kanban boards in Obsidian.", "author": "mgmeyers", diff --git a/notes/.obsidian/plugins/obsidian-kanban/styles.css b/notes/.obsidian/plugins/obsidian-kanban/styles.css index f9fb940..3835a92 100644 --- a/notes/.obsidian/plugins/obsidian-kanban/styles.css +++ b/notes/.obsidian/plugins/obsidian-kanban/styles.css @@ -1 +1 @@ -.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #dddddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=text] .choices__button:hover,.choices[data-type*=text] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #dddddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #dddddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.choices__list--dropdown.is-active{visibility:visible}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}.workspace-leaf-content[data-type=kanban] .view-content{padding:0}.kanban-plugin{--lane-width: 272px}.kanban-plugin{contain:content;background-color:var(--background-secondary-alt);height:100%;width:100%;position:relative;display:flex;flex-direction:column}.kanban-plugin.something-is-dragging *{pointer-events:none}.kanban-plugin__item button,.kanban-plugin__lane button,.kanban-plugin button{line-height:1;padding:10px 12px;margin:0;transition:.1s color,.1s background-color}.kanban-plugin__search-wrapper{width:100%;position:sticky;top:0;left:0;padding:10px 13px;display:flex;justify-content:flex-end;align-items:center;z-index:2;background-color:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}button.kanban-plugin__search-cancel-button{display:flex;line-height:1;padding:6px;border:1px solid var(--background-modifier-border);background:var(--background-secondary-alt);color:var(--text-muted);margin:0 0 0 5px;font-size:16px}button.kanban-plugin__search-cancel-button .kanban-plugin__icon{display:flex}.kanban-plugin__icon{display:inline-block;line-height:1}.kanban-plugin__icon>svg{width:1em;height:1em}.kanban-plugin__board{display:flex;width:100%;height:100%}.kanban-plugin__board>div{display:flex;align-items:flex-start;justify-content:flex-start;padding:1rem;width:fit-content;height:100%}.kanban-plugin__board.is-adding-lane>div{padding-right:calc(250px + 1rem)}.kanban-plugin__lane-wrapper{display:flex;flex-shrink:0;margin-right:10px;max-height:100%;width:var(--lane-width)}.kanban-plugin__lane{width:100%;display:flex;flex-direction:column;background-color:var(--background-secondary);border-radius:6px;border:1px solid var(--background-modifier-border)}.kanban-plugin__placeholder.kanban-plugin__lane-placeholder{height:100%;flex-grow:1;margin-right:5px}.kanban-plugin__lane.is-hidden{display:none}.kanban-plugin__lane button{padding:8px 10px}.kanban-plugin__lane-form-wrapper{position:absolute;top:1rem;right:1rem;width:250px;background-color:var(--background-secondary);border-radius:6px;border:2px solid rgba(var(--interactive-accent-rgb),.7);z-index:var(--layer-popover);box-shadow:0 .5px 1px .5px #0000001a,0 2px 10px #0000001a,0 10px 20px #0000001a}.kanban-plugin__lane-input-wrapper{padding:10px}.kanban-plugin__item-input-actions,.kanban-plugin__lane-input-actions{display:flex;align-items:flex-start;justify-content:flex-start;padding:0 10px 10px}.kanban-plugin__item-input-actions button,.kanban-plugin__lane-input-actions button{display:block;margin-right:5px}.kanban-plugin__item-action-add,.kanban-plugin__lane-action-add{background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__item-action-add:hover,.kanban-plugin__lane-action-add:hover{background-color:var(--interactive-accent-hover)}.kanban-plugin__lane-header-wrapper{padding:10px 11px;display:flex;align-items:center;flex-shrink:0;flex-grow:0;border-bottom:1px solid var(--background-modifier-border)}.will-prepend .kanban-plugin__lane-header-wrapper{border-bottom:none}.kanban-plugin__lane-grip{cursor:grab;flex-grow:0;margin-right:5px;color:var(--text-faint)}.kanban-plugin__lane-grip>svg{display:block;height:1rem}.kanban-plugin__lane-title{font-weight:600;font-size:.875rem;flex-grow:1;width:100%;display:flex;flex-direction:column}.kanban-plugin__lane-title-text{flex-grow:1}div.kanban-plugin__markdown-preview-view>div>*{overflow-wrap:anywhere}div.kanban-plugin__lane-title-count{background-color:var(--background-secondary-alt);border-radius:3px;color:var(--text-muted);display:block;font-size:13px;line-height:1;padding:4px;margin-left:5px}.kanban-plugin__item button.kanban-plugin__item-prefix-button,.kanban-plugin__item button.kanban-plugin__item-postfix-button,.kanban-plugin__lane button.kanban-plugin__lane-settings-button{font-size:13px;line-height:1;color:var(--text-muted);padding:4px;display:flex;margin-left:5px;background-color:transparent;margin-right:-4px}.kanban-plugin__item button.kanban-plugin__item-prefix-button{margin:4px 7px 4px 0;padding:0}.kanban-plugin__item button.kanban-plugin__item-prefix-button.is-enabled,.kanban-plugin__item button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{color:var(--text-accent)}.kanban-plugin__item button.kanban-plugin__item-prefix-button:hover,.kanban-plugin__item button.kanban-plugin__item-postfix-button:hover,.kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{background-color:transparent;color:var(--text-normal)}.kanban-plugin__lane-action-wrapper,.kanban-plugin__item-edit-archive-button,.kanban-plugin__item-settings-actions .kanban-plugin__icon,.kanban-plugin__item-edit-archive-button>.kanban-plugin__icon,.kanban-plugin__item-prefix-button>.kanban-plugin__icon,.kanban-plugin__item-postfix-button>.kanban-plugin__icon,.kanban-plugin__lane-settings-button>.kanban-plugin__icon{display:flex}.kanban-plugin__lane-settings-button-wrapper{display:flex}button.kanban-plugin__lane-settings-button+button.kanban-plugin__lane-settings-button{margin-left:2px}.kanban-plugin__lane-settings-button svg{width:1em;height:1em}.kanban-plugin__lane-items-wrapper{margin:4px;height:100%}.kanban-plugin__lane-items{padding:4px;margin:0 4px;display:flex;flex-direction:column}.kanban-plugin__lane-items>.kanban-plugin__placeholder{flex-grow:1}.kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{height:2.55em;border:3px dashed rgba(var(--text-muted-rgb),.1);margin-bottom:4px;border-radius:6px;transition:border .2s ease}.is-sorting .kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{border-color:rgba(var(--interactive-accent-rgb),.6)}.kanban-plugin__lane-items>div{margin-top:4px}.kanban-plugin__item-button-wrapper{border-top:1px solid var(--background-modifier-border);padding:8px;flex-shrink:0;flex-grow:0}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-button-wrapper{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-button-wrapper>button{text-align:left;width:100%}.kanban-plugin__item-form{border-top:1px solid var(--background-modifier-border);padding:8px}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-form{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-input-wrapper{display:flex;flex-direction:column}.kanban-plugin button.kanban-plugin__item-submit-button{background-color:var(--background-secondary-alt);flex-grow:0;flex-shrink:1;width:auto;margin-top:5px;line-height:1;font-size:14px}button.kanban-plugin__new-item-button{background-color:transparent;color:var(--text-muted)}.kanban-plugin__new-item-button:hover{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__item{font-size:.875rem;border:1px solid var(--background-modifier-border);border-radius:6px;overflow:hidden;transition:.3s opacity cubic-bezier(.25,1,.5,1)}.kanban-plugin__drag-container>.kanban-plugin__item-wrapper .kanban-plugin__item{border-color:var(--interactive-accent);box-shadow:0 15px 25px #0003,0 0 0 2px rgba(var(--interactive-accent-rgb),.8)}.kanban-plugin__item.is-search-hit{box-shadow:0 15px 25px #0003,0 0 0 1px var(--background-modifier-border)}.kanban-plugin__item.is-search-miss{font-size:.75rem;opacity:.5}.kanban-plugin__item.is-search-miss .kanban-plugin__item-metadata-wrapper{display:none}.kanban-plugin__item-content-wrapper{background:var(--background-primary)}.kanban-plugin__item-title-wrapper{background:var(--background-primary);display:flex;padding:6px 8px}.kanban-plugin__item-title-wrapper:not(:only-child){border-bottom:1px solid var(--background-modifier-border)}.kanban-plugin__item-title{width:100%;line-height:1.5;overflow:hidden}.kanban-plugin__markdown-preview-view{font-family:var(--font-text, var(--default-font));font-size:.875rem;padding:unset;width:unset;height:unset;position:unset;overflow-y:unset;overflow-wrap:unset;color:unset;user-select:unset;-webkit-user-select:unset}.kanban-plugin__markdown-preview-view p,.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol,.kanban-plugin__markdown-preview-view blockquote{margin-block-start:.66em;margin-block-end:.66em}.kanban-plugin__markdown-preview-view blockquote{margin-inline-start:0;margin-inline-end:0}.kanban-plugin__markdown-preview-view ul ol,.kanban-plugin__markdown-preview-view ol ul,.kanban-plugin__markdown-preview-view ul ul,.kanban-plugin__markdown-preview-view ol ol{margin-block-start:0em;margin-block-end:0em}.kanban-plugin__markdown-preview-view>div>*{overflow-x:auto;overflow-wrap:break-word}.kanban-plugin__markdown-preview-view>div>*:first-child,.kanban-plugin__markdown-preview-view>div>.frontmatter-container+*{margin-top:0}.kanban-plugin__markdown-preview-view>div>*:last-child{margin-bottom:0}.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol{padding-inline-start:24px}.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view p,.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view{font-size:inherit;color:inherit;line-height:inherit}.kanban-plugin__markdown-preview-view.inline p,.kanban-plugin__markdown-preview-view.inline{display:inline-block}.kanban-plugin__markdown-preview-view .frontmatter,.kanban-plugin__markdown-preview-view .frontmatter-container{display:none}.kanban-plugin__markdown-preview-view .file-link span{display:inline-flex;align-items:center;justify-content:center;color:var(--text-faint);margin-left:2px;position:relative;top:3px}.kanban-plugin__embed-link-wrapper{padding:2px;float:right}.kanban-plugin__item-metadata-wrapper:not(:empty){background-color:var(--background-primary-alt);padding:6px 8px}.kanban-plugin__item-metadata:not(:empty){padding-top:5px;font-size:12px;font-weight:500;color:var(--text-muted)}.kanban-plugin__item-metadata>span{display:block}.kanban-plugin__item-metadata .is-button{cursor:pointer}.kanban-plugin__item-metadata .is-button:hover{color:var(--text-normal)}.kanban-plugin__item-metadata-date-relative:first-letter{text-transform:uppercase}.kanban-plugin__item-metadata a{text-decoration:none}.kanban-plugin__item-metadata-time:before{content:" \2022 "}.kanban-plugin__item-metadata-time.is-button:hover:before{color:var(--text-muted)}.kanban-plugin__item-metadata-date-wrapper{padding-top:2px}.kanban-plugin__item-tags:not(:empty){padding-top:2px}.kanban-plugin__item-tag{display:inline-block;margin-right:4px}.kanban-plugin__item-tags .kanban-plugin__item-tag{background-color:rgba(var(--interactive-accent-rgb),.1);padding:1px 4px;border-radius:6px;margin:3px 3px 0 0}.kanban-plugin__item-tag.is-search-match,.kanban-plugin__item-tags .kanban-plugin__item-tag.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-table{width:100%;margin:0;line-height:1.5;font-size:.75rem}.kanban-plugin__meta-table td{vertical-align:top;padding:3px 0;width:10%}.kanban-plugin__meta-table td+td{width:90%}.kanban-plugin__meta-table td:only-child{width:100%}.kanban-plugin__meta-table td.kanban-plugin__meta-key{white-space:nowrap;padding-right:5px;color:var(--text-muted)}.kanban-plugin__meta-table td.kanban-plugin__meta-key.is-search-match>span{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-value{white-space:pre-wrap;display:flex}.kanban-plugin__meta-value>.is-search-match,.kanban-plugin__meta-value.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__item-prefix-button-wrapper,.kanban-plugin__item-postfix-button-wrapper{display:flex;flex-grow:0;flex-shrink:0}.kanban-plugin__item-prefix-button-wrapper{flex-direction:column}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]{margin:4px 7px 4px 0;width:15px;height:15px;filter:hue-rotate(42deg)}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]+button{margin-top:10px}button.kanban-plugin__item-postfix-button{visibility:hidden;opacity:0;transition:.1s opacity;display:flex;align-self:flex-start}button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__item:hover button.kanban-plugin__item-postfix-button{visibility:visible;opacity:1}.kanban-plugin__item-settings-actions{padding:5px;display:flex}.kanban-plugin__item-settings-actions>button{line-height:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;width:100%}.kanban-plugin__lane-action-wrapper button>.kanban-plugin__icon,.kanban-plugin__item-settings-actions button>.kanban-plugin__icon{margin-right:5px}.kanban-plugin__item-settings-actions>button:first-child,.kanban-plugin__lane-action-wrapper>button:first-child{margin-right:2.5px}.kanban-plugin__item-settings-actions>button:last-child,.kanban-plugin__lane-action-wrapper>button:last-child{margin-left:2.5px}.kanban-plugin__archive-lane-button,.kanban-plugin__item-button-archive{color:var(--text-muted);border:1px solid var(--background-modifier-border)}.kanban-plugin__archive-lane-button:hover,.kanban-plugin__item-button-archive:hover{color:var(--text-normal)}.kanban-plugin__item-button-delete{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__checkbox-wrapper{border-top:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);padding:10px;margin-bottom:10px;display:flex;align-items:center}.kanban-plugin__checkbox-wrapper .checkbox-container{flex-shrink:0;flex-grow:0;margin-left:15px}.kanban-plugin__checkbox-label{font-size:.8125rem;line-height:1.4}.kanban-plugin__lane-setting-wrapper>div{border-top:none;border-bottom:none;padding:10px 15px;margin-bottom:0}.kanban-plugin__lane-setting-wrapper>div:last-child{border-bottom:1px solid var(--background-modifier-border);margin-bottom:10px}.kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),.2);background-color:rgba(var(--background-modifier-error-rgb),.1);border-radius:4px;padding:10px;margin:5px 10px}.theme-dark .kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button,.kanban-plugin__archive-lane-button{display:flex;align-items:center;justify-content:center;font-size:.75rem;width:50%}.kanban-plugin__delete-lane-button{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__action-confirm-text{font-size:.875rem;color:var(--text-error);margin-bottom:10px;line-height:1.4}button.kanban-plugin__confirm-action-button{border:1px solid rgba(var(--background-modifier-error-rgb),.2);margin-right:5px;color:var(--text-error)}button.kanban-plugin__confirm-action-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.5)}button.kanban-plugin__cancel-action-button{border:1px solid var(--background-modifier-border)}.kanban-plugin__grow-wrap{width:100%;display:grid}.kanban-plugin__grow-wrap:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}.kanban-plugin__grow-wrap>textarea{resize:none;overflow:hidden;tab-size:2}.kanban-plugin__grow-wrap>textarea:focus{border-color:var(--interactive-accent)}.kanban-plugin__grow-wrap>textarea,.kanban-plugin__grow-wrap:after{border:1px solid var(--background-modifier-border);padding:5px 7px;font:inherit;line-height:1.5;grid-area:1 / 1 / 2 / 2;font-size:.875rem;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap}.kanban-plugin__autocomplete{font-size:.875rem;border:1px solid var(--background-modifier-border);background-color:var(--background-primary);list-style:none;padding:0;margin:0;min-width:20ch;max-width:40ch;max-height:200px;border-radius:6px;box-shadow:0 15px 25px #0003;overflow-x:hidden;overflow-y:auto}.kanban-plugin__autocomplete li{margin:0}.kanban-plugin__autocomplete li em{opacity:.6}.kanban-plugin .textcomplete-footer,.kanban-plugin .textcomplete-header{display:none}.kanban-plugin__autocomplete-item-active,.kanban-plugin__autocomplete-item{border-top:1px solid var(--background-modifier-border);padding:4px 6px;cursor:pointer}.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item,.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item-active{border-top:none}.kanban-plugin__autocomplete-item:hover,.kanban-plugin__autocomplete-item-active{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__file-suggestion-wrapper{display:flex;line-height:1.2}.kanban-plugin__file-suggestion-icon{flex-shrink:0;flex-grow:0;padding-right:4px}.kanban-plugin__file-suggestion-subtitle{font-size:.875em;color:var(--text-muted)}.kanban-plugin__autocomplete-item:hover .kanban-plugin__file-suggestion-subtitle,.kanban-plugin__autocomplete-item-active .kanban-plugin__file-suggestion-subtitle{color:var(--text-on-accent)}.modal.kanban-plugin__board-settings-modal{max-height:90vh;padding:0;display:flex;flex-direction:column}.modal.kanban-plugin__board-settings-modal .modal-content{padding:30px 50px;height:100%;overflow-y:auto;overflow-x:hidden;margin:0}.kanban-plugin__board-settings-modal .setting-item-info{width:100%}.kanban-plugin__board-settings-modal .setting-item-control{min-width:300px;flex-shrink:0}.kanban-plugin__board-settings-modal .choices{width:100%;text-align:left}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__inner{background-color:var(--background-primary);border-color:var(--background-modifier-border);padding:0;min-height:0}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__input{background-color:var(--background-primary);border-bottom-color:var(--background-modifier-border);font-size:14px}.kanban-plugin__board-settings-modal .choices__input{border-radius:0;border-top:none;border-left:none;border-right:none}.kanban-plugin__board-settings-modal .choices__list[role=listbox]{overflow-x:hidden}.kanban-plugin__board-settings-modal .choices__list--single{padding:4px 20px 4px 6px}.kanban-plugin__board-settings-modal .is-open .choices__list--dropdown,.kanban-plugin__board-settings-modal .choices__list--dropdown{background-color:var(--background-primary);border-color:var(--background-modifier-border);word-break:normal;max-height:200px;display:flex;flex-direction:column}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable:after{display:none}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable{padding:4px 6px}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item.is-highlighted{background-color:var(--background-primary-alt)}.kanban-plugin__board-settings-modal .choices__placeholder{opacity:1;color:var(--text-muted)}.kanban-plugin__board-settings-modal .error{border-color:var(--background-modifier-error-hover)!important}.kanban-plugin__date-picker{position:absolute;z-index:var(--layer-popover);--cell-size: 2.4em}.kanban-plugin__date-picker .flatpickr-input{width:0;height:0;opacity:0;border:none;padding:0;display:block;margin-bottom:-1px}.kanban-plugin__date-picker .flatpickr-current-month{color:var(--text-normal);font-weight:600;font-size:inherit;width:100%;position:static;height:auto;display:flex;align-items:center;justify-content:center;padding:0}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:var(--text-normal)}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{fill:currentColor}.kanban-plugin__date-picker .flatpickr-calendar{font-size:13px;overflow:hidden;background-color:var(--background-primary);width:calc(var(--cell-size) * 7 + 8px);box-shadow:0 0 0 1px var(--background-modifier-border),0 15px 25px #0003}.kanban-plugin__date-picker .flatpickr-months{font-size:13px;padding:2px 2px 4px;align-items:center}.kanban-plugin__date-picker .flatpickr-months .flatpickr-current-month input.cur-year,.kanban-plugin__date-picker .flatpickr-months select{border-radius:4px;padding:4px}.kanban-plugin__date-picker .flatpickr-months .numInputWrapper{border-radius:4px}.kanban-plugin__date-picker .flatpickr-months .flatpickr-month{width:100%;height:auto}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month{color:var(--text-normal);fill:currentColor;border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;height:auto;padding:5px;position:static;flex-shrink:0}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover{background-color:var(--background-primary-alt);color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover svg,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover svg{fill:currentColor}.kanban-plugin__date-picker .flatpickr-current-month .flatpickr-monthDropdown-months{color:var(--text-normal);font-weight:inherit;margin-right:5px}.kanban-plugin__date-picker .flatpickr-current-month input.cur-year{color:var(--text-normal);font-weight:inherit}.kanban-plugin__date-picker .flatpickr-weekdays{height:auto;padding:8px 0 12px}.kanban-plugin__date-picker span.flatpickr-weekday{font-weight:400;color:var(--text-muted)}.kanban-plugin__date-picker .flatpickr-innerContainer{padding:4px}.kanban-plugin__date-picker .flatpickr-day{color:var(--text-normal);display:inline-flex;align-items:center;justify-content:center;width:var(--cell-size);height:var(--cell-size);line-height:1;border-radius:6px}.kanban-plugin__date-picker .flatpickr-day.today{border-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-day.today:hover{color:var(--text-normal);border-color:var(--interactive-accent);background-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.selected{border-color:var(--interactive-accent);background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__date-picker .flatpickr-day.selected:hover{border-color:var(--interactive-accent);background-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-days{width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .dayContainer{width:calc(var(--cell-size) * 7);min-width:calc(var(--cell-size) * 7);max-width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .flatpickr-day.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.today.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day:focus,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:focus,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:focus{background-color:var(--background-primary-alt);border-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled,.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed,.kanban-plugin__date-picker .flatpickr-day.notAllowed.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed.nextMonthDay{color:var(--text-faint)}.kanban-plugin__time-picker{position:absolute;max-height:250px;overflow:auto;border-radius:4px;border:1px solid var(--background-modifier-border);box-shadow:0 2px 8px var(--background-modifier-box-shadow);background:var(--background-primary);color:var(--text-normal);font-size:14px;z-index:var(--layer-menu)}.kanban-plugin__time-picker-item{display:flex;align-items:center;color:var(--text-muted);cursor:pointer;line-height:1;padding:6px 8px}.kanban-plugin__time-picker-check{visibility:hidden;display:inline-flex;margin-right:5px}.kanban-plugin__time-picker-item.is-hour{color:var(--text-normal);font-weight:600}.kanban-plugin__time-picker-item.is-selected .kanban-plugin__time-picker-check{visibility:visible}.kanban-plugin__time-picker-item:hover,.kanban-plugin__time-picker-item.is-selected{background:var(--background-secondary)}.kanban-plugin mark{background-color:var(--text-highlight-bg)}.kanban-plugin__draggable-setting-container{border-top:0;padding:0;flex-direction:column}.kanban-plugin__draggable-setting-container>div{width:100%;margin-right:0!important}.kanban-plugin__setting-item-wrapper{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__draggable-setting-container>.kanban-plugin__placeholder{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__setting-item{background-color:var(--background-secondary);width:100%;font-size:16px;display:flex;align-items:flex-start;padding:12px;color:var(--text-muted)}.kanban-plugin__drag-container .kanban-plugin__setting-item{border:1px solid rgba(var(--interactive-accent-rgb),.8);box-shadow:0 15px 25px #0003,0 0 0 2px rgba(var(--interactive-accent-rgb),.8)}.kanban-plugin__setting-controls-wrapper{flex-grow:1;flex-shrink:0}.kanban-plugin__setting-input-wrapper{display:flex;margin-bottom:1rem}.kanban-plugin__setting-input-wrapper>div{margin-right:10px}.kanban-plugin__setting-toggle-wrapper>div{display:flex;align-items:center;line-height:1;margin-bottom:10px}.kanban-plugin__setting-toggle-wrapper .checkbox-container{margin-right:10px}.kanban-plugin__setting-button-wrapper{display:flex;justify-content:flex-end;flex-grow:1;flex-shrink:0}.kanban-plugin__setting-button-wrapper>div{margin-left:12px}.kanban-plugin__setting-key-input-wrapper{margin:1rem 0}.kanban-plugin__setting-key-input-wrapper>input{margin-right:10px}.kanban-plugin__metadata-setting-desc{font-size:14px}.kanban-plugin__setting-button-spacer{visibility:hidden}.kanban-plugin__setting-item-label{font-size:12px;font-weight:bold;margin-bottom:5px}.kanban-plugin__setting-toggle-wrapper .kanban-plugin__setting-item-label{margin-bottom:0}.kanban-plugin__hitbox{border:2px dashed tomato}.kanban-plugin__placeholder{flex-grow:0;flex-shrink:0;width:0;height:0;pointer-events:none}.kanban-plugin__placeholder[data-axis=horizontal]{height:100%}.kanban-plugin__placeholder[data-axis=vertical]{width:100%}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar{background-color:transparent;width:16px;height:16px}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar-thumb{border:4px solid transparent;background-clip:content-box}.kanban-plugin__scroll-container{will-change:transform}.kanban-plugin__scroll-container.kanban-plugin__horizontal{overflow-y:hidden;overflow-x:auto}.kanban-plugin__scroll-container.kanban-plugin__vertical{overflow-y:auto;overflow-x:hidden}.kanban-plugin__drag-container{contain:layout size;z-index:10000;pointer-events:none;position:fixed;top:0;left:0}.kanban-plugin__loading{background-color:var(--background-secondary-alt);width:100%;height:100%;display:flex;justify-content:center;align-items:center}.sk-pulse{width:60px;height:60px;background-color:var(--text-faint);border-radius:100%;animation:sk-pulse 1.2s infinite cubic-bezier(.455,.03,.515,.955)}@keyframes sk-pulse{0%{transform:scale(0)}to{transform:scale(1);opacity:0}} +.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #dddddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=text] .choices__button:hover,.choices[data-type*=text] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #dddddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #dddddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.choices__list--dropdown.is-active{visibility:visible}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}.workspace-leaf-content[data-type=kanban] .view-content{padding:0}.kanban-plugin{--lane-width: 272px}.kanban-plugin{contain:content;background-color:var(--background-secondary-alt);height:100%;width:100%;position:relative;display:flex;flex-direction:column}.kanban-plugin.something-is-dragging *{pointer-events:none}.kanban-plugin__item button,.kanban-plugin__lane button,.kanban-plugin button{line-height:1;padding:10px 12px;margin:0;transition:.1s color,.1s background-color}.kanban-plugin__search-wrapper{width:100%;position:sticky;top:0;left:0;padding:10px 13px;display:flex;justify-content:flex-end;align-items:center;z-index:2;background-color:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}button.kanban-plugin__search-cancel-button{display:flex;line-height:1;padding:6px;border:1px solid var(--background-modifier-border);background:var(--background-secondary-alt);color:var(--text-muted);margin:0 0 0 5px;font-size:16px}button.kanban-plugin__search-cancel-button .kanban-plugin__icon{display:flex}.kanban-plugin__icon{display:inline-block;line-height:1}.kanban-plugin__icon>svg{width:1em;height:1em}.kanban-plugin__board{display:flex;width:100%;height:100%}.kanban-plugin__board>div{display:flex;align-items:flex-start;justify-content:flex-start;padding:1rem;width:fit-content;height:100%}.kanban-plugin__board.is-adding-lane>div{padding-right:calc(250px + 1rem)}.kanban-plugin__lane-wrapper{display:flex;flex-shrink:0;margin-right:10px;max-height:100%;width:var(--lane-width)}.kanban-plugin__lane{width:100%;display:flex;flex-direction:column;background-color:var(--background-secondary);border-radius:6px;border:1px solid var(--background-modifier-border)}.kanban-plugin__placeholder.kanban-plugin__lane-placeholder{height:100%;flex-grow:1;margin-right:5px}.kanban-plugin__lane.is-hidden{display:none}.kanban-plugin__lane button{padding:8px 10px}.kanban-plugin__lane-form-wrapper{position:absolute;top:1rem;right:1rem;width:250px;background-color:var(--background-secondary);border-radius:6px;border:2px solid rgba(var(--interactive-accent-rgb),.7);z-index:var(--layer-popover);box-shadow:0 .5px 1px .5px #0000001a,0 2px 10px #0000001a,0 10px 20px #0000001a}.kanban-plugin__lane-input-wrapper{padding:10px}.kanban-plugin__item-input-actions,.kanban-plugin__lane-input-actions{display:flex;align-items:flex-start;justify-content:flex-start;padding:0 10px 10px}.kanban-plugin__item-input-actions button,.kanban-plugin__lane-input-actions button{display:block;margin-right:5px}.kanban-plugin__item-action-add,.kanban-plugin__lane-action-add{background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__item-action-add:hover,.kanban-plugin__lane-action-add:hover{background-color:var(--interactive-accent-hover)}.kanban-plugin__lane-header-wrapper{padding:10px 11px;display:flex;align-items:center;flex-shrink:0;flex-grow:0;border-bottom:1px solid var(--background-modifier-border)}.will-prepend .kanban-plugin__lane-header-wrapper{border-bottom:none}.kanban-plugin__lane-grip{cursor:grab;flex-grow:0;margin-right:5px;color:var(--text-faint)}.kanban-plugin__lane-grip>svg{display:block;height:1rem}.kanban-plugin__lane-title{font-weight:600;font-size:.875rem;flex-grow:1;width:100%;display:flex;flex-direction:column}.kanban-plugin__lane-title-text{flex-grow:1}div.kanban-plugin__markdown-preview-view>div>*{overflow-wrap:anywhere}div.kanban-plugin__lane-title-count{background-color:var(--background-secondary-alt);border-radius:3px;color:var(--text-muted);display:block;font-size:13px;line-height:1;padding:4px;margin-left:5px}div.kanban-plugin__lane-title-count.wip-exceeded{font-weight:bold;color:var(--text-normal);background-color:rgba(var(--background-modifier-error-rgb),.25)}.kanban-plugin__item button.kanban-plugin__item-prefix-button,.kanban-plugin__item button.kanban-plugin__item-postfix-button,.kanban-plugin__lane button.kanban-plugin__lane-settings-button{font-size:13px;line-height:1;color:var(--text-muted);padding:4px;display:flex;margin-left:5px;background-color:transparent;margin-right:-4px}.kanban-plugin__item button.kanban-plugin__item-prefix-button{margin:4px 7px 4px 0;padding:0}.kanban-plugin__item button.kanban-plugin__item-prefix-button.is-enabled,.kanban-plugin__item button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{color:var(--text-accent)}.kanban-plugin__item button.kanban-plugin__item-prefix-button:hover,.kanban-plugin__item button.kanban-plugin__item-postfix-button:hover,.kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{background-color:transparent;color:var(--text-normal)}.kanban-plugin__lane-action-wrapper,.kanban-plugin__item-edit-archive-button,.kanban-plugin__item-settings-actions .kanban-plugin__icon,.kanban-plugin__item-edit-archive-button>.kanban-plugin__icon,.kanban-plugin__item-prefix-button>.kanban-plugin__icon,.kanban-plugin__item-postfix-button>.kanban-plugin__icon,.kanban-plugin__lane-settings-button>.kanban-plugin__icon{display:flex}.kanban-plugin__lane-settings-button-wrapper{display:flex}button.kanban-plugin__lane-settings-button+button.kanban-plugin__lane-settings-button{margin-left:2px}.kanban-plugin__lane-settings-button svg{width:1em;height:1em}.kanban-plugin__lane-items-wrapper{margin:4px;height:100%}.kanban-plugin__lane-items{padding:4px;margin:0 4px;display:flex;flex-direction:column}.kanban-plugin__lane-items>.kanban-plugin__placeholder{flex-grow:1}.kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{height:2.55em;border:3px dashed rgba(var(--text-muted-rgb),.1);margin-bottom:4px;border-radius:6px;transition:border .2s ease}.is-sorting .kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{border-color:rgba(var(--interactive-accent-rgb),.6)}.kanban-plugin__lane-items>div{margin-top:4px}.kanban-plugin__item-button-wrapper{border-top:1px solid var(--background-modifier-border);padding:8px;flex-shrink:0;flex-grow:0}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-button-wrapper{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-button-wrapper>button{text-align:left;width:100%}.kanban-plugin__item-form{border-top:1px solid var(--background-modifier-border);padding:8px}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-form{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-input-wrapper{display:flex;flex-direction:column}.kanban-plugin button.kanban-plugin__item-submit-button{background-color:var(--background-secondary-alt);flex-grow:0;flex-shrink:1;width:auto;margin-top:5px;line-height:1;font-size:14px}button.kanban-plugin__new-item-button{background-color:transparent;color:var(--text-muted)}.kanban-plugin__new-item-button:hover{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__item{font-size:.875rem;border:1px solid var(--background-modifier-border);border-radius:6px;overflow:hidden;transition:.3s opacity cubic-bezier(.25,1,.5,1)}.kanban-plugin__drag-container>.kanban-plugin__item-wrapper .kanban-plugin__item{border-color:var(--interactive-accent);box-shadow:0 15px 25px #0003,0 0 0 2px rgba(var(--interactive-accent-rgb),.8)}.kanban-plugin__item.is-search-hit{box-shadow:0 15px 25px #0003,0 0 0 1px var(--background-modifier-border)}.kanban-plugin__item.is-search-miss{font-size:.75rem;opacity:.5}.kanban-plugin__item.is-search-miss .kanban-plugin__item-metadata-wrapper{display:none}.kanban-plugin__item-content-wrapper{background:var(--background-primary)}.kanban-plugin__item-title-wrapper{background:var(--background-primary);display:flex;padding:6px 8px}.kanban-plugin__item-title-wrapper:not(:only-child){border-bottom:1px solid var(--background-modifier-border)}.kanban-plugin__item-title{width:100%;line-height:1.5;overflow:hidden}.kanban-plugin__markdown-preview-view{font-family:var(--font-text, var(--default-font));font-size:.875rem;padding:unset;width:unset;height:unset;position:unset;overflow-y:unset;overflow-wrap:unset;color:unset;user-select:unset;-webkit-user-select:unset}.kanban-plugin__markdown-preview-view p,.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol,.kanban-plugin__markdown-preview-view blockquote{margin-block-start:.66em;margin-block-end:.66em}.kanban-plugin__markdown-preview-view blockquote{margin-inline-start:0;margin-inline-end:0}.kanban-plugin__markdown-preview-view ul ol,.kanban-plugin__markdown-preview-view ol ul,.kanban-plugin__markdown-preview-view ul ul,.kanban-plugin__markdown-preview-view ol ol{margin-block-start:0em;margin-block-end:0em}.kanban-plugin__markdown-preview-view>div>*{overflow-x:auto;overflow-wrap:break-word}.kanban-plugin__markdown-preview-view>div>*:first-child,.kanban-plugin__markdown-preview-view>div>.frontmatter-container+*{margin-top:0}.kanban-plugin__markdown-preview-view>div>*:last-child{margin-bottom:0}.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol{padding-inline-start:24px}.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view p,.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view{font-size:inherit;color:inherit;line-height:inherit}.kanban-plugin__markdown-preview-view.inline p,.kanban-plugin__markdown-preview-view.inline{display:inline-block}.kanban-plugin__markdown-preview-view .frontmatter,.kanban-plugin__markdown-preview-view .frontmatter-container{display:none}.kanban-plugin__markdown-preview-view .file-link span{display:inline-flex;align-items:center;justify-content:center;color:var(--text-faint);margin-left:2px;position:relative;top:3px}.kanban-plugin__embed-link-wrapper{padding:2px;float:right}.kanban-plugin__item-metadata-wrapper:not(:empty){background-color:var(--background-primary-alt);padding:6px 8px}.kanban-plugin__item-metadata:not(:empty){padding-top:5px;font-size:12px;font-weight:500;color:var(--text-muted)}.kanban-plugin__item-metadata>span{display:block}.kanban-plugin__item-metadata .is-button{cursor:pointer}.kanban-plugin__item-metadata .is-button:hover{color:var(--text-normal)}.kanban-plugin__item-metadata-date-relative:first-letter{text-transform:uppercase}.kanban-plugin__item-metadata a{text-decoration:none}.kanban-plugin__item-metadata-time:before{content:" \2022 "}.kanban-plugin__item-metadata-time.is-button:hover:before{color:var(--text-muted)}.kanban-plugin__item-metadata-date-wrapper{padding-top:2px}.kanban-plugin__item-tags:not(:empty){padding-top:2px}.kanban-plugin__item-tag{display:inline-block;margin-right:4px}.kanban-plugin__item-tags .kanban-plugin__item-tag{background-color:rgba(var(--interactive-accent-rgb),.1);padding:1px 4px;border-radius:6px;margin:3px 3px 0 0}.kanban-plugin__item-tag.is-search-match,.kanban-plugin__item-tags .kanban-plugin__item-tag.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-table{width:100%;margin:0;line-height:1.5;font-size:.75rem}.kanban-plugin__meta-table td{vertical-align:top;padding:3px 0;width:10%}.kanban-plugin__meta-table td+td{width:90%}.kanban-plugin__meta-table td:only-child{width:100%}.kanban-plugin__meta-table td.kanban-plugin__meta-key{white-space:nowrap;padding-right:5px;color:var(--text-muted)}.kanban-plugin__meta-table td.kanban-plugin__meta-key.is-search-match>span{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-value{white-space:pre-wrap;display:flex}.kanban-plugin__meta-value>.is-search-match,.kanban-plugin__meta-value.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__item-prefix-button-wrapper,.kanban-plugin__item-postfix-button-wrapper{display:flex;flex-grow:0;flex-shrink:0}.kanban-plugin__item-prefix-button-wrapper{flex-direction:column}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]{margin:4px 7px 4px 0;width:15px;height:15px;filter:hue-rotate(42deg)}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]+button{margin-top:10px}button.kanban-plugin__item-postfix-button{visibility:hidden;opacity:0;transition:.1s opacity;display:flex;align-self:flex-start}button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__item:hover button.kanban-plugin__item-postfix-button{visibility:visible;opacity:1}.kanban-plugin__item-settings-actions{padding:5px;display:flex}.kanban-plugin__item-settings-actions>button{line-height:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;width:100%}.kanban-plugin__lane-action-wrapper button>.kanban-plugin__icon,.kanban-plugin__item-settings-actions button>.kanban-plugin__icon{margin-right:5px}.kanban-plugin__item-settings-actions>button:first-child,.kanban-plugin__lane-action-wrapper>button:first-child{margin-right:2.5px}.kanban-plugin__item-settings-actions>button:last-child,.kanban-plugin__lane-action-wrapper>button:last-child{margin-left:2.5px}.kanban-plugin__archive-lane-button,.kanban-plugin__item-button-archive{color:var(--text-muted);border:1px solid var(--background-modifier-border)}.kanban-plugin__archive-lane-button:hover,.kanban-plugin__item-button-archive:hover{color:var(--text-normal)}.kanban-plugin__item-button-delete{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__checkbox-wrapper{border-top:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);padding:10px;margin-bottom:10px;display:flex;align-items:center}.kanban-plugin__checkbox-wrapper .checkbox-container{flex-shrink:0;flex-grow:0;margin-left:15px}.kanban-plugin__checkbox-label{font-size:.8125rem;line-height:1.4}.kanban-plugin__lane-setting-wrapper>div{border-top:none;border-bottom:none;padding:10px 15px;margin-bottom:0}.kanban-plugin__lane-setting-wrapper>div:last-child{border-bottom:1px solid var(--background-modifier-border);margin-bottom:10px}.kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),.2);background-color:rgba(var(--background-modifier-error-rgb),.1);border-radius:4px;padding:10px;margin:5px 10px}.theme-dark .kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button,.kanban-plugin__archive-lane-button{display:flex;align-items:center;justify-content:center;font-size:.75rem;width:50%}.kanban-plugin__delete-lane-button{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__action-confirm-text{font-size:.875rem;color:var(--text-error);margin-bottom:10px;line-height:1.4}button.kanban-plugin__confirm-action-button{border:1px solid rgba(var(--background-modifier-error-rgb),.2);margin-right:5px;color:var(--text-error)}button.kanban-plugin__confirm-action-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.5)}button.kanban-plugin__cancel-action-button{border:1px solid var(--background-modifier-border)}.kanban-plugin__grow-wrap{width:100%;display:grid}.kanban-plugin__grow-wrap:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}.kanban-plugin__grow-wrap>textarea{resize:none;overflow:hidden;tab-size:2}.kanban-plugin__grow-wrap>textarea:focus{border-color:var(--interactive-accent)}.kanban-plugin__grow-wrap>textarea,.kanban-plugin__grow-wrap:after{border:1px solid var(--background-modifier-border);padding:5px 7px;font:inherit;line-height:1.5;grid-area:1 / 1 / 2 / 2;font-size:.875rem;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap}.kanban-plugin__autocomplete{font-size:.875rem;border:1px solid var(--background-modifier-border);background-color:var(--background-primary);list-style:none;padding:0;margin:0;min-width:20ch;max-width:40ch;max-height:200px;border-radius:6px;box-shadow:0 15px 25px #0003;overflow-x:hidden;overflow-y:auto}.kanban-plugin__autocomplete li{margin:0}.kanban-plugin__autocomplete li em{opacity:.6}.kanban-plugin .textcomplete-footer,.kanban-plugin .textcomplete-header{display:none}.kanban-plugin__autocomplete-item-active,.kanban-plugin__autocomplete-item{border-top:1px solid var(--background-modifier-border);padding:4px 6px;cursor:pointer}.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item,.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item-active{border-top:none}.kanban-plugin__autocomplete-item:hover,.kanban-plugin__autocomplete-item-active{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__file-suggestion-wrapper{display:flex;line-height:1.2}.kanban-plugin__file-suggestion-icon{flex-shrink:0;flex-grow:0;padding-right:4px}.kanban-plugin__file-suggestion-subtitle{font-size:.875em;color:var(--text-muted)}.kanban-plugin__autocomplete-item:hover .kanban-plugin__file-suggestion-subtitle,.kanban-plugin__autocomplete-item-active .kanban-plugin__file-suggestion-subtitle{color:var(--text-on-accent)}.modal.kanban-plugin__board-settings-modal{max-height:90vh;padding:0;display:flex;flex-direction:column}.modal.kanban-plugin__board-settings-modal .modal-content{padding:30px 50px;height:100%;overflow-y:auto;overflow-x:hidden;margin:0}.kanban-plugin__board-settings-modal .setting-item-info{width:100%}.kanban-plugin__board-settings-modal .setting-item-control{min-width:300px;flex-shrink:0}.kanban-plugin__board-settings-modal .choices{width:100%;text-align:left}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__inner{background-color:var(--background-primary);border-color:var(--background-modifier-border);padding:0;min-height:0}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__input{background-color:var(--background-primary);border-bottom-color:var(--background-modifier-border);font-size:14px}.kanban-plugin__board-settings-modal .choices__input{border-radius:0;border-top:none;border-left:none;border-right:none}.kanban-plugin__board-settings-modal .choices__list[role=listbox]{overflow-x:hidden}.kanban-plugin__board-settings-modal .choices__list--single{padding:4px 20px 4px 6px}.kanban-plugin__board-settings-modal .is-open .choices__list--dropdown,.kanban-plugin__board-settings-modal .choices__list--dropdown{background-color:var(--background-primary);border-color:var(--background-modifier-border);word-break:normal;max-height:200px;display:flex;flex-direction:column}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable:after{display:none}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable{padding:4px 6px}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item.is-highlighted{background-color:var(--background-primary-alt)}.kanban-plugin__board-settings-modal .choices__placeholder{opacity:1;color:var(--text-muted)}.kanban-plugin__board-settings-modal .error{border-color:var(--background-modifier-error-hover)!important}.kanban-plugin__date-picker{position:absolute;z-index:var(--layer-popover);--cell-size: 2.4em}.kanban-plugin__date-picker .flatpickr-input{width:0;height:0;opacity:0;border:none;padding:0;display:block;margin-bottom:-1px}.kanban-plugin__date-picker .flatpickr-current-month{color:var(--text-normal);font-weight:600;font-size:inherit;width:100%;position:static;height:auto;display:flex;align-items:center;justify-content:center;padding:0}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:var(--text-normal)}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{fill:currentColor}.kanban-plugin__date-picker .flatpickr-calendar{font-size:13px;overflow:hidden;background-color:var(--background-primary);width:calc(var(--cell-size) * 7 + 8px);box-shadow:0 0 0 1px var(--background-modifier-border),0 15px 25px #0003}.kanban-plugin__date-picker .flatpickr-months{font-size:13px;padding:2px 2px 4px;align-items:center}.kanban-plugin__date-picker .flatpickr-months .flatpickr-current-month input.cur-year,.kanban-plugin__date-picker .flatpickr-months select{border-radius:4px;padding:4px}.kanban-plugin__date-picker .flatpickr-months .numInputWrapper{border-radius:4px}.kanban-plugin__date-picker .flatpickr-months .flatpickr-month{width:100%;height:auto}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month{color:var(--text-normal);fill:currentColor;border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;height:auto;padding:5px;position:static;flex-shrink:0}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover{background-color:var(--background-primary-alt);color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover svg,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover svg{fill:currentColor}.kanban-plugin__date-picker .flatpickr-current-month .flatpickr-monthDropdown-months{color:var(--text-normal);font-weight:inherit;margin-right:5px}.kanban-plugin__date-picker .flatpickr-current-month input.cur-year{color:var(--text-normal);font-weight:inherit}.kanban-plugin__date-picker .flatpickr-weekdays{height:auto;padding:8px 0 12px}.kanban-plugin__date-picker span.flatpickr-weekday{font-weight:400;color:var(--text-muted)}.kanban-plugin__date-picker .flatpickr-innerContainer{padding:4px}.kanban-plugin__date-picker .flatpickr-day{color:var(--text-normal);display:inline-flex;align-items:center;justify-content:center;width:var(--cell-size);height:var(--cell-size);line-height:1;border-radius:6px}.kanban-plugin__date-picker .flatpickr-day.today{border-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-day.today:hover{color:var(--text-normal);border-color:var(--interactive-accent);background-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.selected{border-color:var(--interactive-accent);background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__date-picker .flatpickr-day.selected:hover{border-color:var(--interactive-accent);background-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-days{width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .dayContainer{width:calc(var(--cell-size) * 7);min-width:calc(var(--cell-size) * 7);max-width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .flatpickr-day.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.today.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day:focus,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:focus,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:focus{background-color:var(--background-primary-alt);border-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled,.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed,.kanban-plugin__date-picker .flatpickr-day.notAllowed.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed.nextMonthDay{color:var(--text-faint)}.kanban-plugin__time-picker{position:absolute;max-height:250px;overflow:auto;border-radius:4px;border:1px solid var(--background-modifier-border);box-shadow:0 2px 8px var(--background-modifier-box-shadow);background:var(--background-primary);color:var(--text-normal);font-size:14px;z-index:var(--layer-menu)}.kanban-plugin__time-picker-item{display:flex;align-items:center;color:var(--text-muted);cursor:pointer;line-height:1;padding:6px 8px}.kanban-plugin__time-picker-check{visibility:hidden;display:inline-flex;margin-right:5px}.kanban-plugin__time-picker-item.is-hour{color:var(--text-normal);font-weight:600}.kanban-plugin__time-picker-item.is-selected .kanban-plugin__time-picker-check{visibility:visible}.kanban-plugin__time-picker-item:hover,.kanban-plugin__time-picker-item.is-selected{background:var(--background-secondary)}.kanban-plugin mark{background-color:var(--text-highlight-bg)}.kanban-plugin__draggable-setting-container{border-top:0;padding:0;flex-direction:column}.kanban-plugin__draggable-setting-container>div{width:100%;margin-right:0!important}.kanban-plugin__setting-item-wrapper{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__draggable-setting-container>.kanban-plugin__placeholder{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__setting-item{background-color:var(--background-secondary);width:100%;font-size:16px;display:flex;align-items:flex-start;padding:12px;color:var(--text-muted)}.kanban-plugin__drag-container .kanban-plugin__setting-item{border:1px solid rgba(var(--interactive-accent-rgb),.8);box-shadow:0 15px 25px #0003,0 0 0 2px rgba(var(--interactive-accent-rgb),.8)}.kanban-plugin__setting-controls-wrapper{flex-grow:1;flex-shrink:0}.kanban-plugin__setting-input-wrapper{display:flex;margin-bottom:1rem}.kanban-plugin__setting-input-wrapper>div{margin-right:10px}.kanban-plugin__setting-toggle-wrapper>div{display:flex;align-items:center;line-height:1;margin-bottom:10px}.kanban-plugin__setting-toggle-wrapper .checkbox-container{margin-right:10px}.kanban-plugin__setting-button-wrapper{display:flex;justify-content:flex-end;flex-grow:1;flex-shrink:0}.kanban-plugin__setting-button-wrapper>div{margin-left:12px}.kanban-plugin__setting-key-input-wrapper{margin:1rem 0}.kanban-plugin__setting-key-input-wrapper>input{margin-right:10px}.kanban-plugin__metadata-setting-desc{font-size:14px}.kanban-plugin__setting-button-spacer{visibility:hidden}.kanban-plugin__setting-item-label{font-size:12px;font-weight:bold;margin-bottom:5px}.kanban-plugin__setting-toggle-wrapper .kanban-plugin__setting-item-label{margin-bottom:0}.kanban-plugin__hitbox{border:2px dashed tomato}.kanban-plugin__placeholder{flex-grow:0;flex-shrink:0;width:0;height:0;pointer-events:none}.kanban-plugin__placeholder[data-axis=horizontal]{height:100%}.kanban-plugin__placeholder[data-axis=vertical]{width:100%}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar{background-color:transparent;width:16px;height:16px}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar-thumb{border:4px solid transparent;background-clip:content-box}.kanban-plugin__scroll-container{will-change:transform}.kanban-plugin__scroll-container.kanban-plugin__horizontal{overflow-y:hidden;overflow-x:auto}.kanban-plugin__scroll-container.kanban-plugin__vertical{overflow-y:auto;overflow-x:hidden}.kanban-plugin__drag-container{contain:layout size;z-index:10000;pointer-events:none;position:fixed;top:0;left:0}.kanban-plugin__loading{background-color:var(--background-secondary-alt);width:100%;height:100%;display:flex;justify-content:center;align-items:center}.sk-pulse{width:60px;height:60px;background-color:var(--text-faint);border-radius:100%;animation:sk-pulse 1.2s infinite cubic-bezier(.455,.03,.515,.955)}@keyframes sk-pulse{0%{transform:scale(0)}to{transform:scale(1);opacity:0}} diff --git a/notes/.obsidian/plugins/obsidian-outliner/main.js b/notes/.obsidian/plugins/obsidian-outliner/main.js index 455d367..53b93ba 100644 --- a/notes/.obsidian/plugins/obsidian-outliner/main.js +++ b/notes/.obsidian/plugins/obsidian-outliner/main.js @@ -5,7 +5,7 @@ var view = require('@codemirror/view'); var state = require('@codemirror/state'); var language = require('@codemirror/language'); -/*! ***************************************************************************** +/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -827,7 +827,7 @@ class CreateNewItemOperation { const spaceAfterBullet = onChildLevel && hasChildren ? list.getChildren()[0].getSpaceAfterBullet() : list.getSpaceAfterBullet(); - const prefix = oldLines[0].match(/^\[[ x]\]/) ? "[ ] " : ""; + const prefix = oldLines[0].match(/^\[.\]/) ? "[ ] " : ""; const newList = new List(list.getRoot(), indent, bullet, spaceAfterBullet, prefix + newLines.shift(), false); if (newLines.length > 0) { newList.setNotesIndent(list.getNotesIndent()); @@ -2145,7 +2145,7 @@ class ObsidianService { this.app = app; } isLegacyEditorEnabled() { - const config = Object.assign({ legacyEditor: true }, this.app.vault.config); + const config = Object.assign({ legacyEditor: false }, this.app.vault.config); return config.legacyEditor; } isDefaultThemeEnabled() { @@ -2156,7 +2156,7 @@ class ObsidianService { return Object.assign({ useTab: true, tabSize: 4 }, this.app.vault.config); } getObsidianFoldSettings() { - return Object.assign({ foldIndent: false }, this.app.vault.config); + return Object.assign({ foldIndent: true }, this.app.vault.config); } getDefaultIndentChars() { const { useTab, tabSize } = this.getObsidianTabsSettings(); @@ -2398,7 +2398,7 @@ const DEFAULT_SETTINGS = { betterEnter: true, betterTab: true, selectAll: true, - listLines: true, + listLines: false, listLineAction: "toggle-folding", }; class SettingsService { @@ -2542,4 +2542,4 @@ class ObsidianOutlinerPlugin extends obsidian.Plugin { } module.exports = ObsidianOutlinerPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMudHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbi50cyIsInNyYy9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uLnRzIiwic3JjL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL01vdmVMZWZ0T3BlcmF0aW9uLnRzIiwic3JjL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94LnRzIiwic3JjL29wZXJhdGlvbnMvT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmUudHMiLCJzcmMvcm9vdC9pbmRleC50cyIsInNyYy9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJTaG91bGRDcmVhdGVOZXdJdGVtT25DaGlsZExldmVsRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9Gb2xkRmVhdHVyZS50cyIsInNyYy9NeUVkaXRvci50cyIsInNyYy9mZWF0dXJlcy9MaW5lc0ZlYXR1cmUudHMiLCJzcmMvZmVhdHVyZXMvTGlzdHNTdHlsZXNGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZURvd25PcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlUmlnaHRPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlVXBPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUl0ZW1zRmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3RBbGxGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9TZXR0aW5nc1RhYkZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9DcmVhdGVOb3RlTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUudHMiLCJzcmMvc2VydmljZXMvQXBwbHlDaGFuZ2VzU2VydmljZS50cyIsInNyYy9zZXJ2aWNlcy9JTUVTZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL1BhcnNlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlLnRzIiwic3JjL09ic2lkaWFuT3V0bGluZXJQbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xyXG4gICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XHJcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdDtcclxuICAgIH1cclxuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcclxuICAgIHZhciB0ID0ge307XHJcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcclxuICAgICAgICB0W3BdID0gc1twXTtcclxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcclxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcclxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xyXG4gICAgICAgIH1cclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcclxuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XHJcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xyXG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcclxufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBvW2syXSA9IG1ba107XHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBvKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSBfX2NyZWF0ZUJpbmRpbmcobywgbSwgcCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheXMoKSB7XHJcbiAgICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcclxuICAgIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcclxuICAgICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcclxuICAgICAgICAgICAgcltrXSA9IGFbal07XHJcbiAgICByZXR1cm4gcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXkodG8sIGZyb20sIHBhY2spIHtcclxuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xyXG4gICAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xyXG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogbiA9PT0gXCJyZXR1cm5cIiB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XHJcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufTtcclxuXHJcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcclxufSkgOiBmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnRTdGFyKG1vZCkge1xyXG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcclxuICAgIHZhciByZXN1bHQgPSB7fTtcclxuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG4iLCJpbXBvcnQgeyBMaXN0LCBSb290IH0gZnJvbSBcIi5cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdDogUm9vdCkge1xuICBmdW5jdGlvbiB2aXNpdChwYXJlbnQ6IFJvb3QgfCBMaXN0KSB7XG4gICAgbGV0IGluZGV4ID0gMTtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgcGFyZW50LmdldENoaWxkcmVuKCkpIHtcbiAgICAgIGlmICgvXFxkK1xcLi8udGVzdChjaGlsZC5nZXRCdWxsZXQoKSkpIHtcbiAgICAgICAgY2hpbGQucmVwbGF0ZUJ1bGxldChgJHtpbmRleCsrfS5gKTtcbiAgICAgIH1cblxuICAgICAgdmlzaXQoY2hpbGQpO1xuICAgIH1cbiAgfVxuXG4gIHZpc2l0KHJvb3QpO1xufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IExpc3QsIExpc3RMaW5lLCBQb3NpdGlvbiwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG5cbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoXG4gICAgICAobCkgPT4gY3Vyc29yLmNoID09PSBsLmZyb20uY2ggJiYgY3Vyc29yLmxpbmUgPT09IGwuZnJvbS5saW5lXG4gICAgKTtcblxuICAgIGlmIChsaW5lTm8gPT09IDApIHtcbiAgICAgIHRoaXMubWVyZ2VXaXRoUHJldmlvdXNJdGVtKHJvb3QsIGN1cnNvciwgbGlzdCk7XG4gICAgfSBlbHNlIGlmIChsaW5lTm8gPiAwKSB7XG4gICAgICB0aGlzLm1lcmdlTm90ZXMocm9vdCwgY3Vyc29yLCBsaXN0LCBsaW5lcywgbGluZU5vKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlTm90ZXMoXG4gICAgcm9vdDogUm9vdCxcbiAgICBjdXJzb3I6IFBvc2l0aW9uLFxuICAgIGxpc3Q6IExpc3QsXG4gICAgbGluZXM6IExpc3RMaW5lW10sXG4gICAgbGluZU5vOiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBwcmV2TGluZU5vID0gbGluZU5vIC0gMTtcblxuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBjdXJzb3IubGluZSAtIDEsXG4gICAgICBjaDogbGluZXNbcHJldkxpbmVOb10udGV4dC5sZW5ndGggKyBsaW5lc1twcmV2TGluZU5vXS5mcm9tLmNoLFxuICAgIH0pO1xuXG4gICAgbGluZXNbcHJldkxpbmVOb10udGV4dCArPSBsaW5lc1tsaW5lTm9dLnRleHQ7XG4gICAgbGluZXMuc3BsaWNlKGxpbmVObywgMSk7XG5cbiAgICBsaXN0LnJlcGxhY2VMaW5lcyhsaW5lcy5tYXAoKGwpID0+IGwudGV4dCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZVdpdGhQcmV2aW91c0l0ZW0ocm9vdDogUm9vdCwgY3Vyc29yOiBQb3NpdGlvbiwgbGlzdDogTGlzdCkge1xuICAgIGlmIChyb290LmdldENoaWxkcmVuKClbMF0gPT09IGxpc3QgJiYgbGlzdC5nZXRDaGlsZHJlbigpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByZXYgPSByb290LmdldExpc3RVbmRlckxpbmUoY3Vyc29yLmxpbmUgLSAxKTtcblxuICAgIGlmICghcHJldikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdGhBcmVFbXB0eSA9IHByZXYuaXNFbXB0eSgpICYmIGxpc3QuaXNFbXB0eSgpO1xuICAgIGNvbnN0IHByZXZJc0VtcHR5QW5kU2FtZUxldmVsID1cbiAgICAgIHByZXYuaXNFbXB0eSgpICYmICFsaXN0LmlzRW1wdHkoKSAmJiBwcmV2LmdldExldmVsKCkgPT0gbGlzdC5nZXRMZXZlbCgpO1xuICAgIGNvbnN0IGxpc3RJc0VtcHR5QW5kUHJldklzUGFyZW50ID1cbiAgICAgIGxpc3QuaXNFbXB0eSgpICYmIHByZXYuZ2V0TGV2ZWwoKSA9PSBsaXN0LmdldExldmVsKCkgLSAxO1xuXG4gICAgaWYgKGJvdGhBcmVFbXB0eSB8fCBwcmV2SXNFbXB0eUFuZFNhbWVMZXZlbCB8fCBsaXN0SXNFbXB0eUFuZFByZXZJc1BhcmVudCkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgICAgY29uc3QgcGFyZW50ID0gbGlzdC5nZXRQYXJlbnQoKTtcbiAgICAgIGNvbnN0IHByZXZFbmQgPSBwcmV2LmdldExhc3RMaW5lQ29udGVudEVuZCgpO1xuXG4gICAgICBpZiAoIXByZXYuZ2V0Tm90ZXNJbmRlbnQoKSAmJiBsaXN0LmdldE5vdGVzSW5kZW50KCkpIHtcbiAgICAgICAgcHJldi5zZXROb3Rlc0luZGVudChcbiAgICAgICAgICBwcmV2LmdldEZpcnN0TGluZUluZGVudCgpICtcbiAgICAgICAgICAgIGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKS5zbGljZShsaXN0LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkTGluZXMgPSBwcmV2LmdldExpbmVzKCk7XG4gICAgICBjb25zdCBuZXdMaW5lcyA9IGxpc3QuZ2V0TGluZXMoKTtcbiAgICAgIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIDFdICs9IG5ld0xpbmVzWzBdO1xuICAgICAgY29uc3QgcmVzdWx0TGluZXMgPSBvbGRMaW5lcy5jb25jYXQobmV3TGluZXMuc2xpY2UoMSkpO1xuXG4gICAgICBwcmV2LnJlcGxhY2VMaW5lcyhyZXN1bHRMaW5lcyk7XG4gICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG5cbiAgICAgIGZvciAoY29uc3QgYyBvZiBsaXN0LmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgbGlzdC5yZW1vdmVDaGlsZChjKTtcbiAgICAgICAgcHJldi5hZGRBZnRlckFsbChjKTtcbiAgICAgIH1cblxuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHByZXZFbmQpO1xuXG4gICAgICByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzKHJvb3QpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4vRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXM6IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHtcbiAgICB0aGlzLmRlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzID1cbiAgICAgIG5ldyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24ocm9vdCk7XG4gIH1cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMuc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMuc2hvdWxkVXBkYXRlKCk7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpO1xuXG4gICAgY29uc3QgbGluZU5vID0gbGluZXMuZmluZEluZGV4KFxuICAgICAgKGwpID0+IGN1cnNvci5jaCA9PT0gbC50by5jaCAmJiBjdXJzb3IubGluZSA9PT0gbC50by5saW5lXG4gICAgKTtcblxuICAgIGlmIChsaW5lTm8gPT09IGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgIGNvbnN0IG5leHRMaW5lID0gbGluZXNbbGluZU5vXS50by5saW5lICsgMTtcbiAgICAgIGNvbnN0IG5leHRMaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJMaW5lKG5leHRMaW5lKTtcbiAgICAgIGlmICghbmV4dExpc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKG5leHRMaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpKTtcbiAgICAgIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMucGVyZm9ybSgpO1xuICAgIH0gZWxzZSBpZiAobGluZU5vID49IDApIHtcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcihsaW5lc1tsaW5lTm8gKyAxXS5mcm9tKTtcbiAgICAgIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMucGVyZm9ybSgpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG4gICAgY29uc3QgbGluZU5vID0gbGluZXMuZmluZEluZGV4KChsKSA9PiBsLmZyb20ubGluZSA9PT0gY3Vyc29yLmxpbmUpO1xuXG4gICAgbGluZXNbbGluZU5vXS50ZXh0ID0gbGluZXNbbGluZU5vXS50ZXh0LnNsaWNlKFxuICAgICAgY3Vyc29yLmNoIC0gbGluZXNbbGluZU5vXS5mcm9tLmNoXG4gICAgKTtcblxuICAgIGxpc3QucmVwbGFjZUxpbmVzKGxpbmVzLm1hcCgobCkgPT4gbC50ZXh0KSk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKGxpbmVzW2xpbmVOb10uZnJvbSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBEZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IERlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9EZWxldGVUaWxsTGluZVN0YXJ0T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVTaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJCYWNrc3BhY2VcIixcbiAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICBydW46IHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcIkRlbGV0ZVwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1hYzogXCJtLUJhY2tzcGFjZVwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5kZWxldGVUaWxsTGluZVN0YXJ0LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLnN0aWNrQ3Vyc29yICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVUaWxsTGluZVN0YXJ0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IERlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgZGVsZXRlQW5kTWVyZ2VXaXRoTmV4dExpbmUgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlQW5kTWVyZ2VXaXRoTmV4dExpbmVPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY29udGVudFN0YXJ0ID0gbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTtcbiAgICBjb25zdCBsaW5lUHJlZml4ID1cbiAgICAgIGNvbnRlbnRTdGFydC5saW5lID09PSBjdXJzb3IubGluZVxuICAgICAgICA/IGNvbnRlbnRTdGFydC5jaFxuICAgICAgICA6IGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKS5sZW5ndGg7XG5cbiAgICBpZiAoY3Vyc29yLmNoIDwgbGluZVByZWZpeCkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICAgIGxpbmU6IGN1cnNvci5saW5lLFxuICAgICAgICBjaDogbGluZVByZWZpeCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBpZiAoIWxpc3QuaXNGb2xkZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvbGRSb290ID0gbGlzdC5nZXRUb3BGb2xkUm9vdCgpO1xuICAgIGNvbnN0IGZpcnN0TGluZUVuZCA9IGZvbGRSb290LmdldExpbmVzSW5mbygpWzBdLnRvO1xuXG4gICAgaWYgKGN1cnNvci5saW5lID4gZmlyc3RMaW5lRW5kLmxpbmUpIHtcbiAgICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IoZmlyc3RMaW5lRW5kKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IEVkaXRvclN0YXRlLCBUcmFuc2FjdGlvbiB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBFbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0Vuc3VyZUN1cnNvcklzSW5VbmZvbGRlZExpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgRWRpdG9yU3RhdGUudHJhbnNhY3Rpb25FeHRlbmRlci5vZih0aGlzLnRyYW5zYWN0aW9uRXh0ZW5kZXIpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSB0cmFuc2FjdGlvbkV4dGVuZGVyID0gKHRyOiBUcmFuc2FjdGlvbik6IG51bGwgPT4ge1xuICAgIGlmICghdGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvciB8fCAhdHIuc2VsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLm9ic2lkaWFuLmdldEVkaXRvckZyb21TdGF0ZSh0ci5zdGFydFN0YXRlKTtcblxuICAgIHNldEltbWVkaWF0ZSgoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUN1cnNvckFjdGl2aXR5KGVkaXRvcik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUN1cnNvckFjdGl2aXR5ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG5cbiAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUxlZnRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuXG4gICAgaWYgKCFncmFuZFBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuICAgIGNvbnN0IGluZGVudFJtRnJvbSA9IHBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG4gICAgY29uc3QgaW5kZW50Um1UaWxsID0gbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG5cbiAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgZ3JhbmRQYXJlbnQuYWRkQWZ0ZXIocGFyZW50LCBsaXN0KTtcbiAgICBsaXN0LnVuaW5kZW50Q29udGVudChpbmRlbnRSbUZyb20sIGluZGVudFJtVGlsbCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuICAgIGNvbnN0IGNoRGlmZiA9IGluZGVudFJtVGlsbCAtIGluZGVudFJtRnJvbTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgbGluZURpZmYsXG4gICAgICBjaDogY3Vyc29yLmNoIC0gY2hEaWZmLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94KGxpbmU6IHN0cmluZykge1xuICByZXR1cm4gbGluZSA9PT0gXCJcIiB8fCBsaW5lID09PSBcIlsgXSBcIjtcbn1cbiIsImltcG9ydCB7IE1vdmVMZWZ0T3BlcmF0aW9uIH0gZnJvbSBcIi4vTW92ZUxlZnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94IH0gZnJvbSBcIi4uL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94XCI7XG5cbmV4cG9ydCBjbGFzcyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgbW92ZUxlZnRPcDogTW92ZUxlZnRPcGVyYXRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7XG4gICAgdGhpcy5tb3ZlTGVmdE9wID0gbmV3IE1vdmVMZWZ0T3BlcmF0aW9uKHJvb3QpO1xuICB9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1vdmVMZWZ0T3Auc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW92ZUxlZnRPcC5zaG91bGRVcGRhdGUoKTtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzKCk7XG5cbiAgICBpZiAoXG4gICAgICBsaW5lcy5sZW5ndGggPiAxIHx8XG4gICAgICAhaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3gobGluZXNbMF0pIHx8XG4gICAgICBsaXN0LmdldExldmVsKCkgPT09IDFcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vdmVMZWZ0T3AucGVyZm9ybSgpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBQcmVjIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL091dGRlbnRJZkxpbmVJc0VtcHR5T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgUHJlYy5oaWdoZXN0KFxuICAgICAgICBrZXltYXAub2YoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJFbnRlclwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGNtcFBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGEubGluZSAtIGIubGluZSB8fCBhLmNoIC0gYi5jaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heFBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGNtcFBvcyhhLCBiKSA8IDAgPyBiIDogYTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pblBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGNtcFBvcyhhLCBiKSA8IDAgPyBhIDogYjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIGNoOiBudW1iZXI7XG4gIGxpbmU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TGluZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgZnJvbTogUG9zaXRpb247XG4gIHRvOiBQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYW5nZSB7XG4gIGFuY2hvcjogUG9zaXRpb247XG4gIGhlYWQ6IFBvc2l0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTGlzdCB7XG4gIHByaXZhdGUgcGFyZW50OiBMaXN0IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hpbGRyZW46IExpc3RbXSA9IFtdO1xuICBwcml2YXRlIG5vdGVzSW5kZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsaW5lczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvb3Q6IFJvb3QsXG4gICAgcHJpdmF0ZSBpbmRlbnQ6IHN0cmluZyxcbiAgICBwcml2YXRlIGJ1bGxldDogc3RyaW5nLFxuICAgIHByaXZhdGUgc3BhY2VBZnRlckJ1bGxldDogc3RyaW5nLFxuICAgIGZpcnN0TGluZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZm9sZFJvb3Q6IGJvb2xlYW5cbiAgKSB7XG4gICAgdGhpcy5saW5lcy5wdXNoKGZpcnN0TGluZSk7XG4gIH1cblxuICBnZXROb3Rlc0luZGVudCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5ub3Rlc0luZGVudDtcbiAgfVxuXG4gIHNldE5vdGVzSW5kZW50KG5vdGVzSW5kZW50OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5ub3Rlc0luZGVudCAhPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3RlcyBpbmRlbnQgYWxyZWFkeSBwcm92aWRlZGApO1xuICAgIH1cbiAgICB0aGlzLm5vdGVzSW5kZW50ID0gbm90ZXNJbmRlbnQ7XG4gIH1cblxuICBhZGRMaW5lKHRleHQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gYWRkIGxpbmUsIG5vdGVzIGluZGVudCBzaG91bGQgYmUgcHJvdmlkZWQgZmlyc3RgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubGluZXMucHVzaCh0ZXh0KTtcbiAgfVxuXG4gIHJlcGxhY2VMaW5lcyhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAobGluZXMubGVuZ3RoID4gMSAmJiB0aGlzLm5vdGVzSW5kZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gYWRkIGxpbmUsIG5vdGVzIGluZGVudCBzaG91bGQgYmUgcHJvdmlkZWQgZmlyc3RgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubGluZXMgPSBsaW5lcztcbiAgfVxuXG4gIGdldExpbmVDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5saW5lcy5sZW5ndGg7XG4gIH1cblxuICBnZXRSb290KCkge1xuICAgIHJldHVybiB0aGlzLnJvb3Q7XG4gIH1cblxuICBnZXRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5jb25jYXQoKTtcbiAgfVxuXG4gIGdldExpbmVzSW5mbygpOiBMaXN0TGluZVtdIHtcbiAgICBjb25zdCBzdGFydExpbmUgPSB0aGlzLnJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZih0aGlzKVswXTtcblxuICAgIHJldHVybiB0aGlzLmxpbmVzLm1hcCgocm93LCBpKSA9PiB7XG4gICAgICBjb25zdCBsaW5lID0gc3RhcnRMaW5lICsgaTtcbiAgICAgIGNvbnN0IHN0YXJ0Q2ggPVxuICAgICAgICBpID09PSAwID8gdGhpcy5nZXRDb250ZW50U3RhcnRDaCgpIDogdGhpcy5ub3Rlc0luZGVudC5sZW5ndGg7XG4gICAgICBjb25zdCBlbmRDaCA9IHN0YXJ0Q2ggKyByb3cubGVuZ3RoO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiByb3csXG4gICAgICAgIGZyb206IHsgbGluZSwgY2g6IHN0YXJ0Q2ggfSxcbiAgICAgICAgdG86IHsgbGluZSwgY2g6IGVuZENoIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGluZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmxpbmVzLmNvbmNhdCgpO1xuICB9XG5cbiAgZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkge1xuICAgIGNvbnN0IHN0YXJ0TGluZSA9IHRoaXMucm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKHRoaXMpWzBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgIGNoOiB0aGlzLmdldENvbnRlbnRTdGFydENoKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldExhc3RMaW5lQ29udGVudEVuZCgpIHtcbiAgICBjb25zdCBlbmRMaW5lID0gdGhpcy5yb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YodGhpcylbMV07XG4gICAgY29uc3QgZW5kQ2ggPVxuICAgICAgdGhpcy5saW5lcy5sZW5ndGggPT09IDFcbiAgICAgICAgPyB0aGlzLmdldENvbnRlbnRTdGFydENoKCkgKyB0aGlzLmxpbmVzWzBdLmxlbmd0aFxuICAgICAgICA6IHRoaXMubm90ZXNJbmRlbnQubGVuZ3RoICsgdGhpcy5saW5lc1t0aGlzLmxpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aDtcblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBlbmRMaW5lLFxuICAgICAgY2g6IGVuZENoLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRlbnRTdGFydENoKCkge1xuICAgIHJldHVybiB0aGlzLmluZGVudC5sZW5ndGggKyB0aGlzLmJ1bGxldC5sZW5ndGggKyAxO1xuICB9XG5cbiAgaXNGb2xkZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZm9sZFJvb3QpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmlzRm9sZGVkKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNGb2xkUm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkUm9vdDtcbiAgfVxuXG4gIGdldFRvcEZvbGRSb290KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGxldCB0bXA6IExpc3QgPSB0aGlzO1xuICAgIGxldCBmb2xkUm9vdDogTGlzdCB8IG51bGwgPSBudWxsO1xuICAgIHdoaWxlICh0bXApIHtcbiAgICAgIGlmICh0bXAuaXNGb2xkUm9vdCgpKSB7XG4gICAgICAgIGZvbGRSb290ID0gdG1wO1xuICAgICAgfVxuICAgICAgdG1wID0gdG1wLnBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIGZvbGRSb290O1xuICB9XG5cbiAgZ2V0TGV2ZWwoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucGFyZW50KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0TGV2ZWwoKSArIDE7XG4gIH1cblxuICB1bmluZGVudENvbnRlbnQoZnJvbTogbnVtYmVyLCB0aWxsOiBudW1iZXIpIHtcbiAgICB0aGlzLmluZGVudCA9IHRoaXMuaW5kZW50LnNsaWNlKDAsIGZyb20pICsgdGhpcy5pbmRlbnQuc2xpY2UodGlsbCk7XG4gICAgaWYgKHRoaXMubm90ZXNJbmRlbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMubm90ZXNJbmRlbnQgPVxuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKDAsIGZyb20pICsgdGhpcy5ub3Rlc0luZGVudC5zbGljZSh0aWxsKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLnVuaW5kZW50Q29udGVudChmcm9tLCB0aWxsKTtcbiAgICB9XG4gIH1cblxuICBpbmRlbnRDb250ZW50KGluZGVudFBvczogbnVtYmVyLCBpbmRlbnRDaGFyczogc3RyaW5nKSB7XG4gICAgdGhpcy5pbmRlbnQgPVxuICAgICAgdGhpcy5pbmRlbnQuc2xpY2UoMCwgaW5kZW50UG9zKSArXG4gICAgICBpbmRlbnRDaGFycyArXG4gICAgICB0aGlzLmluZGVudC5zbGljZShpbmRlbnRQb3MpO1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5vdGVzSW5kZW50ID1cbiAgICAgICAgdGhpcy5ub3Rlc0luZGVudC5zbGljZSgwLCBpbmRlbnRQb3MpICtcbiAgICAgICAgaW5kZW50Q2hhcnMgK1xuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKGluZGVudFBvcyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBjaGlsZC5pbmRlbnRDb250ZW50KGluZGVudFBvcywgaW5kZW50Q2hhcnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpcnN0TGluZUluZGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmRlbnQ7XG4gIH1cblxuICBnZXRCdWxsZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVsbGV0O1xuICB9XG5cbiAgZ2V0U3BhY2VBZnRlckJ1bGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5zcGFjZUFmdGVyQnVsbGV0O1xuICB9XG5cbiAgcmVwbGF0ZUJ1bGxldChidWxsZXQ6IHN0cmluZykge1xuICAgIHRoaXMuYnVsbGV0ID0gYnVsbGV0O1xuICB9XG5cbiAgZ2V0UGFyZW50KCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudDtcbiAgfVxuXG4gIGFkZEJlZm9yZUFsbChsaXN0OiBMaXN0KSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGFkZEFmdGVyQWxsKGxpc3Q6IExpc3QpIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2gobGlzdCk7XG4gICAgbGlzdC5wYXJlbnQgPSB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlQ2hpbGQobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YobGlzdCk7XG4gICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgbGlzdC5wYXJlbnQgPSBudWxsO1xuICB9XG5cbiAgYWRkQmVmb3JlKGJlZm9yZTogTGlzdCwgbGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoYmVmb3JlKTtcbiAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAwLCBsaXN0KTtcbiAgICBsaXN0LnBhcmVudCA9IHRoaXM7XG4gIH1cblxuICBhZGRBZnRlcihiZWZvcmU6IExpc3QsIGxpc3Q6IExpc3QpIHtcbiAgICBjb25zdCBpID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKGJlZm9yZSk7XG4gICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaSArIDEsIDAsIGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGdldFByZXZTaWJsaW5nT2YobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YobGlzdCk7XG4gICAgcmV0dXJuIGkgPiAwID8gdGhpcy5jaGlsZHJlbltpIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgZ2V0TmV4dFNpYmxpbmdPZihsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihsaXN0KTtcbiAgICByZXR1cm4gaSA+PSAwICYmIGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aCA/IHRoaXMuY2hpbGRyZW5baSArIDFdIDogbnVsbDtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgbGV0IHJlcyA9IFwiXCI7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcyArPVxuICAgICAgICBpID09PSAwXG4gICAgICAgICAgPyB0aGlzLmluZGVudCArIHRoaXMuYnVsbGV0ICsgdGhpcy5zcGFjZUFmdGVyQnVsbGV0XG4gICAgICAgICAgOiB0aGlzLm5vdGVzSW5kZW50O1xuICAgICAgcmVzICs9IHRoaXMubGluZXNbaV07XG4gICAgICByZXMgKz0gXCJcXG5cIjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIHJlcyArPSBjaGlsZC5wcmludCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvb3Qge1xuICBwcml2YXRlIHJvb3RMaXN0ID0gbmV3IExpc3QodGhpcywgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgZmFsc2UpO1xuICBwcml2YXRlIHNlbGVjdGlvbnM6IFJhbmdlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXJ0OiBQb3NpdGlvbixcbiAgICBwcml2YXRlIGVuZDogUG9zaXRpb24sXG4gICAgc2VsZWN0aW9uczogUmFuZ2VbXVxuICApIHtcbiAgICB0aGlzLnJlcGxhY2VTZWxlY3Rpb25zKHNlbGVjdGlvbnMpO1xuICB9XG5cbiAgZ2V0Um9vdExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdExpc3Q7XG4gIH1cblxuICBnZXRSYW5nZSgpOiBbUG9zaXRpb24sIFBvc2l0aW9uXSB7XG4gICAgcmV0dXJuIFt7IC4uLnRoaXMuc3RhcnQgfSwgeyAuLi50aGlzLmVuZCB9XTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbnMoKTogUmFuZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9ucy5tYXAoKHMpID0+ICh7XG4gICAgICBhbmNob3I6IHsgLi4ucy5hbmNob3IgfSxcbiAgICAgIGhlYWQ6IHsgLi4ucy5oZWFkIH0sXG4gICAgfSkpO1xuICB9XG5cbiAgaGFzU2luZ2xlQ3Vyc29yKCkge1xuICAgIGlmICghdGhpcy5oYXNTaW5nbGVTZWxlY3Rpb24oKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uc1swXTtcblxuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3Rpb24uYW5jaG9yLmxpbmUgPT09IHNlbGVjdGlvbi5oZWFkLmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvbi5hbmNob3IuY2ggPT09IHNlbGVjdGlvbi5oZWFkLmNoXG4gICAgKTtcbiAgfVxuXG4gIGhhc1NpbmdsZVNlbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25zLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldEN1cnNvcigpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnNlbGVjdGlvbnNbdGhpcy5zZWxlY3Rpb25zLmxlbmd0aCAtIDFdLmhlYWQgfTtcbiAgfVxuXG4gIHJlcGxhY2VDdXJzb3IoY3Vyc29yOiBQb3NpdGlvbikge1xuICAgIHRoaXMuc2VsZWN0aW9ucyA9IFt7IGFuY2hvcjogY3Vyc29yLCBoZWFkOiBjdXJzb3IgfV07XG4gIH1cblxuICByZXBsYWNlU2VsZWN0aW9ucyhzZWxlY3Rpb25zOiBSYW5nZVtdKSB7XG4gICAgaWYgKHNlbGVjdGlvbnMubGVuZ3RoIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gY3JlYXRlIFJvb3Qgd2l0aG91dCBzZWxlY3Rpb25zYCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9ucyA9IHNlbGVjdGlvbnM7XG4gIH1cblxuICBnZXRMaXN0VW5kZXJDdXJzb3IoKTogTGlzdCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGlzdFVuZGVyTGluZSh0aGlzLmdldEN1cnNvcigpLmxpbmUpO1xuICB9XG5cbiAgZ2V0TGlzdFVuZGVyTGluZShsaW5lOiBudW1iZXIpIHtcbiAgICBpZiAobGluZSA8IHRoaXMuc3RhcnQubGluZSB8fCBsaW5lID4gdGhpcy5lbmQubGluZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IExpc3QgPSBudWxsO1xuICAgIGxldCBpbmRleDogbnVtYmVyID0gdGhpcy5zdGFydC5saW5lO1xuXG4gICAgY29uc3QgdmlzaXRBcnIgPSAobGw6IExpc3RbXSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBsIG9mIGxsKSB7XG4gICAgICAgIGNvbnN0IGxpc3RGcm9tTGluZSA9IGluZGV4O1xuICAgICAgICBjb25zdCBsaXN0VGlsbExpbmUgPSBsaXN0RnJvbUxpbmUgKyBsLmdldExpbmVDb3VudCgpIC0gMTtcblxuICAgICAgICBpZiAobGluZSA+PSBsaXN0RnJvbUxpbmUgJiYgbGluZSA8PSBsaXN0VGlsbExpbmUpIHtcbiAgICAgICAgICByZXN1bHQgPSBsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluZGV4ID0gbGlzdFRpbGxMaW5lICsgMTtcbiAgICAgICAgICB2aXNpdEFycihsLmdldENoaWxkcmVuKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmlzaXRBcnIodGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3Q6IExpc3QpOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7XG4gICAgbGV0IHJlc3VsdDogW251bWJlciwgbnVtYmVyXSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBsaW5lOiBudW1iZXIgPSB0aGlzLnN0YXJ0LmxpbmU7XG5cbiAgICBjb25zdCB2aXNpdEFyciA9IChsbDogTGlzdFtdKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGwgb2YgbGwpIHtcbiAgICAgICAgY29uc3QgbGlzdEZyb21MaW5lID0gbGluZTtcbiAgICAgICAgY29uc3QgbGlzdFRpbGxMaW5lID0gbGlzdEZyb21MaW5lICsgbC5nZXRMaW5lQ291bnQoKSAtIDE7XG5cbiAgICAgICAgaWYgKGwgPT09IGxpc3QpIHtcbiAgICAgICAgICByZXN1bHQgPSBbbGlzdEZyb21MaW5lLCBsaXN0VGlsbExpbmVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpbmUgPSBsaXN0VGlsbExpbmUgKyAxO1xuICAgICAgICAgIHZpc2l0QXJyKGwuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHZpc2l0QXJyKHRoaXMucm9vdExpc3QuZ2V0Q2hpbGRyZW4oKSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0Q2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdExpc3QuZ2V0Q2hpbGRyZW4oKTtcbiAgfVxuXG4gIHByaW50KCkge1xuICAgIGxldCByZXMgPSBcIlwiO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLnJvb3RMaXN0LmdldENoaWxkcmVuKCkpIHtcbiAgICAgIHJlcyArPSBjaGlsZC5wcmludCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXMucmVwbGFjZSgvXFxuJC8sIFwiXCIpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgTGlzdCwgUG9zaXRpb24sIFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyB9IGZyb20gXCIuLi9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHNcIjtcbmltcG9ydCB7IGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94IH0gZnJvbSBcIi4uL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Wm9vbVJhbmdlIHtcbiAgZ2V0Wm9vbVJhbmdlKCk6IHsgZnJvbTogUG9zaXRpb247IHRvOiBQb3NpdGlvbiB9IHwgbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZU5ld0l0ZW1PcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvb3Q6IFJvb3QsXG4gICAgcHJpdmF0ZSBkZWZhdWx0SW5kZW50Q2hhcnM6IHN0cmluZyxcbiAgICBwcml2YXRlIGdldFpvb21SYW5nZTogR2V0Wm9vbVJhbmdlXG4gICkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcblxuICAgIGlmIChsaW5lcy5sZW5ndGggPT09IDEgJiYgaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3gobGluZXNbMF0udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVVbmRlckN1cnNvciA9IGxpbmVzLmZpbmQoKGwpID0+IGwuZnJvbS5saW5lID09PSBjdXJzb3IubGluZSk7XG5cbiAgICBpZiAoY3Vyc29yLmNoIDwgbGluZVVuZGVyQ3Vyc29yLmZyb20uY2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG9sZExpbmVzLCBuZXdMaW5lcyB9ID0gbGluZXMucmVkdWNlKFxuICAgICAgKGFjYywgbGluZSkgPT4ge1xuICAgICAgICBpZiAoY3Vyc29yLmxpbmUgPiBsaW5lLmZyb20ubGluZSkge1xuICAgICAgICAgIGFjYy5vbGRMaW5lcy5wdXNoKGxpbmUudGV4dCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yLmxpbmUgPT09IGxpbmUuZnJvbS5saW5lKSB7XG4gICAgICAgICAgY29uc3QgYSA9IGxpbmUudGV4dC5zbGljZSgwLCBjdXJzb3IuY2ggLSBsaW5lLmZyb20uY2gpO1xuICAgICAgICAgIGNvbnN0IGIgPSBsaW5lLnRleHQuc2xpY2UoY3Vyc29yLmNoIC0gbGluZS5mcm9tLmNoKTtcbiAgICAgICAgICBhY2Mub2xkTGluZXMucHVzaChhKTtcbiAgICAgICAgICBhY2MubmV3TGluZXMucHVzaChiKTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJzb3IubGluZSA8IGxpbmUuZnJvbS5saW5lKSB7XG4gICAgICAgICAgYWNjLm5ld0xpbmVzLnB1c2gobGluZS50ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvbGRMaW5lczogW10sXG4gICAgICAgIG5ld0xpbmVzOiBbXSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgY29kZUJsb2NrQmFjdGlja3MgPSBvbGRMaW5lcy5qb2luKFwiXFxuXCIpLnNwbGl0KFwiYGBgXCIpLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgaXNJbnNpZGVDb2RlYmxvY2sgPVxuICAgICAgY29kZUJsb2NrQmFjdGlja3MgPiAwICYmIGNvZGVCbG9ja0JhY3RpY2tzICUgMiAhPT0gMDtcblxuICAgIGlmIChpc0luc2lkZUNvZGVibG9jaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3Qgem9vbVJhbmdlID0gdGhpcy5nZXRab29tUmFuZ2UuZ2V0Wm9vbVJhbmdlKCk7XG4gICAgY29uc3QgbGlzdElzWm9vbWluZ1Jvb3QgPSBCb29sZWFuKFxuICAgICAgem9vbVJhbmdlICYmXG4gICAgICAgIGxpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkubGluZSA+PSB6b29tUmFuZ2UuZnJvbS5saW5lICYmXG4gICAgICAgIGxpc3QuZ2V0TGFzdExpbmVDb250ZW50RW5kKCkubGluZSA8PSB6b29tUmFuZ2UuZnJvbS5saW5lXG4gICAgKTtcblxuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gIWxpc3QuaXNFbXB0eSgpO1xuICAgIGNvbnN0IGNoaWxkSXNGb2xkZWQgPSBsaXN0LmlzRm9sZFJvb3QoKTtcbiAgICBjb25zdCBlbmRQb3MgPSBsaXN0LmdldExhc3RMaW5lQ29udGVudEVuZCgpO1xuICAgIGNvbnN0IGVuZE9mTGluZSA9IGN1cnNvci5saW5lID09PSBlbmRQb3MubGluZSAmJiBjdXJzb3IuY2ggPT09IGVuZFBvcy5jaDtcblxuICAgIGNvbnN0IG9uQ2hpbGRMZXZlbCA9XG4gICAgICBsaXN0SXNab29taW5nUm9vdCB8fCAoaGFzQ2hpbGRyZW4gJiYgIWNoaWxkSXNGb2xkZWQgJiYgZW5kT2ZMaW5lKTtcblxuICAgIGNvbnN0IGluZGVudCA9IG9uQ2hpbGRMZXZlbFxuICAgICAgPyBoYXNDaGlsZHJlblxuICAgICAgICA/IGxpc3QuZ2V0Q2hpbGRyZW4oKVswXS5nZXRGaXJzdExpbmVJbmRlbnQoKVxuICAgICAgICA6IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkgKyB0aGlzLmRlZmF1bHRJbmRlbnRDaGFyc1xuICAgICAgOiBsaXN0LmdldEZpcnN0TGluZUluZGVudCgpO1xuXG4gICAgY29uc3QgYnVsbGV0ID1cbiAgICAgIG9uQ2hpbGRMZXZlbCAmJiBoYXNDaGlsZHJlblxuICAgICAgICA/IGxpc3QuZ2V0Q2hpbGRyZW4oKVswXS5nZXRCdWxsZXQoKVxuICAgICAgICA6IGxpc3QuZ2V0QnVsbGV0KCk7XG5cbiAgICBjb25zdCBzcGFjZUFmdGVyQnVsbGV0ID1cbiAgICAgIG9uQ2hpbGRMZXZlbCAmJiBoYXNDaGlsZHJlblxuICAgICAgICA/IGxpc3QuZ2V0Q2hpbGRyZW4oKVswXS5nZXRTcGFjZUFmdGVyQnVsbGV0KClcbiAgICAgICAgOiBsaXN0LmdldFNwYWNlQWZ0ZXJCdWxsZXQoKTtcblxuICAgIGNvbnN0IHByZWZpeCA9IG9sZExpbmVzWzBdLm1hdGNoKC9eXFxbWyB4XVxcXS8pID8gXCJbIF0gXCIgOiBcIlwiO1xuXG4gICAgY29uc3QgbmV3TGlzdCA9IG5ldyBMaXN0KFxuICAgICAgbGlzdC5nZXRSb290KCksXG4gICAgICBpbmRlbnQsXG4gICAgICBidWxsZXQsXG4gICAgICBzcGFjZUFmdGVyQnVsbGV0LFxuICAgICAgcHJlZml4ICsgbmV3TGluZXMuc2hpZnQoKSxcbiAgICAgIGZhbHNlXG4gICAgKTtcblxuICAgIGlmIChuZXdMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICBuZXdMaXN0LnNldE5vdGVzSW5kZW50KGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKSk7XG4gICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbmV3TGluZXMpIHtcbiAgICAgICAgbmV3TGlzdC5hZGRMaW5lKGxpbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvbkNoaWxkTGV2ZWwpIHtcbiAgICAgIGxpc3QuYWRkQmVmb3JlQWxsKG5ld0xpc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWNoaWxkSXNGb2xkZWQgfHwgIWVuZE9mTGluZSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGxpc3QuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgIGxpc3QucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICAgICAgICAgIG5ld0xpc3QuYWRkQWZ0ZXJBbGwoY2hpbGQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpc3QuZ2V0UGFyZW50KCkuYWRkQWZ0ZXIobGlzdCwgbmV3TGlzdCk7XG4gICAgfVxuXG4gICAgbGlzdC5yZXBsYWNlTGluZXMob2xkTGluZXMpO1xuXG4gICAgY29uc3QgbmV3TGlzdFN0YXJ0ID0gbmV3TGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogbmV3TGlzdFN0YXJ0LmxpbmUsXG4gICAgICBjaDogbmV3TGlzdFN0YXJ0LmNoICsgcHJlZml4Lmxlbmd0aCxcbiAgICB9KTtcblxuICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IFByZWMgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IENyZWF0ZU5ld0l0ZW1PcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9DcmVhdGVOZXdJdGVtT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnRlclNob3VsZENyZWF0ZU5ld0l0ZW1GZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBQcmVjLmhpZ2hlc3QoXG4gICAgICAgIGtleW1hcC5vZihbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIkVudGVyXCIsXG4gICAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5iZXR0ZXJFbnRlciAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJ1biA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgY29uc3Qgem9vbVJhbmdlID0gZWRpdG9yLmdldFpvb21SYW5nZSgpO1xuXG4gICAgY29uc3QgcmVzID0gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT5cbiAgICAgICAgbmV3IENyZWF0ZU5ld0l0ZW1PcGVyYXRpb24oXG4gICAgICAgICAgcm9vdCxcbiAgICAgICAgICB0aGlzLm9ic2lkaWFuLmdldERlZmF1bHRJbmRlbnRDaGFycygpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGdldFpvb21SYW5nZTogKCkgPT4gem9vbVJhbmdlLFxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgIGVkaXRvclxuICAgICk7XG5cbiAgICBpZiAocmVzLnNob3VsZFVwZGF0ZSAmJiB6b29tUmFuZ2UpIHtcbiAgICAgIGVkaXRvci56b29tSW4oem9vbVJhbmdlLmZyb20ubGluZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcbn1cbiIsImltcG9ydCB7IE5vdGljZSwgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEZvbGRGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMiwgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJmb2xkXCIsXG4gICAgICBuYW1lOiBcIkZvbGQgdGhlIGxpc3RcIixcbiAgICAgIGVkaXRvckNhbGxiYWNrOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUVkaXRvckNhbGxiYWNrKHRoaXMuZm9sZCksXG4gICAgICBob3RrZXlzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RpZmllcnM6IFtcIk1vZFwiXSxcbiAgICAgICAgICBrZXk6IFwiQXJyb3dVcFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwidW5mb2xkXCIsXG4gICAgICBuYW1lOiBcIlVuZm9sZCB0aGUgbGlzdFwiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2sodGhpcy51bmZvbGQpLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93RG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBzZXRGb2xkKGVkaXRvcjogTXlFZGl0b3IsIHR5cGU6IFwiZm9sZFwiIHwgXCJ1bmZvbGRcIikge1xuICAgIGlmICghdGhpcy5vYnNpZGlhbi5nZXRPYnNpZGlhbkZvbGRTZXR0aW5ncygpLmZvbGRJbmRlbnQpIHtcbiAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgIGBVbmFibGUgdG8gJHt0eXBlfSBiZWNhdXNlIGZvbGRpbmcgaXMgZGlzYWJsZWQuIFBsZWFzZSBlbmFibGUgXCJGb2xkIGluZGVudFwiIGluIE9ic2lkaWFuIHNldHRpbmdzLmAsXG4gICAgICAgIDUwMDBcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XG5cbiAgICBpZiAodHlwZSA9PT0gXCJmb2xkXCIpIHtcbiAgICAgIGVkaXRvci5mb2xkKGN1cnNvci5saW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWRpdG9yLnVuZm9sZChjdXJzb3IubGluZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGZvbGQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldEZvbGQoZWRpdG9yLCBcImZvbGRcIik7XG4gIH07XG5cbiAgcHJpdmF0ZSB1bmZvbGQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldEZvbGQoZWRpdG9yLCBcInVuZm9sZFwiKTtcbiAgfTtcbn1cbiIsIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7XG4gIGZvbGRFZmZlY3QsXG4gIGZvbGRhYmxlLFxuICBmb2xkZWRSYW5nZXMsXG4gIHVuZm9sZEVmZmVjdCxcbn0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3LCBydW5TY29wZUhhbmRsZXJzIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUVkaXRvclJhbmdlIHtcbiAgZnJvbTogTXlFZGl0b3JQb3NpdGlvbjtcbiAgdG86IE15RWRpdG9yUG9zaXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBNeUVkaXRvclNlbGVjdGlvbiB7XG4gIGFuY2hvcjogTXlFZGl0b3JQb3NpdGlvbjtcbiAgaGVhZDogTXlFZGl0b3JQb3NpdGlvbjtcbn1cblxuZnVuY3Rpb24gZm9sZEluc2lkZSh2aWV3OiBFZGl0b3JWaWV3LCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpIHtcbiAgbGV0IGZvdW5kOiB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIGZvbGRlZFJhbmdlcyh2aWV3LnN0YXRlKS5iZXR3ZWVuKGZyb20sIHRvLCAoZnJvbSwgdG8pID0+IHtcbiAgICBpZiAoIWZvdW5kIHx8IGZvdW5kLmZyb20gPiBmcm9tKSBmb3VuZCA9IHsgZnJvbSwgdG8gfTtcbiAgfSk7XG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yIHtcbiAgcHJpdmF0ZSB2aWV3OiBFZGl0b3JWaWV3O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZTogRWRpdG9yKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0aGlzLnZpZXcgPSAodGhpcy5lIGFzIGFueSkuY207XG4gIH1cblxuICBnZXRDdXJzb3IoKTogTXlFZGl0b3JQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZS5nZXRDdXJzb3IoKTtcbiAgfVxuXG4gIGdldExpbmUobjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldExpbmUobik7XG4gIH1cblxuICBsYXN0TGluZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmUubGFzdExpbmUoKTtcbiAgfVxuXG4gIGxpc3RTZWxlY3Rpb25zKCk6IE15RWRpdG9yU2VsZWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmUubGlzdFNlbGVjdGlvbnMoKTtcbiAgfVxuXG4gIGdldFJhbmdlKGZyb206IE15RWRpdG9yUG9zaXRpb24sIHRvOiBNeUVkaXRvclBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldFJhbmdlKGZyb20sIHRvKTtcbiAgfVxuXG4gIHJlcGxhY2VSYW5nZShcbiAgICByZXBsYWNlbWVudDogc3RyaW5nLFxuICAgIGZyb206IE15RWRpdG9yUG9zaXRpb24sXG4gICAgdG86IE15RWRpdG9yUG9zaXRpb25cbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuZS5yZXBsYWNlUmFuZ2UocmVwbGFjZW1lbnQsIGZyb20sIHRvKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbnMoc2VsZWN0aW9uczogTXlFZGl0b3JTZWxlY3Rpb25bXSk6IHZvaWQge1xuICAgIHRoaXMuZS5zZXRTZWxlY3Rpb25zKHNlbGVjdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lLnNldFZhbHVlKHRleHQpO1xuICB9XG5cbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldFZhbHVlKCk7XG4gIH1cblxuICBvZmZzZXRUb1BvcyhvZmZzZXQ6IG51bWJlcik6IE15RWRpdG9yUG9zaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmUub2Zmc2V0VG9Qb3Mob2Zmc2V0KTtcbiAgfVxuXG4gIHBvc1RvT2Zmc2V0KHBvczogTXlFZGl0b3JQb3NpdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZS5wb3NUb09mZnNldChwb3MpO1xuICB9XG5cbiAgZm9sZChuOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IHZpZXcgfSA9IHRoaXM7XG4gICAgY29uc3QgbCA9IHZpZXcubGluZUJsb2NrQXQodmlldy5zdGF0ZS5kb2MubGluZShuICsgMSkuZnJvbSk7XG4gICAgY29uc3QgcmFuZ2UgPSBmb2xkYWJsZSh2aWV3LnN0YXRlLCBsLmZyb20sIGwudG8pO1xuXG4gICAgaWYgKCFyYW5nZSB8fCByYW5nZS5mcm9tID09PSByYW5nZS50bykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpZXcuZGlzcGF0Y2goeyBlZmZlY3RzOiBbZm9sZEVmZmVjdC5vZihyYW5nZSldIH0pO1xuICB9XG5cbiAgdW5mb2xkKG46IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdmlldyB9ID0gdGhpcztcbiAgICBjb25zdCBsID0gdmlldy5saW5lQmxvY2tBdCh2aWV3LnN0YXRlLmRvYy5saW5lKG4gKyAxKS5mcm9tKTtcbiAgICBjb25zdCByYW5nZSA9IGZvbGRJbnNpZGUodmlldywgbC5mcm9tLCBsLnRvKTtcblxuICAgIGlmICghcmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2aWV3LmRpc3BhdGNoKHsgZWZmZWN0czogW3VuZm9sZEVmZmVjdC5vZihyYW5nZSldIH0pO1xuICB9XG5cbiAgZ2V0QWxsRm9sZGVkTGluZXMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IGMgPSBmb2xkZWRSYW5nZXModGhpcy52aWV3LnN0YXRlKS5pdGVyKCk7XG4gICAgY29uc3QgcmVzOiBudW1iZXJbXSA9IFtdO1xuICAgIHdoaWxlIChjLnZhbHVlKSB7XG4gICAgICByZXMucHVzaCh0aGlzLm9mZnNldFRvUG9zKGMuZnJvbSkubGluZSk7XG4gICAgICBjLm5leHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHRyaWdnZXJPbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHJ1blNjb3BlSGFuZGxlcnModGhpcy52aWV3LCBlLCBcImVkaXRvclwiKTtcbiAgfVxuXG4gIGdldFpvb21SYW5nZSgpOiBNeUVkaXRvclJhbmdlIHwgbnVsbCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS5nZXRab29tUmFuZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBhcGkuZ2V0Wm9vbVJhbmdlKHRoaXMuZSk7XG4gIH1cblxuICB6b29tT3V0KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgYXBpID0gKHdpbmRvdyBhcyBhbnkpLk9ic2lkaWFuWm9vbVBsdWdpbjtcblxuICAgIGlmICghYXBpIHx8ICFhcGkuem9vbU91dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGFwaS56b29tT3V0KHRoaXMuZSk7XG4gIH1cblxuICB6b29tSW4obGluZTogbnVtYmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS56b29tSW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhcGkuem9vbUluKHRoaXMuZSwgbGluZSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yLCBlZGl0b3JWaWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHtcbiAgRWRpdG9yVmlldyxcbiAgUGx1Z2luVmFsdWUsXG4gIFZpZXdQbHVnaW4sXG4gIFZpZXdVcGRhdGUsXG59IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBMaXN0IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGFyc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5pbnRlcmZhY2UgTGluZURhdGEge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgbGlzdDogTGlzdDtcbn1cblxuY2xhc3MgTGlzdExpbmVzVmlld1BsdWdpblZhbHVlIGltcGxlbWVudHMgUGx1Z2luVmFsdWUge1xuICBwcml2YXRlIHNjaGVkdWxlZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW1tZWRpYXRlPjtcbiAgcHJpdmF0ZSBzY3JvbGxlcjogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgY29udGVudENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgZWRpdG9yOiBNeUVkaXRvcjtcbiAgcHJpdmF0ZSBsYXN0TGluZTogbnVtYmVyO1xuICBwcml2YXRlIGxpbmVzOiBMaW5lRGF0YVtdO1xuICBwcml2YXRlIGxpbmVFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2aWV3OiBFZGl0b3JWaWV3XG4gICkge1xuICAgIHRoaXMudmlldy5zY3JvbGxET00uYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLm9uU2Nyb2xsKTtcbiAgICB0aGlzLnNldHRpbmdzLm9uQ2hhbmdlKFwibGlzdExpbmVzXCIsIHRoaXMuc2NoZWR1bGVSZWNhbGN1bGF0ZSk7XG5cbiAgICB0aGlzLnByZXBhcmVEb20oKTtcbiAgICB0aGlzLndhaXRGb3JFZGl0b3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2FpdEZvckVkaXRvciA9ICgpID0+IHtcbiAgICBjb25zdCBvZSA9IHRoaXMudmlldy5zdGF0ZS5maWVsZChlZGl0b3JWaWV3RmllbGQpLmVkaXRvcjtcbiAgICBpZiAoIW9lKSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMud2FpdEZvckVkaXRvciwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZWRpdG9yID0gbmV3IE15RWRpdG9yKG9lKTtcbiAgICB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIHByZXBhcmVEb20oKSB7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICB0aGlzLmNvbnRlbnRDb250YWluZXIuY2xhc3NMaXN0LmFkZChcbiAgICAgIFwib3V0bGluZXItcGx1Z2luLWxpc3QtbGluZXMtY29udGVudC1jb250YWluZXJcIlxuICAgICk7XG5cbiAgICB0aGlzLnNjcm9sbGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICB0aGlzLnNjcm9sbGVyLmNsYXNzTGlzdC5hZGQoXCJvdXRsaW5lci1wbHVnaW4tbGlzdC1saW5lcy1zY3JvbGxlclwiKTtcblxuICAgIHRoaXMuc2Nyb2xsZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50Q29udGFpbmVyKTtcbiAgICB0aGlzLnZpZXcuZG9tLmFwcGVuZENoaWxkKHRoaXMuc2Nyb2xsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNjcm9sbCA9IChlOiBFdmVudCkgPT4ge1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wIH0gPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnNjcm9sbGVyLnNjcm9sbFRvKHNjcm9sbExlZnQsIHNjcm9sbFRvcCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZVJlY2FsY3VsYXRlID0gKCkgPT4ge1xuICAgIGNsZWFySW1tZWRpYXRlKHRoaXMuc2NoZWR1bGVkKTtcbiAgICB0aGlzLnNjaGVkdWxlZCA9IHNldEltbWVkaWF0ZSh0aGlzLmNhbGN1bGF0ZSk7XG4gIH07XG5cbiAgdXBkYXRlKHVwZGF0ZTogVmlld1VwZGF0ZSkge1xuICAgIGlmIChcbiAgICAgIHVwZGF0ZS5kb2NDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUudmlld3BvcnRDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUuZ2VvbWV0cnlDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUudHJhbnNhY3Rpb25zLnNvbWUoKHRyKSA9PiB0ci5yZWNvbmZpZ3VyZWQpXG4gICAgKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZSA9ICgpID0+IHtcbiAgICB0aGlzLmxpbmVzID0gW107XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNldHRpbmdzLmxpc3RMaW5lcyAmJlxuICAgICAgdGhpcy5vYnNpZGlhbi5pc0RlZmF1bHRUaGVtZUVuYWJsZWQoKSAmJlxuICAgICAgdGhpcy52aWV3LnZpZXdwb3J0TGluZUJsb2Nrcy5sZW5ndGggPiAwICYmXG4gICAgICB0aGlzLnZpZXcudmlzaWJsZVJhbmdlcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBmcm9tTGluZSA9IHRoaXMuZWRpdG9yLm9mZnNldFRvUG9zKHRoaXMudmlldy52aWV3cG9ydC5mcm9tKS5saW5lO1xuICAgICAgY29uc3QgdG9MaW5lID0gdGhpcy5lZGl0b3Iub2Zmc2V0VG9Qb3ModGhpcy52aWV3LnZpZXdwb3J0LnRvKS5saW5lO1xuICAgICAgY29uc3QgbGlzdHMgPSB0aGlzLnBhcnNlci5wYXJzZVJhbmdlKHRoaXMuZWRpdG9yLCBmcm9tTGluZSwgdG9MaW5lKTtcblxuICAgICAgZm9yIChjb25zdCBsaXN0IG9mIGxpc3RzKSB7XG4gICAgICAgIHRoaXMubGFzdExpbmUgPSBsaXN0LmdldFJhbmdlKClbMV0ubGluZTtcblxuICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbGlzdC5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgdGhpcy5yZWN1cnNpdmUoYyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5saW5lcy5zb3J0KChhLCBiKSA9PlxuICAgICAgICBhLnRvcCA9PT0gYi50b3AgPyBhLmxlZnQgLSBiLmxlZnQgOiBhLnRvcCAtIGIudG9wXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRG9tKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXROZXh0U2libGluZyhsaXN0OiBMaXN0KTogTGlzdCB8IG51bGwge1xuICAgIGxldCBsaXN0VG1wID0gbGlzdDtcbiAgICBsZXQgcCA9IGxpc3RUbXAuZ2V0UGFyZW50KCk7XG4gICAgd2hpbGUgKHApIHtcbiAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gcC5nZXROZXh0U2libGluZ09mKGxpc3RUbXApO1xuICAgICAgaWYgKG5leHRTaWJsaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXh0U2libGluZztcbiAgICAgIH1cbiAgICAgIGxpc3RUbXAgPSBwO1xuICAgICAgcCA9IGxpc3RUbXAuZ2V0UGFyZW50KCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSByZWN1cnNpdmUobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbGlzdC5nZXRDaGlsZHJlbigpO1xuXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGlmICghY2hpbGQuaXNFbXB0eSgpKSB7XG4gICAgICAgIHRoaXMucmVjdXJzaXZlKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmcm9tT2Zmc2V0ID0gdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQoe1xuICAgICAgbGluZTogbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lLFxuICAgICAgY2g6IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoLFxuICAgIH0pO1xuICAgIGNvbnN0IG5leHRTaWJsaW5nID0gdGhpcy5nZXROZXh0U2libGluZyhsaXN0KTtcbiAgICBjb25zdCB0aWxsT2Zmc2V0ID0gdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQoe1xuICAgICAgbGluZTogbmV4dFNpYmxpbmdcbiAgICAgICAgPyBuZXh0U2libGluZy5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lIC0gMVxuICAgICAgICA6IHRoaXMubGFzdExpbmUsXG4gICAgICBjaDogMCxcbiAgICB9KTtcblxuICAgIGxldCB2aXNpYmxlRnJvbSA9IHRoaXMudmlldy52aXNpYmxlUmFuZ2VzWzBdLmZyb207XG4gICAgbGV0IHZpc2libGVUbyA9XG4gICAgICB0aGlzLnZpZXcudmlzaWJsZVJhbmdlc1t0aGlzLnZpZXcudmlzaWJsZVJhbmdlcy5sZW5ndGggLSAxXS50bztcbiAgICBjb25zdCB6b29tUmFuZ2UgPSB0aGlzLmVkaXRvci5nZXRab29tUmFuZ2UoKTtcbiAgICBpZiAoem9vbVJhbmdlKSB7XG4gICAgICB2aXNpYmxlRnJvbSA9IE1hdGgubWF4KFxuICAgICAgICB2aXNpYmxlRnJvbSxcbiAgICAgICAgdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQoem9vbVJhbmdlLmZyb20pXG4gICAgICApO1xuICAgICAgdmlzaWJsZVRvID0gTWF0aC5taW4odmlzaWJsZVRvLCB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh6b29tUmFuZ2UudG8pKTtcbiAgICB9XG5cbiAgICBpZiAoZnJvbU9mZnNldCA+IHZpc2libGVUbyB8fCB0aWxsT2Zmc2V0IDwgdmlzaWJsZUZyb20pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b3AgPVxuICAgICAgdmlzaWJsZUZyb20gPiAwICYmIGZyb21PZmZzZXQgPD0gdmlzaWJsZUZyb21cbiAgICAgICAgPyAtMjBcbiAgICAgICAgOiB0aGlzLnZpZXcubGluZUJsb2NrQXQoZnJvbU9mZnNldCkudG9wO1xuICAgIGNvbnN0IGJvdHRvbSA9XG4gICAgICB0aWxsT2Zmc2V0ID4gdmlzaWJsZVRvXG4gICAgICAgID8gdGhpcy52aWV3LmxpbmVCbG9ja0F0KHZpc2libGVUbyAtIDEpLmJvdHRvbVxuICAgICAgICA6IHRoaXMudmlldy5saW5lQmxvY2tBdCh0aWxsT2Zmc2V0KS5ib3R0b207XG4gICAgY29uc3QgaGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xuXG4gICAgaWYgKGhlaWdodCA+IDAgJiYgIWxpc3QuaXNGb2xkZWQoKSkge1xuICAgICAgY29uc3QgbmV4dFNpYmxpbmcgPSBsaXN0LmdldFBhcmVudCgpLmdldE5leHRTaWJsaW5nT2YobGlzdCk7XG4gICAgICBjb25zdCBoYXNOZXh0U2libGluZyA9XG4gICAgICAgICEhbmV4dFNpYmxpbmcgJiZcbiAgICAgICAgdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQobmV4dFNpYmxpbmcuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkpIDw9XG4gICAgICAgICAgdmlzaWJsZVRvO1xuXG4gICAgICB0aGlzLmxpbmVzLnB1c2goe1xuICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgbGVmdDogdGhpcy5nZXRJbmRlbnRTaXplKGxpc3QpLFxuICAgICAgICBoZWlnaHQ6IGBjYWxjKCR7aGVpZ2h0fXB4ICR7aGFzTmV4dFNpYmxpbmcgPyBcIi0gMWVtXCIgOiBcIi0gMS44ZW1cIn0pYCxcbiAgICAgICAgbGlzdCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kZW50U2l6ZShsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgeyB0YWJTaXplIH0gPSB0aGlzLm9ic2lkaWFuLmdldE9ic2lkaWFuVGFic1NldHRpbmdzKCk7XG4gICAgY29uc3QgaW5kZW50ID0gbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKTtcbiAgICBjb25zdCBzcGFjZVNpemUgPSA0LjU7XG5cbiAgICBsZXQgc3BhY2VzID0gMDtcbiAgICBmb3IgKGNvbnN0IGNoYXIgb2YgaW5kZW50KSB7XG4gICAgICBpZiAoY2hhciA9PT0gXCJcXHRcIikge1xuICAgICAgICBzcGFjZXMgKz0gdGFiU2l6ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNwYWNlcyArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzcGFjZXMgKiBzcGFjZVNpemU7XG4gIH1cblxuICBwcml2YXRlIG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmxpbmVzW051bWJlcigoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmRhdGFzZXQuaW5kZXgpXTtcblxuICAgIHN3aXRjaCAodGhpcy5zZXR0aW5ncy5saXN0TGluZUFjdGlvbikge1xuICAgICAgY2FzZSBcInpvb20taW5cIjpcbiAgICAgICAgdGhpcy56b29tSW4obGluZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwidG9nZ2xlLWZvbGRpbmdcIjpcbiAgICAgICAgdGhpcy50b2dnbGVGb2xkaW5nKGxpbmUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSB6b29tSW4obGluZTogTGluZURhdGEpIHtcbiAgICBjb25zdCBlZGl0b3IgPSBuZXcgTXlFZGl0b3IodGhpcy52aWV3LnN0YXRlLmZpZWxkKGVkaXRvclZpZXdGaWVsZCkuZWRpdG9yKTtcblxuICAgIGVkaXRvci56b29tSW4obGluZS5saXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVGb2xkaW5nKGxpbmU6IExpbmVEYXRhKSB7XG4gICAgY29uc3QgeyBsaXN0IH0gPSBsaW5lO1xuXG4gICAgaWYgKGxpc3QuaXNFbXB0eSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5lZWRUb1VuZm9sZCA9IHRydWU7XG4gICAgY29uc3QgbGluZXNUb1RvZ2dsZTogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGMgb2YgbGlzdC5nZXRDaGlsZHJlbigpKSB7XG4gICAgICBpZiAoYy5pc0VtcHR5KCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWMuaXNGb2xkZWQoKSkge1xuICAgICAgICBuZWVkVG9VbmZvbGQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGxpbmVzVG9Ub2dnbGUucHVzaChjLmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUpO1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvciA9IG5ldyBNeUVkaXRvcih0aGlzLnZpZXcuc3RhdGUuZmllbGQoZWRpdG9yVmlld0ZpZWxkKS5lZGl0b3IpO1xuXG4gICAgZm9yIChjb25zdCBsIG9mIGxpbmVzVG9Ub2dnbGUpIHtcbiAgICAgIGlmIChuZWVkVG9VbmZvbGQpIHtcbiAgICAgICAgZWRpdG9yLnVuZm9sZChsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVkaXRvci5mb2xkKGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRG9tKCkge1xuICAgIGNvbnN0IGNtU2Nyb2xsID0gdGhpcy52aWV3LnNjcm9sbERPTTtcbiAgICBjb25zdCBjbUNvbnRlbnQgPSB0aGlzLnZpZXcuY29udGVudERPTTtcbiAgICBjb25zdCBjbUNvbnRlbnRDb250YWluZXIgPSBjbUNvbnRlbnQucGFyZW50RWxlbWVudDtcblxuICAgIHRoaXMuc2Nyb2xsZXIuc3R5bGUudG9wID0gY21TY3JvbGwub2Zmc2V0VG9wICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBjbUNvbnRlbnQuY2xpZW50SGVpZ2h0ICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5tYXJnaW5MZWZ0ID1cbiAgICAgIGNtQ29udGVudENvbnRhaW5lci5vZmZzZXRMZWZ0ICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5tYXJnaW5Ub3AgPVxuICAgICAgKGNtQ29udGVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0VG9wIC0gMjQgKyBcInB4XCI7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmxpbmVFbGVtZW50cy5sZW5ndGggPT09IGkpIHtcbiAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGUuY2xhc3NMaXN0LmFkZChcIm91dGxpbmVyLXBsdWdpbi1saXN0LWxpbmVcIik7XG4gICAgICAgIGUuZGF0YXNldC5pbmRleCA9IFN0cmluZyhpKTtcbiAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25DbGljayk7XG4gICAgICAgIHRoaXMuY29udGVudENvbnRhaW5lci5hcHBlbmRDaGlsZChlKTtcbiAgICAgICAgdGhpcy5saW5lRWxlbWVudHMucHVzaChlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbCA9IHRoaXMubGluZXNbaV07XG4gICAgICBjb25zdCBlID0gdGhpcy5saW5lRWxlbWVudHNbaV07XG4gICAgICBlLnN0eWxlLnRvcCA9IGwudG9wICsgXCJweFwiO1xuICAgICAgZS5zdHlsZS5sZWZ0ID0gbC5sZWZ0ICsgXCJweFwiO1xuICAgICAgZS5zdHlsZS5oZWlnaHQgPSBsLmhlaWdodDtcbiAgICAgIGUuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gdGhpcy5saW5lcy5sZW5ndGg7IGkgPCB0aGlzLmxpbmVFbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IHRoaXMubGluZUVsZW1lbnRzW2ldO1xuICAgICAgZS5zdHlsZS50b3AgPSBcIjBweFwiO1xuICAgICAgZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcbiAgICAgIGUuc3R5bGUuaGVpZ2h0ID0gXCIwcHhcIjtcbiAgICAgIGUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZXR0aW5ncy5yZW1vdmVDYWxsYmFjayhcImxpc3RMaW5lc1wiLCB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUpO1xuICAgIHRoaXMudmlldy5zY3JvbGxET00ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLm9uU2Nyb2xsKTtcbiAgICB0aGlzLnZpZXcuZG9tLnJlbW92ZUNoaWxkKHRoaXMuc2Nyb2xsZXIpO1xuICAgIGNsZWFySW1tZWRpYXRlKHRoaXMuc2NoZWR1bGVkKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGluZXNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFyc2VyOiBQYXJzZXJTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgVmlld1BsdWdpbi5kZWZpbmUoXG4gICAgICAgICh2aWV3KSA9PlxuICAgICAgICAgIG5ldyBMaXN0TGluZXNWaWV3UGx1Z2luVmFsdWUoXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgICAgIHRoaXMucGFyc2VyLFxuICAgICAgICAgICAgdmlld1xuICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cbn1cbiIsImltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuY29uc3QgQkVUVEVSX0xJU1RTX0NMQVNTID0gXCJvdXRsaW5lci1wbHVnaW4tYmV0dGVyLWxpc3RzXCI7XG5jb25zdCBCRVRURVJfQlVMTEVUU19DTEFTUyA9IFwib3V0bGluZXItcGx1Z2luLWJldHRlci1idWxsZXRzXCI7XG5jb25zdCBWRVJUSUNBTF9MSU5FUyA9IFwib3V0bGluZXItcGx1Z2luLXZlcnRpY2FsLWxpbmVzXCI7XG5jb25zdCBLTk9XTl9DTEFTU0VTID0gW1xuICBCRVRURVJfTElTVFNfQ0xBU1MsXG4gIEJFVFRFUl9CVUxMRVRTX0NMQVNTLFxuICBWRVJUSUNBTF9MSU5FUyxcbl07XG5cbmV4cG9ydCBjbGFzcyBMaXN0c1N0eWxlc0ZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgcHJpdmF0ZSBpbnRlcnZhbDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5zeW5jTGlzdHNTdHlsZXMoKTtcbiAgICB0aGlzLmludGVydmFsID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuc3luY0xpc3RzU3R5bGVzKCk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcbiAgICB0aGlzLmFwcGx5TGlzdHNTdHlsZXMoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jTGlzdHNTdHlsZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMub2JzaWRpYW4uaXNEZWZhdWx0VGhlbWVFbmFibGVkKCkpIHtcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLnN0eWxlTGlzdHMpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKEJFVFRFUl9MSVNUU19DTEFTUyk7XG4gICAgICAgIGNsYXNzZXMucHVzaChCRVRURVJfQlVMTEVUU19DTEFTUyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLmxpc3RMaW5lcykge1xuICAgICAgICBjbGFzc2VzLnB1c2goVkVSVElDQUxfTElORVMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYXBwbHlMaXN0c1N0eWxlcyhjbGFzc2VzKTtcbiAgfTtcblxuICBwcml2YXRlIGFwcGx5TGlzdHNTdHlsZXMoY2xhc3Nlczogc3RyaW5nW10pIHtcbiAgICBjb25zdCB0b0tlZXAgPSBjbGFzc2VzLmZpbHRlcigoYykgPT4gS05PV05fQ0xBU1NFUy5jb250YWlucyhjKSk7XG4gICAgY29uc3QgdG9SZW1vdmUgPSBLTk9XTl9DTEFTU0VTLmZpbHRlcigoYykgPT4gIXRvS2VlcC5jb250YWlucyhjKSk7XG5cbiAgICBmb3IgKGNvbnN0IGMgb2YgdG9LZWVwKSB7XG4gICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKGMpKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChjKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGMgb2YgdG9SZW1vdmUpIHtcbiAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhjKSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoYyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgTGlzdExpbmUsIFBvc2l0aW9uLCBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHRoaXMucm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjdXJzb3IgPSB0aGlzLnJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpO1xuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleChcbiAgICAgIChsKSA9PiBjdXJzb3IuY2ggPT09IGwuZnJvbS5jaCAmJiBjdXJzb3IubGluZSA9PT0gbC5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gMCkge1xuICAgICAgdGhpcy5tb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkSXRlbShyb290LCBjdXJzb3IpO1xuICAgIH0gZWxzZSBpZiAobGluZU5vID4gMCkge1xuICAgICAgdGhpcy5tb3ZlQ3Vyc29yVG9QcmV2aW91c05vdGVMaW5lKHJvb3QsIGxpbmVzLCBsaW5lTm8pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbW92ZUN1cnNvclRvUHJldmlvdXNOb3RlTGluZShcbiAgICByb290OiBSb290LFxuICAgIGxpbmVzOiBMaXN0TGluZVtdLFxuICAgIGxpbmVObzogbnVtYmVyXG4gICkge1xuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKGxpbmVzW2xpbmVObyAtIDFdLnRvKTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZEl0ZW0ocm9vdDogUm9vdCwgY3Vyc29yOiBQb3NpdGlvbikge1xuICAgIGNvbnN0IHByZXYgPSByb290LmdldExpc3RVbmRlckxpbmUoY3Vyc29yLmxpbmUgLSAxKTtcblxuICAgIGlmICghcHJldikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHByZXYuaXNGb2xkZWQoKSkge1xuICAgICAgY29uc3QgZm9sZFJvb3QgPSBwcmV2LmdldFRvcEZvbGRSb290KCk7XG4gICAgICBjb25zdCBmaXJzdExpbmVFbmQgPSBmb2xkUm9vdC5nZXRMaW5lc0luZm8oKVswXS50bztcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcihmaXJzdExpbmVFbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IocHJldi5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKSk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL01vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZUZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiQXJyb3dMZWZ0XCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHdpbjogXCJjLUFycm93TGVmdFwiLFxuICAgICAgICAgIGxpbnV4OiBcImMtQXJyb3dMZWZ0XCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvciAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJ1biA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZURvd25PcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IG5leHQgPSBwYXJlbnQuZ2V0TmV4dFNpYmxpbmdPZihsaXN0KTtcblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVCZWZvcmUgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG5cbiAgICBpZiAoIW5leHQgJiYgZ3JhbmRQYXJlbnQpIHtcbiAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyYW5kUGFyZW50LmdldE5leHRTaWJsaW5nT2YocGFyZW50KTtcblxuICAgICAgaWYgKG5ld1BhcmVudCkge1xuICAgICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgICAgIG5ld1BhcmVudC5hZGRCZWZvcmVBbGwobGlzdCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgcGFyZW50LmFkZEFmdGVyKG5leHQsIGxpc3QpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy51cGRhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdFN0YXJ0TGluZUFmdGVyID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuICAgIGNvbnN0IGxpbmVEaWZmID0gbGlzdFN0YXJ0TGluZUFmdGVyIC0gbGlzdFN0YXJ0TGluZUJlZm9yZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgbGluZURpZmYsXG4gICAgICBjaDogY3Vyc29yLmNoLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyB9IGZyb20gXCIuLi9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHNcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVSaWdodE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCwgcHJpdmF0ZSBkZWZhdWx0SW5kZW50Q2hhcnM6IHN0cmluZykge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZ2V0UGFyZW50KCk7XG4gICAgY29uc3QgcHJldiA9IHBhcmVudC5nZXRQcmV2U2libGluZ09mKGxpc3QpO1xuXG4gICAgaWYgKCFwcmV2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVCZWZvcmUgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG5cbiAgICBjb25zdCBpbmRlbnRQb3MgPSBsaXN0LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aDtcbiAgICBsZXQgaW5kZW50Q2hhcnMgPSBcIlwiO1xuXG4gICAgaWYgKGluZGVudENoYXJzID09PSBcIlwiICYmICFwcmV2LmlzRW1wdHkoKSkge1xuICAgICAgaW5kZW50Q2hhcnMgPSBwcmV2XG4gICAgICAgIC5nZXRDaGlsZHJlbigpWzBdXG4gICAgICAgIC5nZXRGaXJzdExpbmVJbmRlbnQoKVxuICAgICAgICAuc2xpY2UocHJldi5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIikge1xuICAgICAgaW5kZW50Q2hhcnMgPSBsaXN0XG4gICAgICAgIC5nZXRGaXJzdExpbmVJbmRlbnQoKVxuICAgICAgICAuc2xpY2UocGFyZW50LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKGluZGVudENoYXJzID09PSBcIlwiICYmICFsaXN0LmlzRW1wdHkoKSkge1xuICAgICAgaW5kZW50Q2hhcnMgPSBsaXN0LmdldENoaWxkcmVuKClbMF0uZ2V0Rmlyc3RMaW5lSW5kZW50KCk7XG4gICAgfVxuXG4gICAgaWYgKGluZGVudENoYXJzID09PSBcIlwiKSB7XG4gICAgICBpbmRlbnRDaGFycyA9IHRoaXMuZGVmYXVsdEluZGVudENoYXJzO1xuICAgIH1cblxuICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICBwcmV2LmFkZEFmdGVyQWxsKGxpc3QpO1xuICAgIGxpc3QuaW5kZW50Q29udGVudChpbmRlbnRQb3MsIGluZGVudENoYXJzKTtcblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVBZnRlciA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcbiAgICBjb25zdCBsaW5lRGlmZiA9IGxpc3RTdGFydExpbmVBZnRlciAtIGxpc3RTdGFydExpbmVCZWZvcmU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBjdXJzb3IubGluZSArIGxpbmVEaWZmLFxuICAgICAgY2g6IGN1cnNvci5jaCArIGluZGVudENoYXJzLmxlbmd0aCxcbiAgICB9KTtcblxuICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlVXBPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IHByZXYgPSBwYXJlbnQuZ2V0UHJldlNpYmxpbmdPZihsaXN0KTtcblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVCZWZvcmUgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG5cbiAgICBpZiAoIXByZXYgJiYgZ3JhbmRQYXJlbnQpIHtcbiAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyYW5kUGFyZW50LmdldFByZXZTaWJsaW5nT2YocGFyZW50KTtcblxuICAgICAgaWYgKG5ld1BhcmVudCkge1xuICAgICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgICAgIG5ld1BhcmVudC5hZGRBZnRlckFsbChsaXN0KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByZXYpIHtcbiAgICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG4gICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgICBwYXJlbnQuYWRkQmVmb3JlKHByZXYsIGxpc3QpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy51cGRhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdFN0YXJ0TGluZUFmdGVyID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuICAgIGNvbnN0IGxpbmVEaWZmID0gbGlzdFN0YXJ0TGluZUFmdGVyIC0gbGlzdFN0YXJ0TGluZUJlZm9yZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgbGluZURpZmYsXG4gICAgICBjaDogY3Vyc29yLmNoLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgUHJlYyB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZURvd25PcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9Nb3ZlRG93bk9wZXJhdGlvblwiO1xuaW1wb3J0IHsgTW92ZUxlZnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9Nb3ZlTGVmdE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgTW92ZVJpZ2h0T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZVJpZ2h0T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBNb3ZlVXBPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9Nb3ZlVXBPcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVJdGVtc0ZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcIm1vdmUtbGlzdC1pdGVtLXVwXCIsXG4gICAgICBuYW1lOiBcIk1vdmUgbGlzdCBhbmQgc3VibGlzdHMgdXBcIixcbiAgICAgIGVkaXRvckNhbGxiYWNrOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUVkaXRvckNhbGxiYWNrKFxuICAgICAgICB0aGlzLm1vdmVMaXN0RWxlbWVudFVwQ29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vZGlmaWVyczogW1wiTW9kXCIsIFwiU2hpZnRcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93VXBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcIm1vdmUtbGlzdC1pdGVtLWRvd25cIixcbiAgICAgIG5hbWU6IFwiTW92ZSBsaXN0IGFuZCBzdWJsaXN0cyBkb3duXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnREb3duQ29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vZGlmaWVyczogW1wiTW9kXCIsIFwiU2hpZnRcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93RG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwiaW5kZW50LWxpc3RcIixcbiAgICAgIG5hbWU6IFwiSW5kZW50IHRoZSBsaXN0IGFuZCBzdWJsaXN0c1wiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2soXG4gICAgICAgIHRoaXMubW92ZUxpc3RFbGVtZW50UmlnaHRDb21tYW5kXG4gICAgICApLFxuICAgICAgaG90a2V5czogW10sXG4gICAgfSk7XG5cbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcIm91dGRlbnQtbGlzdFwiLFxuICAgICAgbmFtZTogXCJPdXRkZW50IHRoZSBsaXN0IGFuZCBzdWJsaXN0c1wiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2soXG4gICAgICAgIHRoaXMubW92ZUxpc3RFbGVtZW50TGVmdENvbW1hbmRcbiAgICAgICksXG4gICAgICBob3RrZXlzOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgUHJlYy5oaWdoZXN0KFxuICAgICAgICBrZXltYXAub2YoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJUYWJcIixcbiAgICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgICBydW46IHRoaXMubW92ZUxpc3RFbGVtZW50UmlnaHQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJzLVRhYlwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5tb3ZlTGlzdEVsZW1lbnRMZWZ0LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlclRhYiAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudERvd25Db21tYW5kID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IHNob3VsZFN0b3BQcm9wYWdhdGlvbiB9ID0gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVEb3duT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHJldHVybiBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRVcENvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGNvbnN0IHsgc2hvdWxkU3RvcFByb3BhZ2F0aW9uIH0gPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZVVwT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHJldHVybiBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRSaWdodENvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGlmICh0aGlzLmltZS5pc0lNRU9wZW5lZCgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tb3ZlTGlzdEVsZW1lbnRSaWdodChlZGl0b3IpLnNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudFJpZ2h0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT5cbiAgICAgICAgbmV3IE1vdmVSaWdodE9wZXJhdGlvbihyb290LCB0aGlzLm9ic2lkaWFuLmdldERlZmF1bHRJbmRlbnRDaGFycygpKSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRMZWZ0Q29tbWFuZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgaWYgKHRoaXMuaW1lLmlzSU1FT3BlbmVkKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1vdmVMaXN0RWxlbWVudExlZnQoZWRpdG9yKS5zaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRMZWZ0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVMZWZ0T3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290LCBtYXhQb3MsIG1pblBvcyB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RBbGxPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlU2VsZWN0aW9uKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3Rpb24gPSByb290LmdldFNlbGVjdGlvbnMoKVswXTtcbiAgICBjb25zdCBbcm9vdFN0YXJ0LCByb290RW5kXSA9IHJvb3QuZ2V0UmFuZ2UoKTtcblxuICAgIGNvbnN0IHNlbGVjdGlvbkZyb20gPSBtaW5Qb3Moc2VsZWN0aW9uLmFuY2hvciwgc2VsZWN0aW9uLmhlYWQpO1xuICAgIGNvbnN0IHNlbGVjdGlvblRvID0gbWF4UG9zKHNlbGVjdGlvbi5hbmNob3IsIHNlbGVjdGlvbi5oZWFkKTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA8IHJvb3RTdGFydC5saW5lIHx8XG4gICAgICBzZWxlY3Rpb25Uby5saW5lID4gcm9vdEVuZC5saW5lXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uRnJvbS5saW5lID09PSByb290U3RhcnQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uRnJvbS5jaCA9PT0gcm9vdFN0YXJ0LmNoICYmXG4gICAgICBzZWxlY3Rpb25Uby5saW5lID09PSByb290RW5kLmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvblRvLmNoID09PSByb290RW5kLmNoXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY29udGVudFN0YXJ0ID0gbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTtcbiAgICBjb25zdCBjb250ZW50RW5kID0gbGlzdC5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA8IGNvbnRlbnRTdGFydC5saW5lIHx8XG4gICAgICBzZWxlY3Rpb25Uby5saW5lID4gY29udGVudEVuZC5saW5lXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb25Gcm9tLmxpbmUgPT09IGNvbnRlbnRTdGFydC5saW5lICYmXG4gICAgICBzZWxlY3Rpb25Gcm9tLmNoID09PSBjb250ZW50U3RhcnQuY2ggJiZcbiAgICAgIHNlbGVjdGlvblRvLmxpbmUgPT09IGNvbnRlbnRFbmQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uVG8uY2ggPT09IGNvbnRlbnRFbmQuY2hcbiAgICApIHtcbiAgICAgIC8vIHNlbGVjdCBhbGwgbGlzdFxuICAgICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBhbmNob3I6IHJvb3RTdGFydCwgaGVhZDogcm9vdEVuZCB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNlbGVjdCBhbGwgbGluZVxuICAgICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBhbmNob3I6IGNvbnRlbnRTdGFydCwgaGVhZDogY29udGVudEVuZCB9XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdEFsbE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0QWxsRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJjLWFcIixcbiAgICAgICAgICBtYWM6IFwibS1hXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5zZWxlY3RBbGwgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgU2VsZWN0QWxsT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIFNlbGVjdFRpbGxMaW5lU3RhcnRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpO1xuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleCgobCkgPT4gbC5mcm9tLmxpbmUgPT09IGN1cnNvci5saW5lKTtcblxuICAgIHJvb3QucmVwbGFjZVNlbGVjdGlvbnMoW3sgaGVhZDogbGluZXNbbGluZU5vXS5mcm9tLCBhbmNob3I6IGN1cnNvciB9XSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBTZWxlY3RUaWxsTGluZVN0YXJ0T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwibS1zLUFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBBcHAsIFBsdWdpblNldHRpbmdUYWIsIFBsdWdpbl8yLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IExpc3RMaW5lQWN0aW9uLCBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmNsYXNzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UpIHtcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XG4gIH1cblxuICBkaXNwbGF5KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGFpbmVyRWwgfSA9IHRoaXM7XG5cbiAgICBjb250YWluZXJFbC5lbXB0eSgpO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkltcHJvdmUgdGhlIHN0eWxlIG9mIHlvdXIgbGlzdHNcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIlN0eWxlcyBhcmUgb25seSBjb21wYXRpYmxlIHdpdGggYnVpbHQtaW4gT2JzaWRpYW4gdGhlbWVzIGFuZCBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aCBvdGhlciB0aGVtZXMuIFN0eWxlcyBvbmx5IHdvcmsgd2VsbCB3aXRoIHRhYiBzaXplIDQuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zdHlsZUxpc3RzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnN0eWxlTGlzdHMgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJEcmF3IHZlcnRpY2FsIGluZGVudGF0aW9uIGxpbmVzXCIpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MubGlzdExpbmVzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLmxpc3RMaW5lcyA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIlZlcnRpY2FsIGluZGVudGF0aW9uIGxpbmUgY2xpY2sgYWN0aW9uXCIpXG4gICAgICAuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG4gICAgICAgIGRyb3Bkb3duXG4gICAgICAgICAgLmFkZE9wdGlvbnMoe1xuICAgICAgICAgICAgbm9uZTogXCJOb25lXCIsXG4gICAgICAgICAgICBcInpvb20taW5cIjogXCJab29tIEluXCIsXG4gICAgICAgICAgICBcInRvZ2dsZS1mb2xkaW5nXCI6IFwiVG9nZ2xlIEZvbGRpbmdcIixcbiAgICAgICAgICB9IGFzIHsgW2tleSBpbiBMaXN0TGluZUFjdGlvbl06IHN0cmluZyB9KVxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLmxpc3RMaW5lQWN0aW9uKVxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MubGlzdExpbmVBY3Rpb24gPSB2YWx1ZSBhcyBMaXN0TGluZUFjdGlvbjtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiU3RpY2sgdGhlIGN1cnNvciB0byB0aGUgY29udGVudFwiKVxuICAgICAgLnNldERlc2MoXCJEb24ndCBsZXQgdGhlIGN1cnNvciBtb3ZlIHRvIHRoZSBidWxsZXQgcG9zaXRpb24uXCIpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJFbmhhbmNlIHRoZSBFbnRlciBrZXlcIilcbiAgICAgIC5zZXREZXNjKFwiTWFrZSB0aGUgRW50ZXIga2V5IGJlaGF2ZSB0aGUgc2FtZSBhcyBvdGhlciBvdXRsaW5lcnMuXCIpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJFbmhhbmNlIHRoZSBUYWIga2V5XCIpXG4gICAgICAuc2V0RGVzYyhcIk1ha2UgVGFiIGFuZCBTaGlmdC1UYWIgYmVoYXZlIHRoZSBzYW1lIGFzIG90aGVyIG91dGxpbmVycy5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5iZXR0ZXJUYWIpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuYmV0dGVyVGFiID0gdmFsdWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiRW5oYW5jZSB0aGUgQ3RybCtBIG9yIENtZCtBIGJlaGF2aW9yXCIpXG4gICAgICAuc2V0RGVzYyhcbiAgICAgICAgXCJQcmVzcyB0aGUgaG90a2V5IG9uY2UgdG8gc2VsZWN0IHRoZSBjdXJyZW50IGxpc3QgaXRlbS4gUHJlc3MgdGhlIGhvdGtleSB0d2ljZSB0byBzZWxlY3QgdGhlIGVudGlyZSBsaXN0LlwiXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3Muc2VsZWN0QWxsKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnNlbGVjdEFsbCA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkRlYnVnIG1vZGVcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIk9wZW4gRGV2VG9vbHMgKENvbW1hbmQrT3B0aW9uK0kgb3IgQ29udHJvbCtTaGlmdCtJKSB0byBjb3B5IHRoZSBkZWJ1ZyBsb2dzLlwiXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZGVidWcpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuZGVidWcgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NUYWJGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMiwgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4uYWRkU2V0dGluZ1RhYihcbiAgICAgIG5ldyBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ1RhYihcbiAgICAgICAgdGhpcy5wbHVnaW4uYXBwLFxuICAgICAgICB0aGlzLnBsdWdpbixcbiAgICAgICAgdGhpcy5zZXR0aW5nc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTm90ZUxpbmVPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVVbmRlckN1cnNvciA9IGxpc3RcbiAgICAgIC5nZXRMaW5lc0luZm8oKVxuICAgICAgLmZpbmQoKGwpID0+IGwuZnJvbS5saW5lID09PSBjdXJzb3IubGluZSk7XG5cbiAgICBpZiAoY3Vyc29yLmNoIDwgbGluZVVuZGVyQ3Vyc29yLmZyb20uY2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGlmICghbGlzdC5nZXROb3Rlc0luZGVudCgpKSB7XG4gICAgICBsaXN0LnNldE5vdGVzSW5kZW50KGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkgKyBcIiAgXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKS5yZWR1Y2UoKGFjYywgbGluZSkgPT4ge1xuICAgICAgaWYgKGN1cnNvci5saW5lID09PSBsaW5lLmZyb20ubGluZSkge1xuICAgICAgICBhY2MucHVzaChsaW5lLnRleHQuc2xpY2UoMCwgY3Vyc29yLmNoIC0gbGluZS5mcm9tLmNoKSk7XG4gICAgICAgIGFjYy5wdXNoKGxpbmUudGV4dC5zbGljZShjdXJzb3IuY2ggLSBsaW5lLmZyb20uY2gpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjYy5wdXNoKGxpbmUudGV4dCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgc3RyaW5nW10pO1xuXG4gICAgbGlzdC5yZXBsYWNlTGluZXMobGluZXMpO1xuXG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgMSxcbiAgICAgIGNoOiBsaXN0LmdldE5vdGVzSW5kZW50KCkubGVuZ3RoLFxuICAgIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgQ3JlYXRlTm90ZUxpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9DcmVhdGVOb3RlTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2hpZnRFbnRlclNob3VsZENyZWF0ZU5vdGVGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcInMtRW50ZXJcIixcbiAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlckVudGVyICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcnVuID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IENyZWF0ZU5vdGVMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzRWRpdG9yU2VsZWN0aW9uIHtcbiAgYW5jaG9yOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbjtcbiAgaGVhZDogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzRWRpdG9yIHtcbiAgZ2V0UmFuZ2UoXG4gICAgZnJvbTogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb24sXG4gICAgdG86IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uXG4gICk6IHN0cmluZztcbiAgcmVwbGFjZVJhbmdlKFxuICAgIHJlcGxhY2VtZW50OiBzdHJpbmcsXG4gICAgZnJvbTogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb24sXG4gICAgdG86IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uXG4gICk6IHZvaWQ7XG4gIHNldFNlbGVjdGlvbnMoc2VsZWN0aW9uczogQXBwbHlDaGFuZ2VzRWRpdG9yU2VsZWN0aW9uW10pOiB2b2lkO1xuICBmb2xkKG46IG51bWJlcik6IHZvaWQ7XG4gIHVuZm9sZChuOiBudW1iZXIpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGx5Q2hhbmdlc0xpc3Qge1xuICBpc0ZvbGRSb290KCk6IGJvb2xlYW47XG4gIGdldENoaWxkcmVuKCk6IEFwcGx5Q2hhbmdlc0xpc3RbXTtcbiAgZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCk6IHsgbGluZTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzUm9vdCB7XG4gIGdldFJhbmdlKCk6IFtBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbiwgQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb25dO1xuICBnZXRTZWxlY3Rpb25zKCk6IHtcbiAgICBhbmNob3I6IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uO1xuICAgIGhlYWQ6IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uO1xuICB9W107XG4gIHByaW50KCk6IHN0cmluZztcbiAgZ2V0Q2hpbGRyZW4oKTogQXBwbHlDaGFuZ2VzTGlzdFtdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwbHlDaGFuZ2VzU2VydmljZSB7XG4gIGFwcGx5Q2hhbmdlcyhlZGl0b3I6IEFwcGx5Q2hhbmdlc0VkaXRvciwgcm9vdDogQXBwbHlDaGFuZ2VzUm9vdCkge1xuICAgIGNvbnN0IHJvb3RSYW5nZSA9IHJvb3QuZ2V0UmFuZ2UoKTtcbiAgICBjb25zdCBvbGRTdHJpbmcgPSBlZGl0b3IuZ2V0UmFuZ2Uocm9vdFJhbmdlWzBdLCByb290UmFuZ2VbMV0pO1xuICAgIGNvbnN0IG5ld1N0cmluZyA9IHJvb3QucHJpbnQoKTtcblxuICAgIGNvbnN0IGZyb21MaW5lID0gcm9vdFJhbmdlWzBdLmxpbmU7XG4gICAgY29uc3QgdG9MaW5lID0gcm9vdFJhbmdlWzFdLmxpbmU7XG5cbiAgICBmb3IgKGxldCBsID0gZnJvbUxpbmU7IGwgPD0gdG9MaW5lOyBsKyspIHtcbiAgICAgIGVkaXRvci51bmZvbGQobCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlRnJvbSA9IHsgLi4ucm9vdFJhbmdlWzBdIH07XG4gICAgY29uc3QgY2hhbmdlVG8gPSB7IC4uLnJvb3RSYW5nZVsxXSB9O1xuICAgIGxldCBvbGRUbXAgPSBvbGRTdHJpbmc7XG4gICAgbGV0IG5ld1RtcCA9IG5ld1N0cmluZztcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgbmxJbmRleCA9IG9sZFRtcC5sYXN0SW5kZXhPZihcIlxcblwiKTtcbiAgICAgIGlmIChubEluZGV4IDwgMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9sZExpbmUgPSBvbGRUbXAuc2xpY2UobmxJbmRleCk7XG4gICAgICBjb25zdCBuZXdMaW5lID0gbmV3VG1wLnNsaWNlKC1vbGRMaW5lLmxlbmd0aCk7XG4gICAgICBpZiAob2xkTGluZSAhPT0gbmV3TGluZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9sZFRtcCA9IG9sZFRtcC5zbGljZSgwLCAtb2xkTGluZS5sZW5ndGgpO1xuICAgICAgbmV3VG1wID0gbmV3VG1wLnNsaWNlKDAsIC1vbGRMaW5lLmxlbmd0aCk7XG5cbiAgICAgIGNvbnN0IG5sSW5kZXgyID0gb2xkVG1wLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICAgICAgY2hhbmdlVG8uY2ggPVxuICAgICAgICBubEluZGV4MiA+PSAwID8gb2xkVG1wLmxlbmd0aCAtIG5sSW5kZXgyIC0gMSA6IG9sZFRtcC5sZW5ndGg7XG4gICAgICBjaGFuZ2VUby5saW5lLS07XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgbmxJbmRleCA9IG9sZFRtcC5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKG5sSW5kZXggPCAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkTGluZSA9IG9sZFRtcC5zbGljZSgwLCBubEluZGV4ICsgMSk7XG4gICAgICBjb25zdCBuZXdMaW5lID0gbmV3VG1wLnNsaWNlKDAsIG9sZExpbmUubGVuZ3RoKTtcbiAgICAgIGlmIChvbGRMaW5lICE9PSBuZXdMaW5lKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2hhbmdlRnJvbS5saW5lKys7XG4gICAgICBvbGRUbXAgPSBvbGRUbXAuc2xpY2Uob2xkTGluZS5sZW5ndGgpO1xuICAgICAgbmV3VG1wID0gbmV3VG1wLnNsaWNlKG9sZExpbmUubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAob2xkVG1wICE9PSBuZXdUbXApIHtcbiAgICAgIGVkaXRvci5yZXBsYWNlUmFuZ2UobmV3VG1wLCBjaGFuZ2VGcm9tLCBjaGFuZ2VUbyk7XG4gICAgfVxuXG4gICAgZWRpdG9yLnNldFNlbGVjdGlvbnMocm9vdC5nZXRTZWxlY3Rpb25zKCkpO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlKGxpc3Q6IEFwcGx5Q2hhbmdlc0xpc3QpIHtcbiAgICAgIGZvciAoY29uc3QgYyBvZiBsaXN0LmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgcmVjdXJzaXZlKGMpO1xuICAgICAgfVxuICAgICAgaWYgKGxpc3QuaXNGb2xkUm9vdCgpKSB7XG4gICAgICAgIGVkaXRvci5mb2xkKGxpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkubGluZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgYyBvZiByb290LmdldENoaWxkcmVuKCkpIHtcbiAgICAgIHJlY3Vyc2l2ZShjKTtcbiAgICB9XG4gIH1cbn1cbiIsImV4cG9ydCBjbGFzcyBJTUVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb21wb3NpdGlvbiA9IGZhbHNlO1xuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIiwgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQpO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbnN0YXJ0XCIsIHRoaXMub25Db21wb3NpdGlvblN0YXJ0KTtcbiAgfVxuXG4gIGlzSU1FT3BlbmVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2l0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNvbXBvc2l0aW9uU3RhcnQgPSAoKSA9PiB7XG4gICAgdGhpcy5jb21wb3NpdGlvbiA9IHRydWU7XG4gIH07XG5cbiAgcHJpdmF0ZSBvbkNvbXBvc2l0aW9uRW5kID0gKCkgPT4ge1xuICAgIHRoaXMuY29tcG9zaXRpb24gPSBmYWxzZTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgTG9nZ2VyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSkge31cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBsb2cobWV0aG9kOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmRlYnVnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc29sZS5pbmZvKG1ldGhvZCwgLi4uYXJncyk7XG4gIH1cblxuICBiaW5kKG1ldGhvZDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmxvZyhtZXRob2QsIC4uLmFyZ3MpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBBcHAsIEVkaXRvciwgZWRpdG9yVmlld0ZpZWxkIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IEVkaXRvclN0YXRlIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblRhYnNTZXR0aW5ncyB7XG4gIHVzZVRhYjogYm9vbGVhbjtcbiAgdGFiU2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuRm9sZFNldHRpbmdzIHtcbiAgZm9sZEluZGVudDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE9ic2lkaWFuU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwOiBBcHApIHt9XG5cbiAgaXNMZWdhY3lFZGl0b3JFbmFibGVkKCkge1xuICAgIGNvbnN0IGNvbmZpZzogeyBsZWdhY3lFZGl0b3I6IGJvb2xlYW4gfSA9IHtcbiAgICAgIGxlZ2FjeUVkaXRvcjogdHJ1ZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAuLi4odGhpcy5hcHAudmF1bHQgYXMgYW55KS5jb25maWcsXG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWcubGVnYWN5RWRpdG9yO1xuICB9XG5cbiAgaXNEZWZhdWx0VGhlbWVFbmFibGVkKCkge1xuICAgIGNvbnN0IGNvbmZpZzogeyBjc3NUaGVtZTogc3RyaW5nIH0gPSB7XG4gICAgICBjc3NUaGVtZTogXCJcIixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAuLi4odGhpcy5hcHAudmF1bHQgYXMgYW55KS5jb25maWcsXG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWcuY3NzVGhlbWUgPT09IFwiXCI7XG4gIH1cblxuICBnZXRPYnNpZGlhblRhYnNTZXR0aW5ncygpOiBPYnNpZGlhblRhYnNTZXR0aW5ncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZVRhYjogdHJ1ZSxcbiAgICAgIHRhYlNpemU6IDQsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLi4uKHRoaXMuYXBwLnZhdWx0IGFzIGFueSkuY29uZmlnLFxuICAgIH07XG4gIH1cblxuICBnZXRPYnNpZGlhbkZvbGRTZXR0aW5ncygpOiBPYnNpZGlhbkZvbGRTZXR0aW5ncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvbGRJbmRlbnQ6IGZhbHNlLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIC4uLih0aGlzLmFwcC52YXVsdCBhcyBhbnkpLmNvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdEluZGVudENoYXJzKCkge1xuICAgIGNvbnN0IHsgdXNlVGFiLCB0YWJTaXplIH0gPSB0aGlzLmdldE9ic2lkaWFuVGFic1NldHRpbmdzKCk7XG5cbiAgICByZXR1cm4gdXNlVGFiID8gXCJcXHRcIiA6IG5ldyBBcnJheSh0YWJTaXplKS5maWxsKFwiIFwiKS5qb2luKFwiXCIpO1xuICB9XG5cbiAgZ2V0RWRpdG9yRnJvbVN0YXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSkge1xuICAgIHJldHVybiBuZXcgTXlFZGl0b3Ioc3RhdGUuZmllbGQoZWRpdG9yVmlld0ZpZWxkKS5lZGl0b3IpO1xuICB9XG5cbiAgY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soY29uZmlnOiB7XG4gICAgY2hlY2s/OiAoZWRpdG9yOiBNeUVkaXRvcikgPT4gYm9vbGVhbjtcbiAgICBydW46IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgICBzaG91bGRVcGRhdGU6IGJvb2xlYW47XG4gICAgICBzaG91bGRTdG9wUHJvcGFnYXRpb246IGJvb2xlYW47XG4gICAgfTtcbiAgfSkge1xuICAgIGNvbnN0IGNoZWNrID0gY29uZmlnLmNoZWNrIHx8ICgoKSA9PiB0cnVlKTtcbiAgICBjb25zdCB7IHJ1biB9ID0gY29uZmlnO1xuXG4gICAgcmV0dXJuICh2aWV3OiBFZGl0b3JWaWV3KTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmdldEVkaXRvckZyb21TdGF0ZSh2aWV3LnN0YXRlKTtcblxuICAgICAgaWYgKCFjaGVjayhlZGl0b3IpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzaG91bGRVcGRhdGUsIHNob3VsZFN0b3BQcm9wYWdhdGlvbiB9ID0gcnVuKGVkaXRvcik7XG5cbiAgICAgIHJldHVybiBzaG91bGRVcGRhdGUgfHwgc2hvdWxkU3RvcFByb3BhZ2F0aW9uO1xuICAgIH07XG4gIH1cblxuICBjcmVhdGVFZGl0b3JDYWxsYmFjayhjYjogKGVkaXRvcjogTXlFZGl0b3IpID0+IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgICBjb25zdCBteUVkaXRvciA9IG5ldyBNeUVkaXRvcihlZGl0b3IpO1xuICAgICAgY29uc3Qgc2hvdWxkU3RvcFByb3BhZ2F0aW9uID0gY2IobXlFZGl0b3IpO1xuXG4gICAgICBpZiAoXG4gICAgICAgICFzaG91bGRTdG9wUHJvcGFnYXRpb24gJiZcbiAgICAgICAgd2luZG93LmV2ZW50ICYmXG4gICAgICAgIHdpbmRvdy5ldmVudC50eXBlID09PSBcImtleWRvd25cIlxuICAgICAgKSB7XG4gICAgICAgIG15RWRpdG9yLnRyaWdnZXJPbktleURvd24od2luZG93LmV2ZW50IGFzIEtleWJvYXJkRXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiIsImltcG9ydCB7IExpc3QsIFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlXCI7XG5cbmNvbnN0IGJ1bGxldFNpZ24gPSBgKD86Wy0qK118XFxcXGQrXFxcXC4pYDtcblxuY29uc3QgbGlzdEl0ZW1XaXRob3V0U3BhY2VzUmUgPSBuZXcgUmVnRXhwKGBeJHtidWxsZXRTaWdufSggfFxcdClgKTtcbmNvbnN0IGxpc3RJdGVtUmUgPSBuZXcgUmVnRXhwKGBeWyBcXHRdKiR7YnVsbGV0U2lnbn0oIHxcXHQpYCk7XG5jb25zdCBzdHJpbmdXaXRoU3BhY2VzUmUgPSBuZXcgUmVnRXhwKGBeWyBcXHRdK2ApO1xuY29uc3QgcGFyc2VMaXN0SXRlbVJlID0gbmV3IFJlZ0V4cChgXihbIFxcdF0qKSgke2J1bGxldFNpZ259KSggfFxcdCkoLiopJGApO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRlclBvc2l0aW9uIHtcbiAgbGluZTogbnVtYmVyO1xuICBjaDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRlclNlbGVjdGlvbiB7XG4gIGFuY2hvcjogUmVhZGVyUG9zaXRpb247XG4gIGhlYWQ6IFJlYWRlclBvc2l0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRlciB7XG4gIGdldEN1cnNvcigpOiBSZWFkZXJQb3NpdGlvbjtcbiAgZ2V0TGluZShuOiBudW1iZXIpOiBzdHJpbmc7XG4gIGxhc3RMaW5lKCk6IG51bWJlcjtcbiAgbGlzdFNlbGVjdGlvbnMoKTogUmVhZGVyU2VsZWN0aW9uW107XG4gIGdldEFsbEZvbGRlZExpbmVzKCk6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgUGFyc2VMaXN0TGlzdCB7XG4gIGdldEZpcnN0TGluZUluZGVudCgpOiBzdHJpbmc7XG4gIHNldE5vdGVzSW5kZW50KG5vdGVzSW5kZW50OiBzdHJpbmcpOiB2b2lkO1xuICBnZXROb3Rlc0luZGVudCgpOiBzdHJpbmcgfCBudWxsO1xuICBhZGRMaW5lKHRleHQ6IHN0cmluZyk6IHZvaWQ7XG4gIGdldFBhcmVudCgpOiBQYXJzZUxpc3RMaXN0IHwgbnVsbDtcbiAgYWRkQWZ0ZXJBbGwobGlzdDogUGFyc2VMaXN0TGlzdCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcGFyc2VSYW5nZShlZGl0b3I6IFJlYWRlciwgZnJvbUxpbmUgPSAwLCB0b0xpbmUgPSBlZGl0b3IubGFzdExpbmUoKSk6IFJvb3RbXSB7XG4gICAgY29uc3QgbGlzdHM6IFJvb3RbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IGZyb21MaW5lOyBpIDw9IHRvTGluZTsgaSsrKSB7XG4gICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUoaSk7XG5cbiAgICAgIGlmIChpID09PSBmcm9tTGluZSB8fCB0aGlzLmlzTGlzdEl0ZW0obGluZSkpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMucGFyc2VXaXRoTGltaXRzKGVkaXRvciwgaSwgZnJvbUxpbmUsIHRvTGluZSk7XG5cbiAgICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgICBsaXN0cy5wdXNoKGxpc3QpO1xuICAgICAgICAgIGkgPSBsaXN0LmdldFJhbmdlKClbMV0ubGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsaXN0cztcbiAgfVxuXG4gIHBhcnNlKGVkaXRvcjogUmVhZGVyLCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKCkpOiBSb290IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VXaXRoTGltaXRzKGVkaXRvciwgY3Vyc29yLmxpbmUsIDAsIGVkaXRvci5sYXN0TGluZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VXaXRoTGltaXRzKFxuICAgIGVkaXRvcjogUmVhZGVyLFxuICAgIHBhcnNpbmdTdGFydExpbmU6IG51bWJlcixcbiAgICBsaW1pdEZyb206IG51bWJlcixcbiAgICBsaW1pdFRvOiBudW1iZXJcbiAgKTogUm9vdCB8IG51bGwge1xuICAgIGNvbnN0IGQgPSB0aGlzLmxvZ2dlci5iaW5kKFwicGFyc2VMaXN0XCIpO1xuICAgIGNvbnN0IGVycm9yID0gKG1zZzogc3RyaW5nKTogbnVsbCA9PiB7XG4gICAgICBkKG1zZyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKHBhcnNpbmdTdGFydExpbmUpO1xuXG4gICAgbGV0IGxpc3RMb29raW5nUG9zOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGlmICh0aGlzLmlzTGlzdEl0ZW0obGluZSkpIHtcbiAgICAgIGxpc3RMb29raW5nUG9zID0gcGFyc2luZ1N0YXJ0TGluZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgbGV0IGxpc3RMb29raW5nUG9zU2VhcmNoID0gcGFyc2luZ1N0YXJ0TGluZSAtIDE7XG4gICAgICB3aGlsZSAobGlzdExvb2tpbmdQb3NTZWFyY2ggPj0gMCkge1xuICAgICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUobGlzdExvb2tpbmdQb3NTZWFyY2gpO1xuICAgICAgICBpZiAodGhpcy5pc0xpc3RJdGVtKGxpbmUpKSB7XG4gICAgICAgICAgbGlzdExvb2tpbmdQb3MgPSBsaXN0TG9va2luZ1Bvc1NlYXJjaDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgICAgICBsaXN0TG9va2luZ1Bvc1NlYXJjaC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxpc3RMb29raW5nUG9zID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBsaXN0U3RhcnRMaW5lOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgbGlzdFN0YXJ0TGluZUxvb2t1cCA9IGxpc3RMb29raW5nUG9zO1xuICAgIHdoaWxlIChsaXN0U3RhcnRMaW5lTG9va3VwID49IDApIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShsaXN0U3RhcnRMaW5lTG9va3VwKTtcbiAgICAgIGlmICghdGhpcy5pc0xpc3RJdGVtKGxpbmUpICYmICF0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc0xpc3RJdGVtV2l0aG91dFNwYWNlcyhsaW5lKSkge1xuICAgICAgICBsaXN0U3RhcnRMaW5lID0gbGlzdFN0YXJ0TGluZUxvb2t1cDtcbiAgICAgICAgaWYgKGxpc3RTdGFydExpbmVMb29rdXAgPD0gbGltaXRGcm9tKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3RTdGFydExpbmVMb29rdXAtLTtcbiAgICB9XG5cbiAgICBpZiAobGlzdFN0YXJ0TGluZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGxpc3RFbmRMaW5lID0gbGlzdExvb2tpbmdQb3M7XG4gICAgbGV0IGxpc3RFbmRMaW5lTG9va3VwID0gbGlzdExvb2tpbmdQb3M7XG4gICAgd2hpbGUgKGxpc3RFbmRMaW5lTG9va3VwIDw9IGVkaXRvci5sYXN0TGluZSgpKSB7XG4gICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUobGlzdEVuZExpbmVMb29rdXApO1xuICAgICAgaWYgKCF0aGlzLmlzTGlzdEl0ZW0obGluZSkgJiYgIXRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc0VtcHR5TGluZShsaW5lKSkge1xuICAgICAgICBsaXN0RW5kTGluZSA9IGxpc3RFbmRMaW5lTG9va3VwO1xuICAgICAgfVxuICAgICAgaWYgKGxpc3RFbmRMaW5lTG9va3VwID49IGxpbWl0VG8pIHtcbiAgICAgICAgbGlzdEVuZExpbmUgPSBsaW1pdFRvO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGxpc3RFbmRMaW5lTG9va3VwKys7XG4gICAgfVxuXG4gICAgaWYgKGxpc3RTdGFydExpbmUgPiBwYXJzaW5nU3RhcnRMaW5lIHx8IGxpc3RFbmRMaW5lIDwgcGFyc2luZ1N0YXJ0TGluZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IG5ldyBSb290KFxuICAgICAgeyBsaW5lOiBsaXN0U3RhcnRMaW5lLCBjaDogMCB9LFxuICAgICAgeyBsaW5lOiBsaXN0RW5kTGluZSwgY2g6IGVkaXRvci5nZXRMaW5lKGxpc3RFbmRMaW5lKS5sZW5ndGggfSxcbiAgICAgIGVkaXRvci5saXN0U2VsZWN0aW9ucygpLm1hcCgocikgPT4gKHtcbiAgICAgICAgYW5jaG9yOiB7IGxpbmU6IHIuYW5jaG9yLmxpbmUsIGNoOiByLmFuY2hvci5jaCB9LFxuICAgICAgICBoZWFkOiB7IGxpbmU6IHIuaGVhZC5saW5lLCBjaDogci5oZWFkLmNoIH0sXG4gICAgICB9KSlcbiAgICApO1xuXG4gICAgbGV0IGN1cnJlbnRQYXJlbnQ6IFBhcnNlTGlzdExpc3QgPSByb290LmdldFJvb3RMaXN0KCk7XG4gICAgbGV0IGN1cnJlbnRMaXN0OiBQYXJzZUxpc3RMaXN0IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGN1cnJlbnRJbmRlbnQgPSBcIlwiO1xuXG4gICAgY29uc3QgZm9sZGVkTGluZXMgPSBlZGl0b3IuZ2V0QWxsRm9sZGVkTGluZXMoKTtcblxuICAgIGZvciAobGV0IGwgPSBsaXN0U3RhcnRMaW5lOyBsIDw9IGxpc3RFbmRMaW5lOyBsKyspIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShsKTtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBwYXJzZUxpc3RJdGVtUmUuZXhlYyhsaW5lKTtcblxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgY29uc3QgWywgaW5kZW50LCBidWxsZXQsIHNwYWNlQWZ0ZXJCdWxsZXQsIGNvbnRlbnRdID0gbWF0Y2hlcztcblxuICAgICAgICBjb25zdCBjb21wYXJlTGVuZ3RoID0gTWF0aC5taW4oY3VycmVudEluZGVudC5sZW5ndGgsIGluZGVudC5sZW5ndGgpO1xuICAgICAgICBjb25zdCBpbmRlbnRTbGljZSA9IGluZGVudC5zbGljZSgwLCBjb21wYXJlTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGVudFNsaWNlID0gY3VycmVudEluZGVudC5zbGljZSgwLCBjb21wYXJlTGVuZ3RoKTtcblxuICAgICAgICBpZiAoaW5kZW50U2xpY2UgIT09IGN1cnJlbnRJbmRlbnRTbGljZSkge1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gY3VycmVudEluZGVudFNsaWNlXG4gICAgICAgICAgICAucmVwbGFjZSgvIC9nLCBcIlNcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHQvZywgXCJUXCIpO1xuICAgICAgICAgIGNvbnN0IGdvdCA9IGluZGVudFNsaWNlLnJlcGxhY2UoLyAvZywgXCJTXCIpLnJlcGxhY2UoL1xcdC9nLCBcIlRcIik7XG5cbiAgICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIGluZGVudCBcIiR7ZXhwZWN0ZWR9XCIsIGdvdCBcIiR7Z290fVwiYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZW50Lmxlbmd0aCA+IGN1cnJlbnRJbmRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRMaXN0O1xuICAgICAgICAgIGN1cnJlbnRJbmRlbnQgPSBpbmRlbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZW50Lmxlbmd0aCA8IGN1cnJlbnRJbmRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgY3VycmVudFBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGggPj0gaW5kZW50Lmxlbmd0aCAmJlxuICAgICAgICAgICAgY3VycmVudFBhcmVudC5nZXRQYXJlbnQoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQuZ2V0UGFyZW50KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnRJbmRlbnQgPSBpbmRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb2xkUm9vdCA9IGZvbGRlZExpbmVzLmluY2x1ZGVzKGwpO1xuXG4gICAgICAgIGN1cnJlbnRMaXN0ID0gbmV3IExpc3QoXG4gICAgICAgICAgcm9vdCxcbiAgICAgICAgICBpbmRlbnQsXG4gICAgICAgICAgYnVsbGV0LFxuICAgICAgICAgIHNwYWNlQWZ0ZXJCdWxsZXQsXG4gICAgICAgICAgY29udGVudCxcbiAgICAgICAgICBmb2xkUm9vdFxuICAgICAgICApO1xuICAgICAgICBjdXJyZW50UGFyZW50LmFkZEFmdGVyQWxsKGN1cnJlbnRMaXN0KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0xpbmVXaXRoSW5kZW50KGxpbmUpKSB7XG4gICAgICAgIGlmICghY3VycmVudExpc3QpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIGxpc3QgaXRlbSwgZ290IGVtcHR5IGxpbmVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGVudFRvQ2hlY2sgPSBjdXJyZW50TGlzdC5nZXROb3Rlc0luZGVudCgpIHx8IGN1cnJlbnRJbmRlbnQ7XG5cbiAgICAgICAgaWYgKGxpbmUuaW5kZXhPZihpbmRlbnRUb0NoZWNrKSAhPT0gMCkge1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gaW5kZW50VG9DaGVjay5yZXBsYWNlKC8gL2csIFwiU1wiKS5yZXBsYWNlKC9cXHQvZywgXCJUXCIpO1xuICAgICAgICAgIGNvbnN0IGdvdCA9IGxpbmVcbiAgICAgICAgICAgIC5tYXRjaCgvXlsgXFx0XSovKVswXVxuICAgICAgICAgICAgLnJlcGxhY2UoLyAvZywgXCJTXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFx0L2csIFwiVFwiKTtcblxuICAgICAgICAgIHJldHVybiBlcnJvcihcbiAgICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgaW5kZW50IFwiJHtleHBlY3RlZH1cIiwgZ290IFwiJHtnb3R9XCJgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY3VycmVudExpc3QuZ2V0Tm90ZXNJbmRlbnQoKSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaW5lLm1hdGNoKC9eWyBcXHRdKy8pO1xuXG4gICAgICAgICAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXNbMF0ubGVuZ3RoIDw9IGN1cnJlbnRJbmRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoL15cXHMrJC8udGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIHNvbWUgaW5kZW50LCBnb3Qgbm8gaW5kZW50YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjdXJyZW50TGlzdC5zZXROb3Rlc0luZGVudChtYXRjaGVzWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRMaXN0LmFkZExpbmUobGluZS5zbGljZShjdXJyZW50TGlzdC5nZXROb3Rlc0luZGVudCgpLmxlbmd0aCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgbGlzdCBpdGVtIG9yIG5vdGUsIGdvdCBcIiR7bGluZX1cImBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eUxpbmUobGluZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpbmUubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xpbmVXaXRoSW5kZW50KGxpbmU6IHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmdXaXRoU3BhY2VzUmUudGVzdChsaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMaXN0SXRlbShsaW5lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGlzdEl0ZW1SZS50ZXN0KGxpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xpc3RJdGVtV2l0aG91dFNwYWNlcyhsaW5lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGlzdEl0ZW1XaXRob3V0U3BhY2VzUmUudGVzdChsaW5lKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQXBwbHlDaGFuZ2VzU2VydmljZSB9IGZyb20gXCIuL0FwcGx5Q2hhbmdlc1NlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi9QYXJzZXJTZXJ2aWNlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9PcGVyYXRpb25cIjtcbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGFwcGx5Q2hhbmdlczogQXBwbHlDaGFuZ2VzU2VydmljZVxuICApIHt9XG5cbiAgZXZhbE9wZXJhdGlvbihyb290OiBSb290LCBvcDogT3BlcmF0aW9uLCBlZGl0b3I6IE15RWRpdG9yKSB7XG4gICAgb3AucGVyZm9ybSgpO1xuXG4gICAgaWYgKG9wLnNob3VsZFVwZGF0ZSgpKSB7XG4gICAgICB0aGlzLmFwcGx5Q2hhbmdlcy5hcHBseUNoYW5nZXMoZWRpdG9yLCByb290KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2hvdWxkVXBkYXRlOiBvcC5zaG91bGRVcGRhdGUoKSxcbiAgICAgIHNob3VsZFN0b3BQcm9wYWdhdGlvbjogb3Auc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCksXG4gICAgfTtcbiAgfVxuXG4gIHBlcmZvcm1PcGVyYXRpb24oXG4gICAgY2I6IChyb290OiBSb290KSA9PiBPcGVyYXRpb24sXG4gICAgZWRpdG9yOiBNeUVkaXRvcixcbiAgICBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKClcbiAgKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucGFyc2VyLnBhcnNlKGVkaXRvciwgY3Vyc29yKTtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgcmV0dXJuIHsgc2hvdWxkVXBkYXRlOiBmYWxzZSwgc2hvdWxkU3RvcFByb3BhZ2F0aW9uOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIGNvbnN0IG9wID0gY2Iocm9vdCk7XG5cbiAgICByZXR1cm4gdGhpcy5ldmFsT3BlcmF0aW9uKHJvb3QsIG9wLCBlZGl0b3IpO1xuICB9XG59XG4iLCJleHBvcnQgdHlwZSBMaXN0TGluZUFjdGlvbiA9IFwibm9uZVwiIHwgXCJ6b29tLWluXCIgfCBcInRvZ2dsZS1mb2xkaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzIHtcbiAgc3R5bGVMaXN0czogYm9vbGVhbjtcbiAgZGVidWc6IGJvb2xlYW47XG4gIHN0aWNrQ3Vyc29yOiBib29sZWFuO1xuICBiZXR0ZXJFbnRlcjogYm9vbGVhbjtcbiAgYmV0dGVyVGFiOiBib29sZWFuO1xuICBzZWxlY3RBbGw6IGJvb2xlYW47XG4gIGxpc3RMaW5lczogYm9vbGVhbjtcbiAgbGlzdExpbmVBY3Rpb246IExpc3RMaW5lQWN0aW9uO1xufVxuXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTOiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3MgPSB7XG4gIHN0eWxlTGlzdHM6IHRydWUsXG4gIGRlYnVnOiBmYWxzZSxcbiAgc3RpY2tDdXJzb3I6IHRydWUsXG4gIGJldHRlckVudGVyOiB0cnVlLFxuICBiZXR0ZXJUYWI6IHRydWUsXG4gIHNlbGVjdEFsbDogdHJ1ZSxcbiAgbGlzdExpbmVzOiB0cnVlLFxuICBsaXN0TGluZUFjdGlvbjogXCJ0b2dnbGUtZm9sZGluZ1wiLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlIHtcbiAgbG9hZERhdGEoKTogUHJvbWlzZTxPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3M+O1xuICBzYXZlRGF0YShzZXR0aWduczogT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPjtcbn1cblxudHlwZSBLID0ga2V5b2YgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzO1xudHlwZSBDYWxsYmFjazxUIGV4dGVuZHMgSz4gPSAoY2I6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nc1tUXSkgPT4gdm9pZDtcblxuZXhwb3J0IGNsYXNzIFNldHRpbmdzU2VydmljZSBpbXBsZW1lbnRzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncyB7XG4gIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZTtcbiAgcHJpdmF0ZSB2YWx1ZXM6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncztcbiAgcHJpdmF0ZSBoYW5kbGVyczogTWFwPEssIFNldDxDYWxsYmFjazxLPj4+O1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgICB0aGlzLnN0b3JhZ2UgPSBzdG9yYWdlO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBuZXcgTWFwKCk7XG4gIH1cblxuICBnZXQgc3R5bGVMaXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuc3R5bGVMaXN0cztcbiAgfVxuICBzZXQgc3R5bGVMaXN0cyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwic3R5bGVMaXN0c1wiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgZGVidWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmRlYnVnO1xuICB9XG4gIHNldCBkZWJ1Zyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwiZGVidWdcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IHN0aWNrQ3Vyc29yKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5zdGlja0N1cnNvcjtcbiAgfVxuICBzZXQgc3RpY2tDdXJzb3IodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcInN0aWNrQ3Vyc29yXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBiZXR0ZXJFbnRlcigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuYmV0dGVyRW50ZXI7XG4gIH1cbiAgc2V0IGJldHRlckVudGVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJiZXR0ZXJFbnRlclwiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgYmV0dGVyVGFiKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5iZXR0ZXJUYWI7XG4gIH1cbiAgc2V0IGJldHRlclRhYih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwiYmV0dGVyVGFiXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLnNlbGVjdEFsbDtcbiAgfVxuICBzZXQgc2VsZWN0QWxsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJzZWxlY3RBbGxcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGxpc3RMaW5lcygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMubGlzdExpbmVzO1xuICB9XG4gIHNldCBsaXN0TGluZXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcImxpc3RMaW5lc1wiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgbGlzdExpbmVBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmxpc3RMaW5lQWN0aW9uO1xuICB9XG4gIHNldCBsaXN0TGluZUFjdGlvbih2YWx1ZTogTGlzdExpbmVBY3Rpb24pIHtcbiAgICB0aGlzLnNldChcImxpc3RMaW5lQWN0aW9uXCIsIHZhbHVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlPFQgZXh0ZW5kcyBLPihrZXk6IFQsIGNiOiBDYWxsYmFjazxUPikge1xuICAgIGlmICghdGhpcy5oYW5kbGVycy5oYXMoa2V5KSkge1xuICAgICAgdGhpcy5oYW5kbGVycy5zZXQoa2V5LCBuZXcgU2V0KCkpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlcnMuZ2V0KGtleSkuYWRkKGNiKTtcbiAgfVxuXG4gIHJlbW92ZUNhbGxiYWNrPFQgZXh0ZW5kcyBLPihrZXk6IFQsIGNiOiBDYWxsYmFjazxUPik6IHZvaWQge1xuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycy5nZXQoa2V5KTtcblxuICAgIGlmIChoYW5kbGVycykge1xuICAgICAgaGFuZGxlcnMuZGVsZXRlKGNiKTtcbiAgICB9XG4gIH1cblxuICByZXNldCgpIHtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhERUZBVUxUX1NFVFRJTkdTKSkge1xuICAgICAgdGhpcy5zZXQoaywgdik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnZhbHVlcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIERFRkFVTFRfU0VUVElOR1MsXG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2UubG9hZERhdGEoKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zYXZlRGF0YSh0aGlzLnZhbHVlcyk7XG4gIH1cblxuICBzZXQ8VCBleHRlbmRzIEs+KGtleTogVCwgdmFsdWU6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nc1tUXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICBjb25zdCBjYWxsYmFja3MgPSB0aGlzLmhhbmRsZXJzLmdldChrZXkpO1xuXG4gICAgaWYgKCFjYWxsYmFja3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNiIG9mIGNhbGxiYWNrcy52YWx1ZXMoKSkge1xuICAgICAgY2IodmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgTm90aWNlLCBQbHVnaW4gfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9EZWxldGVTaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZVwiO1xuaW1wb3J0IHsgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZVwiO1xuaW1wb3J0IHsgRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9FbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZVwiO1xuaW1wb3J0IHsgRW50ZXJTaG91bGRDcmVhdGVOZXdJdGVtRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL0VudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbU9uQ2hpbGRMZXZlbEZlYXR1cmVcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBGb2xkRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL0ZvbGRGZWF0dXJlXCI7XG5pbXBvcnQgeyBMaW5lc0ZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9MaW5lc0ZlYXR1cmVcIjtcbmltcG9ydCB7IExpc3RzU3R5bGVzRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL0xpc3RzU3R5bGVzRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlXCI7XG5pbXBvcnQgeyBNb3ZlSXRlbXNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvTW92ZUl0ZW1zRmVhdHVyZVwiO1xuaW1wb3J0IHsgU2VsZWN0QWxsRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NlbGVjdEFsbEZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdGlvblNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNldHRpbmdzVGFiRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NldHRpbmdzVGFiRmVhdHVyZVwiO1xuaW1wb3J0IHsgU2hpZnRFbnRlclNob3VsZENyZWF0ZU5vdGVGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvU2hpZnRFbnRlclNob3VsZENyZWF0ZU5vdGVGZWF0dXJlXCI7XG5pbXBvcnQgeyBBcHBseUNoYW5nZXNTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvQXBwbHlDaGFuZ2VzU2VydmljZVwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9QYXJzZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT2JzaWRpYW5PdXRsaW5lclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG4gIHByaXZhdGUgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgcHJvdGVjdGVkIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2U7XG4gIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2U7XG4gIHByaXZhdGUgcGFyc2VyOiBQYXJzZXJTZXJ2aWNlO1xuICBwcml2YXRlIGFwcGx5Q2hhbmdlczogQXBwbHlDaGFuZ2VzU2VydmljZTtcbiAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZTtcbiAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2U7XG5cbiAgYXN5bmMgb25sb2FkKCkge1xuICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIG9ic2lkaWFuLW91dGxpbmVyYCk7XG5cbiAgICB0aGlzLm9ic2lkaWFuID0gbmV3IE9ic2lkaWFuU2VydmljZSh0aGlzLmFwcCk7XG5cbiAgICBpZiAodGhpcy5vYnNpZGlhbi5pc0xlZ2FjeUVkaXRvckVuYWJsZWQoKSkge1xuICAgICAgbmV3IE5vdGljZShcbiAgICAgICAgYE91dGxpbmVyIHBsdWdpbiBkb2VzIG5vdCBzdXBwb3J0IGxlZ2FjeSBlZGl0b3IgbW9kZSBzdGFydGluZyBmcm9tIHZlcnNpb24gMi4wLiBQbGVhc2UgZGlzYWJsZSB0aGUgXCJVc2UgbGVnYWN5IGVkaXRvclwiIG9wdGlvbiBvciBtYW51YWxseSBpbnN0YWxsIHZlcnNpb24gMS4wIG9mIE91dGxpbmVyIHBsdWdpbi5gLFxuICAgICAgICAzMDAwMFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldHRpbmdzID0gbmV3IFNldHRpbmdzU2VydmljZSh0aGlzKTtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzLmxvYWQoKTtcblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlclNlcnZpY2UodGhpcy5zZXR0aW5ncyk7XG5cbiAgICB0aGlzLnBhcnNlciA9IG5ldyBQYXJzZXJTZXJ2aWNlKHRoaXMubG9nZ2VyKTtcbiAgICB0aGlzLmFwcGx5Q2hhbmdlcyA9IG5ldyBBcHBseUNoYW5nZXNTZXJ2aWNlKCk7XG4gICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uID0gbmV3IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlKFxuICAgICAgdGhpcy5wYXJzZXIsXG4gICAgICB0aGlzLmFwcGx5Q2hhbmdlc1xuICAgICk7XG5cbiAgICB0aGlzLmltZSA9IG5ldyBJTUVTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy5pbWUubG9hZCgpO1xuXG4gICAgdGhpcy5mZWF0dXJlcyA9IFtcbiAgICAgIG5ldyBTZXR0aW5nc1RhYkZlYXR1cmUodGhpcywgdGhpcy5zZXR0aW5ncyksXG4gICAgICBuZXcgTGlzdHNTdHlsZXNGZWF0dXJlKHRoaXMuc2V0dGluZ3MsIHRoaXMub2JzaWRpYW4pLFxuICAgICAgbmV3IEVudGVyT3V0ZGVudElmTGluZUlzRW1wdHlGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudEZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZUZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgRm9sZEZlYXR1cmUodGhpcywgdGhpcy5vYnNpZGlhbiksXG4gICAgICBuZXcgU2VsZWN0QWxsRmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBNb3ZlSXRlbXNGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IFNoaWZ0RW50ZXJTaG91bGRDcmVhdGVOb3RlRmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBMaW5lc0ZlYXR1cmUodGhpcywgdGhpcy5zZXR0aW5ncywgdGhpcy5vYnNpZGlhbiwgdGhpcy5wYXJzZXIpLFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgdGhpcy5mZWF0dXJlcykge1xuICAgICAgYXdhaXQgZmVhdHVyZS5sb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb251bmxvYWQoKSB7XG4gICAgY29uc29sZS5sb2coYFVubG9hZGluZyBvYnNpZGlhbi1vdXRsaW5lcmApO1xuXG4gICAgYXdhaXQgdGhpcy5pbWUudW5sb2FkKCk7XG5cbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgdGhpcy5mZWF0dXJlcykge1xuICAgICAgYXdhaXQgZmVhdHVyZS51bmxvYWQoKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJrZXltYXAiLCJFZGl0b3JTdGF0ZSIsIlByZWMiLCJOb3RpY2UiLCJmb2xkZWRSYW5nZXMiLCJmb2xkYWJsZSIsImZvbGRFZmZlY3QiLCJ1bmZvbGRFZmZlY3QiLCJydW5TY29wZUhhbmRsZXJzIiwib2JzaWRpYW4iLCJlZGl0b3JWaWV3RmllbGQiLCJWaWV3UGx1Z2luIiwiUGx1Z2luU2V0dGluZ1RhYiIsIlNldHRpbmciLCJQbHVnaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdURBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMs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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMudHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbi50cyIsInNyYy9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uLnRzIiwic3JjL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL01vdmVMZWZ0T3BlcmF0aW9uLnRzIiwic3JjL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94LnRzIiwic3JjL29wZXJhdGlvbnMvT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmUudHMiLCJzcmMvcm9vdC9pbmRleC50cyIsInNyYy9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJTaG91bGRDcmVhdGVOZXdJdGVtT25DaGlsZExldmVsRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9Gb2xkRmVhdHVyZS50cyIsInNyYy9NeUVkaXRvci50cyIsInNyYy9mZWF0dXJlcy9MaW5lc0ZlYXR1cmUudHMiLCJzcmMvZmVhdHVyZXMvTGlzdHNTdHlsZXNGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZURvd25PcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlUmlnaHRPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlVXBPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUl0ZW1zRmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3RBbGxGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9TZXR0aW5nc1RhYkZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9DcmVhdGVOb3RlTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUudHMiLCJzcmMvc2VydmljZXMvQXBwbHlDaGFuZ2VzU2VydmljZS50cyIsInNyYy9zZXJ2aWNlcy9JTUVTZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL1BhcnNlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlLnRzIiwic3JjL09ic2lkaWFuT3V0bGluZXJQbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XHJcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xyXG4gICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XHJcbiAgICB9XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xyXG4gICAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XHJcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XHJcbiAgICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEluKHN0YXRlLCByZWNlaXZlcikge1xyXG4gICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSBcImZ1bmN0aW9uXCIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3RcIik7XHJcbiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xyXG59XHJcbiIsImltcG9ydCB7IExpc3QsIFJvb3QgfSBmcm9tIFwiLlwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290OiBSb290KSB7XG4gIGZ1bmN0aW9uIHZpc2l0KHBhcmVudDogUm9vdCB8IExpc3QpIHtcbiAgICBsZXQgaW5kZXggPSAxO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgaWYgKC9cXGQrXFwuLy50ZXN0KGNoaWxkLmdldEJ1bGxldCgpKSkge1xuICAgICAgICBjaGlsZC5yZXBsYXRlQnVsbGV0KGAke2luZGV4Kyt9LmApO1xuICAgICAgfVxuXG4gICAgICB2aXNpdChjaGlsZCk7XG4gICAgfVxuICB9XG5cbiAgdmlzaXQocm9vdCk7XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgTGlzdCwgTGlzdExpbmUsIFBvc2l0aW9uLCBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcblxuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleChcbiAgICAgIChsKSA9PiBjdXJzb3IuY2ggPT09IGwuZnJvbS5jaCAmJiBjdXJzb3IubGluZSA9PT0gbC5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gMCkge1xuICAgICAgdGhpcy5tZXJnZVdpdGhQcmV2aW91c0l0ZW0ocm9vdCwgY3Vyc29yLCBsaXN0KTtcbiAgICB9IGVsc2UgaWYgKGxpbmVObyA+IDApIHtcbiAgICAgIHRoaXMubWVyZ2VOb3Rlcyhyb290LCBjdXJzb3IsIGxpc3QsIGxpbmVzLCBsaW5lTm8pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VOb3RlcyhcbiAgICByb290OiBSb290LFxuICAgIGN1cnNvcjogUG9zaXRpb24sXG4gICAgbGlzdDogTGlzdCxcbiAgICBsaW5lczogTGlzdExpbmVbXSxcbiAgICBsaW5lTm86IG51bWJlclxuICApIHtcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByZXZMaW5lTm8gPSBsaW5lTm8gLSAxO1xuXG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lIC0gMSxcbiAgICAgIGNoOiBsaW5lc1twcmV2TGluZU5vXS50ZXh0Lmxlbmd0aCArIGxpbmVzW3ByZXZMaW5lTm9dLmZyb20uY2gsXG4gICAgfSk7XG5cbiAgICBsaW5lc1twcmV2TGluZU5vXS50ZXh0ICs9IGxpbmVzW2xpbmVOb10udGV4dDtcbiAgICBsaW5lcy5zcGxpY2UobGluZU5vLCAxKTtcblxuICAgIGxpc3QucmVwbGFjZUxpbmVzKGxpbmVzLm1hcCgobCkgPT4gbC50ZXh0KSk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlV2l0aFByZXZpb3VzSXRlbShyb290OiBSb290LCBjdXJzb3I6IFBvc2l0aW9uLCBsaXN0OiBMaXN0KSB7XG4gICAgaWYgKHJvb3QuZ2V0Q2hpbGRyZW4oKVswXSA9PT0gbGlzdCAmJiBsaXN0LmdldENoaWxkcmVuKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgcHJldiA9IHJvb3QuZ2V0TGlzdFVuZGVyTGluZShjdXJzb3IubGluZSAtIDEpO1xuXG4gICAgaWYgKCFwcmV2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm90aEFyZUVtcHR5ID0gcHJldi5pc0VtcHR5KCkgJiYgbGlzdC5pc0VtcHR5KCk7XG4gICAgY29uc3QgcHJldklzRW1wdHlBbmRTYW1lTGV2ZWwgPVxuICAgICAgcHJldi5pc0VtcHR5KCkgJiYgIWxpc3QuaXNFbXB0eSgpICYmIHByZXYuZ2V0TGV2ZWwoKSA9PSBsaXN0LmdldExldmVsKCk7XG4gICAgY29uc3QgbGlzdElzRW1wdHlBbmRQcmV2SXNQYXJlbnQgPVxuICAgICAgbGlzdC5pc0VtcHR5KCkgJiYgcHJldi5nZXRMZXZlbCgpID09IGxpc3QuZ2V0TGV2ZWwoKSAtIDE7XG5cbiAgICBpZiAoYm90aEFyZUVtcHR5IHx8IHByZXZJc0VtcHR5QW5kU2FtZUxldmVsIHx8IGxpc3RJc0VtcHR5QW5kUHJldklzUGFyZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgICAgY29uc3QgcHJldkVuZCA9IHByZXYuZ2V0TGFzdExpbmVDb250ZW50RW5kKCk7XG5cbiAgICAgIGlmICghcHJldi5nZXROb3Rlc0luZGVudCgpICYmIGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKSkge1xuICAgICAgICBwcmV2LnNldE5vdGVzSW5kZW50KFxuICAgICAgICAgIHByZXYuZ2V0Rmlyc3RMaW5lSW5kZW50KCkgK1xuICAgICAgICAgICAgbGlzdC5nZXROb3Rlc0luZGVudCgpLnNsaWNlKGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvbGRMaW5lcyA9IHByZXYuZ2V0TGluZXMoKTtcbiAgICAgIGNvbnN0IG5ld0xpbmVzID0gbGlzdC5nZXRMaW5lcygpO1xuICAgICAgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gMV0gKz0gbmV3TGluZXNbMF07XG4gICAgICBjb25zdCByZXN1bHRMaW5lcyA9IG9sZExpbmVzLmNvbmNhdChuZXdMaW5lcy5zbGljZSgxKSk7XG5cbiAgICAgIHByZXYucmVwbGFjZUxpbmVzKHJlc3VsdExpbmVzKTtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcblxuICAgICAgZm9yIChjb25zdCBjIG9mIGxpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICBsaXN0LnJlbW92ZUNoaWxkKGMpO1xuICAgICAgICBwcmV2LmFkZEFmdGVyQWxsKGMpO1xuICAgICAgfVxuXG4gICAgICByb290LnJlcGxhY2VDdXJzb3IocHJldkVuZCk7XG5cbiAgICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIERlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91czogRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge1xuICAgIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMgPVxuICAgICAgbmV3IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbihyb290KTtcbiAgfVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5zaG91bGRTdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5zaG91bGRVcGRhdGUoKTtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG5cbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoXG4gICAgICAobCkgPT4gY3Vyc29yLmNoID09PSBsLnRvLmNoICYmIGN1cnNvci5saW5lID09PSBsLnRvLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gbGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgY29uc3QgbmV4dExpbmUgPSBsaW5lc1tsaW5lTm9dLnRvLmxpbmUgKyAxO1xuICAgICAgY29uc3QgbmV4dExpc3QgPSByb290LmdldExpc3RVbmRlckxpbmUobmV4dExpbmUpO1xuICAgICAgaWYgKCFuZXh0TGlzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IobmV4dExpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkpO1xuICAgICAgdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5wZXJmb3JtKCk7XG4gICAgfSBlbHNlIGlmIChsaW5lTm8gPj0gMCkge1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKGxpbmVzW2xpbmVObyArIDFdLmZyb20pO1xuICAgICAgdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5wZXJmb3JtKCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVUaWxsTGluZVN0YXJ0T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoKGwpID0+IGwuZnJvbS5saW5lID09PSBjdXJzb3IubGluZSk7XG5cbiAgICBsaW5lc1tsaW5lTm9dLnRleHQgPSBsaW5lc1tsaW5lTm9dLnRleHQuc2xpY2UoXG4gICAgICBjdXJzb3IuY2ggLSBsaW5lc1tsaW5lTm9dLmZyb20uY2hcbiAgICApO1xuXG4gICAgbGlzdC5yZXBsYWNlTGluZXMobGluZXMubWFwKChsKSA9PiBsLnRleHQpKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3IobGluZXNbbGluZU5vXS5mcm9tKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IERlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRGVsZXRlQW5kTWVyZ2VXaXRoTmV4dExpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcIkJhY2tzcGFjZVwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiRGVsZXRlXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLmRlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWFjOiBcIm0tQmFja3NwYWNlXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLmRlbGV0ZVRpbGxMaW5lU3RhcnQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmUgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIGRlbGV0ZVRpbGxMaW5lU3RhcnQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZSA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBEZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjb250ZW50U3RhcnQgPSBsaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIGNvbnN0IGxpbmVQcmVmaXggPVxuICAgICAgY29udGVudFN0YXJ0LmxpbmUgPT09IGN1cnNvci5saW5lXG4gICAgICAgID8gY29udGVudFN0YXJ0LmNoXG4gICAgICAgIDogbGlzdC5nZXROb3Rlc0luZGVudCgpLmxlbmd0aDtcblxuICAgIGlmIChjdXJzb3IuY2ggPCBsaW5lUHJlZml4KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgICAgbGluZTogY3Vyc29yLmxpbmUsXG4gICAgICAgIGNoOiBsaW5lUHJlZml4LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGlmICghbGlzdC5pc0ZvbGRlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9sZFJvb3QgPSBsaXN0LmdldFRvcEZvbGRSb290KCk7XG4gICAgY29uc3QgZmlyc3RMaW5lRW5kID0gZm9sZFJvb3QuZ2V0TGluZXNJbmZvKClbMF0udG87XG5cbiAgICBpZiAoY3Vyc29yLmxpbmUgPiBmaXJzdExpbmVFbmQubGluZSkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcihmaXJzdExpbmVFbmQpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9uIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKHRoaXMudHJhbnNhY3Rpb25FeHRlbmRlcilcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIHRyYW5zYWN0aW9uRXh0ZW5kZXIgPSAodHI6IFRyYW5zYWN0aW9uKTogbnVsbCA9PiB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLnN0aWNrQ3Vyc29yIHx8ICF0ci5zZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMub2JzaWRpYW4uZ2V0RWRpdG9yRnJvbVN0YXRlKHRyLnN0YXJ0U3RhdGUpO1xuXG4gICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlQ3Vyc29yQWN0aXZpdHkoZWRpdG9yKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlQ3Vyc29yQWN0aXZpdHkgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBFbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlTGVmdE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZ2V0UGFyZW50KCk7XG4gICAgY29uc3QgZ3JhbmRQYXJlbnQgPSBwYXJlbnQuZ2V0UGFyZW50KCk7XG5cbiAgICBpZiAoIWdyYW5kUGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVCZWZvcmUgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgaW5kZW50Um1Gcm9tID0gcGFyZW50LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aDtcbiAgICBjb25zdCBpbmRlbnRSbVRpbGwgPSBsaXN0LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aDtcblxuICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICBncmFuZFBhcmVudC5hZGRBZnRlcihwYXJlbnQsIGxpc3QpO1xuICAgIGxpc3QudW5pbmRlbnRDb250ZW50KGluZGVudFJtRnJvbSwgaW5kZW50Um1UaWxsKTtcblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVBZnRlciA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcbiAgICBjb25zdCBsaW5lRGlmZiA9IGxpc3RTdGFydExpbmVBZnRlciAtIGxpc3RTdGFydExpbmVCZWZvcmU7XG4gICAgY29uc3QgY2hEaWZmID0gaW5kZW50Um1UaWxsIC0gaW5kZW50Um1Gcm9tO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyBsaW5lRGlmZixcbiAgICAgIGNoOiBjdXJzb3IuY2ggLSBjaERpZmYsXG4gICAgfSk7XG5cbiAgICByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzKHJvb3QpO1xuICB9XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3gobGluZTogc3RyaW5nKSB7XG4gIHJldHVybiBsaW5lID09PSBcIlwiIHx8IGxpbmUgPT09IFwiWyBdIFwiO1xufVxuIiwiaW1wb3J0IHsgTW92ZUxlZnRPcGVyYXRpb24gfSBmcm9tIFwiLi9Nb3ZlTGVmdE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3ggfSBmcm9tIFwiLi4vdXRpbHMvaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3hcIjtcblxuZXhwb3J0IGNsYXNzIE91dGRlbnRJZkxpbmVJc0VtcHR5T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBtb3ZlTGVmdE9wOiBNb3ZlTGVmdE9wZXJhdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHtcbiAgICB0aGlzLm1vdmVMZWZ0T3AgPSBuZXcgTW92ZUxlZnRPcGVyYXRpb24ocm9vdCk7XG4gIH1cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubW92ZUxlZnRPcC5zaG91bGRTdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb3ZlTGVmdE9wLnNob3VsZFVwZGF0ZSgpO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXMoKTtcblxuICAgIGlmIChcbiAgICAgIGxpbmVzLmxlbmd0aCA+IDEgfHxcbiAgICAgICFpc0VtcHR5TGluZU9yRW1wdHlDaGVja2JveChsaW5lc1swXSkgfHxcbiAgICAgIGxpc3QuZ2V0TGV2ZWwoKSA9PT0gMVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubW92ZUxlZnRPcC5wZXJmb3JtKCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IFByZWMgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IE91dGRlbnRJZkxpbmVJc0VtcHR5T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVudGVyT3V0ZGVudElmTGluZUlzRW1wdHlGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBQcmVjLmhpZ2hlc3QoXG4gICAgICAgIGtleW1hcC5vZihbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIkVudGVyXCIsXG4gICAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5iZXR0ZXJFbnRlciAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJ1biA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gY21wUG9zKGE6IFBvc2l0aW9uLCBiOiBQb3NpdGlvbikge1xuICByZXR1cm4gYS5saW5lIC0gYi5saW5lIHx8IGEuY2ggLSBiLmNoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4UG9zKGE6IFBvc2l0aW9uLCBiOiBQb3NpdGlvbikge1xuICByZXR1cm4gY21wUG9zKGEsIGIpIDwgMCA/IGIgOiBhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWluUG9zKGE6IFBvc2l0aW9uLCBiOiBQb3NpdGlvbikge1xuICByZXR1cm4gY21wUG9zKGEsIGIpIDwgMCA/IGEgOiBiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgY2g6IG51bWJlcjtcbiAgbGluZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RMaW5lIHtcbiAgdGV4dDogc3RyaW5nO1xuICBmcm9tOiBQb3NpdGlvbjtcbiAgdG86IFBvc2l0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlIHtcbiAgYW5jaG9yOiBQb3NpdGlvbjtcbiAgaGVhZDogUG9zaXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0IHtcbiAgcHJpdmF0ZSBwYXJlbnQ6IExpc3QgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjaGlsZHJlbjogTGlzdFtdID0gW107XG4gIHByaXZhdGUgbm90ZXNJbmRlbnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm9vdDogUm9vdCxcbiAgICBwcml2YXRlIGluZGVudDogc3RyaW5nLFxuICAgIHByaXZhdGUgYnVsbGV0OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBzcGFjZUFmdGVyQnVsbGV0OiBzdHJpbmcsXG4gICAgZmlyc3RMaW5lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBmb2xkUm9vdDogYm9vbGVhblxuICApIHtcbiAgICB0aGlzLmxpbmVzLnB1c2goZmlyc3RMaW5lKTtcbiAgfVxuXG4gIGdldE5vdGVzSW5kZW50KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm5vdGVzSW5kZW50O1xuICB9XG5cbiAgc2V0Tm90ZXNJbmRlbnQobm90ZXNJbmRlbnQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ICE9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdGVzIGluZGVudCBhbHJlYWR5IHByb3ZpZGVkYCk7XG4gICAgfVxuICAgIHRoaXMubm90ZXNJbmRlbnQgPSBub3Rlc0luZGVudDtcbiAgfVxuXG4gIGFkZExpbmUodGV4dDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubm90ZXNJbmRlbnQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVuYWJsZSB0byBhZGQgbGluZSwgbm90ZXMgaW5kZW50IHNob3VsZCBiZSBwcm92aWRlZCBmaXJzdGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5saW5lcy5wdXNoKHRleHQpO1xuICB9XG5cbiAgcmVwbGFjZUxpbmVzKGxpbmVzOiBzdHJpbmdbXSkge1xuICAgIGlmIChsaW5lcy5sZW5ndGggPiAxICYmIHRoaXMubm90ZXNJbmRlbnQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVuYWJsZSB0byBhZGQgbGluZSwgbm90ZXMgaW5kZW50IHNob3VsZCBiZSBwcm92aWRlZCBmaXJzdGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5saW5lcyA9IGxpbmVzO1xuICB9XG5cbiAgZ2V0TGluZUNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmxpbmVzLmxlbmd0aDtcbiAgfVxuXG4gIGdldFJvb3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdDtcbiAgfVxuXG4gIGdldENoaWxkcmVuKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmNvbmNhdCgpO1xuICB9XG5cbiAgZ2V0TGluZXNJbmZvKCk6IExpc3RMaW5lW10ge1xuICAgIGNvbnN0IHN0YXJ0TGluZSA9IHRoaXMucm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKHRoaXMpWzBdO1xuXG4gICAgcmV0dXJuIHRoaXMubGluZXMubWFwKChyb3csIGkpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBzdGFydExpbmUgKyBpO1xuICAgICAgY29uc3Qgc3RhcnRDaCA9XG4gICAgICAgIGkgPT09IDAgPyB0aGlzLmdldENvbnRlbnRTdGFydENoKCkgOiB0aGlzLm5vdGVzSW5kZW50Lmxlbmd0aDtcbiAgICAgIGNvbnN0IGVuZENoID0gc3RhcnRDaCArIHJvdy5sZW5ndGg7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHQ6IHJvdyxcbiAgICAgICAgZnJvbTogeyBsaW5lLCBjaDogc3RhcnRDaCB9LFxuICAgICAgICB0bzogeyBsaW5lLCBjaDogZW5kQ2ggfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBnZXRMaW5lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubGluZXMuY29uY2F0KCk7XG4gIH1cblxuICBnZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKSB7XG4gICAgY29uc3Qgc3RhcnRMaW5lID0gdGhpcy5yb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YodGhpcylbMF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZTogc3RhcnRMaW5lLFxuICAgICAgY2g6IHRoaXMuZ2V0Q29udGVudFN0YXJ0Q2goKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TGFzdExpbmVDb250ZW50RW5kKCkge1xuICAgIGNvbnN0IGVuZExpbmUgPSB0aGlzLnJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZih0aGlzKVsxXTtcbiAgICBjb25zdCBlbmRDaCA9XG4gICAgICB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMVxuICAgICAgICA/IHRoaXMuZ2V0Q29udGVudFN0YXJ0Q2goKSArIHRoaXMubGluZXNbMF0ubGVuZ3RoXG4gICAgICAgIDogdGhpcy5ub3Rlc0luZGVudC5sZW5ndGggKyB0aGlzLmxpbmVzW3RoaXMubGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IGVuZExpbmUsXG4gICAgICBjaDogZW5kQ2gsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGVudFN0YXJ0Q2goKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZW50Lmxlbmd0aCArIHRoaXMuYnVsbGV0Lmxlbmd0aCArIDE7XG4gIH1cblxuICBpc0ZvbGRlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5mb2xkUm9vdCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQuaXNGb2xkZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc0ZvbGRSb290KCkge1xuICAgIHJldHVybiB0aGlzLmZvbGRSb290O1xuICB9XG5cbiAgZ2V0VG9wRm9sZFJvb3QoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgbGV0IHRtcDogTGlzdCA9IHRoaXM7XG4gICAgbGV0IGZvbGRSb290OiBMaXN0IHwgbnVsbCA9IG51bGw7XG4gICAgd2hpbGUgKHRtcCkge1xuICAgICAgaWYgKHRtcC5pc0ZvbGRSb290KCkpIHtcbiAgICAgICAgZm9sZFJvb3QgPSB0bXA7XG4gICAgICB9XG4gICAgICB0bXAgPSB0bXAucGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gZm9sZFJvb3Q7XG4gIH1cblxuICBnZXRMZXZlbCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5wYXJlbnQpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRMZXZlbCgpICsgMTtcbiAgfVxuXG4gIHVuaW5kZW50Q29udGVudChmcm9tOiBudW1iZXIsIHRpbGw6IG51bWJlcikge1xuICAgIHRoaXMuaW5kZW50ID0gdGhpcy5pbmRlbnQuc2xpY2UoMCwgZnJvbSkgKyB0aGlzLmluZGVudC5zbGljZSh0aWxsKTtcbiAgICBpZiAodGhpcy5ub3Rlc0luZGVudCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5ub3Rlc0luZGVudCA9XG4gICAgICAgIHRoaXMubm90ZXNJbmRlbnQuc2xpY2UoMCwgZnJvbSkgKyB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKHRpbGwpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgY2hpbGQudW5pbmRlbnRDb250ZW50KGZyb20sIHRpbGwpO1xuICAgIH1cbiAgfVxuXG4gIGluZGVudENvbnRlbnQoaW5kZW50UG9zOiBudW1iZXIsIGluZGVudENoYXJzOiBzdHJpbmcpIHtcbiAgICB0aGlzLmluZGVudCA9XG4gICAgICB0aGlzLmluZGVudC5zbGljZSgwLCBpbmRlbnRQb3MpICtcbiAgICAgIGluZGVudENoYXJzICtcbiAgICAgIHRoaXMuaW5kZW50LnNsaWNlKGluZGVudFBvcyk7XG4gICAgaWYgKHRoaXMubm90ZXNJbmRlbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMubm90ZXNJbmRlbnQgPVxuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKDAsIGluZGVudFBvcykgK1xuICAgICAgICBpbmRlbnRDaGFycyArXG4gICAgICAgIHRoaXMubm90ZXNJbmRlbnQuc2xpY2UoaW5kZW50UG9zKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLmluZGVudENvbnRlbnQoaW5kZW50UG9zLCBpbmRlbnRDaGFycyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Rmlyc3RMaW5lSW5kZW50KCkge1xuICAgIHJldHVybiB0aGlzLmluZGVudDtcbiAgfVxuXG4gIGdldEJ1bGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5idWxsZXQ7XG4gIH1cblxuICBnZXRTcGFjZUFmdGVyQnVsbGV0KCkge1xuICAgIHJldHVybiB0aGlzLnNwYWNlQWZ0ZXJCdWxsZXQ7XG4gIH1cblxuICByZXBsYXRlQnVsbGV0KGJ1bGxldDogc3RyaW5nKSB7XG4gICAgdGhpcy5idWxsZXQgPSBidWxsZXQ7XG4gIH1cblxuICBnZXRQYXJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50O1xuICB9XG5cbiAgYWRkQmVmb3JlQWxsKGxpc3Q6IExpc3QpIHtcbiAgICB0aGlzLmNoaWxkcmVuLnVuc2hpZnQobGlzdCk7XG4gICAgbGlzdC5wYXJlbnQgPSB0aGlzO1xuICB9XG5cbiAgYWRkQWZ0ZXJBbGwobGlzdDogTGlzdCkge1xuICAgIHRoaXMuY2hpbGRyZW4ucHVzaChsaXN0KTtcbiAgICBsaXN0LnBhcmVudCA9IHRoaXM7XG4gIH1cblxuICByZW1vdmVDaGlsZChsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihsaXN0KTtcbiAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAxKTtcbiAgICBsaXN0LnBhcmVudCA9IG51bGw7XG4gIH1cblxuICBhZGRCZWZvcmUoYmVmb3JlOiBMaXN0LCBsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihiZWZvcmUpO1xuICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKGksIDAsIGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGFkZEFmdGVyKGJlZm9yZTogTGlzdCwgbGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoYmVmb3JlKTtcbiAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpICsgMSwgMCwgbGlzdCk7XG4gICAgbGlzdC5wYXJlbnQgPSB0aGlzO1xuICB9XG5cbiAgZ2V0UHJldlNpYmxpbmdPZihsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihsaXN0KTtcbiAgICByZXR1cm4gaSA+IDAgPyB0aGlzLmNoaWxkcmVuW2kgLSAxXSA6IG51bGw7XG4gIH1cblxuICBnZXROZXh0U2libGluZ09mKGxpc3Q6IExpc3QpIHtcbiAgICBjb25zdCBpID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKGxpc3QpO1xuICAgIHJldHVybiBpID49IDAgJiYgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoID8gdGhpcy5jaGlsZHJlbltpICsgMV0gOiBudWxsO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcmludCgpIHtcbiAgICBsZXQgcmVzID0gXCJcIjtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5saW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzICs9XG4gICAgICAgIGkgPT09IDBcbiAgICAgICAgICA/IHRoaXMuaW5kZW50ICsgdGhpcy5idWxsZXQgKyB0aGlzLnNwYWNlQWZ0ZXJCdWxsZXRcbiAgICAgICAgICA6IHRoaXMubm90ZXNJbmRlbnQ7XG4gICAgICByZXMgKz0gdGhpcy5saW5lc1tpXTtcbiAgICAgIHJlcyArPSBcIlxcblwiO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgcmVzICs9IGNoaWxkLnByaW50KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm9vdCB7XG4gIHByaXZhdGUgcm9vdExpc3QgPSBuZXcgTGlzdCh0aGlzLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBmYWxzZSk7XG4gIHByaXZhdGUgc2VsZWN0aW9uczogUmFuZ2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RhcnQ6IFBvc2l0aW9uLFxuICAgIHByaXZhdGUgZW5kOiBQb3NpdGlvbixcbiAgICBzZWxlY3Rpb25zOiBSYW5nZVtdXG4gICkge1xuICAgIHRoaXMucmVwbGFjZVNlbGVjdGlvbnMoc2VsZWN0aW9ucyk7XG4gIH1cblxuICBnZXRSb290TGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yb290TGlzdDtcbiAgfVxuXG4gIGdldFJhbmdlKCk6IFtQb3NpdGlvbiwgUG9zaXRpb25dIHtcbiAgICByZXR1cm4gW3sgLi4udGhpcy5zdGFydCB9LCB7IC4uLnRoaXMuZW5kIH1dO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9ucygpOiBSYW5nZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25zLm1hcCgocykgPT4gKHtcbiAgICAgIGFuY2hvcjogeyAuLi5zLmFuY2hvciB9LFxuICAgICAgaGVhZDogeyAuLi5zLmhlYWQgfSxcbiAgICB9KSk7XG4gIH1cblxuICBoYXNTaW5nbGVDdXJzb3IoKSB7XG4gICAgaWYgKCF0aGlzLmhhc1NpbmdsZVNlbGVjdGlvbigpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25zWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHNlbGVjdGlvbi5hbmNob3IubGluZSA9PT0gc2VsZWN0aW9uLmhlYWQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uLmFuY2hvci5jaCA9PT0gc2VsZWN0aW9uLmhlYWQuY2hcbiAgICApO1xuICB9XG5cbiAgaGFzU2luZ2xlU2VsZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbnMubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgZ2V0Q3Vyc29yKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc2VsZWN0aW9uc1t0aGlzLnNlbGVjdGlvbnMubGVuZ3RoIC0gMV0uaGVhZCB9O1xuICB9XG5cbiAgcmVwbGFjZUN1cnNvcihjdXJzb3I6IFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25zID0gW3sgYW5jaG9yOiBjdXJzb3IsIGhlYWQ6IGN1cnNvciB9XTtcbiAgfVxuXG4gIHJlcGxhY2VTZWxlY3Rpb25zKHNlbGVjdGlvbnM6IFJhbmdlW10pIHtcbiAgICBpZiAoc2VsZWN0aW9ucy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjcmVhdGUgUm9vdCB3aXRob3V0IHNlbGVjdGlvbnNgKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgfVxuXG4gIGdldExpc3RVbmRlckN1cnNvcigpOiBMaXN0IHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaXN0VW5kZXJMaW5lKHRoaXMuZ2V0Q3Vyc29yKCkubGluZSk7XG4gIH1cblxuICBnZXRMaXN0VW5kZXJMaW5lKGxpbmU6IG51bWJlcikge1xuICAgIGlmIChsaW5lIDwgdGhpcy5zdGFydC5saW5lIHx8IGxpbmUgPiB0aGlzLmVuZC5saW5lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogTGlzdCA9IG51bGw7XG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLnN0YXJ0LmxpbmU7XG5cbiAgICBjb25zdCB2aXNpdEFyciA9IChsbDogTGlzdFtdKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGwgb2YgbGwpIHtcbiAgICAgICAgY29uc3QgbGlzdEZyb21MaW5lID0gaW5kZXg7XG4gICAgICAgIGNvbnN0IGxpc3RUaWxsTGluZSA9IGxpc3RGcm9tTGluZSArIGwuZ2V0TGluZUNvdW50KCkgLSAxO1xuXG4gICAgICAgIGlmIChsaW5lID49IGxpc3RGcm9tTGluZSAmJiBsaW5lIDw9IGxpc3RUaWxsTGluZSkge1xuICAgICAgICAgIHJlc3VsdCA9IGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW5kZXggPSBsaXN0VGlsbExpbmUgKyAxO1xuICAgICAgICAgIHZpc2l0QXJyKGwuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2aXNpdEFycih0aGlzLnJvb3RMaXN0LmdldENoaWxkcmVuKCkpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdDogTGlzdCk6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsIHtcbiAgICBsZXQgcmVzdWx0OiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxpbmU6IG51bWJlciA9IHRoaXMuc3RhcnQubGluZTtcblxuICAgIGNvbnN0IHZpc2l0QXJyID0gKGxsOiBMaXN0W10pID0+IHtcbiAgICAgIGZvciAoY29uc3QgbCBvZiBsbCkge1xuICAgICAgICBjb25zdCBsaXN0RnJvbUxpbmUgPSBsaW5lO1xuICAgICAgICBjb25zdCBsaXN0VGlsbExpbmUgPSBsaXN0RnJvbUxpbmUgKyBsLmdldExpbmVDb3VudCgpIC0gMTtcblxuICAgICAgICBpZiAobCA9PT0gbGlzdCkge1xuICAgICAgICAgIHJlc3VsdCA9IFtsaXN0RnJvbUxpbmUsIGxpc3RUaWxsTGluZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluZSA9IGxpc3RUaWxsTGluZSArIDE7XG4gICAgICAgICAgdmlzaXRBcnIobC5nZXRDaGlsZHJlbigpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmlzaXRBcnIodGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgbGV0IHJlcyA9IFwiXCI7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMucm9vdExpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgcmVzICs9IGNoaWxkLnByaW50KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5yZXBsYWNlKC9cXG4kLywgXCJcIik7XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBMaXN0LCBQb3NpdGlvbiwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuaW1wb3J0IHsgaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3ggfSBmcm9tIFwiLi4vdXRpbHMvaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3hcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRab29tUmFuZ2Uge1xuICBnZXRab29tUmFuZ2UoKTogeyBmcm9tOiBQb3NpdGlvbjsgdG86IFBvc2l0aW9uIH0gfCBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm9vdDogUm9vdCxcbiAgICBwcml2YXRlIGRlZmF1bHRJbmRlbnRDaGFyczogc3RyaW5nLFxuICAgIHByaXZhdGUgZ2V0Wm9vbVJhbmdlOiBHZXRab29tUmFuZ2VcbiAgKSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpO1xuXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMSAmJiBpc0VtcHR5TGluZU9yRW1wdHlDaGVja2JveChsaW5lc1swXS50ZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGluZVVuZGVyQ3Vyc29yID0gbGluZXMuZmluZCgobCkgPT4gbC5mcm9tLmxpbmUgPT09IGN1cnNvci5saW5lKTtcblxuICAgIGlmIChjdXJzb3IuY2ggPCBsaW5lVW5kZXJDdXJzb3IuZnJvbS5jaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgb2xkTGluZXMsIG5ld0xpbmVzIH0gPSBsaW5lcy5yZWR1Y2UoXG4gICAgICAoYWNjLCBsaW5lKSA9PiB7XG4gICAgICAgIGlmIChjdXJzb3IubGluZSA+IGxpbmUuZnJvbS5saW5lKSB7XG4gICAgICAgICAgYWNjLm9sZExpbmVzLnB1c2gobGluZS50ZXh0KTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJzb3IubGluZSA9PT0gbGluZS5mcm9tLmxpbmUpIHtcbiAgICAgICAgICBjb25zdCBhID0gbGluZS50ZXh0LnNsaWNlKDAsIGN1cnNvci5jaCAtIGxpbmUuZnJvbS5jaCk7XG4gICAgICAgICAgY29uc3QgYiA9IGxpbmUudGV4dC5zbGljZShjdXJzb3IuY2ggLSBsaW5lLmZyb20uY2gpO1xuICAgICAgICAgIGFjYy5vbGRMaW5lcy5wdXNoKGEpO1xuICAgICAgICAgIGFjYy5uZXdMaW5lcy5wdXNoKGIpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnNvci5saW5lIDwgbGluZS5mcm9tLmxpbmUpIHtcbiAgICAgICAgICBhY2MubmV3TGluZXMucHVzaChsaW5lLnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9sZExpbmVzOiBbXSxcbiAgICAgICAgbmV3TGluZXM6IFtdLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBjb2RlQmxvY2tCYWN0aWNrcyA9IG9sZExpbmVzLmpvaW4oXCJcXG5cIikuc3BsaXQoXCJgYGBcIikubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBpc0luc2lkZUNvZGVibG9jayA9XG4gICAgICBjb2RlQmxvY2tCYWN0aWNrcyA+IDAgJiYgY29kZUJsb2NrQmFjdGlja3MgJSAyICE9PSAwO1xuXG4gICAgaWYgKGlzSW5zaWRlQ29kZWJsb2NrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCB6b29tUmFuZ2UgPSB0aGlzLmdldFpvb21SYW5nZS5nZXRab29tUmFuZ2UoKTtcbiAgICBjb25zdCBsaXN0SXNab29taW5nUm9vdCA9IEJvb2xlYW4oXG4gICAgICB6b29tUmFuZ2UgJiZcbiAgICAgICAgbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lID49IHpvb21SYW5nZS5mcm9tLmxpbmUgJiZcbiAgICAgICAgbGlzdC5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKS5saW5lIDw9IHpvb21SYW5nZS5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSAhbGlzdC5pc0VtcHR5KCk7XG4gICAgY29uc3QgY2hpbGRJc0ZvbGRlZCA9IGxpc3QuaXNGb2xkUm9vdCgpO1xuICAgIGNvbnN0IGVuZFBvcyA9IGxpc3QuZ2V0TGFzdExpbmVDb250ZW50RW5kKCk7XG4gICAgY29uc3QgZW5kT2ZMaW5lID0gY3Vyc29yLmxpbmUgPT09IGVuZFBvcy5saW5lICYmIGN1cnNvci5jaCA9PT0gZW5kUG9zLmNoO1xuXG4gICAgY29uc3Qgb25DaGlsZExldmVsID1cbiAgICAgIGxpc3RJc1pvb21pbmdSb290IHx8IChoYXNDaGlsZHJlbiAmJiAhY2hpbGRJc0ZvbGRlZCAmJiBlbmRPZkxpbmUpO1xuXG4gICAgY29uc3QgaW5kZW50ID0gb25DaGlsZExldmVsXG4gICAgICA/IGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEZpcnN0TGluZUluZGVudCgpXG4gICAgICAgIDogbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKSArIHRoaXMuZGVmYXVsdEluZGVudENoYXJzXG4gICAgICA6IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCk7XG5cbiAgICBjb25zdCBidWxsZXQgPVxuICAgICAgb25DaGlsZExldmVsICYmIGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEJ1bGxldCgpXG4gICAgICAgIDogbGlzdC5nZXRCdWxsZXQoKTtcblxuICAgIGNvbnN0IHNwYWNlQWZ0ZXJCdWxsZXQgPVxuICAgICAgb25DaGlsZExldmVsICYmIGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldFNwYWNlQWZ0ZXJCdWxsZXQoKVxuICAgICAgICA6IGxpc3QuZ2V0U3BhY2VBZnRlckJ1bGxldCgpO1xuXG4gICAgY29uc3QgcHJlZml4ID0gb2xkTGluZXNbMF0ubWF0Y2goL15cXFsuXFxdLykgPyBcIlsgXSBcIiA6IFwiXCI7XG5cbiAgICBjb25zdCBuZXdMaXN0ID0gbmV3IExpc3QoXG4gICAgICBsaXN0LmdldFJvb3QoKSxcbiAgICAgIGluZGVudCxcbiAgICAgIGJ1bGxldCxcbiAgICAgIHNwYWNlQWZ0ZXJCdWxsZXQsXG4gICAgICBwcmVmaXggKyBuZXdMaW5lcy5zaGlmdCgpLFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgaWYgKG5ld0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5ld0xpc3Quc2V0Tm90ZXNJbmRlbnQobGlzdC5nZXROb3Rlc0luZGVudCgpKTtcbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBuZXdMaW5lcykge1xuICAgICAgICBuZXdMaXN0LmFkZExpbmUobGluZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9uQ2hpbGRMZXZlbCkge1xuICAgICAgbGlzdC5hZGRCZWZvcmVBbGwobmV3TGlzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghY2hpbGRJc0ZvbGRlZCB8fCAhZW5kT2ZMaW5lKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbGlzdC5nZXRDaGlsZHJlbigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgbGlzdC5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgICAgICAgbmV3TGlzdC5hZGRBZnRlckFsbChjaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5nZXRQYXJlbnQoKS5hZGRBZnRlcihsaXN0LCBuZXdMaXN0KTtcbiAgICB9XG5cbiAgICBsaXN0LnJlcGxhY2VMaW5lcyhvbGRMaW5lcyk7XG5cbiAgICBjb25zdCBuZXdMaXN0U3RhcnQgPSBuZXdMaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBuZXdMaXN0U3RhcnQubGluZSxcbiAgICAgIGNoOiBuZXdMaXN0U3RhcnQuY2ggKyBwcmVmaXgubGVuZ3RoLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgUHJlYyB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIFByZWMuaGlnaGVzdChcbiAgICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiRW50ZXJcIixcbiAgICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlckVudGVyICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcnVuID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBjb25zdCB6b29tUmFuZ2UgPSBlZGl0b3IuZ2V0Wm9vbVJhbmdlKCk7XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PlxuICAgICAgICBuZXcgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbihcbiAgICAgICAgICByb290LFxuICAgICAgICAgIHRoaXMub2JzaWRpYW4uZ2V0RGVmYXVsdEluZGVudENoYXJzKCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgZ2V0Wm9vbVJhbmdlOiAoKSA9PiB6b29tUmFuZ2UsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIGlmIChyZXMuc2hvdWxkVXBkYXRlICYmIHpvb21SYW5nZSkge1xuICAgICAgZWRpdG9yLnpvb21Jbih6b29tUmFuZ2UuZnJvbS5saW5lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgTm90aWNlLCBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgRm9sZEZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcImZvbGRcIixcbiAgICAgIG5hbWU6IFwiRm9sZCB0aGUgbGlzdFwiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2sodGhpcy5mb2xkKSxcbiAgICAgIGhvdGtleXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vZGlmaWVyczogW1wiTW9kXCJdLFxuICAgICAgICAgIGtleTogXCJBcnJvd1VwXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJ1bmZvbGRcIixcbiAgICAgIG5hbWU6IFwiVW5mb2xkIHRoZSBsaXN0XCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayh0aGlzLnVuZm9sZCksXG4gICAgICBob3RrZXlzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RpZmllcnM6IFtcIk1vZFwiXSxcbiAgICAgICAgICBrZXk6IFwiQXJyb3dEb3duXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIHNldEZvbGQoZWRpdG9yOiBNeUVkaXRvciwgdHlwZTogXCJmb2xkXCIgfCBcInVuZm9sZFwiKSB7XG4gICAgaWYgKCF0aGlzLm9ic2lkaWFuLmdldE9ic2lkaWFuRm9sZFNldHRpbmdzKCkuZm9sZEluZGVudCkge1xuICAgICAgbmV3IE5vdGljZShcbiAgICAgICAgYFVuYWJsZSB0byAke3R5cGV9IGJlY2F1c2UgZm9sZGluZyBpcyBkaXNhYmxlZC4gUGxlYXNlIGVuYWJsZSBcIkZvbGQgaW5kZW50XCIgaW4gT2JzaWRpYW4gc2V0dGluZ3MuYCxcbiAgICAgICAgNTAwMFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnNvciA9IGVkaXRvci5nZXRDdXJzb3IoKTtcblxuICAgIGlmICh0eXBlID09PSBcImZvbGRcIikge1xuICAgICAgZWRpdG9yLmZvbGQoY3Vyc29yLmxpbmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlZGl0b3IudW5mb2xkKGN1cnNvci5saW5lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZm9sZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0Rm9sZChlZGl0b3IsIFwiZm9sZFwiKTtcbiAgfTtcblxuICBwcml2YXRlIHVuZm9sZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0Rm9sZChlZGl0b3IsIFwidW5mb2xkXCIpO1xuICB9O1xufVxuIiwiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHtcbiAgZm9sZEVmZmVjdCxcbiAgZm9sZGFibGUsXG4gIGZvbGRlZFJhbmdlcyxcbiAgdW5mb2xkRWZmZWN0LFxufSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcbmltcG9ydCB7IEVkaXRvclZpZXcsIHJ1blNjb3BlSGFuZGxlcnMgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5leHBvcnQgY2xhc3MgTXlFZGl0b3JQb3NpdGlvbiB7XG4gIGxpbmU6IG51bWJlcjtcbiAgY2g6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yUmFuZ2Uge1xuICBmcm9tOiBNeUVkaXRvclBvc2l0aW9uO1xuICB0bzogTXlFZGl0b3JQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yU2VsZWN0aW9uIHtcbiAgYW5jaG9yOiBNeUVkaXRvclBvc2l0aW9uO1xuICBoZWFkOiBNeUVkaXRvclBvc2l0aW9uO1xufVxuXG5mdW5jdGlvbiBmb2xkSW5zaWRlKHZpZXc6IEVkaXRvclZpZXcsIGZyb206IG51bWJlciwgdG86IG51bWJlcikge1xuICBsZXQgZm91bmQ6IHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0gfCBudWxsID0gbnVsbDtcbiAgZm9sZGVkUmFuZ2VzKHZpZXcuc3RhdGUpLmJldHdlZW4oZnJvbSwgdG8sIChmcm9tLCB0bykgPT4ge1xuICAgIGlmICghZm91bmQgfHwgZm91bmQuZnJvbSA+IGZyb20pIGZvdW5kID0geyBmcm9tLCB0byB9O1xuICB9KTtcbiAgcmV0dXJuIGZvdW5kO1xufVxuXG5leHBvcnQgY2xhc3MgTXlFZGl0b3Ige1xuICBwcml2YXRlIHZpZXc6IEVkaXRvclZpZXc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlOiBFZGl0b3IpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHRoaXMudmlldyA9ICh0aGlzLmUgYXMgYW55KS5jbTtcbiAgfVxuXG4gIGdldEN1cnNvcigpOiBNeUVkaXRvclBvc2l0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldEN1cnNvcigpO1xuICB9XG5cbiAgZ2V0TGluZShuOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmUuZ2V0TGluZShuKTtcbiAgfVxuXG4gIGxhc3RMaW5lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZS5sYXN0TGluZSgpO1xuICB9XG5cbiAgbGlzdFNlbGVjdGlvbnMoKTogTXlFZGl0b3JTZWxlY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZS5saXN0U2VsZWN0aW9ucygpO1xuICB9XG5cbiAgZ2V0UmFuZ2UoZnJvbTogTXlFZGl0b3JQb3NpdGlvbiwgdG86IE15RWRpdG9yUG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmUuZ2V0UmFuZ2UoZnJvbSwgdG8pO1xuICB9XG5cbiAgcmVwbGFjZVJhbmdlKFxuICAgIHJlcGxhY2VtZW50OiBzdHJpbmcsXG4gICAgZnJvbTogTXlFZGl0b3JQb3NpdGlvbixcbiAgICB0bzogTXlFZGl0b3JQb3NpdGlvblxuICApOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5lLnJlcGxhY2VSYW5nZShyZXBsYWNlbWVudCwgZnJvbSwgdG8pO1xuICB9XG5cbiAgc2V0U2VsZWN0aW9ucyhzZWxlY3Rpb25zOiBNeUVkaXRvclNlbGVjdGlvbltdKTogdm9pZCB7XG4gICAgdGhpcy5lLnNldFNlbGVjdGlvbnMoc2VsZWN0aW9ucyk7XG4gIH1cblxuICBzZXRWYWx1ZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmUuc2V0VmFsdWUodGV4dCk7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmUuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIG9mZnNldFRvUG9zKG9mZnNldDogbnVtYmVyKTogTXlFZGl0b3JQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZS5vZmZzZXRUb1BvcyhvZmZzZXQpO1xuICB9XG5cbiAgcG9zVG9PZmZzZXQocG9zOiBNeUVkaXRvclBvc2l0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5lLnBvc1RvT2Zmc2V0KHBvcyk7XG4gIH1cblxuICBmb2xkKG46IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdmlldyB9ID0gdGhpcztcbiAgICBjb25zdCBsID0gdmlldy5saW5lQmxvY2tBdCh2aWV3LnN0YXRlLmRvYy5saW5lKG4gKyAxKS5mcm9tKTtcbiAgICBjb25zdCByYW5nZSA9IGZvbGRhYmxlKHZpZXcuc3RhdGUsIGwuZnJvbSwgbC50byk7XG5cbiAgICBpZiAoIXJhbmdlIHx8IHJhbmdlLmZyb20gPT09IHJhbmdlLnRvKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmlldy5kaXNwYXRjaCh7IGVmZmVjdHM6IFtmb2xkRWZmZWN0Lm9mKHJhbmdlKV0gfSk7XG4gIH1cblxuICB1bmZvbGQobjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgeyB2aWV3IH0gPSB0aGlzO1xuICAgIGNvbnN0IGwgPSB2aWV3LmxpbmVCbG9ja0F0KHZpZXcuc3RhdGUuZG9jLmxpbmUobiArIDEpLmZyb20pO1xuICAgIGNvbnN0IHJhbmdlID0gZm9sZEluc2lkZSh2aWV3LCBsLmZyb20sIGwudG8pO1xuXG4gICAgaWYgKCFyYW5nZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpZXcuZGlzcGF0Y2goeyBlZmZlY3RzOiBbdW5mb2xkRWZmZWN0Lm9mKHJhbmdlKV0gfSk7XG4gIH1cblxuICBnZXRBbGxGb2xkZWRMaW5lcygpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgYyA9IGZvbGRlZFJhbmdlcyh0aGlzLnZpZXcuc3RhdGUpLml0ZXIoKTtcbiAgICBjb25zdCByZXM6IG51bWJlcltdID0gW107XG4gICAgd2hpbGUgKGMudmFsdWUpIHtcbiAgICAgIHJlcy5wdXNoKHRoaXMub2Zmc2V0VG9Qb3MoYy5mcm9tKS5saW5lKTtcbiAgICAgIGMubmV4dCgpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgdHJpZ2dlck9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgcnVuU2NvcGVIYW5kbGVycyh0aGlzLnZpZXcsIGUsIFwiZWRpdG9yXCIpO1xuICB9XG5cbiAgZ2V0Wm9vbVJhbmdlKCk6IE15RWRpdG9yUmFuZ2UgfCBudWxsIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGFwaSA9ICh3aW5kb3cgYXMgYW55KS5PYnNpZGlhblpvb21QbHVnaW47XG5cbiAgICBpZiAoIWFwaSB8fCAhYXBpLmdldFpvb21SYW5nZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFwaS5nZXRab29tUmFuZ2UodGhpcy5lKTtcbiAgfVxuXG4gIHpvb21PdXQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS56b29tT3V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXBpLnpvb21PdXQodGhpcy5lKTtcbiAgfVxuXG4gIHpvb21JbihsaW5lOiBudW1iZXIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGFwaSA9ICh3aW5kb3cgYXMgYW55KS5PYnNpZGlhblpvb21QbHVnaW47XG5cbiAgICBpZiAoIWFwaSB8fCAhYXBpLnpvb21Jbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGFwaS56b29tSW4odGhpcy5lLCBsaW5lKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIsIGVkaXRvclZpZXdGaWVsZCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQge1xuICBFZGl0b3JWaWV3LFxuICBQbHVnaW5WYWx1ZSxcbiAgVmlld1BsdWdpbixcbiAgVmlld1VwZGF0ZSxcbn0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IExpc3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGFyc2VyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QYXJzZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmludGVyZmFjZSBMaW5lRGF0YSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhlaWdodDogc3RyaW5nO1xuICBsaXN0OiBMaXN0O1xufVxuXG5jbGFzcyBMaXN0TGluZXNWaWV3UGx1Z2luVmFsdWUgaW1wbGVtZW50cyBQbHVnaW5WYWx1ZSB7XG4gIHByaXZhdGUgc2NoZWR1bGVkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbW1lZGlhdGU+O1xuICBwcml2YXRlIHNjcm9sbGVyOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBjb250ZW50Q29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBlZGl0b3I6IE15RWRpdG9yO1xuICBwcml2YXRlIGxhc3RMaW5lOiBudW1iZXI7XG4gIHByaXZhdGUgbGluZXM6IExpbmVEYXRhW107XG4gIHByaXZhdGUgbGluZUVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHZpZXc6IEVkaXRvclZpZXdcbiAgKSB7XG4gICAgdGhpcy52aWV3LnNjcm9sbERPTS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25TY3JvbGwpO1xuICAgIHRoaXMuc2V0dGluZ3Mub25DaGFuZ2UoXCJsaXN0TGluZXNcIiwgdGhpcy5zY2hlZHVsZVJlY2FsY3VsYXRlKTtcblxuICAgIHRoaXMucHJlcGFyZURvbSgpO1xuICAgIHRoaXMud2FpdEZvckVkaXRvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB3YWl0Rm9yRWRpdG9yID0gKCkgPT4ge1xuICAgIGNvbnN0IG9lID0gdGhpcy52aWV3LnN0YXRlLmZpZWxkKGVkaXRvclZpZXdGaWVsZCkuZWRpdG9yO1xuICAgIGlmICghb2UpIHtcbiAgICAgIHNldFRpbWVvdXQodGhpcy53YWl0Rm9yRWRpdG9yLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5lZGl0b3IgPSBuZXcgTXlFZGl0b3Iob2UpO1xuICAgIHRoaXMuc2NoZWR1bGVSZWNhbGN1bGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgcHJlcGFyZURvbSgpIHtcbiAgICB0aGlzLmNvbnRlbnRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFxuICAgICAgXCJvdXRsaW5lci1wbHVnaW4tbGlzdC1saW5lcy1jb250ZW50LWNvbnRhaW5lclwiXG4gICAgKTtcblxuICAgIHRoaXMuc2Nyb2xsZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIHRoaXMuc2Nyb2xsZXIuY2xhc3NMaXN0LmFkZChcIm91dGxpbmVyLXBsdWdpbi1saXN0LWxpbmVzLXNjcm9sbGVyXCIpO1xuXG4gICAgdGhpcy5zY3JvbGxlci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRDb250YWluZXIpO1xuICAgIHRoaXMudmlldy5kb20uYXBwZW5kQ2hpbGQodGhpcy5zY3JvbGxlcik7XG4gIH1cblxuICBwcml2YXRlIG9uU2Nyb2xsID0gKGU6IEV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxUb3AgfSA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuc2Nyb2xsZXIuc2Nyb2xsVG8oc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wKTtcbiAgfTtcblxuICBwcml2YXRlIHNjaGVkdWxlUmVjYWxjdWxhdGUgPSAoKSA9PiB7XG4gICAgY2xlYXJJbW1lZGlhdGUodGhpcy5zY2hlZHVsZWQpO1xuICAgIHRoaXMuc2NoZWR1bGVkID0gc2V0SW1tZWRpYXRlKHRoaXMuY2FsY3VsYXRlKTtcbiAgfTtcblxuICB1cGRhdGUodXBkYXRlOiBWaWV3VXBkYXRlKSB7XG4gICAgaWYgKFxuICAgICAgdXBkYXRlLmRvY0NoYW5nZWQgfHxcbiAgICAgIHVwZGF0ZS52aWV3cG9ydENoYW5nZWQgfHxcbiAgICAgIHVwZGF0ZS5nZW9tZXRyeUNoYW5nZWQgfHxcbiAgICAgIHVwZGF0ZS50cmFuc2FjdGlvbnMuc29tZSgodHIpID0+IHRyLnJlY29uZmlndXJlZClcbiAgICApIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVSZWNhbGN1bGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlID0gKCkgPT4ge1xuICAgIHRoaXMubGluZXMgPSBbXTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuc2V0dGluZ3MubGlzdExpbmVzICYmXG4gICAgICB0aGlzLm9ic2lkaWFuLmlzRGVmYXVsdFRoZW1lRW5hYmxlZCgpICYmXG4gICAgICB0aGlzLnZpZXcudmlld3BvcnRMaW5lQmxvY2tzLmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMudmlldy52aXNpYmxlUmFuZ2VzLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IGZyb21MaW5lID0gdGhpcy5lZGl0b3Iub2Zmc2V0VG9Qb3ModGhpcy52aWV3LnZpZXdwb3J0LmZyb20pLmxpbmU7XG4gICAgICBjb25zdCB0b0xpbmUgPSB0aGlzLmVkaXRvci5vZmZzZXRUb1Bvcyh0aGlzLnZpZXcudmlld3BvcnQudG8pLmxpbmU7XG4gICAgICBjb25zdCBsaXN0cyA9IHRoaXMucGFyc2VyLnBhcnNlUmFuZ2UodGhpcy5lZGl0b3IsIGZyb21MaW5lLCB0b0xpbmUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGxpc3Qgb2YgbGlzdHMpIHtcbiAgICAgICAgdGhpcy5sYXN0TGluZSA9IGxpc3QuZ2V0UmFuZ2UoKVsxXS5saW5lO1xuXG4gICAgICAgIGZvciAoY29uc3QgYyBvZiBsaXN0LmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICB0aGlzLnJlY3Vyc2l2ZShjKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxpbmVzLnNvcnQoKGEsIGIpID0+XG4gICAgICAgIGEudG9wID09PSBiLnRvcCA/IGEubGVmdCAtIGIubGVmdCA6IGEudG9wIC0gYi50b3BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEb20oKTtcbiAgfTtcblxuICBwcml2YXRlIGdldE5leHRTaWJsaW5nKGxpc3Q6IExpc3QpOiBMaXN0IHwgbnVsbCB7XG4gICAgbGV0IGxpc3RUbXAgPSBsaXN0O1xuICAgIGxldCBwID0gbGlzdFRtcC5nZXRQYXJlbnQoKTtcbiAgICB3aGlsZSAocCkge1xuICAgICAgY29uc3QgbmV4dFNpYmxpbmcgPSBwLmdldE5leHRTaWJsaW5nT2YobGlzdFRtcCk7XG4gICAgICBpZiAobmV4dFNpYmxpbmcpIHtcbiAgICAgICAgcmV0dXJuIG5leHRTaWJsaW5nO1xuICAgICAgfVxuICAgICAgbGlzdFRtcCA9IHA7XG4gICAgICBwID0gbGlzdFRtcC5nZXRQYXJlbnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZShsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBsaXN0LmdldENoaWxkcmVuKCk7XG5cbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgaWYgKCFjaGlsZC5pc0VtcHR5KCkpIHtcbiAgICAgICAgdGhpcy5yZWN1cnNpdmUoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZyb21PZmZzZXQgPSB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh7XG4gICAgICBsaW5lOiBsaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUsXG4gICAgICBjaDogbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGgsXG4gICAgfSk7XG4gICAgY29uc3QgbmV4dFNpYmxpbmcgPSB0aGlzLmdldE5leHRTaWJsaW5nKGxpc3QpO1xuICAgIGNvbnN0IHRpbGxPZmZzZXQgPSB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh7XG4gICAgICBsaW5lOiBuZXh0U2libGluZ1xuICAgICAgICA/IG5leHRTaWJsaW5nLmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUgLSAxXG4gICAgICAgIDogdGhpcy5sYXN0TGluZSxcbiAgICAgIGNoOiAwLFxuICAgIH0pO1xuXG4gICAgbGV0IHZpc2libGVGcm9tID0gdGhpcy52aWV3LnZpc2libGVSYW5nZXNbMF0uZnJvbTtcbiAgICBsZXQgdmlzaWJsZVRvID1cbiAgICAgIHRoaXMudmlldy52aXNpYmxlUmFuZ2VzW3RoaXMudmlldy52aXNpYmxlUmFuZ2VzLmxlbmd0aCAtIDFdLnRvO1xuICAgIGNvbnN0IHpvb21SYW5nZSA9IHRoaXMuZWRpdG9yLmdldFpvb21SYW5nZSgpO1xuICAgIGlmICh6b29tUmFuZ2UpIHtcbiAgICAgIHZpc2libGVGcm9tID0gTWF0aC5tYXgoXG4gICAgICAgIHZpc2libGVGcm9tLFxuICAgICAgICB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh6b29tUmFuZ2UuZnJvbSlcbiAgICAgICk7XG4gICAgICB2aXNpYmxlVG8gPSBNYXRoLm1pbih2aXNpYmxlVG8sIHRoaXMuZWRpdG9yLnBvc1RvT2Zmc2V0KHpvb21SYW5nZS50bykpO1xuICAgIH1cblxuICAgIGlmIChmcm9tT2Zmc2V0ID4gdmlzaWJsZVRvIHx8IHRpbGxPZmZzZXQgPCB2aXNpYmxlRnJvbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRvcCA9XG4gICAgICB2aXNpYmxlRnJvbSA+IDAgJiYgZnJvbU9mZnNldCA8PSB2aXNpYmxlRnJvbVxuICAgICAgICA/IC0yMFxuICAgICAgICA6IHRoaXMudmlldy5saW5lQmxvY2tBdChmcm9tT2Zmc2V0KS50b3A7XG4gICAgY29uc3QgYm90dG9tID1cbiAgICAgIHRpbGxPZmZzZXQgPiB2aXNpYmxlVG9cbiAgICAgICAgPyB0aGlzLnZpZXcubGluZUJsb2NrQXQodmlzaWJsZVRvIC0gMSkuYm90dG9tXG4gICAgICAgIDogdGhpcy52aWV3LmxpbmVCbG9ja0F0KHRpbGxPZmZzZXQpLmJvdHRvbTtcbiAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG5cbiAgICBpZiAoaGVpZ2h0ID4gMCAmJiAhbGlzdC5pc0ZvbGRlZCgpKSB7XG4gICAgICBjb25zdCBuZXh0U2libGluZyA9IGxpc3QuZ2V0UGFyZW50KCkuZ2V0TmV4dFNpYmxpbmdPZihsaXN0KTtcbiAgICAgIGNvbnN0IGhhc05leHRTaWJsaW5nID1cbiAgICAgICAgISFuZXh0U2libGluZyAmJlxuICAgICAgICB0aGlzLmVkaXRvci5wb3NUb09mZnNldChuZXh0U2libGluZy5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKSkgPD1cbiAgICAgICAgICB2aXNpYmxlVG87XG5cbiAgICAgIHRoaXMubGluZXMucHVzaCh7XG4gICAgICAgIHRvcDogdG9wLFxuICAgICAgICBsZWZ0OiB0aGlzLmdldEluZGVudFNpemUobGlzdCksXG4gICAgICAgIGhlaWdodDogYGNhbGMoJHtoZWlnaHR9cHggJHtoYXNOZXh0U2libGluZyA/IFwiLSAxZW1cIiA6IFwiLSAxLjhlbVwifSlgLFxuICAgICAgICBsaXN0LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRlbnRTaXplKGxpc3Q6IExpc3QpIHtcbiAgICBjb25zdCB7IHRhYlNpemUgfSA9IHRoaXMub2JzaWRpYW4uZ2V0T2JzaWRpYW5UYWJzU2V0dGluZ3MoKTtcbiAgICBjb25zdCBpbmRlbnQgPSBsaXN0LmdldEZpcnN0TGluZUluZGVudCgpO1xuICAgIGNvbnN0IHNwYWNlU2l6ZSA9IDQuNTtcblxuICAgIGxldCBzcGFjZXMgPSAwO1xuICAgIGZvciAoY29uc3QgY2hhciBvZiBpbmRlbnQpIHtcbiAgICAgIGlmIChjaGFyID09PSBcIlxcdFwiKSB7XG4gICAgICAgIHNwYWNlcyArPSB0YWJTaXplO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BhY2VzICs9IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwYWNlcyAqIHNwYWNlU2l6ZTtcbiAgfVxuXG4gIHByaXZhdGUgb25DbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgbGluZSA9IHRoaXMubGluZXNbTnVtYmVyKChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZGF0YXNldC5pbmRleCldO1xuXG4gICAgc3dpdGNoICh0aGlzLnNldHRpbmdzLmxpc3RMaW5lQWN0aW9uKSB7XG4gICAgICBjYXNlIFwiem9vbS1pblwiOlxuICAgICAgICB0aGlzLnpvb21JbihsaW5lKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJ0b2dnbGUtZm9sZGluZ1wiOlxuICAgICAgICB0aGlzLnRvZ2dsZUZvbGRpbmcobGluZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHpvb21JbihsaW5lOiBMaW5lRGF0YSkge1xuICAgIGNvbnN0IGVkaXRvciA9IG5ldyBNeUVkaXRvcih0aGlzLnZpZXcuc3RhdGUuZmllbGQoZWRpdG9yVmlld0ZpZWxkKS5lZGl0b3IpO1xuXG4gICAgZWRpdG9yLnpvb21JbihsaW5lLmxpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkubGluZSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUZvbGRpbmcobGluZTogTGluZURhdGEpIHtcbiAgICBjb25zdCB7IGxpc3QgfSA9IGxpbmU7XG5cbiAgICBpZiAobGlzdC5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgbmVlZFRvVW5mb2xkID0gdHJ1ZTtcbiAgICBjb25zdCBsaW5lc1RvVG9nZ2xlOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgYyBvZiBsaXN0LmdldENoaWxkcmVuKCkpIHtcbiAgICAgIGlmIChjLmlzRW1wdHkoKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghYy5pc0ZvbGRlZCgpKSB7XG4gICAgICAgIG5lZWRUb1VuZm9sZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgbGluZXNUb1RvZ2dsZS5wdXNoKGMuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkubGluZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yID0gbmV3IE15RWRpdG9yKHRoaXMudmlldy5zdGF0ZS5maWVsZChlZGl0b3JWaWV3RmllbGQpLmVkaXRvcik7XG5cbiAgICBmb3IgKGNvbnN0IGwgb2YgbGluZXNUb1RvZ2dsZSkge1xuICAgICAgaWYgKG5lZWRUb1VuZm9sZCkge1xuICAgICAgICBlZGl0b3IudW5mb2xkKGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWRpdG9yLmZvbGQobCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEb20oKSB7XG4gICAgY29uc3QgY21TY3JvbGwgPSB0aGlzLnZpZXcuc2Nyb2xsRE9NO1xuICAgIGNvbnN0IGNtQ29udGVudCA9IHRoaXMudmlldy5jb250ZW50RE9NO1xuICAgIGNvbnN0IGNtQ29udGVudENvbnRhaW5lciA9IGNtQ29udGVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgdGhpcy5zY3JvbGxlci5zdHlsZS50b3AgPSBjbVNjcm9sbC5vZmZzZXRUb3AgKyBcInB4XCI7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyLnN0eWxlLmhlaWdodCA9IGNtQ29udGVudC5jbGllbnRIZWlnaHQgKyBcInB4XCI7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyLnN0eWxlLm1hcmdpbkxlZnQgPVxuICAgICAgY21Db250ZW50Q29udGFpbmVyLm9mZnNldExlZnQgKyBcInB4XCI7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyLnN0eWxlLm1hcmdpblRvcCA9XG4gICAgICAoY21Db250ZW50LmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRUb3AgLSAyNCArIFwicHhcIjtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5saW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMubGluZUVsZW1lbnRzLmxlbmd0aCA9PT0gaSkge1xuICAgICAgICBjb25zdCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgZS5jbGFzc0xpc3QuYWRkKFwib3V0bGluZXItcGx1Z2luLWxpc3QtbGluZVwiKTtcbiAgICAgICAgZS5kYXRhc2V0LmluZGV4ID0gU3RyaW5nKGkpO1xuICAgICAgICBlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbkNsaWNrKTtcbiAgICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGUpO1xuICAgICAgICB0aGlzLmxpbmVFbGVtZW50cy5wdXNoKGUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsID0gdGhpcy5saW5lc1tpXTtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLmxpbmVFbGVtZW50c1tpXTtcbiAgICAgIGUuc3R5bGUudG9wID0gbC50b3AgKyBcInB4XCI7XG4gICAgICBlLnN0eWxlLmxlZnQgPSBsLmxlZnQgKyBcInB4XCI7XG4gICAgICBlLnN0eWxlLmhlaWdodCA9IGwuaGVpZ2h0O1xuICAgICAgZS5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSB0aGlzLmxpbmVzLmxlbmd0aDsgaSA8IHRoaXMubGluZUVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlID0gdGhpcy5saW5lRWxlbWVudHNbaV07XG4gICAgICBlLnN0eWxlLnRvcCA9IFwiMHB4XCI7XG4gICAgICBlLnN0eWxlLmxlZnQgPSBcIjBweFwiO1xuICAgICAgZS5zdHlsZS5oZWlnaHQgPSBcIjBweFwiO1xuICAgICAgZS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnNldHRpbmdzLnJlbW92ZUNhbGxiYWNrKFwibGlzdExpbmVzXCIsIHRoaXMuc2NoZWR1bGVSZWNhbGN1bGF0ZSk7XG4gICAgdGhpcy52aWV3LnNjcm9sbERPTS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25TY3JvbGwpO1xuICAgIHRoaXMudmlldy5kb20ucmVtb3ZlQ2hpbGQodGhpcy5zY3JvbGxlcik7XG4gICAgY2xlYXJJbW1lZGlhdGUodGhpcy5zY2hlZHVsZWQpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5lc0ZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlclNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBWaWV3UGx1Z2luLmRlZmluZShcbiAgICAgICAgKHZpZXcpID0+XG4gICAgICAgICAgbmV3IExpc3RMaW5lc1ZpZXdQbHVnaW5WYWx1ZShcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICAgICAgdGhpcy5wYXJzZXIsXG4gICAgICAgICAgICB2aWV3XG4gICAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxufVxuIiwiaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5jb25zdCBCRVRURVJfTElTVFNfQ0xBU1MgPSBcIm91dGxpbmVyLXBsdWdpbi1iZXR0ZXItbGlzdHNcIjtcbmNvbnN0IEJFVFRFUl9CVUxMRVRTX0NMQVNTID0gXCJvdXRsaW5lci1wbHVnaW4tYmV0dGVyLWJ1bGxldHNcIjtcbmNvbnN0IFZFUlRJQ0FMX0xJTkVTID0gXCJvdXRsaW5lci1wbHVnaW4tdmVydGljYWwtbGluZXNcIjtcbmNvbnN0IEtOT1dOX0NMQVNTRVMgPSBbXG4gIEJFVFRFUl9MSVNUU19DTEFTUyxcbiAgQkVUVEVSX0JVTExFVFNfQ0xBU1MsXG4gIFZFUlRJQ0FMX0xJTkVTLFxuXTtcblxuZXhwb3J0IGNsYXNzIExpc3RzU3R5bGVzRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBwcml2YXRlIGludGVydmFsOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnN5bmNMaXN0c1N0eWxlcygpO1xuICAgIHRoaXMuaW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jTGlzdHNTdHlsZXMoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICAgIHRoaXMuYXBwbHlMaXN0c1N0eWxlcyhbXSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNMaXN0c1N0eWxlcyA9ICgpID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gW107XG5cbiAgICBpZiAodGhpcy5vYnNpZGlhbi5pc0RlZmF1bHRUaGVtZUVuYWJsZWQoKSkge1xuICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc3R5bGVMaXN0cykge1xuICAgICAgICBjbGFzc2VzLnB1c2goQkVUVEVSX0xJU1RTX0NMQVNTKTtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKEJFVFRFUl9CVUxMRVRTX0NMQVNTKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3MubGlzdExpbmVzKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaChWRVJUSUNBTF9MSU5FUyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseUxpc3RzU3R5bGVzKGNsYXNzZXMpO1xuICB9O1xuXG4gIHByaXZhdGUgYXBwbHlMaXN0c1N0eWxlcyhjbGFzc2VzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IHRvS2VlcCA9IGNsYXNzZXMuZmlsdGVyKChjKSA9PiBLTk9XTl9DTEFTU0VTLmNvbnRhaW5zKGMpKTtcbiAgICBjb25zdCB0b1JlbW92ZSA9IEtOT1dOX0NMQVNTRVMuZmlsdGVyKChjKSA9PiAhdG9LZWVwLmNvbnRhaW5zKGMpKTtcblxuICAgIGZvciAoY29uc3QgYyBvZiB0b0tlZXApIHtcbiAgICAgIGlmICghZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoYykpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKGMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYyBvZiB0b1JlbW92ZSkge1xuICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKGMpKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShjKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBMaXN0TGluZSwgUG9zaXRpb24sIFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gdGhpcy5yb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGN1cnNvciA9IHRoaXMucm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG4gICAgY29uc3QgbGluZU5vID0gbGluZXMuZmluZEluZGV4KFxuICAgICAgKGwpID0+IGN1cnNvci5jaCA9PT0gbC5mcm9tLmNoICYmIGN1cnNvci5saW5lID09PSBsLmZyb20ubGluZVxuICAgICk7XG5cbiAgICBpZiAobGluZU5vID09PSAwKSB7XG4gICAgICB0aGlzLm1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRJdGVtKHJvb3QsIGN1cnNvcik7XG4gICAgfSBlbHNlIGlmIChsaW5lTm8gPiAwKSB7XG4gICAgICB0aGlzLm1vdmVDdXJzb3JUb1ByZXZpb3VzTm90ZUxpbmUocm9vdCwgbGluZXMsIGxpbmVObyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlQ3Vyc29yVG9QcmV2aW91c05vdGVMaW5lKFxuICAgIHJvb3Q6IFJvb3QsXG4gICAgbGluZXM6IExpc3RMaW5lW10sXG4gICAgbGluZU5vOiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICByb290LnJlcGxhY2VDdXJzb3IobGluZXNbbGluZU5vIC0gMV0udG8pO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkSXRlbShyb290OiBSb290LCBjdXJzb3I6IFBvc2l0aW9uKSB7XG4gICAgY29uc3QgcHJldiA9IHJvb3QuZ2V0TGlzdFVuZGVyTGluZShjdXJzb3IubGluZSAtIDEpO1xuXG4gICAgaWYgKCFwcmV2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBpZiAocHJldi5pc0ZvbGRlZCgpKSB7XG4gICAgICBjb25zdCBmb2xkUm9vdCA9IHByZXYuZ2V0VG9wRm9sZFJvb3QoKTtcbiAgICAgIGNvbnN0IGZpcnN0TGluZUVuZCA9IGZvbGRSb290LmdldExpbmVzSW5mbygpWzBdLnRvO1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKGZpcnN0TGluZUVuZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcihwcmV2LmdldExhc3RMaW5lQ29udGVudEVuZCgpKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IE1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJBcnJvd0xlZnRcIixcbiAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgd2luOiBcImMtQXJyb3dMZWZ0XCIsXG4gICAgICAgICAgbGludXg6IFwiYy1BcnJvd0xlZnRcIixcbiAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLnN0aWNrQ3Vyc29yICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcnVuID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlRG93bk9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZ2V0UGFyZW50KCk7XG4gICAgY29uc3QgZ3JhbmRQYXJlbnQgPSBwYXJlbnQuZ2V0UGFyZW50KCk7XG4gICAgY29uc3QgbmV4dCA9IHBhcmVudC5nZXROZXh0U2libGluZ09mKGxpc3QpO1xuXG4gICAgY29uc3QgbGlzdFN0YXJ0TGluZUJlZm9yZSA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcblxuICAgIGlmICghbmV4dCAmJiBncmFuZFBhcmVudCkge1xuICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JhbmRQYXJlbnQuZ2V0TmV4dFNpYmxpbmdPZihwYXJlbnQpO1xuXG4gICAgICBpZiAobmV3UGFyZW50KSB7XG4gICAgICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICAgICAgbmV3UGFyZW50LmFkZEJlZm9yZUFsbChsaXN0KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG4gICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgICBwYXJlbnQuYWRkQWZ0ZXIobmV4dCwgbGlzdCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnVwZGF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyBsaW5lRGlmZixcbiAgICAgIGNoOiBjdXJzb3IuY2gsXG4gICAgfSk7XG5cbiAgICByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzKHJvb3QpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZVJpZ2h0T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290LCBwcml2YXRlIGRlZmF1bHRJbmRlbnRDaGFyczogc3RyaW5nKSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgcGFyZW50ID0gbGlzdC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBwcmV2ID0gcGFyZW50LmdldFByZXZTaWJsaW5nT2YobGlzdCk7XG5cbiAgICBpZiAoIXByZXYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgbGlzdFN0YXJ0TGluZUJlZm9yZSA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcblxuICAgIGNvbnN0IGluZGVudFBvcyA9IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoO1xuICAgIGxldCBpbmRlbnRDaGFycyA9IFwiXCI7XG5cbiAgICBpZiAoaW5kZW50Q2hhcnMgPT09IFwiXCIgJiYgIXByZXYuaXNFbXB0eSgpKSB7XG4gICAgICBpbmRlbnRDaGFycyA9IHByZXZcbiAgICAgICAgLmdldENoaWxkcmVuKClbMF1cbiAgICAgICAgLmdldEZpcnN0TGluZUluZGVudCgpXG4gICAgICAgIC5zbGljZShwcmV2LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKGluZGVudENoYXJzID09PSBcIlwiKSB7XG4gICAgICBpbmRlbnRDaGFycyA9IGxpc3RcbiAgICAgICAgLmdldEZpcnN0TGluZUluZGVudCgpXG4gICAgICAgIC5zbGljZShwYXJlbnQuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZW50Q2hhcnMgPT09IFwiXCIgJiYgIWxpc3QuaXNFbXB0eSgpKSB7XG4gICAgICBpbmRlbnRDaGFycyA9IGxpc3QuZ2V0Q2hpbGRyZW4oKVswXS5nZXRGaXJzdExpbmVJbmRlbnQoKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZW50Q2hhcnMgPT09IFwiXCIpIHtcbiAgICAgIGluZGVudENoYXJzID0gdGhpcy5kZWZhdWx0SW5kZW50Q2hhcnM7XG4gICAgfVxuXG4gICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgIHByZXYuYWRkQWZ0ZXJBbGwobGlzdCk7XG4gICAgbGlzdC5pbmRlbnRDb250ZW50KGluZGVudFBvcywgaW5kZW50Q2hhcnMpO1xuXG4gICAgY29uc3QgbGlzdFN0YXJ0TGluZUFmdGVyID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuICAgIGNvbnN0IGxpbmVEaWZmID0gbGlzdFN0YXJ0TGluZUFmdGVyIC0gbGlzdFN0YXJ0TGluZUJlZm9yZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgbGluZURpZmYsXG4gICAgICBjaDogY3Vyc29yLmNoICsgaW5kZW50Q2hhcnMubGVuZ3RoLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyB9IGZyb20gXCIuLi9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHNcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVVcE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZ2V0UGFyZW50KCk7XG4gICAgY29uc3QgZ3JhbmRQYXJlbnQgPSBwYXJlbnQuZ2V0UGFyZW50KCk7XG4gICAgY29uc3QgcHJldiA9IHBhcmVudC5nZXRQcmV2U2libGluZ09mKGxpc3QpO1xuXG4gICAgY29uc3QgbGlzdFN0YXJ0TGluZUJlZm9yZSA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcblxuICAgIGlmICghcHJldiAmJiBncmFuZFBhcmVudCkge1xuICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JhbmRQYXJlbnQuZ2V0UHJldlNpYmxpbmdPZihwYXJlbnQpO1xuXG4gICAgICBpZiAobmV3UGFyZW50KSB7XG4gICAgICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICAgICAgbmV3UGFyZW50LmFkZEFmdGVyQWxsKGxpc3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJldikge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICAgIHBhcmVudC5hZGRCZWZvcmUocHJldiwgbGlzdCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnVwZGF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyBsaW5lRGlmZixcbiAgICAgIGNoOiBjdXJzb3IuY2gsXG4gICAgfSk7XG5cbiAgICByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzKHJvb3QpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBQcmVjIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBNb3ZlRG93bk9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL01vdmVEb3duT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBNb3ZlTGVmdE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL01vdmVMZWZ0T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBNb3ZlUmlnaHRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9Nb3ZlUmlnaHRPcGVyYXRpb25cIjtcbmltcG9ydCB7IE1vdmVVcE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL01vdmVVcE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUl0ZW1zRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwibW92ZS1saXN0LWl0ZW0tdXBcIixcbiAgICAgIG5hbWU6IFwiTW92ZSBsaXN0IGFuZCBzdWJsaXN0cyB1cFwiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2soXG4gICAgICAgIHRoaXMubW92ZUxpc3RFbGVtZW50VXBDb21tYW5kXG4gICAgICApLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIiwgXCJTaGlmdFwiXSxcbiAgICAgICAgICBrZXk6IFwiQXJyb3dVcFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwibW92ZS1saXN0LWl0ZW0tZG93blwiLFxuICAgICAgbmFtZTogXCJNb3ZlIGxpc3QgYW5kIHN1Ymxpc3RzIGRvd25cIixcbiAgICAgIGVkaXRvckNhbGxiYWNrOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUVkaXRvckNhbGxiYWNrKFxuICAgICAgICB0aGlzLm1vdmVMaXN0RWxlbWVudERvd25Db21tYW5kXG4gICAgICApLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIiwgXCJTaGlmdFwiXSxcbiAgICAgICAgICBrZXk6IFwiQXJyb3dEb3duXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJpbmRlbnQtbGlzdFwiLFxuICAgICAgbmFtZTogXCJJbmRlbnQgdGhlIGxpc3QgYW5kIHN1Ymxpc3RzXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnRSaWdodENvbW1hbmRcbiAgICAgICksXG4gICAgICBob3RrZXlzOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwib3V0ZGVudC1saXN0XCIsXG4gICAgICBuYW1lOiBcIk91dGRlbnQgdGhlIGxpc3QgYW5kIHN1Ymxpc3RzXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnRMZWZ0Q29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBQcmVjLmhpZ2hlc3QoXG4gICAgICAgIGtleW1hcC5vZihbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIlRhYlwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5tb3ZlTGlzdEVsZW1lbnRSaWdodCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcInMtVGFiXCIsXG4gICAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgICAgcnVuOiB0aGlzLm1vdmVMaXN0RWxlbWVudExlZnQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuYmV0dGVyVGFiICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgbW92ZUxpc3RFbGVtZW50RG93bkNvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGNvbnN0IHsgc2hvdWxkU3RvcFByb3BhZ2F0aW9uIH0gPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZURvd25PcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuXG4gICAgcmV0dXJuIHNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudFVwQ29tbWFuZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgY29uc3QgeyBzaG91bGRTdG9wUHJvcGFnYXRpb24gfSA9IHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBNb3ZlVXBPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuXG4gICAgcmV0dXJuIHNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudFJpZ2h0Q29tbWFuZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgaWYgKHRoaXMuaW1lLmlzSU1FT3BlbmVkKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1vdmVMaXN0RWxlbWVudFJpZ2h0KGVkaXRvcikuc2hvdWxkU3RvcFByb3BhZ2F0aW9uO1xuICB9O1xuXG4gIHByaXZhdGUgbW92ZUxpc3RFbGVtZW50UmlnaHQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PlxuICAgICAgICBuZXcgTW92ZVJpZ2h0T3BlcmF0aW9uKHJvb3QsIHRoaXMub2JzaWRpYW4uZ2V0RGVmYXVsdEluZGVudENoYXJzKCkpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudExlZnRDb21tYW5kID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBpZiAodGhpcy5pbWUuaXNJTUVPcGVuZWQoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubW92ZUxpc3RFbGVtZW50TGVmdChlZGl0b3IpLnNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudExlZnQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZUxlZnRPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QsIG1heFBvcywgbWluUG9zIH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIFNlbGVjdEFsbE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVTZWxlY3Rpb24oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHJvb3QuZ2V0U2VsZWN0aW9ucygpWzBdO1xuICAgIGNvbnN0IFtyb290U3RhcnQsIHJvb3RFbmRdID0gcm9vdC5nZXRSYW5nZSgpO1xuXG4gICAgY29uc3Qgc2VsZWN0aW9uRnJvbSA9IG1pblBvcyhzZWxlY3Rpb24uYW5jaG9yLCBzZWxlY3Rpb24uaGVhZCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uVG8gPSBtYXhQb3Moc2VsZWN0aW9uLmFuY2hvciwgc2VsZWN0aW9uLmhlYWQpO1xuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uRnJvbS5saW5lIDwgcm9vdFN0YXJ0LmxpbmUgfHxcbiAgICAgIHNlbGVjdGlvblRvLmxpbmUgPiByb290RW5kLmxpbmVcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb25Gcm9tLmxpbmUgPT09IHJvb3RTdGFydC5saW5lICYmXG4gICAgICBzZWxlY3Rpb25Gcm9tLmNoID09PSByb290U3RhcnQuY2ggJiZcbiAgICAgIHNlbGVjdGlvblRvLmxpbmUgPT09IHJvb3RFbmQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uVG8uY2ggPT09IHJvb3RFbmQuY2hcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjb250ZW50U3RhcnQgPSBsaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIGNvbnN0IGNvbnRlbnRFbmQgPSBsaXN0LmdldExhc3RMaW5lQ29udGVudEVuZCgpO1xuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uRnJvbS5saW5lIDwgY29udGVudFN0YXJ0LmxpbmUgfHxcbiAgICAgIHNlbGVjdGlvblRvLmxpbmUgPiBjb250ZW50RW5kLmxpbmVcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA9PT0gY29udGVudFN0YXJ0LmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvbkZyb20uY2ggPT09IGNvbnRlbnRTdGFydC5jaCAmJlxuICAgICAgc2VsZWN0aW9uVG8ubGluZSA9PT0gY29udGVudEVuZC5saW5lICYmXG4gICAgICBzZWxlY3Rpb25Uby5jaCA9PT0gY29udGVudEVuZC5jaFxuICAgICkge1xuICAgICAgLy8gc2VsZWN0IGFsbCBsaXN0XG4gICAgICByb290LnJlcGxhY2VTZWxlY3Rpb25zKFt7IGFuY2hvcjogcm9vdFN0YXJ0LCBoZWFkOiByb290RW5kIH1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2VsZWN0IGFsbCBsaW5lXG4gICAgICByb290LnJlcGxhY2VTZWxlY3Rpb25zKFt7IGFuY2hvcjogY29udGVudFN0YXJ0LCBoZWFkOiBjb250ZW50RW5kIH1dKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgU2VsZWN0QWxsT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvU2VsZWN0QWxsT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RBbGxGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcImMtYVwiLFxuICAgICAgICAgIG1hYzogXCJtLWFcIixcbiAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLnNlbGVjdEFsbCAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJ1biA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBTZWxlY3RBbGxPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG4gICAgY29uc3QgbGluZU5vID0gbGluZXMuZmluZEluZGV4KChsKSA9PiBsLmZyb20ubGluZSA9PT0gY3Vyc29yLmxpbmUpO1xuXG4gICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBoZWFkOiBsaW5lc1tsaW5lTm9dLmZyb20sIGFuY2hvcjogY3Vyc29yIH1dKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IFNlbGVjdFRpbGxMaW5lU3RhcnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9TZWxlY3RUaWxsTGluZVN0YXJ0T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJtLXMtQXJyb3dMZWZ0XCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvciAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJ1biA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBTZWxlY3RUaWxsTGluZVN0YXJ0T3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IEFwcCwgUGx1Z2luU2V0dGluZ1RhYiwgUGx1Z2luXzIsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTGlzdExpbmVBY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuY2xhc3MgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogUGx1Z2luXzIsIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSkge1xuICAgIHN1cGVyKGFwcCwgcGx1Z2luKTtcbiAgfVxuXG4gIGRpc3BsYXkoKTogdm9pZCB7XG4gICAgY29uc3QgeyBjb250YWluZXJFbCB9ID0gdGhpcztcblxuICAgIGNvbnRhaW5lckVsLmVtcHR5KCk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiSW1wcm92ZSB0aGUgc3R5bGUgb2YgeW91ciBsaXN0c1wiKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgIFwiU3R5bGVzIGFyZSBvbmx5IGNvbXBhdGlibGUgd2l0aCBidWlsdC1pbiBPYnNpZGlhbiB0aGVtZXMgYW5kIG1heSBub3QgYmUgY29tcGF0aWJsZSB3aXRoIG90aGVyIHRoZW1lcy4gU3R5bGVzIG9ubHkgd29yayB3ZWxsIHdpdGggdGFiIHNpemUgNC5cIlxuICAgICAgKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLnN0eWxlTGlzdHMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3Muc3R5bGVMaXN0cyA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkRyYXcgdmVydGljYWwgaW5kZW50YXRpb24gbGluZXNcIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5saXN0TGluZXMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MubGlzdExpbmVzID0gdmFsdWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiVmVydGljYWwgaW5kZW50YXRpb24gbGluZSBjbGljayBhY3Rpb25cIilcbiAgICAgIC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IHtcbiAgICAgICAgZHJvcGRvd25cbiAgICAgICAgICAuYWRkT3B0aW9ucyh7XG4gICAgICAgICAgICBub25lOiBcIk5vbmVcIixcbiAgICAgICAgICAgIFwiem9vbS1pblwiOiBcIlpvb20gSW5cIixcbiAgICAgICAgICAgIFwidG9nZ2xlLWZvbGRpbmdcIjogXCJUb2dnbGUgRm9sZGluZ1wiLFxuICAgICAgICAgIH0gYXMgeyBba2V5IGluIExpc3RMaW5lQWN0aW9uXTogc3RyaW5nIH0pXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MubGlzdExpbmVBY3Rpb24pXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5saXN0TGluZUFjdGlvbiA9IHZhbHVlIGFzIExpc3RMaW5lQWN0aW9uO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJTdGljayB0aGUgY3Vyc29yIHRvIHRoZSBjb250ZW50XCIpXG4gICAgICAuc2V0RGVzYyhcIkRvbid0IGxldCB0aGUgY3Vyc29yIG1vdmUgdG8gdGhlIGJ1bGxldCBwb3NpdGlvbi5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvcikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvciA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkVuaGFuY2UgdGhlIEVudGVyIGtleVwiKVxuICAgICAgLnNldERlc2MoXCJNYWtlIHRoZSBFbnRlciBrZXkgYmVoYXZlIHRoZSBzYW1lIGFzIG90aGVyIG91dGxpbmVycy5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5iZXR0ZXJFbnRlcikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5iZXR0ZXJFbnRlciA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkVuaGFuY2UgdGhlIFRhYiBrZXlcIilcbiAgICAgIC5zZXREZXNjKFwiTWFrZSBUYWIgYW5kIFNoaWZ0LVRhYiBiZWhhdmUgdGhlIHNhbWUgYXMgb3RoZXIgb3V0bGluZXJzLlwiKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLmJldHRlclRhYikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5iZXR0ZXJUYWIgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJFbmhhbmNlIHRoZSBDdHJsK0Egb3IgQ21kK0EgYmVoYXZpb3JcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIlByZXNzIHRoZSBob3RrZXkgb25jZSB0byBzZWxlY3QgdGhlIGN1cnJlbnQgbGlzdCBpdGVtLiBQcmVzcyB0aGUgaG90a2V5IHR3aWNlIHRvIHNlbGVjdCB0aGUgZW50aXJlIGxpc3QuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zZWxlY3RBbGwpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3Muc2VsZWN0QWxsID0gdmFsdWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiRGVidWcgbW9kZVwiKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgIFwiT3BlbiBEZXZUb29scyAoQ29tbWFuZCtPcHRpb24rSSBvciBDb250cm9sK1NoaWZ0K0kpIHRvIGNvcHkgdGhlIGRlYnVnIGxvZ3MuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5kZWJ1Zykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5kZWJ1ZyA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1RhYkZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRTZXR0aW5nVGFiKFxuICAgICAgbmV3IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nVGFiKFxuICAgICAgICB0aGlzLnBsdWdpbi5hcHAsXG4gICAgICAgIHRoaXMucGx1Z2luLFxuICAgICAgICB0aGlzLnNldHRpbmdzXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVOb3RlTGluZU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZVVuZGVyQ3Vyc29yID0gbGlzdFxuICAgICAgLmdldExpbmVzSW5mbygpXG4gICAgICAuZmluZCgobCkgPT4gbC5mcm9tLmxpbmUgPT09IGN1cnNvci5saW5lKTtcblxuICAgIGlmIChjdXJzb3IuY2ggPCBsaW5lVW5kZXJDdXJzb3IuZnJvbS5jaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKCFsaXN0LmdldE5vdGVzSW5kZW50KCkpIHtcbiAgICAgIGxpc3Quc2V0Tm90ZXNJbmRlbnQobGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKSArIFwiICBcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpLnJlZHVjZSgoYWNjLCBsaW5lKSA9PiB7XG4gICAgICBpZiAoY3Vyc29yLmxpbmUgPT09IGxpbmUuZnJvbS5saW5lKSB7XG4gICAgICAgIGFjYy5wdXNoKGxpbmUudGV4dC5zbGljZSgwLCBjdXJzb3IuY2ggLSBsaW5lLmZyb20uY2gpKTtcbiAgICAgICAgYWNjLnB1c2gobGluZS50ZXh0LnNsaWNlKGN1cnNvci5jaCAtIGxpbmUuZnJvbS5jaCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjLnB1c2gobGluZS50ZXh0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSBhcyBzdHJpbmdbXSk7XG5cbiAgICBsaXN0LnJlcGxhY2VMaW5lcyhsaW5lcyk7XG5cbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyAxLFxuICAgICAgY2g6IGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKS5sZW5ndGgsXG4gICAgfSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBDcmVhdGVOb3RlTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0NyZWF0ZU5vdGVMaW5lT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBTaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwicy1FbnRlclwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgQ3JlYXRlTm90ZUxpbmVPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbiB7XG4gIGxpbmU6IG51bWJlcjtcbiAgY2g6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNFZGl0b3JTZWxlY3Rpb24ge1xuICBhbmNob3I6IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uO1xuICBoZWFkOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNFZGl0b3Ige1xuICBnZXRSYW5nZShcbiAgICBmcm9tOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbixcbiAgICB0bzogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb25cbiAgKTogc3RyaW5nO1xuICByZXBsYWNlUmFuZ2UoXG4gICAgcmVwbGFjZW1lbnQ6IHN0cmluZyxcbiAgICBmcm9tOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbixcbiAgICB0bzogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb25cbiAgKTogdm9pZDtcbiAgc2V0U2VsZWN0aW9ucyhzZWxlY3Rpb25zOiBBcHBseUNoYW5nZXNFZGl0b3JTZWxlY3Rpb25bXSk6IHZvaWQ7XG4gIGZvbGQobjogbnVtYmVyKTogdm9pZDtcbiAgdW5mb2xkKG46IG51bWJlcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzTGlzdCB7XG4gIGlzRm9sZFJvb3QoKTogYm9vbGVhbjtcbiAgZ2V0Q2hpbGRyZW4oKTogQXBwbHlDaGFuZ2VzTGlzdFtdO1xuICBnZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTogeyBsaW5lOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNSb290IHtcbiAgZ2V0UmFuZ2UoKTogW0FwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uLCBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbl07XG4gIGdldFNlbGVjdGlvbnMoKToge1xuICAgIGFuY2hvcjogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb247XG4gICAgaGVhZDogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb247XG4gIH1bXTtcbiAgcHJpbnQoKTogc3RyaW5nO1xuICBnZXRDaGlsZHJlbigpOiBBcHBseUNoYW5nZXNMaXN0W107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBseUNoYW5nZXNTZXJ2aWNlIHtcbiAgYXBwbHlDaGFuZ2VzKGVkaXRvcjogQXBwbHlDaGFuZ2VzRWRpdG9yLCByb290OiBBcHBseUNoYW5nZXNSb290KSB7XG4gICAgY29uc3Qgcm9vdFJhbmdlID0gcm9vdC5nZXRSYW5nZSgpO1xuICAgIGNvbnN0IG9sZFN0cmluZyA9IGVkaXRvci5nZXRSYW5nZShyb290UmFuZ2VbMF0sIHJvb3RSYW5nZVsxXSk7XG4gICAgY29uc3QgbmV3U3RyaW5nID0gcm9vdC5wcmludCgpO1xuXG4gICAgY29uc3QgZnJvbUxpbmUgPSByb290UmFuZ2VbMF0ubGluZTtcbiAgICBjb25zdCB0b0xpbmUgPSByb290UmFuZ2VbMV0ubGluZTtcblxuICAgIGZvciAobGV0IGwgPSBmcm9tTGluZTsgbCA8PSB0b0xpbmU7IGwrKykge1xuICAgICAgZWRpdG9yLnVuZm9sZChsKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2VGcm9tID0geyAuLi5yb290UmFuZ2VbMF0gfTtcbiAgICBjb25zdCBjaGFuZ2VUbyA9IHsgLi4ucm9vdFJhbmdlWzFdIH07XG4gICAgbGV0IG9sZFRtcCA9IG9sZFN0cmluZztcbiAgICBsZXQgbmV3VG1wID0gbmV3U3RyaW5nO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBubEluZGV4ID0gb2xkVG1wLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKG5sSW5kZXggPCAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkTGluZSA9IG9sZFRtcC5zbGljZShubEluZGV4KTtcbiAgICAgIGNvbnN0IG5ld0xpbmUgPSBuZXdUbXAuc2xpY2UoLW9sZExpbmUubGVuZ3RoKTtcbiAgICAgIGlmIChvbGRMaW5lICE9PSBuZXdMaW5lKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgb2xkVG1wID0gb2xkVG1wLnNsaWNlKDAsIC1vbGRMaW5lLmxlbmd0aCk7XG4gICAgICBuZXdUbXAgPSBuZXdUbXAuc2xpY2UoMCwgLW9sZExpbmUubGVuZ3RoKTtcblxuICAgICAgY29uc3QgbmxJbmRleDIgPSBvbGRUbXAubGFzdEluZGV4T2YoXCJcXG5cIik7XG4gICAgICBjaGFuZ2VUby5jaCA9XG4gICAgICAgIG5sSW5kZXgyID49IDAgPyBvbGRUbXAubGVuZ3RoIC0gbmxJbmRleDIgLSAxIDogb2xkVG1wLmxlbmd0aDtcbiAgICAgIGNoYW5nZVRvLmxpbmUtLTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBubEluZGV4ID0gb2xkVG1wLmluZGV4T2YoXCJcXG5cIik7XG4gICAgICBpZiAobmxJbmRleCA8IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCBvbGRMaW5lID0gb2xkVG1wLnNsaWNlKDAsIG5sSW5kZXggKyAxKTtcbiAgICAgIGNvbnN0IG5ld0xpbmUgPSBuZXdUbXAuc2xpY2UoMCwgb2xkTGluZS5sZW5ndGgpO1xuICAgICAgaWYgKG9sZExpbmUgIT09IG5ld0xpbmUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjaGFuZ2VGcm9tLmxpbmUrKztcbiAgICAgIG9sZFRtcCA9IG9sZFRtcC5zbGljZShvbGRMaW5lLmxlbmd0aCk7XG4gICAgICBuZXdUbXAgPSBuZXdUbXAuc2xpY2Uob2xkTGluZS5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChvbGRUbXAgIT09IG5ld1RtcCkge1xuICAgICAgZWRpdG9yLnJlcGxhY2VSYW5nZShuZXdUbXAsIGNoYW5nZUZyb20sIGNoYW5nZVRvKTtcbiAgICB9XG5cbiAgICBlZGl0b3Iuc2V0U2VsZWN0aW9ucyhyb290LmdldFNlbGVjdGlvbnMoKSk7XG5cbiAgICBmdW5jdGlvbiByZWN1cnNpdmUobGlzdDogQXBwbHlDaGFuZ2VzTGlzdCkge1xuICAgICAgZm9yIChjb25zdCBjIG9mIGxpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICByZWN1cnNpdmUoYyk7XG4gICAgICB9XG4gICAgICBpZiAobGlzdC5pc0ZvbGRSb290KCkpIHtcbiAgICAgICAgZWRpdG9yLmZvbGQobGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBjIG9mIHJvb3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgcmVjdXJzaXZlKGMpO1xuICAgIH1cbiAgfVxufVxuIiwiZXhwb3J0IGNsYXNzIElNRVNlcnZpY2Uge1xuICBwcml2YXRlIGNvbXBvc2l0aW9uID0gZmFsc2U7XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY29tcG9zaXRpb25zdGFydFwiLCB0aGlzLm9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uZW5kXCIsIHRoaXMub25Db21wb3NpdGlvbkVuZCk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uZW5kXCIsIHRoaXMub25Db21wb3NpdGlvbkVuZCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIiwgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQpO1xuICB9XG5cbiAgaXNJTUVPcGVuZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9zaXRpb247XG4gIH1cblxuICBwcml2YXRlIG9uQ29tcG9zaXRpb25TdGFydCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbXBvc2l0aW9uID0gdHJ1ZTtcbiAgfTtcblxuICBwcml2YXRlIG9uQ29tcG9zaXRpb25FbmQgPSAoKSA9PiB7XG4gICAgdGhpcy5jb21wb3NpdGlvbiA9IGZhbHNlO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4vU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBMb2dnZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlKSB7fVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGxvZyhtZXRob2Q6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3MuZGVidWcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmluZm8obWV0aG9kLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGJpbmQobWV0aG9kOiBzdHJpbmcpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IHRoaXMubG9nKG1ldGhvZCwgLi4uYXJncyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IEFwcCwgRWRpdG9yLCBlZGl0b3JWaWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRWRpdG9yU3RhdGUgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuVGFic1NldHRpbmdzIHtcbiAgdXNlVGFiOiBib29sZWFuO1xuICB0YWJTaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Gb2xkU2V0dGluZ3Mge1xuICBmb2xkSW5kZW50OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgT2JzaWRpYW5TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHA6IEFwcCkge31cblxuICBpc0xlZ2FjeUVkaXRvckVuYWJsZWQoKSB7XG4gICAgY29uc3QgY29uZmlnOiB7IGxlZ2FjeUVkaXRvcjogYm9vbGVhbiB9ID0ge1xuICAgICAgbGVnYWN5RWRpdG9yOiBmYWxzZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAuLi4odGhpcy5hcHAudmF1bHQgYXMgYW55KS5jb25maWcsXG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWcubGVnYWN5RWRpdG9yO1xuICB9XG5cbiAgaXNEZWZhdWx0VGhlbWVFbmFibGVkKCkge1xuICAgIGNvbnN0IGNvbmZpZzogeyBjc3NUaGVtZTogc3RyaW5nIH0gPSB7XG4gICAgICBjc3NUaGVtZTogXCJcIixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAuLi4odGhpcy5hcHAudmF1bHQgYXMgYW55KS5jb25maWcsXG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWcuY3NzVGhlbWUgPT09IFwiXCI7XG4gIH1cblxuICBnZXRPYnNpZGlhblRhYnNTZXR0aW5ncygpOiBPYnNpZGlhblRhYnNTZXR0aW5ncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZVRhYjogdHJ1ZSxcbiAgICAgIHRhYlNpemU6IDQsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLi4uKHRoaXMuYXBwLnZhdWx0IGFzIGFueSkuY29uZmlnLFxuICAgIH07XG4gIH1cblxuICBnZXRPYnNpZGlhbkZvbGRTZXR0aW5ncygpOiBPYnNpZGlhbkZvbGRTZXR0aW5ncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvbGRJbmRlbnQ6IHRydWUsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLi4uKHRoaXMuYXBwLnZhdWx0IGFzIGFueSkuY29uZmlnLFxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0SW5kZW50Q2hhcnMoKSB7XG4gICAgY29uc3QgeyB1c2VUYWIsIHRhYlNpemUgfSA9IHRoaXMuZ2V0T2JzaWRpYW5UYWJzU2V0dGluZ3MoKTtcblxuICAgIHJldHVybiB1c2VUYWIgPyBcIlxcdFwiIDogbmV3IEFycmF5KHRhYlNpemUpLmZpbGwoXCIgXCIpLmpvaW4oXCJcIik7XG4gIH1cblxuICBnZXRFZGl0b3JGcm9tU3RhdGUoc3RhdGU6IEVkaXRvclN0YXRlKSB7XG4gICAgcmV0dXJuIG5ldyBNeUVkaXRvcihzdGF0ZS5maWVsZChlZGl0b3JWaWV3RmllbGQpLmVkaXRvcik7XG4gIH1cblxuICBjcmVhdGVLZXltYXBSdW5DYWxsYmFjayhjb25maWc6IHtcbiAgICBjaGVjaz86IChlZGl0b3I6IE15RWRpdG9yKSA9PiBib29sZWFuO1xuICAgIHJ1bjogKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICAgIHNob3VsZFVwZGF0ZTogYm9vbGVhbjtcbiAgICAgIHNob3VsZFN0b3BQcm9wYWdhdGlvbjogYm9vbGVhbjtcbiAgICB9O1xuICB9KSB7XG4gICAgY29uc3QgY2hlY2sgPSBjb25maWcuY2hlY2sgfHwgKCgpID0+IHRydWUpO1xuICAgIGNvbnN0IHsgcnVuIH0gPSBjb25maWc7XG5cbiAgICByZXR1cm4gKHZpZXc6IEVkaXRvclZpZXcpOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZ2V0RWRpdG9yRnJvbVN0YXRlKHZpZXcuc3RhdGUpO1xuXG4gICAgICBpZiAoIWNoZWNrKGVkaXRvcikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHNob3VsZFVwZGF0ZSwgc2hvdWxkU3RvcFByb3BhZ2F0aW9uIH0gPSBydW4oZWRpdG9yKTtcblxuICAgICAgcmV0dXJuIHNob3VsZFVwZGF0ZSB8fCBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZUVkaXRvckNhbGxiYWNrKGNiOiAoZWRpdG9yOiBNeUVkaXRvcikgPT4gYm9vbGVhbikge1xuICAgIHJldHVybiAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICAgIGNvbnN0IG15RWRpdG9yID0gbmV3IE15RWRpdG9yKGVkaXRvcik7XG4gICAgICBjb25zdCBzaG91bGRTdG9wUHJvcGFnYXRpb24gPSBjYihteUVkaXRvcik7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIXNob3VsZFN0b3BQcm9wYWdhdGlvbiAmJlxuICAgICAgICB3aW5kb3cuZXZlbnQgJiZcbiAgICAgICAgd2luZG93LmV2ZW50LnR5cGUgPT09IFwia2V5ZG93blwiXG4gICAgICApIHtcbiAgICAgICAgbXlFZGl0b3IudHJpZ2dlck9uS2V5RG93bih3aW5kb3cuZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTGlzdCwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2VcIjtcblxuY29uc3QgYnVsbGV0U2lnbiA9IGAoPzpbLSorXXxcXFxcZCtcXFxcLilgO1xuXG5jb25zdCBsaXN0SXRlbVdpdGhvdXRTcGFjZXNSZSA9IG5ldyBSZWdFeHAoYF4ke2J1bGxldFNpZ259KCB8XFx0KWApO1xuY29uc3QgbGlzdEl0ZW1SZSA9IG5ldyBSZWdFeHAoYF5bIFxcdF0qJHtidWxsZXRTaWdufSggfFxcdClgKTtcbmNvbnN0IHN0cmluZ1dpdGhTcGFjZXNSZSA9IG5ldyBSZWdFeHAoYF5bIFxcdF0rYCk7XG5jb25zdCBwYXJzZUxpc3RJdGVtUmUgPSBuZXcgUmVnRXhwKGBeKFsgXFx0XSopKCR7YnVsbGV0U2lnbn0pKCB8XFx0KSguKikkYCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGVyUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGVyU2VsZWN0aW9uIHtcbiAgYW5jaG9yOiBSZWFkZXJQb3NpdGlvbjtcbiAgaGVhZDogUmVhZGVyUG9zaXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGVyIHtcbiAgZ2V0Q3Vyc29yKCk6IFJlYWRlclBvc2l0aW9uO1xuICBnZXRMaW5lKG46IG51bWJlcik6IHN0cmluZztcbiAgbGFzdExpbmUoKTogbnVtYmVyO1xuICBsaXN0U2VsZWN0aW9ucygpOiBSZWFkZXJTZWxlY3Rpb25bXTtcbiAgZ2V0QWxsRm9sZGVkTGluZXMoKTogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBQYXJzZUxpc3RMaXN0IHtcbiAgZ2V0Rmlyc3RMaW5lSW5kZW50KCk6IHN0cmluZztcbiAgc2V0Tm90ZXNJbmRlbnQobm90ZXNJbmRlbnQ6IHN0cmluZyk6IHZvaWQ7XG4gIGdldE5vdGVzSW5kZW50KCk6IHN0cmluZyB8IG51bGw7XG4gIGFkZExpbmUodGV4dDogc3RyaW5nKTogdm9pZDtcbiAgZ2V0UGFyZW50KCk6IFBhcnNlTGlzdExpc3QgfCBudWxsO1xuICBhZGRBZnRlckFsbChsaXN0OiBQYXJzZUxpc3RMaXN0KTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnNlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSkge31cblxuICBwYXJzZVJhbmdlKGVkaXRvcjogUmVhZGVyLCBmcm9tTGluZSA9IDAsIHRvTGluZSA9IGVkaXRvci5sYXN0TGluZSgpKTogUm9vdFtdIHtcbiAgICBjb25zdCBsaXN0czogUm9vdFtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gZnJvbUxpbmU7IGkgPD0gdG9MaW5lOyBpKyspIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShpKTtcblxuICAgICAgaWYgKGkgPT09IGZyb21MaW5lIHx8IHRoaXMuaXNMaXN0SXRlbShsaW5lKSkge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5wYXJzZVdpdGhMaW1pdHMoZWRpdG9yLCBpLCBmcm9tTGluZSwgdG9MaW5lKTtcblxuICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgIGxpc3RzLnB1c2gobGlzdCk7XG4gICAgICAgICAgaSA9IGxpc3QuZ2V0UmFuZ2UoKVsxXS5saW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RzO1xuICB9XG5cbiAgcGFyc2UoZWRpdG9yOiBSZWFkZXIsIGN1cnNvciA9IGVkaXRvci5nZXRDdXJzb3IoKSk6IFJvb3QgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZVdpdGhMaW1pdHMoZWRpdG9yLCBjdXJzb3IubGluZSwgMCwgZWRpdG9yLmxhc3RMaW5lKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVdpdGhMaW1pdHMoXG4gICAgZWRpdG9yOiBSZWFkZXIsXG4gICAgcGFyc2luZ1N0YXJ0TGluZTogbnVtYmVyLFxuICAgIGxpbWl0RnJvbTogbnVtYmVyLFxuICAgIGxpbWl0VG86IG51bWJlclxuICApOiBSb290IHwgbnVsbCB7XG4gICAgY29uc3QgZCA9IHRoaXMubG9nZ2VyLmJpbmQoXCJwYXJzZUxpc3RcIik7XG4gICAgY29uc3QgZXJyb3IgPSAobXNnOiBzdHJpbmcpOiBudWxsID0+IHtcbiAgICAgIGQobXNnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUocGFyc2luZ1N0YXJ0TGluZSk7XG5cbiAgICBsZXQgbGlzdExvb2tpbmdQb3M6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuaXNMaXN0SXRlbShsaW5lKSkge1xuICAgICAgbGlzdExvb2tpbmdQb3MgPSBwYXJzaW5nU3RhcnRMaW5lO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0xpbmVXaXRoSW5kZW50KGxpbmUpKSB7XG4gICAgICBsZXQgbGlzdExvb2tpbmdQb3NTZWFyY2ggPSBwYXJzaW5nU3RhcnRMaW5lIC0gMTtcbiAgICAgIHdoaWxlIChsaXN0TG9va2luZ1Bvc1NlYXJjaCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShsaXN0TG9va2luZ1Bvc1NlYXJjaCk7XG4gICAgICAgIGlmICh0aGlzLmlzTGlzdEl0ZW0obGluZSkpIHtcbiAgICAgICAgICBsaXN0TG9va2luZ1BvcyA9IGxpc3RMb29raW5nUG9zU2VhcmNoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgICAgIGxpc3RMb29raW5nUG9zU2VhcmNoLS07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobGlzdExvb2tpbmdQb3MgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGxpc3RTdGFydExpbmU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCBsaXN0U3RhcnRMaW5lTG9va3VwID0gbGlzdExvb2tpbmdQb3M7XG4gICAgd2hpbGUgKGxpc3RTdGFydExpbmVMb29rdXAgPj0gMCkge1xuICAgICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKGxpc3RTdGFydExpbmVMb29rdXApO1xuICAgICAgaWYgKCF0aGlzLmlzTGlzdEl0ZW0obGluZSkgJiYgIXRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzTGlzdEl0ZW1XaXRob3V0U3BhY2VzKGxpbmUpKSB7XG4gICAgICAgIGxpc3RTdGFydExpbmUgPSBsaXN0U3RhcnRMaW5lTG9va3VwO1xuICAgICAgICBpZiAobGlzdFN0YXJ0TGluZUxvb2t1cCA8PSBsaW1pdEZyb20pIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdFN0YXJ0TGluZUxvb2t1cC0tO1xuICAgIH1cblxuICAgIGlmIChsaXN0U3RhcnRMaW5lID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgbGlzdEVuZExpbmUgPSBsaXN0TG9va2luZ1BvcztcbiAgICBsZXQgbGlzdEVuZExpbmVMb29rdXAgPSBsaXN0TG9va2luZ1BvcztcbiAgICB3aGlsZSAobGlzdEVuZExpbmVMb29rdXAgPD0gZWRpdG9yLmxhc3RMaW5lKCkpIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShsaXN0RW5kTGluZUxvb2t1cCk7XG4gICAgICBpZiAoIXRoaXMuaXNMaXN0SXRlbShsaW5lKSAmJiAhdGhpcy5pc0xpbmVXaXRoSW5kZW50KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzRW1wdHlMaW5lKGxpbmUpKSB7XG4gICAgICAgIGxpc3RFbmRMaW5lID0gbGlzdEVuZExpbmVMb29rdXA7XG4gICAgICB9XG4gICAgICBpZiAobGlzdEVuZExpbmVMb29rdXAgPj0gbGltaXRUbykge1xuICAgICAgICBsaXN0RW5kTGluZSA9IGxpbWl0VG87XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgbGlzdEVuZExpbmVMb29rdXArKztcbiAgICB9XG5cbiAgICBpZiAobGlzdFN0YXJ0TGluZSA+IHBhcnNpbmdTdGFydExpbmUgfHwgbGlzdEVuZExpbmUgPCBwYXJzaW5nU3RhcnRMaW5lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByb290ID0gbmV3IFJvb3QoXG4gICAgICB7IGxpbmU6IGxpc3RTdGFydExpbmUsIGNoOiAwIH0sXG4gICAgICB7IGxpbmU6IGxpc3RFbmRMaW5lLCBjaDogZWRpdG9yLmdldExpbmUobGlzdEVuZExpbmUpLmxlbmd0aCB9LFxuICAgICAgZWRpdG9yLmxpc3RTZWxlY3Rpb25zKCkubWFwKChyKSA9PiAoe1xuICAgICAgICBhbmNob3I6IHsgbGluZTogci5hbmNob3IubGluZSwgY2g6IHIuYW5jaG9yLmNoIH0sXG4gICAgICAgIGhlYWQ6IHsgbGluZTogci5oZWFkLmxpbmUsIGNoOiByLmhlYWQuY2ggfSxcbiAgICAgIH0pKVxuICAgICk7XG5cbiAgICBsZXQgY3VycmVudFBhcmVudDogUGFyc2VMaXN0TGlzdCA9IHJvb3QuZ2V0Um9vdExpc3QoKTtcbiAgICBsZXQgY3VycmVudExpc3Q6IFBhcnNlTGlzdExpc3QgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgY3VycmVudEluZGVudCA9IFwiXCI7XG5cbiAgICBjb25zdCBmb2xkZWRMaW5lcyA9IGVkaXRvci5nZXRBbGxGb2xkZWRMaW5lcygpO1xuXG4gICAgZm9yIChsZXQgbCA9IGxpc3RTdGFydExpbmU7IGwgPD0gbGlzdEVuZExpbmU7IGwrKykge1xuICAgICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKGwpO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IHBhcnNlTGlzdEl0ZW1SZS5leGVjKGxpbmUpO1xuXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBjb25zdCBbLCBpbmRlbnQsIGJ1bGxldCwgc3BhY2VBZnRlckJ1bGxldCwgY29udGVudF0gPSBtYXRjaGVzO1xuXG4gICAgICAgIGNvbnN0IGNvbXBhcmVMZW5ndGggPSBNYXRoLm1pbihjdXJyZW50SW5kZW50Lmxlbmd0aCwgaW5kZW50Lmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IGluZGVudFNsaWNlID0gaW5kZW50LnNsaWNlKDAsIGNvbXBhcmVMZW5ndGgpO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZW50U2xpY2UgPSBjdXJyZW50SW5kZW50LnNsaWNlKDAsIGNvbXBhcmVMZW5ndGgpO1xuXG4gICAgICAgIGlmIChpbmRlbnRTbGljZSAhPT0gY3VycmVudEluZGVudFNsaWNlKSB7XG4gICAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBjdXJyZW50SW5kZW50U2xpY2VcbiAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csIFwiU1wiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcdC9nLCBcIlRcIik7XG4gICAgICAgICAgY29uc3QgZ290ID0gaW5kZW50U2xpY2UucmVwbGFjZSgvIC9nLCBcIlNcIikucmVwbGFjZSgvXFx0L2csIFwiVFwiKTtcblxuICAgICAgICAgIHJldHVybiBlcnJvcihcbiAgICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgaW5kZW50IFwiJHtleHBlY3RlZH1cIiwgZ290IFwiJHtnb3R9XCJgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbmRlbnQubGVuZ3RoID4gY3VycmVudEluZGVudC5sZW5ndGgpIHtcbiAgICAgICAgICBjdXJyZW50UGFyZW50ID0gY3VycmVudExpc3Q7XG4gICAgICAgICAgY3VycmVudEluZGVudCA9IGluZGVudDtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRlbnQubGVuZ3RoIDwgY3VycmVudEluZGVudC5sZW5ndGgpIHtcbiAgICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICBjdXJyZW50UGFyZW50LmdldEZpcnN0TGluZUluZGVudCgpLmxlbmd0aCA+PSBpbmRlbnQubGVuZ3RoICYmXG4gICAgICAgICAgICBjdXJyZW50UGFyZW50LmdldFBhcmVudCgpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gY3VycmVudFBhcmVudC5nZXRQYXJlbnQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudEluZGVudCA9IGluZGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvbGRSb290ID0gZm9sZGVkTGluZXMuaW5jbHVkZXMobCk7XG5cbiAgICAgICAgY3VycmVudExpc3QgPSBuZXcgTGlzdChcbiAgICAgICAgICByb290LFxuICAgICAgICAgIGluZGVudCxcbiAgICAgICAgICBidWxsZXQsXG4gICAgICAgICAgc3BhY2VBZnRlckJ1bGxldCxcbiAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgIGZvbGRSb290XG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRQYXJlbnQuYWRkQWZ0ZXJBbGwoY3VycmVudExpc3QpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgICAgaWYgKCFjdXJyZW50TGlzdCkge1xuICAgICAgICAgIHJldHVybiBlcnJvcihcbiAgICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgbGlzdCBpdGVtLCBnb3QgZW1wdHkgbGluZWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5kZW50VG9DaGVjayA9IGN1cnJlbnRMaXN0LmdldE5vdGVzSW5kZW50KCkgfHwgY3VycmVudEluZGVudDtcblxuICAgICAgICBpZiAobGluZS5pbmRleE9mKGluZGVudFRvQ2hlY2spICE9PSAwKSB7XG4gICAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBpbmRlbnRUb0NoZWNrLnJlcGxhY2UoLyAvZywgXCJTXCIpLnJlcGxhY2UoL1xcdC9nLCBcIlRcIik7XG4gICAgICAgICAgY29uc3QgZ290ID0gbGluZVxuICAgICAgICAgICAgLm1hdGNoKC9eWyBcXHRdKi8pWzBdXG4gICAgICAgICAgICAucmVwbGFjZSgvIC9nLCBcIlNcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHQvZywgXCJUXCIpO1xuXG4gICAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBsaXN0OiBleHBlY3RlZCBpbmRlbnQgXCIke2V4cGVjdGVkfVwiLCBnb3QgXCIke2dvdH1cImBcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjdXJyZW50TGlzdC5nZXROb3Rlc0luZGVudCgpKSB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGxpbmUubWF0Y2goL15bIFxcdF0rLyk7XG5cbiAgICAgICAgICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlc1swXS5sZW5ndGggPD0gY3VycmVudEluZGVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICgvXlxccyskLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgc29tZSBpbmRlbnQsIGdvdCBubyBpbmRlbnRgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGN1cnJlbnRMaXN0LnNldE5vdGVzSW5kZW50KG1hdGNoZXNbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudExpc3QuYWRkTGluZShsaW5lLnNsaWNlKGN1cnJlbnRMaXN0LmdldE5vdGVzSW5kZW50KCkubGVuZ3RoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBsaXN0OiBleHBlY3RlZCBsaXN0IGl0ZW0gb3Igbm90ZSwgZ290IFwiJHtsaW5lfVwiYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VtcHR5TGluZShsaW5lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGluZS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGlzTGluZVdpdGhJbmRlbnQobGluZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZ1dpdGhTcGFjZXNSZS50ZXN0KGxpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xpc3RJdGVtKGxpbmU6IHN0cmluZykge1xuICAgIHJldHVybiBsaXN0SXRlbVJlLnRlc3QobGluZSk7XG4gIH1cblxuICBwcml2YXRlIGlzTGlzdEl0ZW1XaXRob3V0U3BhY2VzKGxpbmU6IHN0cmluZykge1xuICAgIHJldHVybiBsaXN0SXRlbVdpdGhvdXRTcGFjZXNSZS50ZXN0KGxpbmUpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBBcHBseUNoYW5nZXNTZXJ2aWNlIH0gZnJvbSBcIi4vQXBwbHlDaGFuZ2VzU2VydmljZVwiO1xuaW1wb3J0IHsgUGFyc2VyU2VydmljZSB9IGZyb20gXCIuL1BhcnNlclNlcnZpY2VcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL09wZXJhdGlvblwiO1xuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGFyc2VyOiBQYXJzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwbHlDaGFuZ2VzOiBBcHBseUNoYW5nZXNTZXJ2aWNlXG4gICkge31cblxuICBldmFsT3BlcmF0aW9uKHJvb3Q6IFJvb3QsIG9wOiBPcGVyYXRpb24sIGVkaXRvcjogTXlFZGl0b3IpIHtcbiAgICBvcC5wZXJmb3JtKCk7XG5cbiAgICBpZiAob3Auc2hvdWxkVXBkYXRlKCkpIHtcbiAgICAgIHRoaXMuYXBwbHlDaGFuZ2VzLmFwcGx5Q2hhbmdlcyhlZGl0b3IsIHJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzaG91bGRVcGRhdGU6IG9wLnNob3VsZFVwZGF0ZSgpLFxuICAgICAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uOiBvcC5zaG91bGRTdG9wUHJvcGFnYXRpb24oKSxcbiAgICB9O1xuICB9XG5cbiAgcGVyZm9ybU9wZXJhdGlvbihcbiAgICBjYjogKHJvb3Q6IFJvb3QpID0+IE9wZXJhdGlvbixcbiAgICBlZGl0b3I6IE15RWRpdG9yLFxuICAgIGN1cnNvciA9IGVkaXRvci5nZXRDdXJzb3IoKVxuICApIHtcbiAgICBjb25zdCByb290ID0gdGhpcy5wYXJzZXIucGFyc2UoZWRpdG9yLCBjdXJzb3IpO1xuXG4gICAgaWYgKCFyb290KSB7XG4gICAgICByZXR1cm4geyBzaG91bGRVcGRhdGU6IGZhbHNlLCBzaG91bGRTdG9wUHJvcGFnYXRpb246IGZhbHNlIH07XG4gICAgfVxuXG4gICAgY29uc3Qgb3AgPSBjYihyb290KTtcblxuICAgIHJldHVybiB0aGlzLmV2YWxPcGVyYXRpb24ocm9vdCwgb3AsIGVkaXRvcik7XG4gIH1cbn1cbiIsImV4cG9ydCB0eXBlIExpc3RMaW5lQWN0aW9uID0gXCJub25lXCIgfCBcInpvb20taW5cIiB8IFwidG9nZ2xlLWZvbGRpbmdcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3Mge1xuICBzdHlsZUxpc3RzOiBib29sZWFuO1xuICBkZWJ1ZzogYm9vbGVhbjtcbiAgc3RpY2tDdXJzb3I6IGJvb2xlYW47XG4gIGJldHRlckVudGVyOiBib29sZWFuO1xuICBiZXR0ZXJUYWI6IGJvb2xlYW47XG4gIHNlbGVjdEFsbDogYm9vbGVhbjtcbiAgbGlzdExpbmVzOiBib29sZWFuO1xuICBsaXN0TGluZUFjdGlvbjogTGlzdExpbmVBY3Rpb247XG59XG5cbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncyA9IHtcbiAgc3R5bGVMaXN0czogdHJ1ZSxcbiAgZGVidWc6IGZhbHNlLFxuICBzdGlja0N1cnNvcjogdHJ1ZSxcbiAgYmV0dGVyRW50ZXI6IHRydWUsXG4gIGJldHRlclRhYjogdHJ1ZSxcbiAgc2VsZWN0QWxsOiB0cnVlLFxuICBsaXN0TGluZXM6IGZhbHNlLFxuICBsaXN0TGluZUFjdGlvbjogXCJ0b2dnbGUtZm9sZGluZ1wiLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlIHtcbiAgbG9hZERhdGEoKTogUHJvbWlzZTxPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3M+O1xuICBzYXZlRGF0YShzZXR0aWduczogT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPjtcbn1cblxudHlwZSBLID0ga2V5b2YgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzO1xudHlwZSBDYWxsYmFjazxUIGV4dGVuZHMgSz4gPSAoY2I6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nc1tUXSkgPT4gdm9pZDtcblxuZXhwb3J0IGNsYXNzIFNldHRpbmdzU2VydmljZSBpbXBsZW1lbnRzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncyB7XG4gIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZTtcbiAgcHJpdmF0ZSB2YWx1ZXM6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncztcbiAgcHJpdmF0ZSBoYW5kbGVyczogTWFwPEssIFNldDxDYWxsYmFjazxLPj4+O1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgICB0aGlzLnN0b3JhZ2UgPSBzdG9yYWdlO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBuZXcgTWFwKCk7XG4gIH1cblxuICBnZXQgc3R5bGVMaXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuc3R5bGVMaXN0cztcbiAgfVxuICBzZXQgc3R5bGVMaXN0cyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwic3R5bGVMaXN0c1wiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgZGVidWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmRlYnVnO1xuICB9XG4gIHNldCBkZWJ1Zyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwiZGVidWdcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IHN0aWNrQ3Vyc29yKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5zdGlja0N1cnNvcjtcbiAgfVxuICBzZXQgc3RpY2tDdXJzb3IodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcInN0aWNrQ3Vyc29yXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBiZXR0ZXJFbnRlcigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuYmV0dGVyRW50ZXI7XG4gIH1cbiAgc2V0IGJldHRlckVudGVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJiZXR0ZXJFbnRlclwiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgYmV0dGVyVGFiKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5iZXR0ZXJUYWI7XG4gIH1cbiAgc2V0IGJldHRlclRhYih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwiYmV0dGVyVGFiXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLnNlbGVjdEFsbDtcbiAgfVxuICBzZXQgc2VsZWN0QWxsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJzZWxlY3RBbGxcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGxpc3RMaW5lcygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMubGlzdExpbmVzO1xuICB9XG4gIHNldCBsaXN0TGluZXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcImxpc3RMaW5lc1wiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgbGlzdExpbmVBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmxpc3RMaW5lQWN0aW9uO1xuICB9XG4gIHNldCBsaXN0TGluZUFjdGlvbih2YWx1ZTogTGlzdExpbmVBY3Rpb24pIHtcbiAgICB0aGlzLnNldChcImxpc3RMaW5lQWN0aW9uXCIsIHZhbHVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlPFQgZXh0ZW5kcyBLPihrZXk6IFQsIGNiOiBDYWxsYmFjazxUPikge1xuICAgIGlmICghdGhpcy5oYW5kbGVycy5oYXMoa2V5KSkge1xuICAgICAgdGhpcy5oYW5kbGVycy5zZXQoa2V5LCBuZXcgU2V0KCkpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlcnMuZ2V0KGtleSkuYWRkKGNiKTtcbiAgfVxuXG4gIHJlbW92ZUNhbGxiYWNrPFQgZXh0ZW5kcyBLPihrZXk6IFQsIGNiOiBDYWxsYmFjazxUPik6IHZvaWQge1xuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycy5nZXQoa2V5KTtcblxuICAgIGlmIChoYW5kbGVycykge1xuICAgICAgaGFuZGxlcnMuZGVsZXRlKGNiKTtcbiAgICB9XG4gIH1cblxuICByZXNldCgpIHtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhERUZBVUxUX1NFVFRJTkdTKSkge1xuICAgICAgdGhpcy5zZXQoayBhcyBrZXlvZiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3MsIHYpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy52YWx1ZXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBERUZBVUxUX1NFVFRJTkdTLFxuICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLmxvYWREYXRhKClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2F2ZURhdGEodGhpcy52YWx1ZXMpO1xuICB9XG5cbiAgc2V0PFQgZXh0ZW5kcyBLPihrZXk6IFQsIHZhbHVlOiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3NbVF0pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlc1trZXldID0gdmFsdWU7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gdGhpcy5oYW5kbGVycy5nZXQoa2V5KTtcblxuICAgIGlmICghY2FsbGJhY2tzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjYiBvZiBjYWxsYmFja3MudmFsdWVzKCkpIHtcbiAgICAgIGNiKHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IE5vdGljZSwgUGx1Z2luIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmVcIjtcbmltcG9ydCB7IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudEZlYXR1cmVcIjtcbmltcG9ydCB7IEVudGVyT3V0ZGVudElmTGluZUlzRW1wdHlGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmVcIjtcbmltcG9ydCB7IEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9FbnRlclNob3VsZENyZWF0ZU5ld0l0ZW1PbkNoaWxkTGV2ZWxGZWF0dXJlXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgRm9sZEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9Gb2xkRmVhdHVyZVwiO1xuaW1wb3J0IHsgTGluZXNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvTGluZXNGZWF0dXJlXCI7XG5pbXBvcnQgeyBMaXN0c1N0eWxlc0ZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9MaXN0c1N0eWxlc0ZlYXR1cmVcIjtcbmltcG9ydCB7IE1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL01vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZUl0ZW1zRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL01vdmVJdGVtc0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdEFsbEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9TZWxlY3RBbGxGZWF0dXJlXCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NlbGVjdGlvblNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYkZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9TZXR0aW5nc1RhYkZlYXR1cmVcIjtcbmltcG9ydCB7IFNoaWZ0RW50ZXJTaG91bGRDcmVhdGVOb3RlRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NoaWZ0RW50ZXJTaG91bGRDcmVhdGVOb3RlRmVhdHVyZVwiO1xuaW1wb3J0IHsgQXBwbHlDaGFuZ2VzU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL0FwcGx5Q2hhbmdlc1NlcnZpY2VcIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvTG9nZ2VyU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQYXJzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvUGFyc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwcml2YXRlIGZlYXR1cmVzOiBGZWF0dXJlW107XG4gIHByb3RlY3RlZCBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlO1xuICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlO1xuICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZTtcbiAgcHJpdmF0ZSBhcHBseUNoYW5nZXM6IEFwcGx5Q2hhbmdlc1NlcnZpY2U7XG4gIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2U7XG4gIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlO1xuXG4gIGFzeW5jIG9ubG9hZCgpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBvYnNpZGlhbi1vdXRsaW5lcmApO1xuXG4gICAgdGhpcy5vYnNpZGlhbiA9IG5ldyBPYnNpZGlhblNlcnZpY2UodGhpcy5hcHApO1xuXG4gICAgaWYgKHRoaXMub2JzaWRpYW4uaXNMZWdhY3lFZGl0b3JFbmFibGVkKCkpIHtcbiAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgIGBPdXRsaW5lciBwbHVnaW4gZG9lcyBub3Qgc3VwcG9ydCBsZWdhY3kgZWRpdG9yIG1vZGUgc3RhcnRpbmcgZnJvbSB2ZXJzaW9uIDIuMC4gUGxlYXNlIGRpc2FibGUgdGhlIFwiVXNlIGxlZ2FjeSBlZGl0b3JcIiBvcHRpb24gb3IgbWFudWFsbHkgaW5zdGFsbCB2ZXJzaW9uIDEuMCBvZiBPdXRsaW5lciBwbHVnaW4uYCxcbiAgICAgICAgMzAwMDBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXR0aW5ncyA9IG5ldyBTZXR0aW5nc1NlcnZpY2UodGhpcyk7XG4gICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5sb2FkKCk7XG5cbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXJTZXJ2aWNlKHRoaXMuc2V0dGluZ3MpO1xuXG4gICAgdGhpcy5wYXJzZXIgPSBuZXcgUGFyc2VyU2VydmljZSh0aGlzLmxvZ2dlcik7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMgPSBuZXcgQXBwbHlDaGFuZ2VzU2VydmljZSgpO1xuICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvbiA9IG5ldyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZShcbiAgICAgIHRoaXMucGFyc2VyLFxuICAgICAgdGhpcy5hcHBseUNoYW5nZXNcbiAgICApO1xuXG4gICAgdGhpcy5pbWUgPSBuZXcgSU1FU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuaW1lLmxvYWQoKTtcblxuICAgIHRoaXMuZmVhdHVyZXMgPSBbXG4gICAgICBuZXcgU2V0dGluZ3NUYWJGZWF0dXJlKHRoaXMsIHRoaXMuc2V0dGluZ3MpLFxuICAgICAgbmV3IExpc3RzU3R5bGVzRmVhdHVyZSh0aGlzLnNldHRpbmdzLCB0aGlzLm9ic2lkaWFuKSxcbiAgICAgIG5ldyBFbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBFbnRlclNob3VsZENyZWF0ZU5ld0l0ZW1GZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IFNlbGVjdGlvblNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IEZvbGRGZWF0dXJlKHRoaXMsIHRoaXMub2JzaWRpYW4pLFxuICAgICAgbmV3IFNlbGVjdEFsbEZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgTW92ZUl0ZW1zRmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBTaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgTGluZXNGZWF0dXJlKHRoaXMsIHRoaXMuc2V0dGluZ3MsIHRoaXMub2JzaWRpYW4sIHRoaXMucGFyc2VyKSxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIHRoaXMuZmVhdHVyZXMpIHtcbiAgICAgIGF3YWl0IGZlYXR1cmUubG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9udW5sb2FkKCkge1xuICAgIGNvbnNvbGUubG9nKGBVbmxvYWRpbmcgb2JzaWRpYW4tb3V0bGluZXJgKTtcblxuICAgIGF3YWl0IHRoaXMuaW1lLnVubG9hZCgpO1xuXG4gICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIHRoaXMuZmVhdHVyZXMpIHtcbiAgICAgIGF3YWl0IGZlYXR1cmUudW5sb2FkKCk7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsia2V5bWFwIiwiRWRpdG9yU3RhdGUiLCJQcmVjIiwiTm90aWNlIiwiZm9sZGVkUmFuZ2VzIiwiZm9sZGFibGUiLCJmb2xkRWZmZWN0IiwidW5mb2xkRWZmZWN0IiwicnVuU2NvcGVIYW5kbGVycyIsIm9ic2lkaWFuIiwiZWRpdG9yVmlld0ZpZWxkIiwiVmlld1BsdWdpbiIsIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIiwiUGx1Z2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMs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 diff --git a/notes/.obsidian/plugins/obsidian-outliner/manifest.json b/notes/.obsidian/plugins/obsidian-outliner/manifest.json index a23ed97..226de7f 100644 --- a/notes/.obsidian/plugins/obsidian-outliner/manifest.json +++ b/notes/.obsidian/plugins/obsidian-outliner/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-outliner", "name": "Outliner", - "version": "2.3.0", + "version": "3.0.0", "minAppVersion": "0.15.2", "description": "Work with your lists like in Workflowy or RoamResearch.", "author": "Viacheslav Slinko", diff --git a/notes/.obsidian/plugins/templater-obsidian/main.js b/notes/.obsidian/plugins/templater-obsidian/main.js index 545e445..b4d5af2 100644 --- a/notes/.obsidian/plugins/templater-obsidian/main.js +++ b/notes/.obsidian/plugins/templater-obsidian/main.js @@ -68,7 +68,7 @@ var __async = (__this, __arguments, generator) => { __export(exports, { default: () => TemplaterPlugin }); -var import_obsidian19 = __toModule(require("obsidian")); +var import_obsidian18 = __toModule(require("obsidian")); // src/settings/Settings.ts var import_obsidian6 = __toModule(require("obsidian")); @@ -265,33 +265,52 @@ var max = Math.max; var min = Math.min; var round = Math.round; +// node_modules/@popperjs/core/lib/utils/userAgent.js +function getUAString() { + var uaData = navigator.userAgentData; + if (uaData != null && uaData.brands) { + return uaData.brands.map(function(item) { + return item.brand + "/" + item.version; + }).join(" "); + } + return navigator.userAgent; +} + +// node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js +function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); +} + // node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js -function getBoundingClientRect(element, includeScale) { +function getBoundingClientRect(element, includeScale, isFixedStrategy) { if (includeScale === void 0) { includeScale = false; } - var rect = element.getBoundingClientRect(); + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + var clientRect = element.getBoundingClientRect(); var scaleX = 1; var scaleY = 1; - if (isHTMLElement(element) && includeScale) { - var offsetHeight = element.offsetHeight; - var offsetWidth = element.offsetWidth; - if (offsetWidth > 0) { - scaleX = round(rect.width) / offsetWidth || 1; - } - if (offsetHeight > 0) { - scaleY = round(rect.height) / offsetHeight || 1; - } + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; } + var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport; + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; return { - width: rect.width / scaleX, - height: rect.height / scaleY, - top: rect.top / scaleY, - right: rect.right / scaleX, - bottom: rect.bottom / scaleY, - left: rect.left / scaleX, - x: rect.left / scaleX, - y: rect.top / scaleY + width, + height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x, + y }; } @@ -362,8 +381,8 @@ function getTrueOffsetParent(element) { return element.offsetParent; } function getContainingBlock(element) { - var isFirefox = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1; - var isIE = navigator.userAgent.indexOf("Trident") !== -1; + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); if (isIE && isHTMLElement(element)) { var elementCss = getComputedStyle(element); if (elementCss.position === "fixed") { @@ -711,7 +730,7 @@ function getWindowScrollBarX(element) { } // node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js -function getViewportRect(element) { +function getViewportRect(element, strategy) { var win = getWindow(element); var html = getDocumentElement(element); var visualViewport = win.visualViewport; @@ -722,7 +741,8 @@ function getViewportRect(element) { if (visualViewport) { width = visualViewport.width; height = visualViewport.height; - if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + var layoutViewport = isLayoutViewport(); + if (layoutViewport || !layoutViewport && strategy === "fixed") { x = visualViewport.offsetLeft; y = visualViewport.offsetTop; } @@ -798,8 +818,8 @@ function rectToClientRect(rect) { } // node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js -function getInnerBoundingClientRect(element) { - var rect = getBoundingClientRect(element); +function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === "fixed"); rect.top = rect.top + element.clientTop; rect.left = rect.left + element.clientLeft; rect.bottom = rect.top + element.clientHeight; @@ -810,8 +830,8 @@ function getInnerBoundingClientRect(element) { rect.y = rect.top; return rect; } -function getClientRectFromMixedType(element, clippingParent) { - return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); +function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); } function getClippingParents(element) { var clippingParents2 = listScrollParents(getParentNode(element)); @@ -824,18 +844,18 @@ function getClippingParents(element) { return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; }); } -function getClippingRect(element, boundary, rootBoundary) { +function getClippingRect(element, boundary, rootBoundary, strategy) { var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary); var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); var firstClippingParent = clippingParents2[0]; var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { - var rect = getClientRectFromMixedType(element, clippingParent); + var rect = getClientRectFromMixedType(element, clippingParent, strategy); accRect.top = max(rect.top, accRect.top); accRect.right = min(rect.right, accRect.right); accRect.bottom = min(rect.bottom, accRect.bottom); accRect.left = max(rect.left, accRect.left); return accRect; - }, getClientRectFromMixedType(element, firstClippingParent)); + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); clippingRect.width = clippingRect.right - clippingRect.left; clippingRect.height = clippingRect.bottom - clippingRect.top; clippingRect.x = clippingRect.left; @@ -903,12 +923,12 @@ function detectOverflow(state, options) { if (options === void 0) { options = {}; } - var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; + var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); var altContext = elementContext === popper ? reference : popper; var popperRect = state.rects.popper; var element = state.elements[altBoundary ? altContext : elementContext]; - var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); var referenceClientRect = getBoundingClientRect(state.elements.reference); var popperOffsets2 = computeOffsets({ reference: referenceClientRect, @@ -1315,7 +1335,7 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { var isOffsetParentAnElement = isHTMLElement(offsetParent); var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); var documentElement = getDocumentElement(offsetParent); - var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); var scroll = { scrollLeft: 0, scrollTop: 0 @@ -1955,7 +1975,8 @@ var DEFAULT_SETTINGS = { folder_templates: [{ folder: "", template: "" }], syntax_highlighting: true, enabled_templates_hotkeys: [""], - startup_templates: [""] + startup_templates: [""], + enable_ribbon_icon: true }; var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { constructor(app, plugin) { @@ -1971,6 +1992,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { this.add_syntax_highlighting_setting(); this.add_auto_jump_to_cursor(); this.add_trigger_on_new_file_creation_setting(); + this.add_ribbon_icon_setting(); this.add_templates_hotkeys_setting(); if (this.plugin.settings.trigger_on_file_creation) { this.add_folder_templates_setting(); @@ -2035,6 +2057,24 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { }); }); } + add_ribbon_icon_setting() { + const desc = document.createDocumentFragment(); + desc.append("Show Templater icon in sidebar ribbon, allowing you to quickly use templates anywhere."); + new import_obsidian6.Setting(this.containerEl).setName("Show icon in sidebar").setDesc(desc).addToggle((toggle) => { + toggle.setValue(this.plugin.settings.enable_ribbon_icon).onChange((enable_ribbon_icon) => { + var _a; + this.plugin.settings.enable_ribbon_icon = enable_ribbon_icon; + this.plugin.save_settings(); + if (this.plugin.settings.enable_ribbon_icon) { + this.plugin.addRibbonIcon("templater-icon", "Templater", () => __async(this, null, function* () { + this.fuzzy_suggester.insert_template(); + })).setAttribute("id", "rb-templater-icon"); + } else { + (_a = document.getElementById("rb-templater-icon")) == null ? void 0 : _a.remove(); + } + }); + }); + } add_templates_hotkeys_setting() { this.containerEl.createEl("h2", { text: "Template Hotkeys" }); const desc = document.createDocumentFragment(); @@ -2388,7 +2428,7 @@ var UNSUPPORTED_MOBILE_TEMPLATE = "Error_MobileUnsupportedTemplate"; var ICON_DATA = ``; // src/core/Templater.ts -var import_obsidian14 = __toModule(require("obsidian")); +var import_obsidian13 = __toModule(require("obsidian")); // src/core/functions/internal_functions/InternalModule.ts var InternalModule = class { @@ -2470,6 +2510,7 @@ var InternalModuleDate = class extends InternalModule { // src/core/functions/internal_functions/file/InternalModuleFile.ts var import_obsidian8 = __toModule(require("obsidian")); +var import_path = __toModule(require("path")); var DEPTH_LIMIT = 10; var InternalModuleFile = class extends InternalModule { constructor() { @@ -2621,9 +2662,17 @@ var InternalModuleFile = class extends InternalModule { }; } generate_move() { - return (path) => __async(this, null, function* () { - const new_path = (0, import_obsidian8.normalizePath)(`${path}.${this.config.target_file.extension}`); - yield this.app.fileManager.renameFile(this.config.target_file, new_path); + return (path, file_to_move) => __async(this, null, function* () { + const file = file_to_move || this.config.target_file; + const new_path = (0, import_obsidian8.normalizePath)(`${path}.${file.extension}`); + if (import_obsidian8.Platform.isMobileApp) { + return UNSUPPORTED_MOBILE_TEMPLATE; + } + if (!(this.app.vault.adapter instanceof import_obsidian8.FileSystemAdapter)) { + throw new TemplaterError("app.vault is not a FileSystemAdapter instance"); + } + this.app.vault.adapter.mkdir((0, import_path.dirname)(new_path).split(import_path.sep).pop()); + yield this.app.fileManager.renameFile(file, new_path); return ""; }); } @@ -2690,29 +2739,46 @@ var InternalModuleWeb = class extends InternalModule { } getRequest(url) { return __async(this, null, function* () { - const response = yield fetch(url); - if (!response.ok) { + try { + const response = yield fetch(url); + if (!response.ok) { + throw new TemplaterError("Error performing GET request"); + } + return response; + } catch (error) { throw new TemplaterError("Error performing GET request"); } - return response; }); } generate_daily_quote() { return () => __async(this, null, function* () { - const response = yield this.getRequest("https://api.quotable.io/random"); - const json = yield response.json(); - const author = json.author; - const quote = json.content; - const new_content = `> ${quote} + try { + const response = yield this.getRequest("https://api.quotable.io/random"); + const json = yield response.json(); + const author = json.author; + const quote = json.content; + const new_content = `> ${quote} > \u2014 ${author}`; - return new_content; + return new_content; + } catch (error) { + new TemplaterError("Error generating daily quote"); + return "Error generating daily quote"; + } }); } generate_random_picture() { - return (size, query) => __async(this, null, function* () { - const response = yield this.getRequest(`https://source.unsplash.com/random/${size != null ? size : ""}?${query != null ? query : ""}`); - const url = response.url; - return `![tp.web.random_picture](${url})`; + return (size, query, include_size = false) => __async(this, null, function* () { + try { + const response = yield this.getRequest(`https://source.unsplash.com/random/${size != null ? size : ""}?${query != null ? query : ""}`); + const url = response.url; + if (include_size) { + return `![tp.web.random_picture|${size}](${url})`; + } + return `![tp.web.random_picture](${url})`; + } catch (error) { + new TemplaterError("Error generating random picture"); + return "Error generating random picture"; + } }); } }; @@ -2741,10 +2807,11 @@ var import_obsidian11 = __toModule(require("obsidian")); // src/core/functions/internal_functions/system/PromptModal.ts var import_obsidian9 = __toModule(require("obsidian")); var PromptModal = class extends import_obsidian9.Modal { - constructor(app, prompt_text, default_value) { + constructor(app, prompt_text, default_value, multi_line) { super(app); this.prompt_text = prompt_text; this.default_value = default_value; + this.multi_line = multi_line; this.submitted = false; } onOpen() { @@ -2754,28 +2821,55 @@ var PromptModal = class extends import_obsidian9.Modal { onClose() { this.contentEl.empty(); if (!this.submitted) { - this.reject(new TemplaterError("Cancelled prompt")); + this.reject(); } } createForm() { var _a; const div = this.contentEl.createDiv(); div.addClass("templater-prompt-div"); - const form = div.createEl("form"); - form.addClass("templater-prompt-form"); - form.type = "submit"; - form.onsubmit = (e) => { - this.submitted = true; - e.preventDefault(); - this.resolve(this.promptEl.value); - this.close(); - }; - this.promptEl = form.createEl("input"); - this.promptEl.type = "text"; - this.promptEl.placeholder = "Type text here..."; - this.promptEl.value = (_a = this.default_value) != null ? _a : ""; - this.promptEl.addClass("templater-prompt-input"); - this.promptEl.select(); + let textInput; + if (this.multi_line) { + textInput = new import_obsidian9.TextAreaComponent(div); + const buttonDiv = this.contentEl.createDiv(); + buttonDiv.addClass("templater-button-div"); + const submitButton = new import_obsidian9.ButtonComponent(buttonDiv); + submitButton.buttonEl.addClass("mod-cta"); + submitButton.setButtonText("Submit").onClick((evt) => { + this.resolveAndClose(evt); + }); + } else { + textInput = new import_obsidian9.TextComponent(div); + } + textInput.inputEl.addClass("templater-prompt-input"); + textInput.setPlaceholder("Type text here"); + textInput.setValue((_a = this.default_value) != null ? _a : ""); + textInput.onChange((value) => this.value = value); + textInput.inputEl.addEventListener("keydown", (evt) => this.enterCallback(evt)); + } + enterCallback(evt) { + if (this.multi_line) { + if (import_obsidian9.Platform.isDesktop) { + if (evt.shiftKey && evt.key === "Enter") { + } else if (evt.key === "Enter") { + this.resolveAndClose(evt); + } + } else { + if (evt.key === "Enter") { + evt.preventDefault(); + } + } + } else { + if (evt.key === "Enter") { + this.resolveAndClose(evt); + } + } + } + resolveAndClose(evt) { + this.submitted = true; + evt.preventDefault(); + this.resolve(this.value); + this.close(); } openAndGetValue(resolve2, reject) { return __async(this, null, function* () { @@ -2854,8 +2948,8 @@ var InternalModuleSystem = class extends InternalModule { }); } generate_prompt() { - return (prompt_text, default_value, throw_on_cancel = false) => __async(this, null, function* () { - const prompt = new PromptModal(this.app, prompt_text, default_value); + return (prompt_text, default_value, throw_on_cancel = false, multi_line = false) => __async(this, null, function* () { + const prompt = new PromptModal(this.app, prompt_text, default_value, multi_line); const promise = new Promise((resolve2, reject) => prompt.openAndGetValue(resolve2, reject)); try { return yield promise; @@ -2935,9 +3029,6 @@ var InternalFunctions = class { } }; -// src/core/functions/user_functions/UserFunctions.ts -var import_obsidian13 = __toModule(require("obsidian")); - // src/core/functions/user_functions/UserSystemFunctions.ts var import_child_process = __toModule(require("child_process")); var import_util = __toModule(require("util")); @@ -3062,7 +3153,7 @@ var UserFunctions = class { if (this.plugin.settings.enable_system_commands) { user_system_functions = yield this.user_system_functions.generate_object(config2); } - if (import_obsidian13.Platform.isDesktopApp && this.plugin.settings.user_scripts_folder) { + if (this.plugin.settings.user_scripts_folder) { user_script_functions = yield this.user_script_functions.generate_object(config2); } return __spreadValues(__spreadValues({}, user_system_functions), user_script_functions); @@ -3119,7 +3210,7 @@ var FunctionsGenerator = class { // node_modules/eta/dist/eta.es.js var import_fs = __toModule(require("fs")); -var import_path = __toModule(require("path")); +var import_path2 = __toModule(require("path")); function setPrototypeOf(obj, proto) { if (Object.setPrototypeOf) { Object.setPrototypeOf(obj, proto); @@ -3479,7 +3570,7 @@ function compile(str, config2) { } var _BOM = /^\uFEFF/; function getWholeFilePath(name, parentfile, isDirectory) { - var includePath = (0, import_path.resolve)(isDirectory ? parentfile : (0, import_path.dirname)(parentfile), name) + ((0, import_path.extname)(name) ? "" : ".eta"); + var includePath = (0, import_path2.resolve)(isDirectory ? parentfile : (0, import_path2.dirname)(parentfile), name) + ((0, import_path2.extname)(name) ? "" : ".eta"); return includePath; } function getPath(path, options) { @@ -3718,7 +3809,7 @@ var Templater = class { const created_note = yield this.app.fileManager.createNewMarkdownFile(folder, filename != null ? filename : "Untitled"); let running_config; let output_content; - if (template instanceof import_obsidian14.TFile) { + if (template instanceof import_obsidian13.TFile) { running_config = this.create_running_config(template, created_note, 0); output_content = yield errorWrapper(() => __async(this, null, function* () { return this.read_and_parse_template(running_config); @@ -3739,7 +3830,7 @@ var Templater = class { content: output_content }); if (open_new_note) { - const active_leaf = this.app.workspace.activeLeaf; + const active_leaf = this.app.workspace.getLeaf(false); if (!active_leaf) { log_error(new TemplaterError("No active leaf")); return; @@ -3757,7 +3848,7 @@ var Templater = class { } append_template_to_active_file(template_file) { return __async(this, null, function* () { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian14.MarkdownView); + const active_view = this.app.workspace.getActiveViewOfType(import_obsidian13.MarkdownView); if (active_view === null) { log_error(new TemplaterError("No active view, can't append templates.")); return; @@ -3800,7 +3891,7 @@ var Templater = class { }); } overwrite_active_file_commands() { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian14.MarkdownView); + const active_view = this.app.workspace.getActiveViewOfType(import_obsidian13.MarkdownView); if (active_view === null) { log_error(new TemplaterError("Active view is null, can't overwrite content")); return; @@ -3836,7 +3927,7 @@ var Templater = class { let match; if ((match = dynamic_command_regex.exec(content)) != null) { const file = this.app.metadataCache.getFirstLinkpathDest("", ctx.sourcePath); - if (!file || !(file instanceof import_obsidian14.TFile)) { + if (!file || !(file instanceof import_obsidian13.TFile)) { return; } if (!pass) { @@ -3875,10 +3966,10 @@ var Templater = class { } static on_file_creation(templater, file) { return __async(this, null, function* () { - if (!(file instanceof import_obsidian14.TFile) || file.extension !== "md") { + if (!(file instanceof import_obsidian13.TFile) || file.extension !== "md") { return; } - const template_folder = (0, import_obsidian14.normalizePath)(templater.plugin.settings.templates_folder); + const template_folder = (0, import_obsidian13.normalizePath)(templater.plugin.settings.templates_folder); if (file.path.includes(template_folder) && template_folder !== "/") { return; } @@ -3920,7 +4011,7 @@ var Templater = class { }; // src/handlers/EventHandler.ts -var import_obsidian15 = __toModule(require("obsidian")); +var import_obsidian14 = __toModule(require("obsidian")); var EventHandler = class { constructor(app, plugin, templater, settings) { this.app = app; @@ -3966,7 +4057,7 @@ var EventHandler = class { } update_file_menu() { this.plugin.registerEvent(this.app.workspace.on("file-menu", (menu, file) => { - if (file instanceof import_obsidian15.TFolder) { + if (file instanceof import_obsidian14.TFolder) { menu.addItem((item) => { item.setTitle("Create new note from template").setIcon("templater-icon").onClick(() => { this.plugin.fuzzy_suggester.create_new_note_from_template(file); @@ -4069,17 +4160,17 @@ var CommandHandler = class { }; // src/editor/Editor.ts -var import_obsidian18 = __toModule(require("obsidian")); +var import_obsidian17 = __toModule(require("obsidian")); // src/editor/CursorJumper.ts -var import_obsidian16 = __toModule(require("obsidian")); +var import_obsidian15 = __toModule(require("obsidian")); var CursorJumper = class { constructor(app) { this.app = app; } jump_to_next_cursor_location() { return __async(this, null, function* () { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView); + const active_view = this.app.workspace.getActiveViewOfType(import_obsidian15.MarkdownView); if (!active_view) { return; } @@ -4135,7 +4226,7 @@ var CursorJumper = class { return { new_content: content, positions }; } set_cursor_location(positions) { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView); + const active_view = this.app.workspace.getActiveViewOfType(import_obsidian15.MarkdownView); if (!active_view) { return; } @@ -4152,10 +4243,10 @@ var CursorJumper = class { }; // src/editor/Autocomplete.ts -var import_obsidian17 = __toModule(require("obsidian")); +var import_obsidian16 = __toModule(require("obsidian")); // toml:/home/runner/work/Templater/Templater/docs/documentation.toml -var tp = { config: { name: "config", description: "This module exposes Templater's running configuration.\n\nThis is mostly useful when writing scripts requiring some context information.\n", functions: { template_file: { name: "template_file", description: "The `TFile` object representing the template file.", definition: "tp.file.template_file" }, target_file: { name: "target_file", description: "The `TFile` object representing the target file where the template will be inserted.", definition: "tp.config.target_file" }, run_mode: { name: "run_mode", description: "The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...)", definition: "tp.config.run_mode" }, active_file: { name: "active_file", description: "The active file (if existing) when launching Templater.", definition: "tp.config.active_file?" } } }, date: { name: "date", description: "This module contains every internal function related to dates.", functions: { now: { name: "now", description: "Retrieves the date.", definition: 'tp.date.now(format: string = "YYYY-MM-DD", offset?: number\u23AEstring, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, offset: { name: "offset", description: "Offset for the day, e.g. set this to `-7` to get last week's date. You can also specify the offset as a string using the ISO 8601 format" }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } }, tomorrow: { name: "tomorrow", description: "Retrieves tomorrow's date.", definition: 'tp.date.tomorrow(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, yesterday: { name: "yesterday", description: "Retrieves yesterday's date.", definition: 'tp.date.yesterday(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, weekday: { name: "weekday", description: "", definition: 'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, weekday: { name: "weekday", description: "Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day." }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } } } }, file: { name: "file", description: "This module contains every internal function related to files.", functions: { content: { name: "content", description: "Retrieves the file's content", definition: "tp.file.content" }, create_new: { name: "create_new", description: "Creates a new file using a specified template or with a specified content.", definition: "tp.file.create_new(template: TFile \u23AE string, filename?: string, open_new: boolean = false, folder?: TFolder)", args: { template: { name: "template", description: "Either the template used for the new file content, or the file content as a string." }, filename: { name: "filename", description: 'The filename of the new file, defaults to "Untitled".' }, open_new: { name: "open_new", description: "Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file." }, folder: { name: "folder", description: "The folder to put the new file in, defaults to obsidian's default location." } } }, creation_date: { name: "creation_date", description: "Retrieves the file's creation date.", definition: 'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference" } } }, cursor: { name: "cursor", description: "Sets the cursor to this location after the template has been inserted. \n\nYou can navigate between the different tp.file.cursor using the configured hotkey in obsidian settings.\n", definition: "tp.file.cursor(order?: number)", args: { order: { name: "order", description: "The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on.\nIf you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor.\n" } } }, cursor_append: { name: "cursor_append", description: "Appends some content after the active cursor in the file.", definition: "tp.file.cursor_append(content: string)", args: { content: { name: "content", description: "The content to append after the active cursor" } } }, exists: { name: "exists", description: "Checks if a file exists or not. Returns a true / false boolean.", definition: "tp.file.exists(filename: string)", args: { filename: { name: "filename", description: "The filename of the file we want to check existence, e.g. MyFile." } } }, find_tfile: { name: "find_tfile", description: "Retrieves the file's folder name.", definition: "tp.file.folder(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, appends the vault relative path to the folder name." } } }, include: { name: "include", description: "Includes the file's link content. Templates in the included content will be resolved.", definition: "tp.file.include(include_link: string \u23AE TFile)", args: { include_link: { name: "include_link", description: "The link to the file to include, e.g. [[MyFile]], or a TFile object. Also supports sections or blocks inclusions, e.g. [[MyFile#Section1]]" } } }, last_modified_date: { name: "last_modified_date", description: "Retrieves the file's last modification date.", definition: 'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference." } } }, move: { name: "functions.move", description: "Moves the file to the desired vault location.", definition: "tp.file.move(new_path: string)", args: { new_path: { name: "new_path", description: "The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. /Notes/MyNote" } } }, path: { name: "path", description: "Retrieves the file's absolute path on the system.", definition: "tp.file.path(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, only retrieves the vault's relative path." } } }, rename: { name: "rename", description: "Renames the file (keeps the same file extension).", definition: "tp.file.rename(new_title: string)", args: { new_title: { name: "new_title", description: "The new file title." } } }, selection: { name: "selection", description: "Retrieves the active file's text selection.", definition: "tp.file.selection()" }, tags: { name: "tags", description: "Retrieves the file's tags (array of string)", definition: "tp.file.tags" }, title: { name: "title", definition: "tp.file.title", description: "Retrieves the file's title." } } }, frontmatter: { name: "frontmatter", description: "This modules exposes all the frontmatter variables of a file as variables." }, obsidian: { name: "obsidian", description: "This module exposes all the functions and classes from the obsidian API." }, system: { name: "system", description: "This module contains system related functions.", functions: { clipboard: { name: "clipboard", description: "Retrieves the clipboard's content", definition: "tp.system.clipboard()" }, prompt: { name: "prompt", description: "Spawns a prompt modal and returns the user's input.", definition: "tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false)", args: { prompt_text: { name: "prompt_text", description: "Text placed above the input field" }, default_value: { name: "default_value", description: "A default value for the input field" }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" } } }, suggester: { name: "suggester", description: "Spawns a suggester prompt and returns the user's chosen item.", definition: 'tp.system.suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)', args: { text_items: { name: "text_items", description: "Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation." }, items: { name: "items", description: "Array containing the values of each item in the correct order." }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, placeholder: { name: "placeholder", description: "Placeholder string of the prompt" }, limit: { name: "limit", description: "Limit the number of items rendered at once (useful to improve performance when displaying large lists)" } } } } }, web: { name: "web", description: "This modules contains every internal function related to the web (making web requests).", functions: { daily_quote: { name: "daily_quote", description: "Retrieves and parses the daily quote from the API https://api.quotable.io", definition: "tp.web.daily_quote()" }, random_picture: { name: "random_picture", description: "Gets a random image from https://unsplash.com/", definition: "tp.web.random_picture(size?: string, query?: string)", args: { size: { name: "size", description: "Image size in the format `x`" }, query: { name: "query", description: "Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma `,`" } } } } } }; +var tp = { config: { name: "config", description: "This module exposes Templater's running configuration.\n\nThis is mostly useful when writing scripts requiring some context information.\n", functions: { template_file: { name: "template_file", description: "The `TFile` object representing the template file.", definition: "tp.file.template_file" }, target_file: { name: "target_file", description: "The `TFile` object representing the target file where the template will be inserted.", definition: "tp.config.target_file" }, run_mode: { name: "run_mode", description: "The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...)", definition: "tp.config.run_mode" }, active_file: { name: "active_file", description: "The active file (if existing) when launching Templater.", definition: "tp.config.active_file?" } } }, date: { name: "date", description: "This module contains every internal function related to dates.", functions: { now: { name: "now", description: "Retrieves the date.", definition: 'tp.date.now(format: string = "YYYY-MM-DD", offset?: number\u23AEstring, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, offset: { name: "offset", description: "Offset for the day, e.g. set this to `-7` to get last week's date. You can also specify the offset as a string using the ISO 8601 format" }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } }, tomorrow: { name: "tomorrow", description: "Retrieves tomorrow's date.", definition: 'tp.date.tomorrow(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, yesterday: { name: "yesterday", description: "Retrieves yesterday's date.", definition: 'tp.date.yesterday(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, weekday: { name: "weekday", description: "", definition: 'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, weekday: { name: "weekday", description: "Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day." }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } } } }, file: { name: "file", description: "This module contains every internal function related to files.", functions: { content: { name: "content", description: "Retrieves the file's content", definition: "tp.file.content" }, create_new: { name: "create_new", description: "Creates a new file using a specified template or with a specified content.", definition: "tp.file.create_new(template: TFile \u23AE string, filename?: string, open_new: boolean = false, folder?: TFolder)", args: { template: { name: "template", description: "Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`" }, filename: { name: "filename", description: 'The filename of the new file, defaults to "Untitled".' }, open_new: { name: "open_new", description: "Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file." }, folder: { name: "folder", description: 'The folder to put the new file in, defaults to obsidian\'s default location. If you want the file to appear in a different folder, specify it with `app.vault.getAbstractFileByPath("FOLDERNAME")`' } } }, creation_date: { name: "creation_date", description: "Retrieves the file's creation date.", definition: 'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference" } } }, cursor: { name: "cursor", description: "Sets the cursor to this location after the template has been inserted. \n\nYou can navigate between the different tp.file.cursor using the configured hotkey in obsidian settings.\n", definition: "tp.file.cursor(order?: number)", args: { order: { name: "order", description: "The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on.\nIf you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor.\n" } } }, cursor_append: { name: "cursor_append", description: "Appends some content after the active cursor in the file.", definition: "tp.file.cursor_append(content: string)", args: { content: { name: "content", description: "The content to append after the active cursor" } } }, exists: { name: "exists", description: "Checks if a file exists or not. Returns a true / false boolean.", definition: "tp.file.exists(filename: string)", args: { filename: { name: "filename", description: "The filename of the file we want to check existence, e.g. MyFile." } } }, find_tfile: { name: "find_tfile", description: "Search for a file and returns its `TFile` instance", definition: "tp.file.find_tfile(filename: string)", args: { filename: { name: "filename", description: "The filename we want to search and resolve as a `TFile`" } } }, folder: { name: "folder", description: "Retrieves the file's folder name.", definition: "tp.file.folder(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, appends the vault relative path to the folder name." } } }, include: { name: "include", description: "Includes the file's link content. Templates in the included content will be resolved.", definition: "tp.file.include(include_link: string \u23AE TFile)", args: { include_link: { name: "include_link", description: "The link to the file to include, e.g. [[MyFile]], or a TFile object. Also supports sections or blocks inclusions, e.g. [[MyFile#Section1]]" } } }, last_modified_date: { name: "last_modified_date", description: "Retrieves the file's last modification date.", definition: 'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference." } } }, move: { name: "functions.move", description: "Moves the file to the desired vault location.", definition: "tp.file.move(new_path: string, file_to_move?: TFile)", args: { new_path: { name: "new_path", description: "The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. /Notes/MyNote" } } }, path: { name: "path", description: "Retrieves the file's absolute path on the system.", definition: "tp.file.path(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, only retrieves the vault's relative path." } } }, rename: { name: "rename", description: "Renames the file (keeps the same file extension).", definition: "tp.file.rename(new_title: string)", args: { new_title: { name: "new_title", description: "The new file title." } } }, selection: { name: "selection", description: "Retrieves the active file's text selection.", definition: "tp.file.selection()" }, tags: { name: "tags", description: "Retrieves the file's tags (array of string)", definition: "tp.file.tags" }, title: { name: "title", definition: "tp.file.title", description: "Retrieves the file's title." } } }, frontmatter: { name: "frontmatter", description: "This modules exposes all the frontmatter variables of a file as variables." }, obsidian: { name: "obsidian", description: "This module exposes all the functions and classes from the obsidian API." }, system: { name: "system", description: "This module contains system related functions.", functions: { clipboard: { name: "clipboard", description: "Retrieves the clipboard's content", definition: "tp.system.clipboard()" }, prompt: { name: "prompt", description: "Spawns a prompt modal and returns the user's input.", definition: "tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false)", args: { prompt_text: { name: "prompt_text", description: "Text placed above the input field" }, default_value: { name: "default_value", description: "A default value for the input field" }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, multiline: { name: "multiline", description: "If set to true, the input field will be a multiline textarea" } } }, suggester: { name: "suggester", description: "Spawns a suggester prompt and returns the user's chosen item.", definition: 'tp.system.suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)', args: { text_items: { name: "text_items", description: "Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation." }, items: { name: "items", description: "Array containing the values of each item in the correct order." }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, placeholder: { name: "placeholder", description: "Placeholder string of the prompt" }, limit: { name: "limit", description: "Limit the number of items rendered at once (useful to improve performance when displaying large lists)" } } } } }, web: { name: "web", description: "This modules contains every internal function related to the web (making web requests).", functions: { daily_quote: { name: "daily_quote", description: "Retrieves and parses the daily quote from the API https://api.quotable.io", definition: "tp.web.daily_quote()" }, random_picture: { name: "random_picture", description: "Gets a random image from https://unsplash.com/", definition: "tp.web.random_picture(size?: string, query?: string, include_size?: boolean)", args: { size: { name: "size", description: "Image size in the format `x`" }, query: { name: "query", description: "Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma `,`" }, include_dimensions: { name: "include_size", description: "Optional argument to include the specified size in the image link markdown. Defaults to false" } } } } } }; var documentation_default = { tp }; // src/editor/TpDocumentation.ts @@ -4200,7 +4291,7 @@ var Documentation = class { }; // src/editor/Autocomplete.ts -var Autocomplete = class extends import_obsidian17.EditorSuggest { +var Autocomplete = class extends import_obsidian16.EditorSuggest { constructor(app, plugin) { super(app); this.app = app; @@ -4259,7 +4350,7 @@ var Autocomplete = class extends import_obsidian17.EditorSuggest { } } selectSuggestion(value, evt) { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian17.MarkdownView); + const active_view = this.app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView); if (!active_view) { return; } @@ -4937,9 +5028,9 @@ var Autocomplete = class extends import_obsidian17.EditorSuggest { if (type2 == "(") return pass(functiondef); } - function commasep(what, end2, sep) { + function commasep(what, end2, sep2) { function proceed(type2, value) { - if (sep ? sep.indexOf(type2) > -1 : type2 == ",") { + if (sep2 ? sep2.indexOf(type2) > -1 : type2 == ",") { var lex = cx.state.lexical; if (lex.info == "call") lex.pos = (lex.pos || 0) + 1; @@ -4951,7 +5042,7 @@ var Autocomplete = class extends import_obsidian17.EditorSuggest { } if (type2 == end2 || value == end2) return cont(); - if (sep && sep.indexOf(";") > -1) + if (sep2 && sep2.indexOf(";") > -1) return pass(what); return cont(expect(end2)); } @@ -5576,7 +5667,7 @@ var Editor2 = class { if (!this.plugin.settings.syntax_highlighting) { return; } - if (import_obsidian18.Platform.isMobileApp) { + if (import_obsidian17.Platform.isMobileApp) { return; } const js_mode = window.CodeMirror.getMode({}, "javascript"); @@ -5664,7 +5755,7 @@ var Editor2 = class { }; // src/main.ts -var TemplaterPlugin = class extends import_obsidian19.Plugin { +var TemplaterPlugin = class extends import_obsidian18.Plugin { onload() { return __async(this, null, function* () { yield this.load_settings(); @@ -5677,10 +5768,12 @@ var TemplaterPlugin = class extends import_obsidian19.Plugin { this.event_handler.setup(); this.command_handler = new CommandHandler(this.app, this); this.command_handler.setup(); - (0, import_obsidian19.addIcon)("templater-icon", ICON_DATA); - this.addRibbonIcon("templater-icon", "Templater", () => __async(this, null, function* () { - this.fuzzy_suggester.insert_template(); - })); + (0, import_obsidian18.addIcon)("templater-icon", ICON_DATA); + if (this.settings.enable_ribbon_icon) { + this.addRibbonIcon("templater-icon", "Templater", () => __async(this, null, function* () { + this.fuzzy_suggester.insert_template(); + })).setAttribute("id", "rb-templater-icon"); + } this.addSettingTab(new TemplaterSettingTab(this.app, this)); this.app.workspace.onLayoutReady(() => { this.templater.execute_startup_scripts(); diff --git a/notes/.obsidian/plugins/templater-obsidian/manifest.json b/notes/.obsidian/plugins/templater-obsidian/manifest.json index f9634f6..3c00d8b 100644 --- a/notes/.obsidian/plugins/templater-obsidian/manifest.json +++ b/notes/.obsidian/plugins/templater-obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "templater-obsidian", "name": "Templater", - "version": "1.12.0", + "version": "1.14.0", "description": "Create and use templates", "minAppVersion": "0.11.13", "author": "SilentVoid", diff --git a/notes/.obsidian/plugins/templater-obsidian/styles.css b/notes/.obsidian/plugins/templater-obsidian/styles.css index bd49089..e955087 100644 --- a/notes/.obsidian/plugins/templater-obsidian/styles.css +++ b/notes/.obsidian/plugins/templater-obsidian/styles.css @@ -63,6 +63,21 @@ flex-grow: 1; } +.templater-button-div { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 1rem; +} + +textarea.templater-prompt-input { + height: 10rem; +} + +textarea.templater-prompt-input:focus { + border-color: var(--interactive-accent); +} + .cm-s-obsidian .templater-command-bg { left: 0px; right: 0px; diff --git a/notes/data/Pasted image 20220908113126.png b/notes/data/Pasted image 20220908113126.png new file mode 100644 index 0000000000000000000000000000000000000000..2344c8101113d97349d3bbd0bdf0637d9616d96b GIT binary patch literal 107740 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 E2VFUp`~Uy| literal 0 HcmV?d00001 diff --git a/notes/data/Pasted image 20220908113147.png b/notes/data/Pasted image 20220908113147.png new file mode 100644 index 0000000000000000000000000000000000000000..f9920623efa1dd2a2616b5d800ba2467fef1c7d5 GIT binary patch literal 97619 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

    T6WT8!y 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 Y57l7VxzIU70)HtfoI9N^Z|L!V0O);R3;+NC literal 0 HcmV?d00001 diff --git a/notes/mat/Příklady 2.md b/notes/mat/Příklady 2.md index b4de548..e224dc0 100644 --- a/notes/mat/Příklady 2.md +++ b/notes/mat/Příklady 2.md @@ -67,3 +67,99 @@ Záporný diskriminant - nemá řešení >$-4z^2+4z-1=0$ +$D=b^2-4ac$ +$x=\frac{-b\pm\sqrt{D}}{2a}$ + +$a=-4$ +$b=4$ +$c=-1$ + +$D=4^2-4*(-4)*(-1)$ +$D=16-16$ +$D=0$ + +$x=\frac{-4\pm0}{2*(-4)}$ +$x=\frac{-4}{-8}$ +$x=\frac12$ + +--- + +>$2x^2=-3x$ + +$2x^2+3x=0$ +$x(2x+3)=0$ + +$x=0$ + +$2x+3=0$ +$2x=-3$ +$x=-\frac32$ + +$x\in\{0;-\frac32\}$ + +--- + +>$x^2+3=4\sqrt3x$ + +$x^2+3-4\sqrt3x=0$ + +--- + +>$3x^2=4$ + +$3x^2+0x-4=0$ + +$D=b^2-4ac$ +$x=\frac{-b\pm\sqrt{D}}{2a}$ + +$a=3$ +$b=0$ +$c=-4$ + +$D=0^2-4*3*(-4)$ +$D=16*3$ +$D=48$ + +jednodušší způsob: + +$3x^2-4=0$ +$(\sqrt3x+2)(\sqrt3x-2)=0$ + +$x_1=-\frac2{\sqrt3}$ +$x_2=\frac2{\sqrt3}$ + +$x\in\{-\frac2{\sqrt3};\frac2{\sqrt3}\}$ + +--- + +>$x^2=-25$ + +$x^2+25=0$ + +$x^2>0$ +nemůže být -25 +rovnice nemá řešení + +--- + +>$f: ax^2+bx+c=y$ + +$a>0$ +![](Pasted%20image%2020220908113126.png) +$a<0$ +![](Pasted%20image%2020220908113147.png) + + +--- + +>$2x^2+5\le3x^2+x-1$ + +$-x^2-x+6\le0$ +$0\le x^2+x-6$ + +$a=1$ +$b=1$ +$c=-6$ + +$0\le(x-2)(x+3)$ + diff --git a/notes/mat/Tahák.md b/notes/mat/Tahák.md index f5ddf36..91c5b98 100644 --- a/notes/mat/Tahák.md +++ b/notes/mat/Tahák.md @@ -4,3 +4,10 @@ $D=b^2-4ac$ Záporný diskriminant - kvadratická rovnice nemá řešení v $\mathbb{R}$ $x=\frac{-b\pm\sqrt{D}}{2a}$ +Nemůže se násobit když je na jedné straně 0 (nebyla by to ekvivalentní úprava) + +### Kvadratické funkce: +$ax^2+bx+c=y$ +$a>0$ parabola, nulový bod dole +$a<0$ parabola, nulový bod nahoře +